From 61eee1173c00a7ba9d9c748d28fe3acdb33b9441 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 30 十二月 2025 15:20:24 +0800
Subject: [PATCH] 首次提交

---
 app/src/main/java/com/shlb/comb/activity/ParameterSettingActivity.java                                                   |  665 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/CompanyIdentifierResolver.java    |  646 
 app/src/main/res/values/ids.xml                                                                                          |   39 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleManager.java                                    |  111 
 app/src/main/res/mipmap-xhdpi/icon_topbar_right.png                                                                      |    0 
 app/src/main/res/drawable/bg_edittext.xml                                                                                |    6 
 app/src/main/res/values/values.xml                                                                                       |    4 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordStore.java                 |  157 
 app/src/main/res/mipmap-xhdpi/icon_menu.png                                                                              |    0 
 app/src/main/java/com/shlb/comb/view/t.java                                                                              |    4 
 app/src/main/res/mipmap-xxhdpi/animation_img3.png                                                                        |    0 
 app/src/main/java/com/shlb/comb/view/particleview/LineEvaluator.java                                                     |   16 
 app/src/main/res/layout/list_item_device.xml                                                                             |  201 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/BluetoothClassResolver.java       |  142 
 app/src/main/java/com/shlb/comb/model/BluetoothLeDeviceStore.java                                                        |  150 
 app/src/main/res/mipmap-xhdpi/load_err.png                                                                               |    0 
 app/src/main/res/mipmap-xhdpi/top_background.png                                                                         |    0 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectState.java                          |   25 
 app/src/main/java/com/shlb/comb/activity/TestActivity.java                                                               |  357 
 app/src/main/java/com/shlb/comb/fragment/SettingsFragment.java                                                           |  712 
 app/src/main/java/com/shlb/comb/util/CMD.java                                                                            |   67 
 app/src/main/res/values/strings.xml                                                                                      |   75 
 app/src/main/res/layout/item_grid_box.xml                                                                                |   29 
 app/src/main/res/mipmap-mdpi/ic_launcher.png                                                                             |    0 
 app/src/main/java/com/shlb/comb/SplashActivity.java                                                                      |   45 
 app/src/main/res/mipmap-xhdpi/ic_sport_bg.png                                                                            |    0 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanResultCompat.java         |  189 
 app/src/main/res/drawable/radius_button_bg_pressed.xml                                                                   |   33 
 app/src/main/java/com/shlb/comb/manager/BleGlobalManager.java                                                            |  268 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconManufacturerData.java        |  134 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconManufacturerData.java                 |   31 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ReconnectParamsBean.java                   |  126 
 app/src/main/res/drawable/btn_gray.xml                                                                                   |   17 
 app/src/main/res/layout/activity_write2.xml                                                                              |   28 
 app/src/main/res/mipmap-xhdpi/animation_img1.png                                                                         |    0 
 bluetooth-manager-lib/src/main/res/values/strings.xml                                                                    |    3 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleNotAvailableException.java                      |   40 
 app/src/main/res/layout/fragment_device_list.xml                                                                         |   20 
 app/proguard-rules.pro                                                                                                   |  207 
 app/src/main/res/xml/backup_rules.xml                                                                                    |   13 
 app/src/main/java/com/shlb/comb/util/CsvWriterHelper.java                                                                |   26 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothLeScannerCompat.java |  261 
 app/src/main/res/layout/activity_write.xml                                                                               |  315 
 app/src/main/res/mipmap-xhdpi/icon_topbar_about.png                                                                      |    0 
 app/src/main/res/values/themes.xml                                                                                       |   77 
 app/src/main/res/mipmap-xhdpi/icon_record.png                                                                            |    0 
 app/src/main/java/com/shlb/comb/base/BaseActivity.java                                                                   |  275 
 app/src/main/res/mipmap-xhdpi/monkey.png                                                                                 |    0 
 app/src/main/res/values/colors.xml                                                                                       |   88 
 app/src/main/res/mipmap-xhdpi/ic_down.png                                                                                |    0 
 app/src/main/res/layout/activity_parameter_setting.xml                                                                   |  458 
 app/src/main/res/drawable/bg_box_error.xml                                                                               |    5 
 app/src/main/res/color/selector_drawer_icon.xml                                                                          |    6 
 app/src/main/res/layout/activity_base.xml                                                                                |   53 
 app/src/main/res/layout/activity_conn.xml                                                                                |   21 
 app/src/main/java/com/shlb/comb/view/ParticleView.java                                                                   |  379 
 app/src/main/res/drawable-v24/ic_launcher_foreground.xml                                                                 |   30 
 app/src/main/res/drawable/bg_drawer_item.xml                                                                             |   26 
 app/src/main/java/com/shlb/comb/adapter/BaseArrayListAdapter.java                                                        |  246 
 app/src/main/res/layout/dialog_layout_bluetooth_item.xml                                                                 |   91 
 app/src/main/res/layout/dialog_layout_bluetooth_list.xml                                                                 |   19 
 app/src/main/res/mipmap-xhdpi/example_image0.png                                                                         |    0 
 app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java                                                         |  358 
 app/src/main/res/layout/include_head.xml                                                                                 |   51 
 bluetooth-manager-lib/proguard-rules.pro                                                                                 |   17 
 app/src/main/res/layout/normal_activity_write.xml                                                                        |  304 
 gradle.properties                                                                                                        |   21 
 app/src/main/java/com/shlb/comb/util/TimeFormatter.java                                                                  |   18 
 app/src/main/res/menu/menu_main.xml                                                                                      |   10 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanSettingsCompat.java       |  176 
 app/src/main/java/com/shlb/comb/event/UpdateEvent.java                                                                   |   79 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconType.java                             |   15 
 app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java                                                       |  240 
 app/src/main/res/layout/tipdialog_custom.xml                                                                             |   25 
 app/src/main/res/mipmap-xhdpi/ic_bluetooth.png                                                                           |    0 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ObjectsCompat.java            |   72 
 app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter2.java                                                          |  137 
 app/src/main/java/com/shlb/comb/adapter/WriteAdapter.java                                                                |   32 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanCallbackCompat.java       |   88 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothService.java                       |   28 
 app/src/main/res/mipmap-xhdpi/icon_head.png                                                                              |    0 
 app/src/main/res/mipmap-xxhdpi/animation_img2.png                                                                        |    0 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/LimitedLinkHashMap.java                       |   19 
 app/src/main/res/drawable/item_flag_view.xml                                                                             |   13 
 app/src/main/res/mipmap-xxhdpi/ic_launcher.png                                                                           |    0 
 comb.jks                                                                                                                 |    0 
 app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter.java                                                           |   83 
 app/src/main/java/com/shlb/comb/model/HomeItem.java                                                                      |   40 
 app/src/main/java/com/shlb/comb/util/CRCutil.java                                                                        |   34 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/GattError.java                             |  142 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/ByteUtils.java                                |  178 
 app/src/main/res/drawable/bg_input_field.xml                                                                             |    6 
 app/src/main/java/com/shlb/comb/util/Singletion.java                                                                     |   36 
 app/src/main/res/mipmap-xhdpi/about_logo.png                                                                             |    0 
 app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png                                                                   |    0 
 app/build.gradle                                                                                                         |   71 
 app/src/main/java/com/shlb/comb/view/particleview/Particle.java                                                          |   17 
 app/src/main/res/mipmap-xhdpi/ic_sanjiao.png                                                                             |    0 
 app/src/main/res/values-w1240dp/dimens.xml                                                                               |    3 
 app/src/main/res/values/dimens.xml                                                                                       |  102 
 app/src/main/res/mipmap-xhdpi/icon_colse.png                                                                             |    0 
 app/src/main/res/layout/fragment_settings.xml                                                                            |  465 
 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png                                                                          |    0 
 app/src/main/res/layout/activity_splash.xml                                                                              |   31 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordUtils.java                 |  132 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectStateListener.java                  |   27 
 app/src/main/res/mipmap-hdpi/ic_launcher.png                                                                             |    0 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconConstants.java               |    9 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothSubScribeData.java                |  187 
 app/src/main/res/layout/dialog_layout_write_list.xml                                                                     |   75 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothOperatorQueue.java                |  135 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/ConnectRequestQueue.java          |  609 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecord.java                      |  227 
 app/src/main/res/color/selector_drawer_text.xml                                                                          |    6 
 app/src/main/res/layout/dialog_layout_write_item.xml                                                                     |   28 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BluetoothScanManager.java                     |  243 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleParamsOptions.java                              |  285 
 app/src/main/res/values-w600dp/dimens.xml                                                                                |    3 
 app/src/main/res/color/s_app_color_blue_2.xml                                                                            |   21 
 app/src/main/res/drawable/bg_drawer_header_gradient.xml                                                                  |    9 
 app/src/main/java/com/shlb/comb/activity/ConnActivity.java                                                               |  444 
 app/src/main/res/drawable/s_radius_button_bg.xml                                                                         |   21 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/BluetoothUtils.java                           |  137 
 .gitignore                                                                                                               |   24 
 app/src/main/res/xml/data_extraction_rules.xml                                                                           |   19 
 app/src/main/res/mipmap-xhdpi/ic_launcher.png                                                                            |    0 
 app/src/main/res/layout/home_item_view.xml                                                                               |   74 
 app/src/main/java/com/shlb/comb/Application.java                                                                         |   82 
 app/src/main/res/drawable/ic_launcher_background.xml                                                                     |  170 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDistanceDescriptor.java      |    8 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothUuidCompat.java      |  310 
 app/src/main/java/com/shlb/comb/adapter/HomeAdapter.java                                                                 |   25 
 app/src/main/res/values-land/dimens.xml                                                                                  |    3 
 app/src/main/java/com/shlb/comb/activity/HomeActivity.java                                                               |  355 
 app/src/main/java/com/shlb/comb/activity/CurrentDeviceActivity.java                                                      |  151 
 app/src/main/res/drawable/bg_round.xml                                                                                   |   12 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/ScanOverListener.java                         |   21 
 app/src/main/res/drawable/bg_box_full.xml                                                                                |    5 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconUtils.java                            |   57 
 app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png                                                                     |    0 
 app/src/main/res/layout/activity_test.xml                                                                                |   96 
 app/src/main/res/layout/include_head_home.xml                                                                            |   58 
 app/src/main/res/values/arrays.xml                                                                                       |   13 
 app/src/main/res/layout/top_view.xml                                                                                     |   16 
 app/src/main/res/mipmap-xhdpi/ic_device_ibeacon.png                                                                      |    0 
 build.gradle                                                                                                             |   15 
 app/src/main/res/drawable/bg_box_empty.xml                                                                               |    6 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconUtils.java                   |   80 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/GattAttributeResolver.java        |  380 
 app/src/main/java/com/shlb/comb/activity/NormalWriteActivity.java                                                        |  536 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectInterface.java             |  398 
 bluetooth-manager-lib/build.gradle                                                                                       |   37 
 app/src/main/res/drawable/bg_card.xml                                                                                    |    5 
 app/src/main/res/layout/activity_advanced_setting.xml                                                                    |  280 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothLeDevice.java                      |  440 
 app/.gitignore                                                                                                           |    1 
 settings.gradle                                                                                                          |   19 
 app/src/main/res/layout/home_list_bluetooth_item.xml                                                                     |  176 
 app/proguardMapping.txt                                                                                                  | 34468 +++++++++++++++++++++++++++++++++++++
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/CycledLeScanner.java                          |  363 
 app/src/main/AndroidManifest.xml                                                                                         |   69 
 app/src/main/java/com/shlb/comb/util/Constants.java                                                                      |   15 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanFilterCompat.java         |  627 
 app/src/main/res/layout/activity_current_device.xml                                                                      |   51 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/MultiConnectManager.java          |  147 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDevice.java                  |  144 
 app/src/main/java/com/shlb/comb/activity/WriteActivity.java                                                              |  627 
 app/src/main/java/com/shlb/comb/activity/WriteActivity2.java                                                             |  531 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconDevice.java                           |    8 
 bluetooth-manager-lib/.gitignore                                                                                         |    1 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectManager.java               |  475 
 bluetooth-manager-lib/src/main/AndroidManifest.xml                                                                       |   13 
 app/src/main/res/drawable/radius_button_bg.xml                                                                           |   33 
 app/src/main/java/com/shlb/comb/activity/AdvancedSettingActivity.java                                                    |  377 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectConfig.java                         |   30 
 app/src/main/res/layout/activity_home.xml                                                                                |  257 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BackgroundPowerSaver.java                     |  197 
 bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanRecordCompat.java         |  353 
 app/src/main/res/layout/layout_loading_view.xml                                                                          |   22 
 app/src/main/res/drawable/bg_box_offline.xml                                                                             |    5 
 app/src/main/res/mipmap-xxhdpi/animation_img1.png                                                                        |    0 
 app/src/main/res/mipmap-xhdpi/icon_back.png                                                                              |    0 
 182 files changed, 55,130 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..148777d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
+.idea
+app/release
+app/src/androidTest
+app/src/test
+bluetooth-manager-lib/src/androidTest
+bluetooth-manager-lib/src/test
+gradle
+gradlew
+gradlew.bat
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..0deab69
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,71 @@
+plugins {
+    id 'com.android.application'
+}
+
+android {
+    namespace "com.shlb.comb"
+
+    compileSdk 34
+
+    defaultConfig {
+        applicationId "com.shlb.comb"
+        minSdk 21
+        targetSdk 34
+        versionCode 1
+        versionName "1.0"
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            minifyEnabled true
+            shrinkResources true
+            zipAlignEnabled true
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+        debug {
+            minifyEnabled false
+            minifyEnabled true
+            shrinkResources true
+            zipAlignEnabled true
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    lintOptions {
+        abortOnError false
+    }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+    buildFeatures {
+        viewBinding true
+    }
+
+    applicationVariants.all { variant ->
+        if (variant.buildType.name == "release") {
+            variant.outputs.all {
+                def date = new Date().format("yyyyMMddHHmmss")
+                outputFileName = "comb-release-${date}.apk"
+            }
+        }
+    }
+}
+
+dependencies {
+
+    implementation 'androidx.appcompat:appcompat:1.3.0'
+    implementation 'com.google.android.material:material:1.4.0'
+    implementation project(path: ':bluetooth-manager-lib')
+    testImplementation 'junit:junit:4.13.2'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+    implementation 'com.qmuiteam:qmui:2.0.1'
+    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.0'
+    implementation 'org.greenrobot:eventbus:3.0.0'
+    implementation 'pub.devrel:easypermissions:3.0.0'
+
+
+}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..d16df50
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,207 @@
+#-------------------------------------------瀹氬埗鍖栧尯鍩�----------------------------------------------
+#---------------------------------1.瀹炰綋绫�---------------------------------
+
+-keep class com.shlb.comb.model.** { *; }
+
+#-------------------------------------------------------------------------
+
+#---------------------------------2.绗笁鏂瑰寘-------------------------------
+
+#eventbus
+-keepattributes *Annotation*
+-keepclassmembers class * {
+    @org.greenrobot.eventbus.Subscribe <methods>;
+}
+-keep enum org.greenrobot.eventbus.ThreadMode { *; }
+
+# If using AsyncExecutord, keep required constructor of default event used.
+# Adjust the class name if a custom failure event type is used.
+-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
+    <init>(java.lang.Throwable);
+}
+##--------------- Androidx ----------
+-keep class com.google.android.material.** {*;}
+-keep class androidx.** {*;}
+-keep public class * extends androidx.**
+-keep interface androidx.** {*;}
+-dontwarn com.google.android.material.**
+-dontnote com.google.android.material.**
+-dontwarn androidx.**
+##--------------- Androidx ----------
+
+##--------------- QmUi ----------
+-keep class **_FragmentFinder { *; }
+-keep class androidx.fragment.app.* { *; }
+
+-keep class com.qmuiteam.qmui.arch.record.RecordIdClassMap { *; }
+-keep class com.qmuiteam.qmui.arch.record.RecordIdClassMapImpl { *; }
+
+-keep class com.qmuiteam.qmui.arch.scheme.SchemeMap {*;}
+-keep class com.qmuiteam.qmui.arch.scheme.SchemeMapImpl {*;}
+##--------------- QmUi ----------
+
+# Accessed via reflection, avoid renaming or removal
+-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl
+
+#fastjson
+-keepattributes Signature
+-dontwarn com.alibaba.fastjson.**
+-keep class com.alibaba.fastjson.**{*; }
+#picasso
+-dontwarn com.squareup.okhttp.**
+#okhttp #okio
+-dontwarn okhttp3.**
+-dontwarn okio.**
+-dontwarn javax.annotation.**
+#retrofit2
+-dontwarn retrofit2.**
+#rx
+-dontwarn rx.**
+#alipay
+-dontwarn com.alipay.**
+#rxeasyhttp
+-keep class com.zhouyou.http.model.** {*;}
+-keep class com.zhouyou.http.cache.model.** {*;}
+-keep class com.zhouyou.http.cache.stategy.**{*;}
+
+
+# -keep class com.zhouyou.http.** { *;}
+#MPAndroidchart
+-keep class com.github.mikephil.** { *;}
+#pgy
+-dontwarn com.pgyersdk.**
+-keep class com.pgyersdk.** { *; }
+#litpal
+-keep class org.litepal.** {
+    *;
+}
+
+-keep class * extends org.litepal.crud.DataSupport {
+    *;
+}
+
+
+
+
+
+#-------------------------------------------------------------------------
+
+#---------------------------------3.涓巎s浜掔浉璋冪敤鐨勭被------------------------
+
+
+
+#-------------------------------------------------------------------------
+
+#---------------------------------4.鍙嶅皠鐩稿叧鐨勭被鍜屾柟娉�-----------------------
+#-keep class com.shlanbao.lbmonitoring.activity.LbSearchActivity
+#
+#-keep class com.shlanbao.lbmonitoring.view.LbSearchView
+
+
+
+#----------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------------
+
+#-------------------------------------------鍩烘湰涓嶇敤鍔ㄥ尯鍩�--------------------------------------------
+#---------------------------------鍩烘湰鎸囦护鍖�----------------------------------
+# 浠g爜娣锋穯鍘嬬缉姣旓紝鍦�0~7涔嬮棿
+-optimizationpasses 5
+
+# 娣峰悎鏃朵笉浣跨敤澶у皬鍐欐贩鍚堬紝娣峰悎鍚庣殑绫诲悕涓哄皬鍐�
+-dontusemixedcaseclassnames
+
+# 鎸囧畾涓嶅幓蹇界暐闈炲叕鍏卞簱鐨勭被鎴愬憳
+-dontskipnonpubliclibraryclasses
+# 涓嶅仛棰勬牎楠岋紝preverify鏄痯roguard鐨勫洓涓楠や箣涓�锛孉ndroid涓嶉渶瑕乸reverify锛屽幓鎺夎繖涓�姝ヨ兘澶熷姞蹇贩娣嗛�熷害銆�
+-dontpreverify
+
+# 娣锋穯鏃舵槸鍚﹁褰曟棩蹇楋紝杩欏彞璇濊兘澶熶娇鎴戜滑鐨勯」鐩贩娣嗗悗浜х敓鏄犲皠鏂囦欢
+# 鍖呭惈鏈夌被鍚�->娣锋穯鍚庣被鍚嶇殑鏄犲皠鍏崇郴
+-verbose
+
+# 閬垮厤娣锋穯娉涘瀷
+-keepattributes Signature
+
+# 淇濈暀Annotation涓嶆贩娣�
+-keepattributes *Annotation*,InnerClasses
+
+#google鎺ㄨ崘绠楁硶
+-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
+
+# 閬垮厤娣锋穯Annotation銆佸唴閮ㄧ被銆佹硾鍨嬨�佸尶鍚嶇被
+-keepattributes *Annotation*,InnerClasses,Signature,EnclosingMethod
+
+# 閲嶅懡鍚嶆姏鍑哄紓甯告椂鐨勬枃浠跺悕绉�
+-renamesourcefileattribute SourceFile
+
+# 鎶涘嚭寮傚父鏃朵繚鐣欎唬鐮佽鍙�
+-keepattributes SourceFile,LineNumberTable
+
+# 蹇界暐璀﹀憡
+-ignorewarnings
+# 浼樺寲涓嶄紭鍖栬緭鍏ョ殑绫绘枃浠�
+-dontoptimize
+
+# 淇濈暀R涓嬮潰鐨勮祫婧�
+-keep class **.R$* {*;}
+
+# 淇濈暀鏋氫妇绫讳笉琚贩娣�
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+#----------------------------------------------------------------------------
+
+#---------------------------------榛樿淇濈暀鍖�---------------------------------
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+-keep public class com.android.vending.licensing.ILicensingService
+-keep class android.support.** {*;}
+
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+-keep class **.R$* {
+ *;
+}
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+#----------------------------------------------------------------------------
+
+#---------------------------------webview------------------------------------
+-keepclassmembers class fqcn.of.javascript.interface.for.Webview {
+   public *;
+}
+-keepclassmembers class * extends android.webkit.WebViewClient {
+    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
+    public boolean *(android.webkit.WebView, java.lang.String);
+}
+-keepclassmembers class * extends android.webkit.WebViewClient {
+    public void *(android.webkit.WebView, jav.lang.String);
+}
+#----------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/app/proguardMapping.txt b/app/proguardMapping.txt
new file mode 100644
index 0000000..a023a06
--- /dev/null
+++ b/app/proguardMapping.txt
@@ -0,0 +1,34468 @@
+# compiler: R8
+# compiler_version: 3.2.60
+# min_api: 24
+# common_typos_disable
+# {"id":"com.android.tools.r8.mapping","version":"2.0"}
+# pg_map_id: 7fdaec5
+# pg_map_hash: SHA-256 7fdaec5ed915483aea6332a0833cf396f2573c1c7e0a89e01601fac4d9ee1ed4
+android.support.v4.app.INotificationSideChannel$Default -> android.support.v4.app.INotificationSideChannel$Default:
+    14:14:void <init>() -> <init>
+    36:36:android.os.IBinder asBinder() -> asBinder
+    27:27:void cancel(java.lang.String,int,java.lang.String) -> cancel
+    33:33:void cancelAll(java.lang.String) -> cancelAll
+    21:21:void notify(java.lang.String,int,java.lang.String,android.app.Notification) -> notify
+android.support.v4.app.INotificationSideChannel$Stub -> android.support.v4.app.INotificationSideChannel$Stub:
+    45:47:void <init>() -> <init>
+    65:65:android.os.IBinder asBinder() -> asBinder
+    54:61:android.support.v4.app.INotificationSideChannel asInterface(android.os.IBinder) -> asInterface
+    224:224:android.support.v4.app.INotificationSideChannel getDefaultImpl() -> getDefaultImpl
+    69:118:boolean onTransact(int,android.os.Parcel,android.os.Parcel,int) -> onTransact
+    214:221:boolean setDefaultImpl(android.support.v4.app.INotificationSideChannel) -> setDefaultImpl
+android.support.v4.app.INotificationSideChannel$Stub$Proxy -> android.support.v4.app.INotificationSideChannel$Stub$Proxy:
+    126:128:void <init>(android.os.IBinder) -> <init>
+    131:131:android.os.IBinder asBinder() -> asBinder
+    170:185:void cancel(java.lang.String,int,java.lang.String) -> cancel
+    191:204:void cancelAll(java.lang.String) -> cancelAll
+    135:135:java.lang.String getInterfaceDescriptor() -> getInterfaceDescriptor
+    142:164:void notify(java.lang.String,int,java.lang.String,android.app.Notification) -> notify
+android.support.v4.app.RemoteActionCompatParcelizer -> android.support.v4.app.RemoteActionCompatParcelizer:
+    11:11:void <init>() -> <init>
+    13:13:androidx.core.app.RemoteActionCompat read(androidx.versionedparcelable.VersionedParcel) -> read
+    17:18:void write(androidx.core.app.RemoteActionCompat,androidx.versionedparcelable.VersionedParcel) -> write
+android.support.v4.graphics.drawable.IconCompatParcelizer -> android.support.v4.graphics.drawable.IconCompatParcelizer:
+    11:11:void <init>() -> <init>
+    13:13:androidx.core.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel) -> read
+    17:18:void write(androidx.core.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel) -> write
+android.support.v4.os.IResultReceiver$Default -> android.support.v4.os.IResultReceiver$Default:
+    9:9:void <init>() -> <init>
+    16:16:android.os.IBinder asBinder() -> asBinder
+    13:13:void send(int,android.os.Bundle) -> send
+android.support.v4.os.IResultReceiver$Stub -> android.support.v4.os.IResultReceiver$Stub:
+    25:27:void <init>() -> <init>
+    45:45:android.os.IBinder asBinder() -> asBinder
+    34:41:android.support.v4.os.IResultReceiver asInterface(android.os.IBinder) -> asInterface
+    133:133:android.support.v4.os.IResultReceiver getDefaultImpl() -> getDefaultImpl
+    49:74:boolean onTransact(int,android.os.Parcel,android.os.Parcel,int) -> onTransact
+    123:130:boolean setDefaultImpl(android.support.v4.os.IResultReceiver) -> setDefaultImpl
+android.support.v4.os.IResultReceiver$Stub$Proxy -> android.support.v4.os.IResultReceiver$Stub$Proxy:
+    82:84:void <init>(android.os.IBinder) -> <init>
+    87:87:android.os.IBinder asBinder() -> asBinder
+    91:91:java.lang.String getInterfaceDescriptor() -> getInterfaceDescriptor
+    95:115:void send(int,android.os.Bundle) -> send
+android.support.v4.os.ResultReceiver -> android.support.v4.os.ResultReceiver:
+    144:144:void <clinit>() -> <clinit>
+    83:86:void <init>(android.os.Handler) -> <init>
+    138:142:void <init>(android.os.Parcel) -> <init>
+    125:125:int describeContents() -> describeContents
+    121:121:void onReceiveResult(int,android.os.Bundle) -> onReceiveResult
+    96:111:void send(int,android.os.Bundle) -> send
+    130:136:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+android.support.v4.os.ResultReceiver$1 -> android.support.v4.os.ResultReceiver$1:
+    145:145:void <init>() -> <init>
+    145:145:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    148:148:android.support.v4.os.ResultReceiver createFromParcel(android.os.Parcel) -> createFromParcel
+    145:145:java.lang.Object[] newArray(int) -> newArray
+    152:152:android.support.v4.os.ResultReceiver[] newArray(int) -> newArray
+android.support.v4.os.ResultReceiver$MyResultReceiver -> android.support.v4.os.ResultReceiver$MyResultReceiver:
+    67:67:void <init>(android.support.v4.os.ResultReceiver) -> <init>
+    70:75:void send(int,android.os.Bundle) -> send
+android.support.v4.os.ResultReceiver$MyRunnable -> android.support.v4.os.ResultReceiver$MyRunnable:
+    56:59:void <init>(android.support.v4.os.ResultReceiver,int,android.os.Bundle) -> <init>
+    63:64:void run() -> run
+androidx.activity.ComponentActivity -> androidx.activity.ComponentActivity:
+    111:293:void <init>() -> <init>
+    307:309:void <init>(int) -> <init>
+    94:94:void access$001(androidx.activity.ComponentActivity) -> access$001
+    94:94:androidx.activity.result.ActivityResultRegistry access$100(androidx.activity.ComponentActivity) -> access$100
+    424:426:void addContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> addContentView
+    454:455:void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener) -> addOnContextAvailableListener
+    505:516:void ensureViewModelStore() -> ensureViewModelStore
+    702:702:androidx.activity.result.ActivityResultRegistry getActivityResultRegistry() -> getActivityResultRegistry
+    528:538:androidx.lifecycle.ViewModelProvider$Factory getDefaultViewModelProviderFactory() -> getDefaultViewModelProviderFactory
+    395:397:java.lang.Object getLastCustomNonConfigurationInstance() -> getLastCustomNonConfigurationInstance
+    479:479:androidx.lifecycle.Lifecycle getLifecycle() -> getLifecycle
+    563:563:androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher() -> getOnBackPressedDispatcher
+    569:569:androidx.savedstate.SavedStateRegistry getSavedStateRegistry() -> getSavedStateRegistry
+    495:500:androidx.lifecycle.ViewModelStore getViewModelStore() -> getViewModelStore
+    431:434:void initViewTreeOwners() -> initViewTreeOwners
+    647:650:void onActivityResult(int,int,android.content.Intent) -> onActivityResult
+    552:553:void onBackPressed() -> onBackPressed
+    321:328:void onCreate(android.os.Bundle) -> onCreate
+    667:674:void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    383:383:java.lang.Object onRetainCustomNonConfigurationInstance() -> onRetainCustomNonConfigurationInstance
+    351:371:java.lang.Object onRetainNonConfigurationInstance() -> onRetainNonConfigurationInstance
+    333:339:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    439:439:android.content.Context peekAvailableContext() -> peekAvailableContext
+    682:683:androidx.activity.result.ActivityResultLauncher registerForActivityResult(androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultRegistry,androidx.activity.result.ActivityResultCallback) -> registerForActivityResult
+    691:691:androidx.activity.result.ActivityResultLauncher registerForActivityResult(androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultCallback) -> registerForActivityResult
+    460:461:void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener) -> removeOnContextAvailableListener
+    708:726:void reportFullyDrawn() -> reportFullyDrawn
+    402:404:void setContentView(int) -> setContentView
+    408:410:void setContentView(android.view.View) -> setContentView
+    416:418:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    583:584:void startActivityForResult(android.content.Intent,int) -> startActivityForResult
+    597:598:void startActivityForResult(android.content.Intent,int,android.os.Bundle) -> startActivityForResult
+    614:616:void startIntentSenderForResult(android.content.IntentSender,int,android.content.Intent,int,int,int) -> startIntentSenderForResult
+    631:633:void startIntentSenderForResult(android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> startIntentSenderForResult
+androidx.activity.ComponentActivity$1 -> androidx.activity.ComponentActivity$1:
+    122:122:void <init>(androidx.activity.ComponentActivity) -> <init>
+    129:136:void run() -> run
+androidx.activity.ComponentActivity$2 -> androidx.activity.ComponentActivity$2:
+    144:144:void <init>(androidx.activity.ComponentActivity) -> <init>
+    152:212:void onLaunch(int,androidx.activity.result.contract.ActivityResultContract,java.lang.Object,androidx.core.app.ActivityOptionsCompat) -> onLaunch
+androidx.activity.ComponentActivity$2$1 -> androidx.activity.ComponentActivity$2$1:
+    158:158:void <init>(androidx.activity.ComponentActivity$2,int,androidx.activity.result.contract.ActivityResultContract$SynchronousResult) -> <init>
+    161:162:void run() -> run
+androidx.activity.ComponentActivity$2$2 -> androidx.activity.ComponentActivity$2$2:
+    199:199:void <init>(androidx.activity.ComponentActivity$2,int,android.content.IntentSender$SendIntentException) -> <init>
+    202:205:void run() -> run
+androidx.activity.ComponentActivity$3 -> androidx.activity.ComponentActivity$3:
+    230:230:void <init>(androidx.activity.ComponentActivity) -> <init>
+    234:241:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.ComponentActivity$4 -> androidx.activity.ComponentActivity$4:
+    244:244:void <init>(androidx.activity.ComponentActivity) -> <init>
+    248:256:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.ComponentActivity$5 -> androidx.activity.ComponentActivity$5:
+    258:258:void <init>(androidx.activity.ComponentActivity) -> <init>
+    262:264:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.ComponentActivity$6 -> androidx.activity.ComponentActivity$6:
+    271:271:void <init>(androidx.activity.ComponentActivity) -> <init>
+    276:278:android.os.Bundle saveState() -> saveState
+androidx.activity.ComponentActivity$7 -> androidx.activity.ComponentActivity$7:
+    281:281:void <init>(androidx.activity.ComponentActivity) -> <init>
+    285:291:void onContextAvailable(android.content.Context) -> onContextAvailable
+androidx.activity.ComponentActivity$NonConfigurationInstances -> androidx.activity.ComponentActivity$NonConfigurationInstances:
+    104:104:void <init>() -> <init>
+androidx.activity.ImmLeaksCleaner -> androidx.activity.ImmLeaksCleaner:
+    38:38:void <clinit>() -> <clinit>
+    45:47:void <init>(android.app.Activity) -> <init>
+    101:112:void initializeReflectiveFields() -> initializeReflectiveFields
+    51:96:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.OnBackPressedCallback -> androidx.activity.OnBackPressedCallback:
+    46:56:void <init>(boolean) -> <init>
+    103:104:void addCancellable(androidx.activity.Cancellable) -> addCancellable
+    82:82:boolean isEnabled() -> isEnabled
+    91:94:void remove() -> remove
+    107:108:void removeCancellable(androidx.activity.Cancellable) -> removeCancellable
+    71:72:void setEnabled(boolean) -> setEnabled
+androidx.activity.OnBackPressedDispatcher -> androidx.activity.OnBackPressedDispatcher:
+    67:68:void <init>() -> <init>
+    59:79:void <init>(java.lang.Runnable) -> <init>
+    97:98:void addCallback(androidx.activity.OnBackPressedCallback) -> addCallback
+    148:155:void addCallback(androidx.lifecycle.LifecycleOwner,androidx.activity.OnBackPressedCallback) -> addCallback
+    114:117:androidx.activity.Cancellable addCancellableCallback(androidx.activity.OnBackPressedCallback) -> addCancellableCallback
+    165:172:boolean hasEnabledCallbacks() -> hasEnabledCallbacks
+    187:199:void onBackPressed() -> onBackPressed
+androidx.activity.OnBackPressedDispatcher$LifecycleOnBackPressedCancellable -> androidx.activity.OnBackPressedDispatcher$LifecycleOnBackPressedCancellable:
+    223:227:void <init>(androidx.activity.OnBackPressedDispatcher,androidx.lifecycle.Lifecycle,androidx.activity.OnBackPressedCallback) -> <init>
+    246:252:void cancel() -> cancel
+    232:242:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.OnBackPressedDispatcher$OnBackPressedCancellable -> androidx.activity.OnBackPressedDispatcher$OnBackPressedCancellable:
+    203:205:void <init>(androidx.activity.OnBackPressedDispatcher,androidx.activity.OnBackPressedCallback) -> <init>
+    209:211:void cancel() -> cancel
+androidx.activity.contextaware.ContextAwareHelper -> androidx.activity.contextaware.ContextAwareHelper:
+    42:50:void <init>() -> <init>
+    73:77:void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener) -> addOnContextAvailableListener
+    108:109:void clearAvailableContext() -> clearAvailableContext
+    97:101:void dispatchOnContextAvailable(android.content.Context) -> dispatchOnContextAvailable
+    62:62:android.content.Context peekAvailableContext() -> peekAvailableContext
+    87:88:void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener) -> removeOnContextAvailableListener
+androidx.activity.result.ActivityResult -> androidx.activity.result.ActivityResult:
+    109:109:void <clinit>() -> <clinit>
+    45:48:void <init>(int,android.content.Intent) -> <init>
+    50:53:void <init>(android.os.Parcel) -> <init>
+    105:105:int describeContents() -> describeContents
+    67:67:android.content.Intent getData() -> getData
+    59:59:int getResultCode() -> getResultCode
+    87:90:java.lang.String resultCodeToString(int) -> resultCodeToString
+    72:73:java.lang.String toString() -> toString
+    96:101:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.activity.result.ActivityResult$1 -> androidx.activity.result.ActivityResult$1:
+    109:109:void <init>() -> <init>
+    109:109:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    112:112:androidx.activity.result.ActivityResult createFromParcel(android.os.Parcel) -> createFromParcel
+    109:109:java.lang.Object[] newArray(int) -> newArray
+    117:117:androidx.activity.result.ActivityResult[] newArray(int) -> newArray
+androidx.activity.result.ActivityResultLauncher -> androidx.activity.result.ActivityResultLauncher:
+    34:34:void <init>() -> <init>
+    47:48:void launch(java.lang.Object) -> launch
+androidx.activity.result.ActivityResultRegistry -> androidx.activity.result.ActivityResultRegistry:
+    51:79:void <init>() -> <init>
+    429:431:void bindRcKey(int,java.lang.String) -> bindRcKey
+    345:352:boolean dispatchResult(int,int,android.content.Intent) -> dispatchResult
+    366:384:boolean dispatchResult(int,java.lang.Object) -> dispatchResult
+    389:399:void doDispatch(java.lang.String,int,android.content.Intent,androidx.activity.result.ActivityResultRegistry$CallbackAndContract) -> doDispatch
+    419:425:int generateRandomNumber() -> generateRandomNumber
+    298:330:void onRestoreInstanceState(android.os.Bundle) -> onRestoreInstanceState
+    281:290:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    118:162:androidx.activity.result.ActivityResultLauncher register(java.lang.String,androidx.lifecycle.LifecycleOwner,androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultCallback) -> register
+    204:221:androidx.activity.result.ActivityResultLauncher register(java.lang.String,androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultCallback) -> register
+    402:408:int registerKey(java.lang.String) -> registerKey
+    250:273:void unregister(java.lang.String) -> unregister
+androidx.activity.result.ActivityResultRegistry$1 -> androidx.activity.result.ActivityResultRegistry$1:
+    132:132:void <init>(androidx.activity.result.ActivityResultRegistry,java.lang.String,androidx.activity.result.ActivityResultCallback,androidx.activity.result.contract.ActivityResultContract) -> <init>
+    137:157:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.activity.result.ActivityResultRegistry$2 -> androidx.activity.result.ActivityResultRegistry$2:
+    162:162:void <init>(androidx.activity.result.ActivityResultRegistry,java.lang.String,int,androidx.activity.result.contract.ActivityResultContract) -> <init>
+    178:178:androidx.activity.result.contract.ActivityResultContract getContract() -> getContract
+    165:168:void launch(java.lang.Object,androidx.core.app.ActivityOptionsCompat) -> launch
+    172:173:void unregister() -> unregister
+androidx.activity.result.ActivityResultRegistry$3 -> androidx.activity.result.ActivityResultRegistry$3:
+    221:221:void <init>(androidx.activity.result.ActivityResultRegistry,java.lang.String,int,androidx.activity.result.contract.ActivityResultContract) -> <init>
+    237:237:androidx.activity.result.contract.ActivityResultContract getContract() -> getContract
+    224:227:void launch(java.lang.Object,androidx.core.app.ActivityOptionsCompat) -> launch
+    231:232:void unregister() -> unregister
+androidx.activity.result.ActivityResultRegistry$CallbackAndContract -> androidx.activity.result.ActivityResultRegistry$CallbackAndContract:
+    439:442:void <init>(androidx.activity.result.ActivityResultCallback,androidx.activity.result.contract.ActivityResultContract) -> <init>
+androidx.activity.result.ActivityResultRegistry$LifecycleContainer -> androidx.activity.result.ActivityResultRegistry$LifecycleContainer:
+    449:452:void <init>(androidx.lifecycle.Lifecycle) -> <init>
+    455:457:void addObserver(androidx.lifecycle.LifecycleEventObserver) -> addObserver
+    460:464:void clearObservers() -> clearObservers
+androidx.activity.result.IntentSenderRequest -> androidx.activity.result.IntentSenderRequest:
+    132:132:void <clinit>() -> <clinit>
+    77:82:void <init>(android.content.IntentSender,android.content.Intent,int,int) -> <init>
+    124:129:void <init>(android.os.Parcel) -> <init>
+    146:146:int describeContents() -> describeContents
+    102:102:android.content.Intent getFillInIntent() -> getFillInIntent
+    111:111:int getFlagsMask() -> getFlagsMask
+    120:120:int getFlagsValues() -> getFlagsValues
+    91:91:android.content.IntentSender getIntentSender() -> getIntentSender
+    151:155:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.activity.result.IntentSenderRequest$1 -> androidx.activity.result.IntentSenderRequest$1:
+    132:132:void <init>() -> <init>
+    132:132:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    135:135:androidx.activity.result.IntentSenderRequest createFromParcel(android.os.Parcel) -> createFromParcel
+    132:132:java.lang.Object[] newArray(int) -> newArray
+    140:140:androidx.activity.result.IntentSenderRequest[] newArray(int) -> newArray
+androidx.activity.result.IntentSenderRequest$Builder -> androidx.activity.result.IntentSenderRequest$Builder:
+    187:189:void <init>(android.content.IntentSender) -> <init>
+    199:200:void <init>(android.app.PendingIntent) -> <init>
+    239:239:androidx.activity.result.IntentSenderRequest build() -> build
+    211:212:androidx.activity.result.IntentSenderRequest$Builder setFillInIntent(android.content.Intent) -> setFillInIntent
+    227:229:androidx.activity.result.IntentSenderRequest$Builder setFlags(int,int) -> setFlags
+androidx.activity.result.contract.ActivityResultContract -> androidx.activity.result.contract.ActivityResultContract:
+    39:39:void <init>() -> <init>
+    59:59:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+androidx.activity.result.contract.ActivityResultContract$SynchronousResult -> androidx.activity.result.contract.ActivityResultContract$SynchronousResult:
+    75:77:void <init>(java.lang.Object) -> <init>
+    83:83:java.lang.Object getValue() -> getValue
+androidx.activity.result.contract.ActivityResultContracts -> androidx.activity.result.contract.ActivityResultContracts:
+    58:58:void <init>() -> <init>
+androidx.activity.result.contract.ActivityResultContracts$CreateDocument -> androidx.activity.result.contract.ActivityResultContracts$CreateDocument:
+    641:641:void <init>() -> <init>
+    640:640:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    647:649:android.content.Intent createIntent(android.content.Context,java.lang.String) -> createIntent
+    640:640:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    656:656:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String) -> getSynchronousResult
+    640:640:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    662:663:android.net.Uri parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$GetContent -> androidx.activity.result.contract.ActivityResultContracts$GetContent:
+    420:420:void <init>() -> <init>
+    420:420:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    426:428:android.content.Intent createIntent(android.content.Context,java.lang.String) -> createIntent
+    420:420:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    435:435:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String) -> getSynchronousResult
+    420:420:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    441:442:android.net.Uri parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$GetMultipleContents -> androidx.activity.result.contract.ActivityResultContracts$GetMultipleContents:
+    459:459:void <init>() -> <init>
+    458:458:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    465:468:android.content.Intent createIntent(android.content.Context,java.lang.String) -> createIntent
+    491:506:java.util.List getClipDataUris(android.content.Intent) -> getClipDataUris
+    458:458:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    475:475:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String) -> getSynchronousResult
+    458:458:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    481:484:java.util.List parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$OpenDocument -> androidx.activity.result.contract.ActivityResultContracts$OpenDocument:
+    522:522:void <init>() -> <init>
+    521:521:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    528:530:android.content.Intent createIntent(android.content.Context,java.lang.String[]) -> createIntent
+    521:521:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    537:537:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String[]) -> getSynchronousResult
+    521:521:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    543:544:android.net.Uri parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$OpenDocumentTree -> androidx.activity.result.contract.ActivityResultContracts$OpenDocumentTree:
+    602:602:void <init>() -> <init>
+    601:601:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    608:613:android.content.Intent createIntent(android.content.Context,android.net.Uri) -> createIntent
+    601:601:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    620:620:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,android.net.Uri) -> getSynchronousResult
+    601:601:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    626:627:android.net.Uri parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$OpenMultipleDocuments -> androidx.activity.result.contract.ActivityResultContracts$OpenMultipleDocuments:
+    560:560:void <init>() -> <init>
+    559:559:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    566:569:android.content.Intent createIntent(android.content.Context,java.lang.String[]) -> createIntent
+    559:559:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    576:576:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String[]) -> getSynchronousResult
+    559:559:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    582:583:java.util.List parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$PickContact -> androidx.activity.result.contract.ActivityResultContracts$PickContact:
+    392:392:void <init>() -> <init>
+    392:392:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    397:397:android.content.Intent createIntent(android.content.Context,java.lang.Void) -> createIntent
+    392:392:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    403:404:android.net.Uri parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$RequestMultiplePermissions -> androidx.activity.result.contract.ActivityResultContracts$RequestMultiplePermissions:
+    158:158:void <init>() -> <init>
+    158:158:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    198:198:android.content.Intent createIntent(android.content.Context,java.lang.String[]) -> createIntent
+    244:244:android.content.Intent createIntent(java.lang.String[]) -> createIntent
+    158:158:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    205:221:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String[]) -> getSynchronousResult
+    158:158:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    228:239:java.util.Map parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$RequestPermission -> androidx.activity.result.contract.ActivityResultContracts$RequestPermission:
+    251:251:void <init>() -> <init>
+    251:251:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    256:256:android.content.Intent createIntent(android.content.Context,java.lang.String) -> createIntent
+    251:251:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    271:278:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.String) -> getSynchronousResult
+    251:251:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    262:265:java.lang.Boolean parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$StartActivityForResult -> androidx.activity.result.contract.ActivityResultContracts$StartActivityForResult:
+    68:68:void <init>() -> <init>
+    68:68:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    86:86:android.content.Intent createIntent(android.content.Context,android.content.Intent) -> createIntent
+    68:68:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    93:93:androidx.activity.result.ActivityResult parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$StartIntentSenderForResult -> androidx.activity.result.contract.ActivityResultContracts$StartIntentSenderForResult:
+    113:113:void <init>() -> <init>
+    113:113:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    143:144:android.content.Intent createIntent(android.content.Context,androidx.activity.result.IntentSenderRequest) -> createIntent
+    113:113:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    151:151:androidx.activity.result.ActivityResult parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$TakePicture -> androidx.activity.result.contract.ActivityResultContracts$TakePicture:
+    325:325:void <init>() -> <init>
+    325:325:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    331:332:android.content.Intent createIntent(android.content.Context,android.net.Uri) -> createIntent
+    325:325:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    339:339:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,android.net.Uri) -> getSynchronousResult
+    325:325:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    345:345:java.lang.Boolean parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$TakePicturePreview -> androidx.activity.result.contract.ActivityResultContracts$TakePicturePreview:
+    291:291:void <init>() -> <init>
+    291:291:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    297:297:android.content.Intent createIntent(android.content.Context,java.lang.Void) -> createIntent
+    291:291:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    304:304:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Void) -> getSynchronousResult
+    291:291:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    310:311:android.graphics.Bitmap parseResult(int,android.content.Intent) -> parseResult
+androidx.activity.result.contract.ActivityResultContracts$TakeVideo -> androidx.activity.result.contract.ActivityResultContracts$TakeVideo:
+    359:359:void <init>() -> <init>
+    359:359:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    365:366:android.content.Intent createIntent(android.content.Context,android.net.Uri) -> createIntent
+    359:359:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,java.lang.Object) -> getSynchronousResult
+    373:373:androidx.activity.result.contract.ActivityResultContract$SynchronousResult getSynchronousResult(android.content.Context,android.net.Uri) -> getSynchronousResult
+    359:359:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    379:380:android.graphics.Bitmap parseResult(int,android.content.Intent) -> parseResult
+androidx.annotation.InspectableProperty$ValueType -> androidx.annotation.InspectableProperty$ValueType:
+    148:197:void <clinit>() -> <clinit>
+    148:148:void <init>(java.lang.String,int) -> <init>
+    148:148:androidx.annotation.InspectableProperty$ValueType valueOf(java.lang.String) -> valueOf
+    148:148:androidx.annotation.InspectableProperty$ValueType[] values() -> values
+androidx.annotation.RestrictTo$Scope -> androidx.annotation.RestrictTo$Scope:
+    58:105:void <clinit>() -> <clinit>
+    58:58:void <init>(java.lang.String,int) -> <init>
+    58:58:androidx.annotation.RestrictTo$Scope valueOf(java.lang.String) -> valueOf
+    58:58:androidx.annotation.RestrictTo$Scope[] values() -> values
+androidx.annotation.experimental.Experimental$Level -> androidx.annotation.experimental.Experimental$Level:
+    74:83:void <clinit>() -> <clinit>
+    74:74:void <init>(java.lang.String,int) -> <init>
+    74:74:androidx.annotation.experimental.Experimental$Level valueOf(java.lang.String) -> valueOf
+    74:74:androidx.annotation.experimental.Experimental$Level[] values() -> values
+androidx.appcompat.app.ActionBar -> androidx.appcompat.app.ActionBar:
+    92:92:void <init>() -> <init>
+    1074:1074:boolean closeOptionsMenu() -> closeOptionsMenu
+    1098:1098:boolean collapseActionView() -> collapseActionView
+    1057:1057:void dispatchMenuVisibilityChanged(boolean) -> dispatchMenuVisibilityChanged
+    1036:1036:float getElevation() -> getElevation
+    993:993:int getHideOffset() -> getHideOffset
+    859:859:android.content.Context getThemedContext() -> getThemedContext
+    1080:1080:boolean invalidateOptionsMenu() -> invalidateOptionsMenu
+    980:980:boolean isHideOnContentScrollEnabled() -> isHideOnContentScrollEnabled
+    870:870:boolean isTitleTruncated() -> isTitleTruncated
+    1052:1052:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    1121:1121:void onDestroy() -> onDestroy
+    1092:1092:boolean onKeyShortcut(int,android.view.KeyEvent) -> onKeyShortcut
+    1086:1086:boolean onMenuKeyEvent(android.view.KeyEvent) -> onMenuKeyEvent
+    1068:1068:boolean openOptionsMenu() -> openOptionsMenu
+    1114:1114:boolean requestFocus() -> requestFocus
+    1042:1042:void setDefaultDisplayHomeAsUpEnabled(boolean) -> setDefaultDisplayHomeAsUpEnabled
+    1021:1025:void setElevation(float) -> setElevation
+    1006:1010:void setHideOffset(int) -> setHideOffset
+    966:970:void setHideOnContentScrollEnabled(boolean) -> setHideOnContentScrollEnabled
+    930:930:void setHomeActionContentDescription(java.lang.CharSequence) -> setHomeActionContentDescription
+    950:950:void setHomeActionContentDescription(int) -> setHomeActionContentDescription
+    890:890:void setHomeAsUpIndicator(android.graphics.drawable.Drawable) -> setHomeAsUpIndicator
+    911:911:void setHomeAsUpIndicator(int) -> setHomeAsUpIndicator
+    847:847:void setHomeButtonEnabled(boolean) -> setHomeButtonEnabled
+    1047:1047:void setShowHideAnimationEnabled(boolean) -> setShowHideAnimationEnabled
+    540:540:void setSplitBackgroundDrawable(android.graphics.drawable.Drawable) -> setSplitBackgroundDrawable
+    530:530:void setStackedBackgroundDrawable(android.graphics.drawable.Drawable) -> setStackedBackgroundDrawable
+    1104:1104:void setWindowTitle(java.lang.CharSequence) -> setWindowTitle
+    1062:1062:androidx.appcompat.view.ActionMode startActionMode(androidx.appcompat.view.ActionMode$Callback) -> startActionMode
+androidx.appcompat.app.ActionBar$LayoutParams -> androidx.appcompat.app.ActionBar$LayoutParams:
+    1374:1382:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1374:1387:void <init>(int,int) -> <init>
+    1374:1392:void <init>(int,int,int) -> <init>
+    1395:1396:void <init>(int) -> <init>
+    1374:1402:void <init>(androidx.appcompat.app.ActionBar$LayoutParams) -> <init>
+    1374:1406:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+androidx.appcompat.app.ActionBar$Tab -> androidx.appcompat.app.ActionBar$Tab:
+    1171:1171:void <init>() -> <init>
+androidx.appcompat.app.ActionBarDrawerToggle -> androidx.appcompat.app.ActionBarDrawerToggle:
+    153:155:void <init>(android.app.Activity,androidx.drawerlayout.widget.DrawerLayout,int,int) -> <init>
+    184:186:void <init>(android.app.Activity,androidx.drawerlayout.widget.DrawerLayout,androidx.appcompat.widget.Toolbar,int,int) -> <init>
+    120:224:void <init>(android.app.Activity,androidx.appcompat.widget.Toolbar,androidx.drawerlayout.widget.DrawerLayout,androidx.appcompat.graphics.drawable.DrawerArrowDrawable,int,int) -> <init>
+    371:371:androidx.appcompat.graphics.drawable.DrawerArrowDrawable getDrawerArrowDrawable() -> getDrawerArrowDrawable
+    503:503:android.graphics.drawable.Drawable getThemeUpIndicator() -> getThemeUpIndicator
+    471:471:android.view.View$OnClickListener getToolbarNavigationClickListener() -> getToolbarNavigationClickListener
+    340:340:boolean isDrawerIndicatorEnabled() -> isDrawerIndicatorEnabled
+    400:400:boolean isDrawerSlideAnimationEnabled() -> isDrawerSlideAnimationEnabled
+    258:262:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    444:448:void onDrawerClosed(android.view.View) -> onDrawerClosed
+    429:433:void onDrawerOpened(android.view.View) -> onDrawerOpened
+    413:418:void onDrawerSlide(android.view.View,float) -> onDrawerSlide
+    459:459:void onDrawerStateChanged(int) -> onDrawerStateChanged
+    274:278:boolean onOptionsItemSelected(android.view.MenuItem) -> onOptionsItemSelected
+    499:500:void setActionBarDescription(int) -> setActionBarDescription
+    489:496:void setActionBarUpIndicator(android.graphics.drawable.Drawable,int) -> setActionBarUpIndicator
+    380:382:void setDrawerArrowDrawable(androidx.appcompat.graphics.drawable.DrawerArrowDrawable) -> setDrawerArrowDrawable
+    354:364:void setDrawerIndicatorEnabled(boolean) -> setDrawerIndicatorEnabled
+    390:394:void setDrawerSlideAnimationEnabled(boolean) -> setDrawerSlideAnimationEnabled
+    303:314:void setHomeAsUpIndicator(android.graphics.drawable.Drawable) -> setHomeAsUpIndicator
+    328:333:void setHomeAsUpIndicator(int) -> setHomeAsUpIndicator
+    507:513:void setPosition(float) -> setPosition
+    485:486:void setToolbarNavigationClickListener(android.view.View$OnClickListener) -> setToolbarNavigationClickListener
+    236:246:void syncState() -> syncState
+    282:289:void toggle() -> toggle
+androidx.appcompat.app.ActionBarDrawerToggle$1 -> androidx.appcompat.app.ActionBarDrawerToggle$1:
+    198:198:void <init>(androidx.appcompat.app.ActionBarDrawerToggle) -> <init>
+    201:206:void onClick(android.view.View) -> onClick
+androidx.appcompat.app.ActionBarDrawerToggle$FrameworkActionBarDelegate -> androidx.appcompat.app.ActionBarDrawerToggle$FrameworkActionBarDelegate:
+    519:521:void <init>(android.app.Activity) -> <init>
+    538:542:android.content.Context getActionBarThemedContext() -> getActionBarThemedContext
+    525:531:android.graphics.drawable.Drawable getThemeUpIndicator() -> getThemeUpIndicator
+    547:549:boolean isNavigationVisible() -> isNavigationVisible
+    570:579:void setActionBarDescription(int) -> setActionBarDescription
+    554:566:void setActionBarUpIndicator(android.graphics.drawable.Drawable,int) -> setActionBarUpIndicator
+androidx.appcompat.app.ActionBarDrawerToggle$ToolbarCompatDelegate -> androidx.appcompat.app.ActionBarDrawerToggle$ToolbarCompatDelegate:
+    591:595:void <init>(androidx.appcompat.widget.Toolbar) -> <init>
+    619:619:android.content.Context getActionBarThemedContext() -> getActionBarThemedContext
+    614:614:android.graphics.drawable.Drawable getThemeUpIndicator() -> getThemeUpIndicator
+    624:624:boolean isNavigationVisible() -> isNavigationVisible
+    605:610:void setActionBarDescription(int) -> setActionBarDescription
+    599:601:void setActionBarUpIndicator(android.graphics.drawable.Drawable,int) -> setActionBarUpIndicator
+androidx.appcompat.app.ActionBarDrawerToggleHoneycomb -> androidx.appcompat.app.ActionBarDrawerToggleHoneycomb:
+    45:45:void <clinit>() -> <clinit>
+    138:139:void <init>() -> <init>
+    90:93:android.graphics.drawable.Drawable getThemeUpIndicator(android.app.Activity) -> getThemeUpIndicator
+    70:86:androidx.appcompat.app.ActionBarDrawerToggleHoneycomb$SetIndicatorInfo setActionBarDescription(androidx.appcompat.app.ActionBarDrawerToggleHoneycomb$SetIndicatorInfo,android.app.Activity,int) -> setActionBarDescription
+    51:65:androidx.appcompat.app.ActionBarDrawerToggleHoneycomb$SetIndicatorInfo setActionBarUpIndicator(android.app.Activity,android.graphics.drawable.Drawable,int) -> setActionBarUpIndicator
+androidx.appcompat.app.ActionBarDrawerToggleHoneycomb$SetIndicatorInfo -> androidx.appcompat.app.ActionBarDrawerToggleHoneycomb$SetIndicatorInfo:
+    101:135:void <init>(android.app.Activity) -> <init>
+androidx.appcompat.app.AlertController -> androidx.appcompat.app.AlertController:
+    82:206:void <init>(android.content.Context,androidx.appcompat.app.AppCompatDialog,android.view.Window) -> <init>
+    209:227:boolean canTextInput(android.view.View) -> canTextInput
+    829:833:void centerButton(android.widget.Button) -> centerButton
+    408:416:android.widget.Button getButton(int) -> getButton
+    398:400:int getIconAttributeResId(int) -> getIconAttributeResId
+    404:404:android.widget.ListView getListView() -> getListView
+    231:234:void installContent() -> installContent
+    748:756:void manageScrollIndicators(android.view.View,android.view.View,android.view.View) -> manageScrollIndicators
+    422:422:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    427:427:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    441:463:android.view.ViewGroup resolvePanel(android.view.View,android.view.View) -> resolvePanel
+    237:243:int selectContentView() -> selectContentView
+    323:350:void setButton(int,java.lang.CharSequence,android.content.DialogInterface$OnClickListener,android.os.Message,android.graphics.drawable.Drawable) -> setButton
+    303:304:void setButtonPanelLayoutHint(int) -> setButtonPanelLayoutHint
+    257:258:void setCustomTitle(android.view.View) -> setCustomTitle
+    359:370:void setIcon(int) -> setIcon
+    378:389:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    261:265:void setMessage(java.lang.CharSequence) -> setMessage
+    560:636:void setScrollIndicators(android.view.ViewGroup,android.view.View,int,int) -> setScrollIndicators
+    247:251:void setTitle(java.lang.CharSequence) -> setTitle
+    271:274:void setView(int) -> setView
+    280:283:void setView(android.view.View) -> setView
+    290:297:void setView(android.view.View,int,int,int,int) -> setView
+    759:826:void setupButtons(android.view.ViewGroup) -> setupButtons
+    719:745:void setupContent(android.view.ViewGroup) -> setupContent
+    640:670:void setupCustomContent(android.view.ViewGroup) -> setupCustomContent
+    673:716:void setupTitle(android.view.ViewGroup) -> setupTitle
+    467:555:void setupView() -> setupView
+    177:179:boolean shouldCenterSingleButton(android.content.Context) -> shouldCenterSingleButton
+androidx.appcompat.app.AlertController$1 -> androidx.appcompat.app.AlertController$1:
+    126:126:void <init>(androidx.appcompat.app.AlertController) -> <init>
+    130:147:void onClick(android.view.View) -> onClick
+androidx.appcompat.app.AlertController$2 -> androidx.appcompat.app.AlertController$2:
+    591:591:void <init>(androidx.appcompat.app.AlertController,android.view.View,android.view.View) -> <init>
+    596:597:void onScrollChange(androidx.core.widget.NestedScrollView,int,int,int,int) -> onScrollChange
+androidx.appcompat.app.AlertController$3 -> androidx.appcompat.app.AlertController$3:
+    600:600:void <init>(androidx.appcompat.app.AlertController,android.view.View,android.view.View) -> <init>
+    603:604:void run() -> run
+androidx.appcompat.app.AlertController$4 -> androidx.appcompat.app.AlertController$4:
+    608:608:void <init>(androidx.appcompat.app.AlertController,android.view.View,android.view.View) -> <init>
+    615:616:void onScroll(android.widget.AbsListView,int,int,int) -> onScroll
+    610:610:void onScrollStateChanged(android.widget.AbsListView,int) -> onScrollStateChanged
+androidx.appcompat.app.AlertController$5 -> androidx.appcompat.app.AlertController$5:
+    619:619:void <init>(androidx.appcompat.app.AlertController,android.view.View,android.view.View) -> <init>
+    622:623:void run() -> run
+androidx.appcompat.app.AlertController$AlertParams -> androidx.appcompat.app.AlertController$AlertParams:
+    869:928:void <init>(android.content.Context) -> <init>
+    931:985:void apply(androidx.appcompat.app.AlertController) -> apply
+    988:1098:void createListView(androidx.appcompat.app.AlertController) -> createListView
+androidx.appcompat.app.AlertController$AlertParams$1 -> androidx.appcompat.app.AlertController$AlertParams$1:
+    995:995:void <init>(androidx.appcompat.app.AlertController$AlertParams,android.content.Context,int,int,java.lang.CharSequence[],androidx.appcompat.app.AlertController$RecycleListView) -> <init>
+    998:1005:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+androidx.appcompat.app.AlertController$AlertParams$2 -> androidx.appcompat.app.AlertController$AlertParams$2:
+    1009:1017:void <init>(androidx.appcompat.app.AlertController$AlertParams,android.content.Context,android.database.Cursor,boolean,androidx.appcompat.app.AlertController$RecycleListView,androidx.appcompat.app.AlertController) -> <init>
+    1021:1026:void bindView(android.view.View,android.content.Context,android.database.Cursor) -> bindView
+    1030:1030:android.view.View newView(android.content.Context,android.database.Cursor,android.view.ViewGroup) -> newView
+androidx.appcompat.app.AlertController$AlertParams$3 -> androidx.appcompat.app.AlertController$AlertParams$3:
+    1065:1065:void <init>(androidx.appcompat.app.AlertController$AlertParams,androidx.appcompat.app.AlertController) -> <init>
+    1068:1072:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.appcompat.app.AlertController$AlertParams$4 -> androidx.appcompat.app.AlertController$AlertParams$4:
+    1075:1075:void <init>(androidx.appcompat.app.AlertController$AlertParams,androidx.appcompat.app.AlertController$RecycleListView,androidx.appcompat.app.AlertController) -> <init>
+    1078:1083:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.appcompat.app.AlertController$ButtonHandler -> androidx.appcompat.app.AlertController$ButtonHandler:
+    156:158:void <init>(android.content.DialogInterface) -> <init>
+    162:173:void handleMessage(android.os.Message) -> handleMessage
+androidx.appcompat.app.AlertController$CheckedItemAdapter -> androidx.appcompat.app.AlertController$CheckedItemAdapter:
+    1104:1105:void <init>(android.content.Context,int,int,java.lang.CharSequence[]) -> <init>
+    1114:1114:long getItemId(int) -> getItemId
+    1109:1109:boolean hasStableIds() -> hasStableIds
+androidx.appcompat.app.AlertController$RecycleListView -> androidx.appcompat.app.AlertController$RecycleListView:
+    840:841:void <init>(android.content.Context) -> <init>
+    844:852:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    855:862:void setHasDecor(boolean,boolean) -> setHasDecor
+androidx.appcompat.app.AlertDialog -> androidx.appcompat.app.AlertDialog:
+    88:89:void <init>(android.content.Context) -> <init>
+    98:100:void <init>(android.content.Context,int) -> <init>
+    104:107:void <init>(android.content.Context,boolean,android.content.DialogInterface$OnCancelListener) -> <init>
+    131:131:android.widget.Button getButton(int) -> getButton
+    140:140:android.widget.ListView getListView() -> getListView
+    278:280:void onCreate(android.os.Bundle) -> onCreate
+    284:287:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    292:295:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    111:116:int resolveDialogTheme(android.content.Context,int) -> resolveDialogTheme
+    211:212:void setButton(int,java.lang.CharSequence,android.os.Message) -> setButton
+    226:227:void setButton(int,java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setButton
+    244:245:void setButton(int,java.lang.CharSequence,android.graphics.drawable.Drawable,android.content.DialogInterface$OnClickListener) -> setButton
+    196:197:void setButtonPanelLayoutHint(int) -> setButtonPanelLayoutHint
+    155:156:void setCustomTitle(android.view.View) -> setCustomTitle
+    253:254:void setIcon(int) -> setIcon
+    262:263:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    271:274:void setIconAttribute(int) -> setIconAttribute
+    164:165:void setMessage(java.lang.CharSequence) -> setMessage
+    145:147:void setTitle(java.lang.CharSequence) -> setTitle
+    172:173:void setView(android.view.View) -> setView
+    187:188:void setView(android.view.View,int,int,int,int) -> setView
+androidx.appcompat.app.AlertDialog$Builder -> androidx.appcompat.app.AlertDialog$Builder:
+    313:314:void <init>(android.content.Context) -> <init>
+    342:346:void <init>(android.content.Context,int) -> <init>
+    983:994:androidx.appcompat.app.AlertDialog create() -> create
+    358:358:android.content.Context getContext() -> getContext
+    659:661:androidx.appcompat.app.AlertDialog$Builder setAdapter(android.widget.ListAdapter,android.content.DialogInterface$OnClickListener) -> setAdapter
+    579:580:androidx.appcompat.app.AlertDialog$Builder setCancelable(boolean) -> setCancelable
+    678:681:androidx.appcompat.app.AlertDialog$Builder setCursor(android.database.Cursor,android.content.DialogInterface$OnClickListener,java.lang.String) -> setCursor
+    398:399:androidx.appcompat.app.AlertDialog$Builder setCustomTitle(android.view.View) -> setCustomTitle
+    430:431:androidx.appcompat.app.AlertDialog$Builder setIcon(int) -> setIcon
+    445:446:androidx.appcompat.app.AlertDialog$Builder setIcon(android.graphics.drawable.Drawable) -> setIcon
+    459:462:androidx.appcompat.app.AlertDialog$Builder setIconAttribute(int) -> setIconAttribute
+    957:958:androidx.appcompat.app.AlertDialog$Builder setInverseBackgroundForced(boolean) -> setInverseBackgroundForced
+    631:633:androidx.appcompat.app.AlertDialog$Builder setItems(int,android.content.DialogInterface$OnClickListener) -> setItems
+    643:645:androidx.appcompat.app.AlertDialog$Builder setItems(java.lang.CharSequence[],android.content.DialogInterface$OnClickListener) -> setItems
+    408:409:androidx.appcompat.app.AlertDialog$Builder setMessage(int) -> setMessage
+    418:419:androidx.appcompat.app.AlertDialog$Builder setMessage(java.lang.CharSequence) -> setMessage
+    704:708:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(int,boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    730:734:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(java.lang.CharSequence[],boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    758:763:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(android.database.Cursor,java.lang.String,java.lang.String,android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    509:511:androidx.appcompat.app.AlertDialog$Builder setNegativeButton(int,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    522:524:androidx.appcompat.app.AlertDialog$Builder setNegativeButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    533:534:androidx.appcompat.app.AlertDialog$Builder setNegativeButtonIcon(android.graphics.drawable.Drawable) -> setNegativeButtonIcon
+    545:547:androidx.appcompat.app.AlertDialog$Builder setNeutralButton(int,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    558:560:androidx.appcompat.app.AlertDialog$Builder setNeutralButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    569:570:androidx.appcompat.app.AlertDialog$Builder setNeutralButtonIcon(android.graphics.drawable.Drawable) -> setNeutralButtonIcon
+    600:601:androidx.appcompat.app.AlertDialog$Builder setOnCancelListener(android.content.DialogInterface$OnCancelListener) -> setOnCancelListener
+    610:611:androidx.appcompat.app.AlertDialog$Builder setOnDismissListener(android.content.DialogInterface$OnDismissListener) -> setOnDismissListener
+    868:869:androidx.appcompat.app.AlertDialog$Builder setOnItemSelectedListener(android.widget.AdapterView$OnItemSelectedListener) -> setOnItemSelectedListener
+    620:621:androidx.appcompat.app.AlertDialog$Builder setOnKeyListener(android.content.DialogInterface$OnKeyListener) -> setOnKeyListener
+    473:475:androidx.appcompat.app.AlertDialog$Builder setPositiveButton(int,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    486:488:androidx.appcompat.app.AlertDialog$Builder setPositiveButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    497:498:androidx.appcompat.app.AlertDialog$Builder setPositiveButtonIcon(android.graphics.drawable.Drawable) -> setPositiveButtonIcon
+    966:967:androidx.appcompat.app.AlertDialog$Builder setRecycleOnMeasureEnabled(boolean) -> setRecycleOnMeasureEnabled
+    783:787:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(int,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    808:813:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(android.database.Cursor,int,java.lang.String,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    831:835:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(java.lang.CharSequence[],int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    853:857:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(android.widget.ListAdapter,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    367:368:androidx.appcompat.app.AlertDialog$Builder setTitle(int) -> setTitle
+    377:378:androidx.appcompat.app.AlertDialog$Builder setTitle(java.lang.CharSequence) -> setTitle
+    881:884:androidx.appcompat.app.AlertDialog$Builder setView(int) -> setView
+    902:905:androidx.appcompat.app.AlertDialog$Builder setView(android.view.View) -> setView
+    935:942:androidx.appcompat.app.AlertDialog$Builder setView(android.view.View,int,int,int,int) -> setView
+    1008:1010:androidx.appcompat.app.AlertDialog show() -> show
+androidx.appcompat.app.AppCompatActivity -> androidx.appcompat.app.AppCompatActivity:
+    94:96:void <init>() -> <init>
+    110:112:void <init>(int) -> <init>
+    212:214:void addContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> addContentView
+    139:140:void attachBaseContext(android.content.Context) -> attachBaseContext
+    650:655:void closeOptionsMenu() -> closeOptionsMenu
+    593:599:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    259:259:android.view.View findViewById(int) -> findViewById
+    583:586:androidx.appcompat.app.AppCompatDelegate getDelegate() -> getDelegate
+    553:553:androidx.appcompat.app.ActionBarDrawerToggle$Delegate getDrawerToggleDelegate() -> getDrawerToggleDelegate
+    189:189:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    604:607:android.content.res.Resources getResources() -> getResources
+    163:163:androidx.appcompat.app.ActionBar getSupportActionBar() -> getSupportActionBar
+    500:500:android.content.Intent getSupportParentActivityIntent() -> getSupportParentActivityIntent
+    116:135:void initDelegate() -> initDelegate
+    219:222:void initViewTreeOwners() -> initViewTreeOwners
+    314:315:void invalidateOptionsMenu() -> invalidateOptionsMenu
+    226:236:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    540:541:void onContentChanged() -> onContentChanged
+    417:418:void onCreateSupportNavigateUpTaskStack(androidx.core.app.TaskStackBuilder) -> onCreateSupportNavigateUpTaskStack
+    278:280:void onDestroy() -> onDestroy
+    633:636:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    264:273:boolean onMenuItemSelected(int,android.view.MenuItem) -> onMenuItemSelected
+    564:564:boolean onMenuOpened(int,android.view.Menu) -> onMenuOpened
+    664:664:void onNightModeChanged(int) -> onNightModeChanged
+    575:576:void onPanelClosed(int,android.view.Menu) -> onPanelClosed
+    150:152:void onPostCreate(android.os.Bundle) -> onPostCreate
+    240:242:void onPostResume() -> onPostResume
+    436:436:void onPrepareSupportNavigateUpTaskStack(androidx.core.app.TaskStackBuilder) -> onPrepareSupportNavigateUpTaskStack
+    246:248:void onStart() -> onStart
+    252:254:void onStop() -> onStop
+    337:337:void onSupportActionModeFinished(androidx.appcompat.view.ActionMode) -> onSupportActionModeFinished
+    326:326:void onSupportActionModeStarted(androidx.appcompat.view.ActionMode) -> onSupportActionModeStarted
+    548:548:void onSupportContentChanged() -> onSupportContentChanged
+    462:485:boolean onSupportNavigateUp() -> onSupportNavigateUp
+    284:286:void onTitleChanged(java.lang.CharSequence,int) -> onTitleChanged
+    351:351:androidx.appcompat.view.ActionMode onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode$Callback) -> onWindowStartingSupportActionMode
+    641:646:void openOptionsMenu() -> openOptionsMenu
+    616:628:boolean performMenuItemShortcut(android.view.KeyEvent) -> performMenuItemShortcut
+    194:196:void setContentView(int) -> setContentView
+    200:202:void setContentView(android.view.View) -> setContentView
+    206:208:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    183:184:void setSupportActionBar(androidx.appcompat.widget.Toolbar) -> setSupportActionBar
+    391:391:void setSupportProgress(int) -> setSupportProgress
+    384:384:void setSupportProgressBarIndeterminate(boolean) -> setSupportProgressBarIndeterminate
+    377:377:void setSupportProgressBarIndeterminateVisibility(boolean) -> setSupportProgressBarIndeterminateVisibility
+    370:370:void setSupportProgressBarVisibility(boolean) -> setSupportProgressBarVisibility
+    144:146:void setTheme(int) -> setTheme
+    362:362:androidx.appcompat.view.ActionMode startSupportActionMode(androidx.appcompat.view.ActionMode$Callback) -> startSupportActionMode
+    309:310:void supportInvalidateOptionsMenu() -> supportInvalidateOptionsMenu
+    533:534:void supportNavigateUpTo(android.content.Intent) -> supportNavigateUpTo
+    303:303:boolean supportRequestWindowFeature(int) -> supportRequestWindowFeature
+    517:517:boolean supportShouldUpRecreateTask(android.content.Intent) -> supportShouldUpRecreateTask
+androidx.appcompat.app.AppCompatActivity$1 -> androidx.appcompat.app.AppCompatActivity$1:
+    117:117:void <init>(androidx.appcompat.app.AppCompatActivity) -> <init>
+    121:123:android.os.Bundle saveState() -> saveState
+androidx.appcompat.app.AppCompatActivity$2 -> androidx.appcompat.app.AppCompatActivity$2:
+    126:126:void <init>(androidx.appcompat.app.AppCompatActivity) -> <init>
+    129:133:void onContextAvailable(android.content.Context) -> onContextAvailable
+androidx.appcompat.app.AppCompatDelegate -> androidx.appcompat.app.AppCompatDelegate:
+    166:175:void <clinit>() -> <clinit>
+    271:271:void <init>() -> <init>
+    655:662:void addActiveDelegate(androidx.appcompat.app.AppCompatDelegate) -> addActiveDelegate
+    686:697:void applyDayNightToActiveDelegates() -> applyDayNightToActiveDelegates
+    387:387:void attachBaseContext(android.content.Context) -> attachBaseContext
+    395:396:android.content.Context attachBaseContext2(android.content.Context) -> attachBaseContext2
+    230:230:androidx.appcompat.app.AppCompatDelegate create(android.app.Activity,androidx.appcompat.app.AppCompatCallback) -> create
+    241:241:androidx.appcompat.app.AppCompatDelegate create(android.app.Dialog,androidx.appcompat.app.AppCompatCallback) -> create
+    253:253:androidx.appcompat.app.AppCompatDelegate create(android.content.Context,android.view.Window,androidx.appcompat.app.AppCompatCallback) -> create
+    265:265:androidx.appcompat.app.AppCompatDelegate create(android.content.Context,android.app.Activity,androidx.appcompat.app.AppCompatCallback) -> create
+    604:604:int getDefaultNightMode() -> getDefaultNightMode
+    551:551:int getLocalNightMode() -> getLocalNightMode
+    651:651:boolean isCompatVectorFromResourcesEnabled() -> isCompatVectorFromResourcesEnabled
+    665:669:void removeActivityDelegate(androidx.appcompat.app.AppCompatDelegate) -> removeActivityDelegate
+    672:683:void removeDelegateFromActives(androidx.appcompat.app.AppCompatDelegate) -> removeDelegateFromActives
+    641:642:void setCompatVectorFromResourcesEnabled(boolean) -> setCompatVectorFromResourcesEnabled
+    577:595:void setDefaultNightMode(int) -> setDefaultNightMode
+    348:348:void setTheme(int) -> setTheme
+androidx.appcompat.app.AppCompatDelegateImpl -> androidx.appcompat.app.AppCompatDelegateImpl:
+    137:193:void <clinit>() -> <clinit>
+    287:288:void <init>(android.app.Activity,androidx.appcompat.app.AppCompatCallback) -> <init>
+    291:292:void <init>(android.app.Dialog,androidx.appcompat.app.AppCompatCallback) -> <init>
+    295:296:void <init>(android.content.Context,android.view.Window,androidx.appcompat.app.AppCompatCallback) -> <init>
+    299:300:void <init>(android.content.Context,android.app.Activity,androidx.appcompat.app.AppCompatCallback) -> <init>
+    214:338:void <init>(android.content.Context,android.view.Window,androidx.appcompat.app.AppCompatCallback,java.lang.Object) -> <init>
+    714:718:void addContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> addContentView
+    2371:2371:boolean applyDayNight() -> applyDayNight
+    2376:2401:boolean applyDayNight(boolean) -> applyDayNight
+    1022:1056:void applyFixedSizeWindow() -> applyFixedSizeWindow
+    344:471:android.content.Context attachBaseContext2(android.content.Context) -> attachBaseContext2
+    781:805:void attachToWindow(android.view.Window) -> attachToWindow
+    2459:2459:int calculateNightMode() -> calculateNightMode
+    2076:2101:void callOnPanelClosed(int,androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState,android.view.Menu) -> callOnPanelClosed
+    1961:1972:void checkCloseActionMenu(androidx.appcompat.view.menu.MenuBuilder) -> checkCloseActionMenu
+    756:762:void cleanupAutoManagers() -> cleanupAutoManagers
+    1975:1976:void closePanel(int) -> closePanel
+    1979:2008:void closePanel(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState,boolean) -> closePanel
+    2467:2493:android.content.res.Configuration createOverrideConfigurationForDayNight(android.content.Context,int,android.content.res.Configuration) -> createOverrideConfigurationForDayNight
+    842:1016:android.view.ViewGroup createSubDecor() -> createSubDecor
+    1523:1566:android.view.View createView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> createView
+    2345:2367:void dismissPopups() -> dismissPopups
+    1455:1473:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    2167:2191:void doInvalidatePanelMenu(int) -> doInvalidatePanelMenu
+    1394:1397:void endOnGoingFadeAnimation() -> endOnGoingFadeAnimation
+    808:839:void ensureSubDecor() -> ensureSubDecor
+    772:778:void ensureWindow() -> ensureWindow
+    2104:2112:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState findMenuPanel(android.view.Menu) -> findMenuPanel
+    633:634:android.view.View findViewById(int) -> findViewById
+    3378:3481:android.content.res.Configuration generateConfigDelta(android.content.res.Configuration,android.content.res.Configuration) -> generateConfigDelta
+    604:615:android.content.Context getActionBarThemedContext() -> getActionBarThemedContext
+    2636:2639:androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager getAutoBatteryNightModeManager(android.content.Context) -> getAutoBatteryNightModeManager
+    2624:2624:androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager getAutoTimeNightModeManager() -> getAutoTimeNightModeManager
+    2628:2632:androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager getAutoTimeNightModeManager(android.content.Context) -> getAutoTimeNightModeManager
+    3316:3316:androidx.appcompat.app.ActionBarDrawerToggle$Delegate getDrawerToggleDelegate() -> getDrawerToggleDelegate
+    2423:2423:int getLocalNightMode() -> getLocalNightMode
+    621:626:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    2117:2129:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState getPanelState(int,boolean) -> getPanelState
+    2341:2341:android.view.ViewGroup getSubDecor() -> getSubDecor
+    537:538:androidx.appcompat.app.ActionBar getSupportActionBar() -> getSupportActionBar
+    1141:1145:java.lang.CharSequence getTitle() -> getTitle
+    546:546:android.view.Window$Callback getWindowCallback() -> getWindowCallback
+    1102:1123:boolean hasWindowFeature(int) -> hasWindowFeature
+    550:564:void initWindowDecorActionBar() -> initWindowDecorActionBar
+    1836:1853:boolean initializePanelContent(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState) -> initializePanelContent
+    1742:1745:boolean initializePanelDecor(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState) -> initializePanelDecor
+    1793:1832:boolean initializePanelMenu(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState) -> initializePanelMenu
+    1597:1606:void installViewFactory() -> installViewFactory
+    1220:1224:void invalidateOptionsMenu() -> invalidateOptionsMenu
+    2158:2164:void invalidatePanelMenu(int) -> invalidatePanelMenu
+    2643:2677:boolean isActivityManifestHandlingUiMode() -> isActivityManifestHandlingUiMode
+    1390:1390:boolean isHandleNativeActionModesEnabled() -> isHandleNativeActionModesEnabled
+    2429:2452:int mapNightMode(android.content.Context,int) -> mapNightMode
+    1401:1413:boolean onBackPressed() -> onBackPressed
+    641:656:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    493:525:void onCreate(android.os.Bundle) -> onCreate
+    1614:1614:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    1623:1623:android.view.View onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    726:752:void onDestroy() -> onDestroy
+    1504:1517:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    2011:2018:boolean onKeyDownPanel(int,android.view.KeyEvent) -> onKeyDownPanel
+    1418:1449:boolean onKeyShortcut(int,android.view.KeyEvent) -> onKeyShortcut
+    1477:1500:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    2022:2071:boolean onKeyUpPanel(int,android.view.KeyEvent) -> onKeyUpPanel
+    1175:1182:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    1187:1188:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+    1165:1171:void onMenuOpened(int) -> onMenuOpened
+    1149:1162:void onPanelClosed(int) -> onPanelClosed
+    530:531:void onPostCreate(android.os.Bundle) -> onPostCreate
+    679:683:void onPostResume() -> onPostResume
+    722:722:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    660:665:void onStart() -> onStart
+    669:675:void onStop() -> onStop
+    1019:1019:void onSubDecorInstalled(android.view.ViewGroup) -> onSubDecorInstalled
+    1644:1739:void openPanel(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState,android.view.KeyEvent) -> openPanel
+    542:542:androidx.appcompat.app.ActionBar peekSupportActionBar() -> peekSupportActionBar
+    2134:2154:boolean performPanelShortcut(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState,int,android.view.KeyEvent,int) -> performPanelShortcut
+    1857:1957:boolean preparePanel(androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState,android.view.KeyEvent) -> preparePanel
+    1749:1790:void reopenMenu(boolean) -> reopenMenu
+    1060:1097:boolean requestWindowFeature(int) -> requestWindowFeature
+    2327:2337:int sanitizeWindowFeatureId(int) -> sanitizeWindowFeatureId
+    687:692:void setContentView(android.view.View) -> setContentView
+    696:701:void setContentView(int) -> setContentView
+    705:710:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    1385:1386:void setHandleNativeActionModesEnabled(boolean) -> setHandleNativeActionModesEnabled
+    2411:2419:void setLocalNightMode(int) -> setLocalNightMode
+    568:601:void setSupportActionBar(androidx.appcompat.widget.Toolbar) -> setSupportActionBar
+    766:767:void setTheme(int) -> setTheme
+    1128:1137:void setTitle(java.lang.CharSequence) -> setTitle
+    1380:1380:boolean shouldAnimateActionModeView() -> shouldAnimateActionModeView
+    1571:1591:boolean shouldInheritContext(android.view.ViewParent) -> shouldInheritContext
+    1192:1215:androidx.appcompat.view.ActionMode startSupportActionMode(androidx.appcompat.view.ActionMode$Callback) -> startSupportActionMode
+    1227:1374:androidx.appcompat.view.ActionMode startSupportActionModeFromWindow(androidx.appcompat.view.ActionMode$Callback) -> startSupportActionModeFromWindow
+    2320:2324:void throwFeatureRequestIfSubDecorInstalled() -> throwFeatureRequestIfSubDecorInstalled
+    1628:1639:androidx.appcompat.app.AppCompatActivity tryUnwrapContext() -> tryUnwrapContext
+    2506:2563:boolean updateForNightMode(int,boolean) -> updateForNightMode
+    2571:2615:void updateResourcesConfigurationForNightMode(int,boolean,android.content.res.Configuration) -> updateResourcesConfigurationForNightMode
+    2202:2308:int updateStatusGuard(androidx.core.view.WindowInsetsCompat,android.graphics.Rect) -> updateStatusGuard
+    2312:2317:void updateStatusGuardColor(android.view.View) -> updateStatusGuardColor
+androidx.appcompat.app.AppCompatDelegateImpl$1 -> androidx.appcompat.app.AppCompatDelegateImpl$1:
+    165:165:void <init>(java.lang.Thread$UncaughtExceptionHandler) -> <init>
+    182:187:boolean shouldWrapException(java.lang.Throwable) -> shouldWrapException
+    169:179:void uncaughtException(java.lang.Thread,java.lang.Throwable) -> uncaughtException
+androidx.appcompat.app.AppCompatDelegateImpl$2 -> androidx.appcompat.app.AppCompatDelegateImpl$2:
+    264:264:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    267:275:void run() -> run
+androidx.appcompat.app.AppCompatDelegateImpl$3 -> androidx.appcompat.app.AppCompatDelegateImpl$3:
+    941:941:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    945:957:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+androidx.appcompat.app.AppCompatDelegateImpl$4 -> androidx.appcompat.app.AppCompatDelegateImpl$4:
+    963:963:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    966:967:void onFitSystemWindows(android.graphics.Rect) -> onFitSystemWindows
+androidx.appcompat.app.AppCompatDelegateImpl$5 -> androidx.appcompat.app.AppCompatDelegateImpl$5:
+    1006:1006:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    1008:1008:void onAttachedFromWindow() -> onAttachedFromWindow
+    1012:1013:void onDetachedFromWindow() -> onDetachedFromWindow
+androidx.appcompat.app.AppCompatDelegateImpl$6 -> androidx.appcompat.app.AppCompatDelegateImpl$6:
+    1282:1282:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    1285:1310:void run() -> run
+androidx.appcompat.app.AppCompatDelegateImpl$6$1 -> androidx.appcompat.app.AppCompatDelegateImpl$6$1:
+    1293:1293:void <init>(androidx.appcompat.app.AppCompatDelegateImpl$6) -> <init>
+    1301:1304:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    1296:1297:void onAnimationStart(android.view.View) -> onAnimationStart
+androidx.appcompat.app.AppCompatDelegateImpl$7 -> androidx.appcompat.app.AppCompatDelegateImpl$7:
+    1335:1335:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    1348:1351:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    1338:1344:void onAnimationStart(android.view.View) -> onAnimationStart
+androidx.appcompat.app.AppCompatDelegateImpl$ActionBarDrawableToggleImpl -> androidx.appcompat.app.AppCompatDelegateImpl$ActionBarDrawableToggleImpl:
+    3320:3321:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    3334:3334:android.content.Context getActionBarThemedContext() -> getActionBarThemedContext
+    3325:3329:android.graphics.drawable.Drawable getThemeUpIndicator() -> getThemeUpIndicator
+    3339:3340:boolean isNavigationVisible() -> isNavigationVisible
+    3354:3358:void setActionBarDescription(int) -> setActionBarDescription
+    3345:3350:void setActionBarUpIndicator(android.graphics.drawable.Drawable,int) -> setActionBarUpIndicator
+androidx.appcompat.app.AppCompatDelegateImpl$ActionMenuPresenterCallback -> androidx.appcompat.app.AppCompatDelegateImpl$ActionMenuPresenterCallback:
+    2775:2776:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    2789:2790:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    2780:2784:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9 -> androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9:
+    2686:2688:void <init>(androidx.appcompat.app.AppCompatDelegateImpl,androidx.appcompat.view.ActionMode$Callback) -> <init>
+    2703:2703:boolean onActionItemClicked(androidx.appcompat.view.ActionMode,android.view.MenuItem) -> onActionItemClicked
+    2692:2692:boolean onCreateActionMode(androidx.appcompat.view.ActionMode,android.view.Menu) -> onCreateActionMode
+    2708:2737:void onDestroyActionMode(androidx.appcompat.view.ActionMode) -> onDestroyActionMode
+    2697:2698:boolean onPrepareActionMode(androidx.appcompat.view.ActionMode,android.view.Menu) -> onPrepareActionMode
+androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9$1 -> androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9$1:
+    2716:2716:void <init>(androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9) -> <init>
+    2719:2729:void onAnimationEnd(android.view.View) -> onAnimationEnd
+androidx.appcompat.app.AppCompatDelegateImpl$Api17Impl -> androidx.appcompat.app.AppCompatDelegateImpl$Api17Impl:
+    3486:3486:void <init>() -> <init>
+    3497:3497:android.content.Context createConfigurationContext(android.content.Context,android.content.res.Configuration) -> createConfigurationContext
+    3490:3493:void generateConfigDelta_densityDpi(android.content.res.Configuration,android.content.res.Configuration,android.content.res.Configuration) -> generateConfigDelta_densityDpi
+androidx.appcompat.app.AppCompatDelegateImpl$Api21Impl -> androidx.appcompat.app.AppCompatDelegateImpl$Api21Impl:
+    3503:3503:void <init>() -> <init>
+    3506:3506:boolean isPowerSaveMode(android.os.PowerManager) -> isPowerSaveMode
+androidx.appcompat.app.AppCompatDelegateImpl$Api24Impl -> androidx.appcompat.app.AppCompatDelegateImpl$Api24Impl:
+    3512:3512:void <init>() -> <init>
+    3516:3522:void generateConfigDelta_locale(android.content.res.Configuration,android.content.res.Configuration,android.content.res.Configuration) -> generateConfigDelta_locale
+androidx.appcompat.app.AppCompatDelegateImpl$Api26Impl -> androidx.appcompat.app.AppCompatDelegateImpl$Api26Impl:
+    3527:3527:void <init>() -> <init>
+    3531:3541:void generateConfigDelta_colorMode(android.content.res.Configuration,android.content.res.Configuration,android.content.res.Configuration) -> generateConfigDelta_colorMode
+androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback -> androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback:
+    3061:3063:void <init>(androidx.appcompat.app.AppCompatDelegateImpl,android.view.Window$Callback) -> <init>
+    3067:3068:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    3073:3074:boolean dispatchKeyShortcutEvent(android.view.KeyEvent) -> dispatchKeyShortcutEvent
+    3091:3091:void onContentChanged() -> onContentChanged
+    3079:3084:boolean onCreatePanelMenu(int,android.view.Menu) -> onCreatePanelMenu
+    3122:3124:boolean onMenuOpened(int,android.view.Menu) -> onMenuOpened
+    3129:3131:void onPanelClosed(int,android.view.Menu) -> onPanelClosed
+    3095:3117:boolean onPreparePanel(int,android.view.View,android.view.Menu) -> onPreparePanel
+    3188:3197:void onProvideKeyboardShortcuts(java.util.List,android.view.Menu,int) -> onProvideKeyboardShortcuts
+    3136:3138:android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback) -> onWindowStartingActionMode
+    3173:3181:android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback,int) -> onWindowStartingActionMode
+    3155:3166:android.view.ActionMode startAsSupportActionMode(android.view.ActionMode$Callback) -> startAsSupportActionMode
+androidx.appcompat.app.AppCompatDelegateImpl$AutoBatteryNightModeManager -> androidx.appcompat.app.AppCompatDelegateImpl$AutoBatteryNightModeManager:
+    3284:3287:void <init>(androidx.appcompat.app.AppCompatDelegateImpl,android.content.Context) -> <init>
+    3305:3308:android.content.IntentFilter createIntentFilterForBroadcastReceiver() -> createIntentFilterForBroadcastReceiver
+    3292:3293:int getApplyableNightMode() -> getApplyableNightMode
+    3300:3301:void onChange() -> onChange
+androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager -> androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager:
+    3205:3205:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    3237:3246:void cleanup() -> cleanup
+    3249:3249:boolean isListening() -> isListening
+    3214:3231:void setup() -> setup
+androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager$1 -> androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager$1:
+    3223:3223:void <init>(androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager) -> <init>
+    3226:3227:void onReceive(android.content.Context,android.content.Intent) -> onReceive
+androidx.appcompat.app.AppCompatDelegateImpl$AutoTimeNightModeManager -> androidx.appcompat.app.AppCompatDelegateImpl$AutoTimeNightModeManager:
+    3256:3258:void <init>(androidx.appcompat.app.AppCompatDelegateImpl,androidx.appcompat.app.TwilightManager) -> <init>
+    3273:3277:android.content.IntentFilter createIntentFilterForBroadcastReceiver() -> createIntentFilterForBroadcastReceiver
+    3263:3263:int getApplyableNightMode() -> getApplyableNightMode
+    3268:3269:void onChange() -> onChange
+androidx.appcompat.app.AppCompatDelegateImpl$ContextThemeWrapperCompatApi17Impl -> androidx.appcompat.app.AppCompatDelegateImpl$ContextThemeWrapperCompatApi17Impl:
+    479:481:void <init>() -> <init>
+    485:486:void applyOverrideConfiguration(android.view.ContextThemeWrapper,android.content.res.Configuration) -> applyOverrideConfiguration
+androidx.appcompat.app.AppCompatDelegateImpl$ListMenuDecorView -> androidx.appcompat.app.AppCompatDelegateImpl$ListMenuDecorView:
+    3025:3027:void <init>(androidx.appcompat.app.AppCompatDelegateImpl,android.content.Context) -> <init>
+    3031:3032:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    3055:3055:boolean isOutOfBounds(int,int) -> isOutOfBounds
+    3037:3046:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    3051:3052:void setBackgroundResource(int) -> setBackgroundResource
+androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState -> androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState:
+    2858:2862:void <init>(int) -> <init>
+    2964:2968:void applyFrozenState() -> applyFrozenState
+    2875:2879:void clearMenuPresenters() -> clearMenuPresenters
+    2926:2937:androidx.appcompat.view.menu.MenuView getListMenuView(androidx.appcompat.view.menu.MenuPresenter$Callback) -> getListMenuView
+    2865:2868:boolean hasPanelItems() -> hasPanelItems
+    2954:2961:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    2941:2950:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    2914:2923:void setMenu(androidx.appcompat.view.menu.MenuBuilder) -> setMenu
+    2882:2911:void setStyle(android.content.Context) -> setStyle
+androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState -> androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState:
+    3005:3005:void <clinit>() -> <clinit>
+    2975:2976:void <init>() -> <init>
+    2980:2980:int describeContents() -> describeContents
+    2994:3002:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState readFromParcel(android.os.Parcel,java.lang.ClassLoader) -> readFromParcel
+    2985:2991:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState$1 -> androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState$1:
+    3005:3005:void <init>() -> <init>
+    3005:3005:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    3005:3005:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    3008:3008:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    3013:3013:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    3005:3005:java.lang.Object[] newArray(int) -> newArray
+    3018:3018:androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState$SavedState[] newArray(int) -> newArray
+androidx.appcompat.app.AppCompatDelegateImpl$PanelMenuPresenterCallback -> androidx.appcompat.app.AppCompatDelegateImpl$PanelMenuPresenterCallback:
+    2741:2742:void <init>(androidx.appcompat.app.AppCompatDelegateImpl) -> <init>
+    2746:2759:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    2764:2770:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+androidx.appcompat.app.AppCompatDialog -> androidx.appcompat.app.AppCompatDialog:
+    53:54:void <init>(android.content.Context) -> <init>
+    45:68:void <init>(android.content.Context,int) -> <init>
+    45:73:void <init>(android.content.Context,boolean,android.content.DialogInterface$OnCancelListener) -> <init>
+    129:130:void addContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> addContentView
+    140:143:void dismiss() -> dismiss
+    213:214:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    112:112:android.view.View findViewById(int) -> findViewById
+    176:179:androidx.appcompat.app.AppCompatDelegate getDelegate() -> getDelegate
+    90:90:androidx.appcompat.app.ActionBar getSupportActionBar() -> getSupportActionBar
+    183:189:int getThemeResId(android.content.Context,int) -> getThemeResId
+    169:170:void invalidateOptionsMenu() -> invalidateOptionsMenu
+    77:80:void onCreate(android.os.Bundle) -> onCreate
+    134:136:void onStop() -> onStop
+    198:198:void onSupportActionModeFinished(androidx.appcompat.view.ActionMode) -> onSupportActionModeFinished
+    194:194:void onSupportActionModeStarted(androidx.appcompat.view.ActionMode) -> onSupportActionModeStarted
+    203:203:androidx.appcompat.view.ActionMode onWindowStartingSupportActionMode(androidx.appcompat.view.ActionMode$Callback) -> onWindowStartingSupportActionMode
+    95:96:void setContentView(int) -> setContentView
+    100:101:void setContentView(android.view.View) -> setContentView
+    105:106:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    117:119:void setTitle(java.lang.CharSequence) -> setTitle
+    123:125:void setTitle(int) -> setTitle
+    208:208:boolean superDispatchKeyEvent(android.view.KeyEvent) -> superDispatchKeyEvent
+    160:160:boolean supportRequestWindowFeature(int) -> supportRequestWindowFeature
+androidx.appcompat.app.AppCompatDialog$1 -> androidx.appcompat.app.AppCompatDialog$1:
+    45:45:void <init>(androidx.appcompat.app.AppCompatDialog) -> <init>
+    48:48:boolean superDispatchKeyEvent(android.view.KeyEvent) -> superDispatchKeyEvent
+androidx.appcompat.app.AppCompatDialogFragment -> androidx.appcompat.app.AppCompatDialogFragment:
+    38:38:void <init>() -> <init>
+    43:43:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    50:67:void setupDialog(android.app.Dialog,int) -> setupDialog
+androidx.appcompat.app.AppCompatViewInflater -> androidx.appcompat.app.AppCompatViewInflater:
+    75:87:void <clinit>() -> <clinit>
+    73:90:void <init>() -> <init>
+    313:329:void checkOnClickListener(android.view.View,android.util.AttributeSet) -> checkOnClickListener
+    240:240:androidx.appcompat.widget.AppCompatAutoCompleteTextView createAutoCompleteTextView(android.content.Context,android.util.AttributeSet) -> createAutoCompleteTextView
+    204:204:androidx.appcompat.widget.AppCompatButton createButton(android.content.Context,android.util.AttributeSet) -> createButton
+    224:224:androidx.appcompat.widget.AppCompatCheckBox createCheckBox(android.content.Context,android.util.AttributeSet) -> createCheckBox
+    234:234:androidx.appcompat.widget.AppCompatCheckedTextView createCheckedTextView(android.content.Context,android.util.AttributeSet) -> createCheckedTextView
+    209:209:androidx.appcompat.widget.AppCompatEditText createEditText(android.content.Context,android.util.AttributeSet) -> createEditText
+    219:219:androidx.appcompat.widget.AppCompatImageButton createImageButton(android.content.Context,android.util.AttributeSet) -> createImageButton
+    199:199:androidx.appcompat.widget.AppCompatImageView createImageView(android.content.Context,android.util.AttributeSet) -> createImageView
+    246:246:androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView createMultiAutoCompleteTextView(android.content.Context,android.util.AttributeSet) -> createMultiAutoCompleteTextView
+    229:229:androidx.appcompat.widget.AppCompatRadioButton createRadioButton(android.content.Context,android.util.AttributeSet) -> createRadioButton
+    251:251:androidx.appcompat.widget.AppCompatRatingBar createRatingBar(android.content.Context,android.util.AttributeSet) -> createRatingBar
+    256:256:androidx.appcompat.widget.AppCompatSeekBar createSeekBar(android.content.Context,android.util.AttributeSet) -> createSeekBar
+    214:214:androidx.appcompat.widget.AppCompatSpinner createSpinner(android.content.Context,android.util.AttributeSet) -> createSpinner
+    194:194:androidx.appcompat.widget.AppCompatTextView createTextView(android.content.Context,android.util.AttributeSet) -> createTextView
+    261:261:androidx.appcompat.widget.AppCompatToggleButton createToggleButton(android.content.Context,android.util.AttributeSet) -> createToggleButton
+    95:189:android.view.View createView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet,boolean,boolean,boolean,boolean) -> createView
+    273:273:android.view.View createView(android.content.Context,java.lang.String,android.util.AttributeSet) -> createView
+    333:351:android.view.View createViewByPrefix(android.content.Context,java.lang.String,java.lang.String) -> createViewByPrefix
+    277:304:android.view.View createViewFromTag(android.content.Context,java.lang.String,android.util.AttributeSet) -> createViewFromTag
+    360:383:android.content.Context themifyContext(android.content.Context,android.util.AttributeSet,boolean,boolean) -> themifyContext
+    265:269:void verifyNotNull(android.view.View,java.lang.String) -> verifyNotNull
+androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener -> androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener:
+    397:400:void <init>(android.view.View,java.lang.String) -> <init>
+    404:417:void onClick(android.view.View) -> onClick
+    420:447:void resolveMethod(android.content.Context) -> resolveMethod
+androidx.appcompat.app.LayoutIncludeDetector -> androidx.appcompat.app.LayoutIncludeDetector:
+    36:38:void <init>() -> <init>
+    45:61:boolean detect(android.util.AttributeSet) -> detect
+    108:111:boolean isParserOutdated(org.xmlpull.v1.XmlPullParser) -> isParserOutdated
+    95:103:org.xmlpull.v1.XmlPullParser popOutdatedAttrHolders(java.util.Deque) -> popOutdatedAttrHolders
+    66:83:boolean shouldInheritContext(org.xmlpull.v1.XmlPullParser,org.xmlpull.v1.XmlPullParser) -> shouldInheritContext
+androidx.appcompat.app.NavItemSelectedListener -> androidx.appcompat.app.NavItemSelectedListener:
+    30:32:void <init>(androidx.appcompat.app.ActionBar$OnNavigationListener) -> <init>
+    36:39:void onItemSelected(android.widget.AdapterView,android.view.View,int,long) -> onItemSelected
+    44:44:void onNothingSelected(android.widget.AdapterView) -> onNothingSelected
+androidx.appcompat.app.ResourcesFlusher -> androidx.appcompat.app.ResourcesFlusher:
+    209:210:void <init>() -> <init>
+    46:56:void flush(android.content.res.Resources) -> flush
+    60:80:void flushLollipops(android.content.res.Resources) -> flushLollipops
+    84:109:void flushMarshmallows(android.content.res.Resources) -> flushMarshmallows
+    113:162:void flushNougats(android.content.res.Resources) -> flushNougats
+    166:207:void flushThemedResourcesCache(java.lang.Object) -> flushThemedResourcesCache
+androidx.appcompat.app.ToolbarActionBar -> androidx.appcompat.app.ToolbarActionBar:
+    52:75:void <init>(androidx.appcompat.widget.Toolbar,java.lang.CharSequence,android.view.Window$Callback) -> <init>
+    495:496:void addOnMenuVisibilityListener(androidx.appcompat.app.ActionBar$OnMenuVisibilityListener) -> addOnMenuVisibilityListener
+    335:335:void addTab(androidx.appcompat.app.ActionBar$Tab) -> addTab
+    341:341:void addTab(androidx.appcompat.app.ActionBar$Tab,boolean) -> addTab
+    347:347:void addTab(androidx.appcompat.app.ActionBar$Tab,int) -> addTab
+    353:353:void addTab(androidx.appcompat.app.ActionBar$Tab,int,boolean) -> addTab
+    429:429:boolean closeOptionsMenu() -> closeOptionsMenu
+    441:445:boolean collapseActionView() -> collapseActionView
+    505:514:void dispatchMenuVisibilityChanged(boolean) -> dispatchMenuVisibilityChanged
+    296:296:android.view.View getCustomView() -> getCustomView
+    324:324:int getDisplayOptions() -> getDisplayOptions
+    142:142:float getElevation() -> getElevation
+    400:400:int getHeight() -> getHeight
+    544:549:android.view.Menu getMenu() -> getMenu
+    214:214:int getNavigationItemCount() -> getNavigationItemCount
+    311:311:int getNavigationMode() -> getNavigationMode
+    209:209:int getSelectedNavigationIndex() -> getSelectedNavigationIndex
+    383:383:androidx.appcompat.app.ActionBar$Tab getSelectedTab() -> getSelectedTab
+    306:306:java.lang.CharSequence getSubtitle() -> getSubtitle
+    389:389:androidx.appcompat.app.ActionBar$Tab getTabAt(int) -> getTabAt
+    395:395:int getTabCount() -> getTabCount
+    147:147:android.content.Context getThemedContext() -> getThemedContext
+    301:301:java.lang.CharSequence getTitle() -> getTitle
+    78:78:android.view.Window$Callback getWrappedWindowCallback() -> getWrappedWindowCallback
+    414:415:void hide() -> hide
+    434:436:boolean invalidateOptionsMenu() -> invalidateOptionsMenu
+    419:419:boolean isShowing() -> isShowing
+    152:152:boolean isTitleTruncated() -> isTitleTruncated
+    329:329:androidx.appcompat.app.ActionBar$Tab newTab() -> newTab
+    187:188:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    490:491:void onDestroy() -> onDestroy
+    477:484:boolean onKeyShortcut(int,android.view.KeyEvent) -> onKeyShortcut
+    469:472:boolean onMenuKeyEvent(android.view.KeyEvent) -> onMenuKeyEvent
+    424:424:boolean openOptionsMenu() -> openOptionsMenu
+    449:465:void populateOptionsMenu() -> populateOptionsMenu
+    371:371:void removeAllTabs() -> removeAllTabs
+    500:501:void removeOnMenuVisibilityListener(androidx.appcompat.app.ActionBar$OnMenuVisibilityListener) -> removeOnMenuVisibilityListener
+    359:359:void removeTab(androidx.appcompat.app.ActionBar$Tab) -> removeTab
+    365:365:void removeTabAt(int) -> removeTabAt
+    234:239:boolean requestFocus() -> requestFocus
+    377:377:void selectTab(androidx.appcompat.app.ActionBar$Tab) -> selectTab
+    291:292:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    83:84:void setCustomView(android.view.View) -> setCustomView
+    88:92:void setCustomView(android.view.View,androidx.appcompat.app.ActionBar$LayoutParams) -> setCustomView
+    96:98:void setCustomView(int) -> setCustomView
+    173:173:void setDefaultDisplayHomeAsUpEnabled(boolean) -> setDefaultDisplayHomeAsUpEnabled
+    276:277:void setDisplayHomeAsUpEnabled(boolean) -> setDisplayHomeAsUpEnabled
+    255:256:void setDisplayOptions(int) -> setDisplayOptions
+    260:262:void setDisplayOptions(int,int) -> setDisplayOptions
+    286:287:void setDisplayShowCustomEnabled(boolean) -> setDisplayShowCustomEnabled
+    271:272:void setDisplayShowHomeEnabled(boolean) -> setDisplayShowHomeEnabled
+    281:282:void setDisplayShowTitleEnabled(boolean) -> setDisplayShowTitleEnabled
+    266:267:void setDisplayUseLogoEnabled(boolean) -> setDisplayUseLogoEnabled
+    137:138:void setElevation(float) -> setElevation
+    167:168:void setHomeActionContentDescription(java.lang.CharSequence) -> setHomeActionContentDescription
+    177:178:void setHomeActionContentDescription(int) -> setHomeActionContentDescription
+    157:158:void setHomeAsUpIndicator(android.graphics.drawable.Drawable) -> setHomeAsUpIndicator
+    162:163:void setHomeAsUpIndicator(int) -> setHomeAsUpIndicator
+    133:133:void setHomeButtonEnabled(boolean) -> setHomeButtonEnabled
+    102:103:void setIcon(int) -> setIcon
+    107:108:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    192:193:void setListNavigationCallbacks(android.widget.SpinnerAdapter,androidx.appcompat.app.ActionBar$OnNavigationListener) -> setListNavigationCallbacks
+    112:113:void setLogo(int) -> setLogo
+    117:118:void setLogo(android.graphics.drawable.Drawable) -> setLogo
+    316:320:void setNavigationMode(int) -> setNavigationMode
+    197:205:void setSelectedNavigationItem(int) -> setSelectedNavigationItem
+    183:183:void setShowHideAnimationEnabled(boolean) -> setShowHideAnimationEnabled
+    128:128:void setSplitBackgroundDrawable(android.graphics.drawable.Drawable) -> setSplitBackgroundDrawable
+    123:123:void setStackedBackgroundDrawable(android.graphics.drawable.Drawable) -> setStackedBackgroundDrawable
+    244:245:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    249:250:void setSubtitle(int) -> setSubtitle
+    219:220:void setTitle(java.lang.CharSequence) -> setTitle
+    224:225:void setTitle(int) -> setTitle
+    229:230:void setWindowTitle(java.lang.CharSequence) -> setWindowTitle
+    407:408:void show() -> show
+androidx.appcompat.app.ToolbarActionBar$1 -> androidx.appcompat.app.ToolbarActionBar$1:
+    54:54:void <init>(androidx.appcompat.app.ToolbarActionBar) -> <init>
+    57:58:void run() -> run
+androidx.appcompat.app.ToolbarActionBar$2 -> androidx.appcompat.app.ToolbarActionBar$2:
+    62:62:void <init>(androidx.appcompat.app.ToolbarActionBar) -> <init>
+    65:65:boolean onMenuItemClick(android.view.MenuItem) -> onMenuItemClick
+androidx.appcompat.app.ToolbarActionBar$ActionMenuPresenterCallback -> androidx.appcompat.app.ToolbarActionBar$ActionMenuPresenterCallback:
+    555:556:void <init>(androidx.appcompat.app.ToolbarActionBar) -> <init>
+    569:579:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    560:564:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+androidx.appcompat.app.ToolbarActionBar$MenuBuilderCallback -> androidx.appcompat.app.ToolbarActionBar$MenuBuilderCallback:
+    584:585:void <init>(androidx.appcompat.app.ToolbarActionBar) -> <init>
+    589:589:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    594:602:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+androidx.appcompat.app.ToolbarActionBar$ToolbarCallbackWrapper -> androidx.appcompat.app.ToolbarActionBar$ToolbarCallbackWrapper:
+    517:519:void <init>(androidx.appcompat.app.ToolbarActionBar,android.view.Window$Callback) -> <init>
+    533:539:android.view.View onCreatePanelView(int) -> onCreatePanelView
+    523:528:boolean onPreparePanel(int,android.view.View,android.view.Menu) -> onPreparePanel
+androidx.appcompat.app.TwilightCalculator -> androidx.appcompat.app.TwilightCalculator:
+    26:26:void <init>() -> <init>
+    89:138:void calculateTwilight(long,double,double) -> calculateTwilight
+    31:34:androidx.appcompat.app.TwilightCalculator getInstance() -> getInstance
+androidx.appcompat.app.TwilightManager -> androidx.appcompat.app.TwilightManager:
+    66:72:void <init>(android.content.Context,android.location.LocationManager) -> <init>
+    50:55:androidx.appcompat.app.TwilightManager getInstance(android.content.Context) -> getInstance
+    107:127:android.location.Location getLastKnownLocation() -> getLastKnownLocation
+    134:140:android.location.Location getLastKnownLocationForProvider(java.lang.String) -> getLastKnownLocationForProvider
+    80:102:boolean isNight() -> isNight
+    144:144:boolean isStateValid() -> isStateValid
+    60:61:void setInstance(androidx.appcompat.app.TwilightManager) -> setInstance
+    148:192:void updateState(android.location.Location) -> updateState
+androidx.appcompat.app.TwilightManager$TwilightState -> androidx.appcompat.app.TwilightManager$TwilightState:
+    205:206:void <init>() -> <init>
+androidx.appcompat.app.WindowDecorActionBar -> androidx.appcompat.app.WindowDecorActionBar:
+    85:86:void <clinit>() -> <clinit>
+    99:177:void <init>(android.app.Activity,boolean) -> <init>
+    99:181:void <init>(android.app.Dialog) -> <init>
+    99:190:void <init>(android.view.View) -> <init>
+    339:340:void addOnMenuVisibilityListener(androidx.appcompat.app.ActionBar$OnMenuVisibilityListener) -> addOnMenuVisibilityListener
+    560:561:void addTab(androidx.appcompat.app.ActionBar$Tab) -> addTab
+    565:566:void addTab(androidx.appcompat.app.ActionBar$Tab,int) -> addTab
+    570:576:void addTab(androidx.appcompat.app.ActionBar$Tab,boolean) -> addTab
+    580:586:void addTab(androidx.appcompat.app.ActionBar$Tab,int,boolean) -> addTab
+    873:909:void animateToMode(boolean) -> animateToMode
+    758:763:boolean checkShowingFlags(boolean,boolean,boolean) -> checkShowingFlags
+    427:435:void cleanupTabs() -> cleanupTabs
+    973:977:boolean collapseActionView() -> collapseActionView
+    310:315:void completeDeferredDestroyActionMode() -> completeDeferredDestroyActionMode
+    542:556:void configureTab(androidx.appcompat.app.ActionBar$Tab,int) -> configureTab
+    349:358:void dispatchMenuVisibilityChanged(boolean) -> dispatchMenuVisibilityChanged
+    835:863:void doHide(boolean) -> doHide
+    786:832:void doShow(boolean) -> doShow
+    672:673:void enableContentAnimations(boolean) -> enableContentAnimations
+    286:307:void ensureTabsExist() -> ensureTabsExist
+    496:496:android.view.View getCustomView() -> getCustomView
+    235:241:androidx.appcompat.widget.DecorToolbar getDecorToolbar(android.view.View) -> getDecorToolbar
+    516:516:int getDisplayOptions() -> getDisplayOptions
+    252:252:float getElevation() -> getElevation
+    667:667:int getHeight() -> getHeight
+    744:744:int getHideOffset() -> getHideOffset
+    1312:1318:int getNavigationItemCount() -> getNavigationItemCount
+    511:511:int getNavigationMode() -> getNavigationMode
+    1300:1306:int getSelectedNavigationIndex() -> getSelectedNavigationIndex
+    662:662:androidx.appcompat.app.ActionBar$Tab getSelectedTab() -> getSelectedTab
+    506:506:java.lang.CharSequence getSubtitle() -> getSubtitle
+    1359:1359:androidx.appcompat.app.ActionBar$Tab getTabAt(int) -> getTabAt
+    1324:1324:int getTabCount() -> getTabCount
+    919:931:android.content.Context getThemedContext() -> getThemedContext
+    501:501:java.lang.CharSequence getTitle() -> getTitle
+    1374:1374:boolean hasIcon() -> hasIcon
+    1388:1388:boolean hasLogo() -> hasLogo
+    703:707:void hide() -> hide
+    710:717:void hideForActionMode() -> hideForActionMode
+    721:725:void hideForSystem() -> hideForSystem
+    193:232:void init(android.view.View) -> init
+    739:739:boolean isHideOnContentScrollEnabled() -> isHideOnContentScrollEnabled
+    867:869:boolean isShowing() -> isShowing
+    936:936:boolean isTitleTruncated() -> isTitleTruncated
+    590:590:androidx.appcompat.app.ActionBar$Tab newTab() -> newTab
+    257:258:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    961:965:void onContentScrollStarted() -> onContentScrollStarted
+    969:969:void onContentScrollStopped() -> onContentScrollStopped
+    1400:1410:boolean onKeyShortcut(int,android.view.KeyEvent) -> onKeyShortcut
+    319:320:void onWindowVisibilityChanged(int) -> onWindowVisibilityChanged
+    423:424:void removeAllTabs() -> removeAllTabs
+    344:345:void removeOnMenuVisibilityListener(androidx.appcompat.app.ActionBar$OnMenuVisibilityListener) -> removeOnMenuVisibilityListener
+    595:596:void removeTab(androidx.appcompat.app.ActionBar$Tab) -> removeTab
+    600:621:void removeTabAt(int) -> removeTabAt
+    449:454:boolean requestFocus() -> requestFocus
+    625:658:void selectTab(androidx.appcompat.app.ActionBar$Tab) -> selectTab
+    481:482:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    362:364:void setCustomView(int) -> setCustomView
+    1284:1285:void setCustomView(android.view.View) -> setCustomView
+    1289:1291:void setCustomView(android.view.View,androidx.appcompat.app.ActionBar$LayoutParams) -> setCustomView
+    1393:1396:void setDefaultDisplayHomeAsUpEnabled(boolean) -> setDefaultDisplayHomeAsUpEnabled
+    378:379:void setDisplayHomeAsUpEnabled(boolean) -> setDisplayHomeAsUpEnabled
+    464:468:void setDisplayOptions(int) -> setDisplayOptions
+    472:477:void setDisplayOptions(int,int) -> setDisplayOptions
+    388:389:void setDisplayShowCustomEnabled(boolean) -> setDisplayShowCustomEnabled
+    373:374:void setDisplayShowHomeEnabled(boolean) -> setDisplayShowHomeEnabled
+    383:384:void setDisplayShowTitleEnabled(boolean) -> setDisplayShowTitleEnabled
+    368:369:void setDisplayUseLogoEnabled(boolean) -> setDisplayUseLogoEnabled
+    247:248:void setElevation(float) -> setElevation
+    261:283:void setHasEmbeddedTabs(boolean) -> setHasEmbeddedTabs
+    749:754:void setHideOffset(int) -> setHideOffset
+    729:735:void setHideOnContentScrollEnabled(boolean) -> setHideOnContentScrollEnabled
+    951:952:void setHomeActionContentDescription(java.lang.CharSequence) -> setHomeActionContentDescription
+    956:957:void setHomeActionContentDescription(int) -> setHomeActionContentDescription
+    941:942:void setHomeAsUpIndicator(android.graphics.drawable.Drawable) -> setHomeAsUpIndicator
+    946:947:void setHomeAsUpIndicator(int) -> setHomeAsUpIndicator
+    393:394:void setHomeButtonEnabled(boolean) -> setHomeButtonEnabled
+    1365:1366:void setIcon(int) -> setIcon
+    1370:1371:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    1295:1296:void setListNavigationCallbacks(android.widget.SpinnerAdapter,androidx.appcompat.app.ActionBar$OnNavigationListener) -> setListNavigationCallbacks
+    1379:1380:void setLogo(int) -> setLogo
+    1384:1385:void setLogo(android.graphics.drawable.Drawable) -> setLogo
+    1329:1355:void setNavigationMode(int) -> setNavigationMode
+    408:419:void setSelectedNavigationItem(int) -> setSelectedNavigationItem
+    331:335:void setShowHideAnimationEnabled(boolean) -> setShowHideAnimationEnabled
+    492:492:void setSplitBackgroundDrawable(android.graphics.drawable.Drawable) -> setSplitBackgroundDrawable
+    486:487:void setStackedBackgroundDrawable(android.graphics.drawable.Drawable) -> setStackedBackgroundDrawable
+    403:404:void setSubtitle(int) -> setSubtitle
+    459:460:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    398:399:void setTitle(int) -> setTitle
+    439:440:void setTitle(java.lang.CharSequence) -> setTitle
+    444:445:void setWindowTitle(java.lang.CharSequence) -> setWindowTitle
+    914:914:boolean shouldAnimateContextView() -> shouldAnimateContextView
+    677:681:void show() -> show
+    684:691:void showForActionMode() -> showForActionMode
+    695:699:void showForSystem() -> showForSystem
+    521:538:androidx.appcompat.view.ActionMode startActionMode(androidx.appcompat.view.ActionMode$Callback) -> startActionMode
+    769:783:void updateVisibility(boolean) -> updateVisibility
+androidx.appcompat.app.WindowDecorActionBar$1 -> androidx.appcompat.app.WindowDecorActionBar$1:
+    135:135:void <init>(androidx.appcompat.app.WindowDecorActionBar) -> <init>
+    138:149:void onAnimationEnd(android.view.View) -> onAnimationEnd
+androidx.appcompat.app.WindowDecorActionBar$2 -> androidx.appcompat.app.WindowDecorActionBar$2:
+    152:152:void <init>(androidx.appcompat.app.WindowDecorActionBar) -> <init>
+    155:157:void onAnimationEnd(android.view.View) -> onAnimationEnd
+androidx.appcompat.app.WindowDecorActionBar$3 -> androidx.appcompat.app.WindowDecorActionBar$3:
+    161:161:void <init>(androidx.appcompat.app.WindowDecorActionBar) -> <init>
+    164:166:void onAnimationUpdate(android.view.View) -> onAnimationUpdate
+androidx.appcompat.app.WindowDecorActionBar$ActionModeImpl -> androidx.appcompat.app.WindowDecorActionBar$ActionModeImpl:
+    991:997:void <init>(androidx.appcompat.app.WindowDecorActionBar,android.content.Context,androidx.appcompat.view.ActionMode$Callback) -> <init>
+    1058:1063:boolean dispatchOnCreate() -> dispatchOnCreate
+    1011:1038:void finish() -> finish
+    1115:1115:android.view.View getCustomView() -> getCustomView
+    1006:1006:android.view.Menu getMenu() -> getMenu
+    1001:1001:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    1099:1099:java.lang.CharSequence getSubtitle() -> getSubtitle
+    1094:1094:java.lang.CharSequence getTitle() -> getTitle
+    1042:1055:void invalidate() -> invalidate
+    1110:1110:boolean isTitleOptional() -> isTitleOptional
+    1128:1128:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    1144:1144:void onCloseSubMenu(androidx.appcompat.view.menu.SubMenuBuilder) -> onCloseSubMenu
+    1120:1123:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    1148:1153:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+    1131:1140:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    1068:1070:void setCustomView(android.view.View) -> setCustomView
+    1074:1075:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    1089:1090:void setSubtitle(int) -> setSubtitle
+    1079:1080:void setTitle(java.lang.CharSequence) -> setTitle
+    1084:1085:void setTitle(int) -> setTitle
+    1104:1106:void setTitleOptionalHint(boolean) -> setTitleOptionalHint
+androidx.appcompat.app.WindowDecorActionBar$TabImpl -> androidx.appcompat.app.WindowDecorActionBar$TabImpl:
+    1160:1166:void <init>(androidx.appcompat.app.WindowDecorActionBar) -> <init>
+    1181:1181:androidx.appcompat.app.ActionBar$TabListener getCallback() -> getCallback
+    1278:1278:java.lang.CharSequence getContentDescription() -> getContentDescription
+    1192:1192:android.view.View getCustomView() -> getCustomView
+    1212:1212:android.graphics.drawable.Drawable getIcon() -> getIcon
+    1217:1217:int getPosition() -> getPosition
+    1171:1171:java.lang.Object getTag() -> getTag
+    1226:1226:java.lang.CharSequence getText() -> getText
+    1259:1260:void select() -> select
+    1264:1264:androidx.appcompat.app.ActionBar$Tab setContentDescription(int) -> setContentDescription
+    1269:1273:androidx.appcompat.app.ActionBar$Tab setContentDescription(java.lang.CharSequence) -> setContentDescription
+    1197:1201:androidx.appcompat.app.ActionBar$Tab setCustomView(android.view.View) -> setCustomView
+    1206:1207:androidx.appcompat.app.ActionBar$Tab setCustomView(int) -> setCustomView
+    1231:1235:androidx.appcompat.app.ActionBar$Tab setIcon(android.graphics.drawable.Drawable) -> setIcon
+    1240:1240:androidx.appcompat.app.ActionBar$Tab setIcon(int) -> setIcon
+    1221:1222:void setPosition(int) -> setPosition
+    1186:1187:androidx.appcompat.app.ActionBar$Tab setTabListener(androidx.appcompat.app.ActionBar$TabListener) -> setTabListener
+    1176:1177:androidx.appcompat.app.ActionBar$Tab setTag(java.lang.Object) -> setTag
+    1245:1249:androidx.appcompat.app.ActionBar$Tab setText(java.lang.CharSequence) -> setText
+    1254:1254:androidx.appcompat.app.ActionBar$Tab setText(int) -> setText
+androidx.appcompat.content.res.AppCompatResources -> androidx.appcompat.content.res.AppCompatResources:
+    50:55:void <clinit>() -> <clinit>
+    57:57:void <init>() -> <init>
+    150:159:void addColorStateListToCache(android.content.Context,int,android.content.res.ColorStateList) -> addColorStateListToCache
+    130:145:android.content.res.ColorStateList getCachedColorStateList(android.content.Context,int) -> getCachedColorStateList
+    67:69:android.content.res.ColorStateList getColorStateList(android.content.Context,int) -> getColorStateList
+    104:104:android.graphics.drawable.Drawable getDrawable(android.content.Context,int) -> getDrawable
+    173:178:android.util.TypedValue getTypedValue() -> getTypedValue
+    112:124:android.content.res.ColorStateList inflateColorStateList(android.content.Context,int) -> inflateColorStateList
+    162:167:boolean isColorInt(android.content.Context,int) -> isColorInt
+androidx.appcompat.content.res.AppCompatResources$ColorStateListCacheEntry -> androidx.appcompat.content.res.AppCompatResources$ColorStateListCacheEntry:
+    186:189:void <init>(android.content.res.ColorStateList,android.content.res.Configuration) -> <init>
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat:
+    92:92:void <clinit>() -> <clinit>
+    111:112:void <init>() -> <init>
+    105:122:void <init>(androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedStateListState,android.content.res.Resources) -> <init>
+    89:89:void addState(int[],android.graphics.drawable.Drawable) -> addState
+    234:239:void addState(int[],android.graphics.drawable.Drawable,int) -> addState
+    251:255:void addTransition(int,int,android.graphics.drawable.Drawable,boolean) -> addTransition
+    89:89:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    89:89:boolean canApplyTheme() -> canApplyTheme
+    619:621:void clearMutated() -> clearMutated
+    89:89:androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState cloneConstantState() -> cloneConstantState
+    89:89:androidx.appcompat.graphics.drawable.StateListDrawable$StateListState cloneConstantState() -> cloneConstantState
+    614:614:androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedStateListState cloneConstantState() -> cloneConstantState
+    138:156:androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat create(android.content.Context,int,android.content.res.Resources$Theme) -> create
+    171:178:androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat createFromXmlInner(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+    89:89:void draw(android.graphics.Canvas) -> draw
+    89:89:int getAlpha() -> getAlpha
+    89:89:int getChangingConfigurations() -> getChangingConfigurations
+    89:89:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    89:89:void getHotspotBounds(android.graphics.Rect) -> getHotspotBounds
+    89:89:int getIntrinsicHeight() -> getIntrinsicHeight
+    89:89:int getIntrinsicWidth() -> getIntrinsicWidth
+    89:89:int getMinimumHeight() -> getMinimumHeight
+    89:89:int getMinimumWidth() -> getMinimumWidth
+    89:89:int getOpacity() -> getOpacity
+    89:89:void getOutline(android.graphics.Outline) -> getOutline
+    89:89:boolean getPadding(android.graphics.Rect) -> getPadding
+    201:210:void inflate(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    483:500:void inflateChildElements(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflateChildElements
+    472:473:void init() -> init
+    89:89:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    89:89:boolean isAutoMirrored() -> isAutoMirrored
+    259:259:boolean isStateful() -> isStateful
+    264:272:void jumpToCurrentState() -> jumpToCurrentState
+    605:609:android.graphics.drawable.Drawable mutate() -> mutate
+    89:89:boolean onLayoutDirectionChanged(int) -> onLayoutDirectionChanged
+    278:288:boolean onStateChange(int[]) -> onStateChange
+    564:600:int parseItem(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> parseItem
+    510:554:int parseTransition(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> parseTransition
+    89:89:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    293:350:boolean selectTransition(int) -> selectTransition
+    89:89:void setAlpha(int) -> setAlpha
+    89:89:void setAutoMirrored(boolean) -> setAutoMirrored
+    89:89:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    718:722:void setConstantState(androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState) -> setConstantState
+    89:89:void setDither(boolean) -> setDither
+    89:89:void setEnterFadeDuration(int) -> setEnterFadeDuration
+    89:89:void setExitFadeDuration(int) -> setExitFadeDuration
+    89:89:void setHotspot(float,float) -> setHotspot
+    89:89:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    89:89:void setTintList(android.content.res.ColorStateList) -> setTintList
+    89:89:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    214:223:boolean setVisible(boolean,boolean) -> setVisible
+    89:89:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+    449:469:void updateStateFromTypedArray(android.content.res.TypedArray) -> updateStateFromTypedArray
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatableTransition -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatableTransition:
+    370:372:void <init>(android.graphics.drawable.Animatable) -> <init>
+    376:377:void start() -> start
+    381:382:void stop() -> stop
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedStateListState -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedStateListState:
+    634:643:void <init>(androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedStateListState,androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat,android.content.res.Resources) -> <init>
+    667:669:int addStateSet(int[],android.graphics.drawable.Drawable,int) -> addStateSet
+    652:663:int addTransition(int,int,android.graphics.drawable.Drawable,boolean) -> addTransition
+    712:712:long generateTransitionKey(int,int) -> generateTransitionKey
+    681:681:int getKeyframeIdAt(int) -> getKeyframeIdAt
+    673:677:int indexOfKeyframe(int[]) -> indexOfKeyframe
+    685:686:int indexOfTransition(int,int) -> indexOfTransition
+    690:691:boolean isTransitionReversed(int,int) -> isTransitionReversed
+    647:649:void mutate() -> mutate
+    702:702:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    708:708:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+    695:696:boolean transitionHasReversibleFlag(int,int) -> transitionHasReversibleFlag
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedVectorDrawableTransition -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimatedVectorDrawableTransition:
+    433:435:void <init>(androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat) -> <init>
+    439:440:void start() -> start
+    444:445:void stop() -> stop
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimationDrawableTransition -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$AnimationDrawableTransition:
+    392:407:void <init>(android.graphics.drawable.AnimationDrawable,boolean,boolean) -> <init>
+    411:411:boolean canReverse() -> canReverse
+    421:422:void reverse() -> reverse
+    416:417:void start() -> start
+    426:427:void stop() -> stop
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$FrameInterpolator -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$FrameInterpolator:
+    732:734:void <init>(android.graphics.drawable.AnimationDrawable,boolean) -> <init>
+    759:776:float getInterpolation(float) -> getInterpolation
+    754:754:int getTotalDuration() -> getTotalDuration
+    737:750:int updateFrames(android.graphics.drawable.AnimationDrawable,boolean) -> updateFrames
+androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$Transition -> androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$Transition:
+    353:353:void <init>() -> <init>
+    353:353:void <init>(androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat$1) -> <init>
+    363:363:boolean canReverse() -> canReverse
+    360:360:void reverse() -> reverse
+androidx.appcompat.graphics.drawable.DrawableContainer -> androidx.appcompat.graphics.drawable.DrawableContainer:
+    54:75:void <init>() -> <init>
+    535:572:void animate(boolean) -> animate
+    594:595:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    600:600:boolean canApplyTheme() -> canApplyTheme
+    634:636:void clearMutated() -> clearMutated
+    630:630:androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState cloneConstantState() -> cloneConstantState
+    87:93:void draw(android.graphics.Canvas) -> draw
+    153:153:int getAlpha() -> getAlpha
+    97:98:int getChangingConfigurations() -> getChangingConfigurations
+    605:609:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    577:577:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    415:415:int getCurrentIndex() -> getCurrentIndex
+    295:300:void getHotspotBounds(android.graphics.Rect) -> getHotspotBounds
+    341:344:int getIntrinsicHeight() -> getIntrinsicHeight
+    333:336:int getIntrinsicWidth() -> getIntrinsicWidth
+    357:360:int getMinimumHeight() -> getMinimumHeight
+    349:352:int getMinimumWidth() -> getMinimumWidth
+    405:406:int getOpacity() -> getOpacity
+    131:134:void getOutline(android.graphics.Outline) -> getOutline
+    108:125:boolean getPadding(android.graphics.Rect) -> getPadding
+    491:532:void initializeDrawableForDisplay(android.graphics.drawable.Drawable) -> initializeDrawableForDisplay
+    368:374:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    244:244:boolean isAutoMirrored() -> isAutoMirrored
+    228:228:boolean isStateful() -> isStateful
+    249:272:void jumpToCurrentState() -> jumpToCurrentState
+    614:620:android.graphics.drawable.Drawable mutate() -> mutate
+    102:103:boolean needsMirroring() -> needsMirroring
+    218:224:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    328:328:boolean onLayoutDirectionChanged(int) -> onLayoutDirectionChanged
+    315:321:boolean onLevelChange(int) -> onLevelChange
+    304:310:boolean onStateChange(int[]) -> onStateChange
+    1207:1208:int resolveDensity(android.content.res.Resources,int) -> resolveDensity
+    378:381:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    428:481:boolean selectDrawable(int) -> selectDrawable
+    138:149:void setAlpha(int) -> setAlpha
+    233:240:void setAutoMirrored(boolean) -> setAutoMirrored
+    169:176:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    1156:1167:void setConstantState(androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState) -> setConstantState
+    411:412:void setCurrentIndex(int) -> setCurrentIndex
+    159:165:void setDither(boolean) -> setDither
+    203:204:void setEnterFadeDuration(int) -> setEnterFadeDuration
+    213:214:void setExitFadeDuration(int) -> setExitFadeDuration
+    276:279:void setHotspot(float,float) -> setHotspot
+    283:291:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    180:185:void setTintList(android.content.res.ColorStateList) -> setTintList
+    189:194:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    392:399:boolean setVisible(boolean,boolean) -> setVisible
+    385:388:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+    588:589:void updateDensity(android.content.res.Resources) -> updateDensity
+androidx.appcompat.graphics.drawable.DrawableContainer$1 -> androidx.appcompat.graphics.drawable.DrawableContainer$1:
+    467:467:void <init>(androidx.appcompat.graphics.drawable.DrawableContainer) -> <init>
+    470:472:void run() -> run
+androidx.appcompat.graphics.drawable.DrawableContainer$Api21Impl -> androidx.appcompat.graphics.drawable.DrawableContainer$Api21Impl:
+    1213:1215:void <init>() -> <init>
+    1218:1218:boolean canApplyTheme(android.graphics.drawable.Drawable$ConstantState) -> canApplyTheme
+    1226:1227:void getOutline(android.graphics.drawable.Drawable,android.graphics.Outline) -> getOutline
+    1222:1222:android.content.res.Resources getResources(android.content.res.Resources$Theme) -> getResources
+androidx.appcompat.graphics.drawable.DrawableContainer$BlockInvalidateCallback -> androidx.appcompat.graphics.drawable.DrawableContainer$BlockInvalidateCallback:
+    1172:1172:void <init>() -> <init>
+    1189:1189:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    1193:1196:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    1200:1203:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+    1181:1183:android.graphics.drawable.Drawable$Callback unwrap() -> unwrap
+    1176:1177:androidx.appcompat.graphics.drawable.DrawableContainer$BlockInvalidateCallback wrap(android.graphics.drawable.Drawable$Callback) -> wrap
+androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState -> androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState:
+    653:757:void <init>(androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState,androidx.appcompat.graphics.drawable.DrawableContainer,android.content.res.Resources) -> <init>
+    771:786:int addChild(android.graphics.drawable.Drawable) -> addChild
+    896:909:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    914:929:boolean canApplyTheme() -> canApplyTheme
+    1137:1151:boolean canConstantState() -> canConstantState
+    953:954:void clearMutated() -> clearMutated
+    1045:1062:void computeConstantSize() -> computeConstantSize
+    802:811:void createAllFutures() -> createAllFutures
+    798:798:int getCapacity() -> getCapacity
+    761:761:int getChangingConfigurations() -> getChangingConfigurations
+    830:848:android.graphics.drawable.Drawable getChild(int) -> getChild
+    823:823:int getChildCount() -> getChildCount
+    1018:1021:int getConstantHeight() -> getConstantHeight
+    1038:1041:int getConstantMinimumHeight() -> getConstantMinimumHeight
+    1028:1031:int getConstantMinimumWidth() -> getConstantMinimumWidth
+    969:990:android.graphics.Rect getConstantPadding() -> getConstantPadding
+    1008:1011:int getConstantWidth() -> getConstantWidth
+    1069:1069:int getEnterFadeDuration() -> getEnterFadeDuration
+    1077:1077:int getExitFadeDuration() -> getExitFadeDuration
+    1085:1097:int getOpacity() -> getOpacity
+    1126:1131:void growArray(int,int) -> growArray
+    793:795:void invalidateCache() -> invalidateCache
+    1001:1001:boolean isConstantSize() -> isConstantSize
+    1104:1119:boolean isStateful() -> isStateful
+    935:943:void mutate() -> mutate
+    814:819:android.graphics.drawable.Drawable prepareDrawable(android.graphics.drawable.Drawable) -> prepareDrawable
+    994:995:void setConstantSize(boolean) -> setConstantSize
+    1065:1066:void setEnterFadeDuration(int) -> setEnterFadeDuration
+    1073:1074:void setExitFadeDuration(int) -> setExitFadeDuration
+    852:870:boolean setLayoutDirection(int,int) -> setLayoutDirection
+    962:963:void setVariablePadding(boolean) -> setVariablePadding
+    880:892:void updateDensity(android.content.res.Resources) -> updateDensity
+androidx.appcompat.graphics.drawable.DrawableWrapper -> androidx.appcompat.graphics.drawable.DrawableWrapper:
+    46:48:void <init>(android.graphics.drawable.Drawable) -> <init>
+    52:53:void draw(android.graphics.Canvas) -> draw
+    67:67:int getChangingConfigurations() -> getChangingConfigurations
+    113:113:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    139:139:int getIntrinsicHeight() -> getIntrinsicHeight
+    134:134:int getIntrinsicWidth() -> getIntrinsicWidth
+    149:149:int getMinimumHeight() -> getMinimumHeight
+    144:144:int getMinimumWidth() -> getMinimumWidth
+    124:124:int getOpacity() -> getOpacity
+    154:154:boolean getPadding(android.graphics.Rect) -> getPadding
+    103:103:int[] getState() -> getState
+    129:129:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    222:222:android.graphics.drawable.Drawable getWrappedDrawable() -> getWrappedDrawable
+    162:163:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    193:193:boolean isAutoMirrored() -> isAutoMirrored
+    93:93:boolean isStateful() -> isStateful
+    108:109:void jumpToCurrentState() -> jumpToCurrentState
+    57:58:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    183:183:boolean onLevelChange(int) -> onLevelChange
+    170:171:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    83:84:void setAlpha(int) -> setAlpha
+    188:189:void setAutoMirrored(boolean) -> setAutoMirrored
+    62:63:void setChangingConfigurations(int) -> setChangingConfigurations
+    88:89:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    73:74:void setDither(boolean) -> setDither
+    78:79:void setFilterBitmap(boolean) -> setFilterBitmap
+    213:214:void setHotspot(float,float) -> setHotspot
+    218:219:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    98:98:boolean setState(int[]) -> setState
+    198:199:void setTint(int) -> setTint
+    203:204:void setTintList(android.content.res.ColorStateList) -> setTintList
+    208:209:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    118:118:boolean setVisible(boolean,boolean) -> setVisible
+    226:235:void setWrappedDrawable(android.graphics.drawable.Drawable) -> setWrappedDrawable
+    178:179:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+androidx.appcompat.graphics.drawable.DrawerArrowDrawable -> androidx.appcompat.graphics.drawable.DrawerArrowDrawable:
+    100:100:void <clinit>() -> <clinit>
+    97:152:void <init>(android.content.Context) -> <init>
+    326:401:void draw(android.graphics.Canvas) -> draw
+    171:171:float getArrowHeadLength() -> getArrowHeadLength
+    190:190:float getArrowShaftLength() -> getArrowShaftLength
+    197:197:float getBarLength() -> getBarLength
+    247:247:float getBarThickness() -> getBarThickness
+    227:227:int getColor() -> getColor
+    311:311:int getDirection() -> getDirection
+    256:256:float getGapSize() -> getGapSize
+    419:419:int getIntrinsicHeight() -> getIntrinsicHeight
+    424:424:int getIntrinsicWidth() -> getIntrinsicWidth
+    429:429:int getOpacity() -> getOpacity
+    458:458:android.graphics.Paint getPaint() -> getPaint
+    437:437:float getProgress() -> getProgress
+    289:289:boolean isSpinEnabled() -> isSpinEnabled
+    465:465:float lerp(float,float,float) -> lerp
+    405:409:void setAlpha(int) -> setAlpha
+    160:164:void setArrowHeadLength(float) -> setArrowHeadLength
+    180:184:void setArrowShaftLength(float) -> setArrowShaftLength
+    206:210:void setBarLength(float) -> setBarLength
+    236:241:void setBarThickness(float) -> setBarThickness
+    216:220:void setColor(int) -> setColor
+    413:415:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    277:281:void setDirection(int) -> setDirection
+    267:271:void setGapSize(float) -> setGapSize
+    448:452:void setProgress(float) -> setProgress
+    300:304:void setSpinEnabled(boolean) -> setSpinEnabled
+    318:322:void setVerticalMirror(boolean) -> setVerticalMirror
+androidx.appcompat.graphics.drawable.StateListDrawable -> androidx.appcompat.graphics.drawable.StateListDrawable:
+    88:89:void <init>() -> <init>
+    403:408:void <init>(androidx.appcompat.graphics.drawable.StateListDrawable$StateListState,android.content.res.Resources) -> <init>
+    414:418:void <init>(androidx.appcompat.graphics.drawable.StateListDrawable$StateListState) -> <init>
+    99:104:void addState(int[],android.graphics.drawable.Drawable) -> addState
+    391:393:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    324:326:void clearMutated() -> clearMutated
+    79:79:androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState cloneConstantState() -> cloneConstantState
+    319:319:androidx.appcompat.graphics.drawable.StateListDrawable$StateListState cloneConstantState() -> cloneConstantState
+    234:253:int[] extractStateSet(android.util.AttributeSet) -> extractStateSet
+    268:268:int getStateCount() -> getStateCount
+    292:292:android.graphics.drawable.Drawable getStateDrawable(int) -> getStateDrawable
+    304:304:int getStateDrawableIndex(int[]) -> getStateDrawableIndex
+    257:257:androidx.appcompat.graphics.drawable.StateListDrawable$StateListState getStateListState() -> getStateListState
+    280:280:int[] getStateSet(int) -> getStateSet
+    143:150:void inflate(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    179:225:void inflateChildElements(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflateChildElements
+    108:108:boolean isStateful() -> isStateful
+    310:314:android.graphics.drawable.Drawable mutate() -> mutate
+    113:122:boolean onStateChange(int[]) -> onStateChange
+    397:401:void setConstantState(androidx.appcompat.graphics.drawable.DrawableContainer$DrawableContainerState) -> setConstantState
+    156:171:void updateStateFromTypedArray(android.content.res.TypedArray) -> updateStateFromTypedArray
+androidx.appcompat.graphics.drawable.StateListDrawable$StateListState -> androidx.appcompat.graphics.drawable.StateListDrawable$StateListState:
+    332:339:void <init>(androidx.appcompat.graphics.drawable.StateListDrawable$StateListState,androidx.appcompat.graphics.drawable.StateListDrawable,android.content.res.Resources) -> <init>
+    351:353:int addStateSet(int[],android.graphics.drawable.Drawable) -> addStateSet
+    381:385:void growArray(int,int) -> growArray
+    357:364:int indexOfStateSet(int[]) -> indexOfStateSet
+    343:348:void mutate() -> mutate
+    370:370:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    376:376:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+androidx.appcompat.text.AllCapsTransformationMethod -> androidx.appcompat.text.AllCapsTransformationMethod:
+    37:39:void <init>(android.content.Context) -> <init>
+    43:43:java.lang.CharSequence getTransformation(java.lang.CharSequence,android.view.View) -> getTransformation
+    49:49:void onFocusChanged(android.view.View,java.lang.CharSequence,boolean,int,android.graphics.Rect) -> onFocusChanged
+androidx.appcompat.view.ActionBarPolicy -> androidx.appcompat.view.ActionBarPolicy:
+    46:48:void <init>(android.content.Context) -> <init>
+    110:110:boolean enableHomeButtonByDefault() -> enableHomeButtonByDefault
+    43:43:androidx.appcompat.view.ActionBarPolicy get(android.content.Context) -> get
+    86:86:int getEmbeddedMenuWidthLimit() -> getEmbeddedMenuWidthLimit
+    56:73:int getMaxActionButtons() -> getMaxActionButtons
+    115:115:int getStackedTabMaxWidth() -> getStackedTabMaxWidth
+    94:104:int getTabContainerHeight() -> getTabContainerHeight
+    90:90:boolean hasEmbeddedTabs() -> hasEmbeddedTabs
+    78:79:boolean showsOverflowMenuButton() -> showsOverflowMenuButton
+androidx.appcompat.view.ActionMode -> androidx.appcompat.view.ActionMode:
+    41:41:void <init>() -> <init>
+    71:71:java.lang.Object getTag() -> getTag
+    145:145:boolean getTitleOptionalHint() -> getTitleOptionalHint
+    153:153:boolean isTitleOptional() -> isTitleOptional
+    225:225:boolean isUiFocusable() -> isUiFocusable
+    57:58:void setTag(java.lang.Object) -> setTag
+    134:135:void setTitleOptionalHint(boolean) -> setTitleOptionalHint
+androidx.appcompat.view.ContextThemeWrapper -> androidx.appcompat.view.ContextThemeWrapper:
+    48:49:void <init>() -> <init>
+    63:65:void <init>(android.content.Context,int) -> <init>
+    77:79:void <init>(android.content.Context,android.content.res.Resources$Theme) -> <init>
+    97:105:void applyOverrideConfiguration(android.content.res.Configuration) -> applyOverrideConfiguration
+    83:84:void attachBaseContext(android.content.Context) -> attachBaseContext
+    200:200:android.content.res.AssetManager getAssets() -> getAssets
+    109:109:android.content.res.Resources getResources() -> getResources
+    113:126:android.content.res.Resources getResourcesInternal() -> getResourcesInternal
+    161:167:java.lang.Object getSystemService(java.lang.String) -> getSystemService
+    147:156:android.content.res.Resources$Theme getTheme() -> getTheme
+    142:142:int getThemeResId() -> getThemeResId
+    186:195:void initializeTheme() -> initializeTheme
+    182:183:void onApplyThemeResource(android.content.res.Resources$Theme,int,boolean) -> onApplyThemeResource
+    131:135:void setTheme(int) -> setTheme
+androidx.appcompat.view.StandaloneActionMode -> androidx.appcompat.view.StandaloneActionMode:
+    51:60:void <init>(android.content.Context,androidx.appcompat.widget.ActionBarContextView,androidx.appcompat.view.ActionMode$Callback,boolean) -> <init>
+    106:113:void finish() -> finish
+    132:132:android.view.View getCustomView() -> getCustomView
+    117:117:android.view.Menu getMenu() -> getMenu
+    137:137:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    127:127:java.lang.CharSequence getSubtitle() -> getSubtitle
+    122:122:java.lang.CharSequence getTitle() -> getTitle
+    101:102:void invalidate() -> invalidate
+    90:90:boolean isTitleOptional() -> isTitleOptional
+    168:168:boolean isUiFocusable() -> isUiFocusable
+    146:146:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    158:158:void onCloseSubMenu(androidx.appcompat.view.menu.SubMenuBuilder) -> onCloseSubMenu
+    142:142:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    162:164:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+    149:154:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    95:97:void setCustomView(android.view.View) -> setCustomView
+    69:70:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    79:80:void setSubtitle(int) -> setSubtitle
+    64:65:void setTitle(java.lang.CharSequence) -> setTitle
+    74:75:void setTitle(int) -> setTitle
+    84:86:void setTitleOptionalHint(boolean) -> setTitleOptionalHint
+androidx.appcompat.view.SupportActionModeWrapper -> androidx.appcompat.view.SupportActionModeWrapper:
+    49:52:void <init>(android.content.Context,androidx.appcompat.view.ActionMode) -> <init>
+    81:82:void finish() -> finish
+    111:111:android.view.View getCustomView() -> getCustomView
+    86:86:android.view.Menu getMenu() -> getMenu
+    121:121:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    101:101:java.lang.CharSequence getSubtitle() -> getSubtitle
+    56:56:java.lang.Object getTag() -> getTag
+    91:91:java.lang.CharSequence getTitle() -> getTitle
+    126:126:boolean getTitleOptionalHint() -> getTitleOptionalHint
+    76:77:void invalidate() -> invalidate
+    136:136:boolean isTitleOptional() -> isTitleOptional
+    116:117:void setCustomView(android.view.View) -> setCustomView
+    71:72:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    106:107:void setSubtitle(int) -> setSubtitle
+    61:62:void setTag(java.lang.Object) -> setTag
+    66:67:void setTitle(java.lang.CharSequence) -> setTitle
+    96:97:void setTitle(int) -> setTitle
+    131:132:void setTitleOptionalHint(boolean) -> setTitleOptionalHint
+androidx.appcompat.view.SupportActionModeWrapper$CallbackWrapper -> androidx.appcompat.view.SupportActionModeWrapper$CallbackWrapper:
+    150:155:void <init>(android.content.Context,android.view.ActionMode$Callback) -> <init>
+    192:204:android.view.ActionMode getActionModeWrapper(androidx.appcompat.view.ActionMode) -> getActionModeWrapper
+    182:187:android.view.Menu getMenuWrapper(android.view.Menu) -> getMenuWrapper
+    172:172:boolean onActionItemClicked(androidx.appcompat.view.ActionMode,android.view.MenuItem) -> onActionItemClicked
+    159:160:boolean onCreateActionMode(androidx.appcompat.view.ActionMode,android.view.Menu) -> onCreateActionMode
+    178:179:void onDestroyActionMode(androidx.appcompat.view.ActionMode) -> onDestroyActionMode
+    165:166:boolean onPrepareActionMode(androidx.appcompat.view.ActionMode,android.view.Menu) -> onPrepareActionMode
+androidx.appcompat.view.SupportMenuInflater -> androidx.appcompat.view.SupportMenuInflater:
+    83:85:void <clinit>() -> <clinit>
+    101:105:void <init>(android.content.Context) -> <init>
+    231:237:java.lang.Object findRealOwner(java.lang.Object) -> findRealOwner
+    224:227:java.lang.Object getRealOwner() -> getRealOwner
+    119:137:void inflate(int,android.view.Menu) -> inflate
+    145:221:void parseMenu(org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.view.Menu) -> parseMenu
+androidx.appcompat.view.SupportMenuInflater$InflatedOnMenuItemClickListener -> androidx.appcompat.view.SupportMenuInflater$InflatedOnMenuItemClickListener:
+    242:242:void <clinit>() -> <clinit>
+    247:259:void <init>(java.lang.Object,java.lang.String) -> <init>
+    264:271:boolean onMenuItemClick(android.view.MenuItem) -> onMenuItemClick
+androidx.appcompat.view.SupportMenuInflater$MenuState -> androidx.appcompat.view.SupportMenuInflater$MenuState:
+    337:353:void <init>(androidx.appcompat.view.SupportMenuInflater,android.view.Menu) -> <init>
+    530:532:void addItem() -> addItem
+    535:538:android.view.SubMenu addSubMenuItem() -> addSubMenuItem
+    459:462:char getShortcut(java.lang.String) -> getShortcut
+    542:542:boolean hasAddedItem() -> hasAddedItem
+    549:556:java.lang.Object newInstance(java.lang.String,java.lang.Class[],java.lang.Object[]) -> newInstance
+    368:380:void readGroup(android.util.AttributeSet) -> readGroup
+    386:456:void readItem(android.util.AttributeSet) -> readItem
+    356:362:void resetGroup() -> resetGroup
+    467:527:void setItem(android.view.MenuItem) -> setItem
+androidx.appcompat.view.ViewPropertyAnimatorCompatSet -> androidx.appcompat.view.ViewPropertyAnimatorCompatSet:
+    42:120:void <init>() -> <init>
+    90:97:void cancel() -> cancel
+    86:87:void onAnimationsEnded() -> onAnimationsEnded
+    53:56:androidx.appcompat.view.ViewPropertyAnimatorCompatSet play(androidx.core.view.ViewPropertyAnimatorCompat) -> play
+    61:64:androidx.appcompat.view.ViewPropertyAnimatorCompatSet playSequentially(androidx.core.view.ViewPropertyAnimatorCompat,androidx.core.view.ViewPropertyAnimatorCompat) -> playSequentially
+    100:103:androidx.appcompat.view.ViewPropertyAnimatorCompatSet setDuration(long) -> setDuration
+    107:110:androidx.appcompat.view.ViewPropertyAnimatorCompatSet setInterpolator(android.view.animation.Interpolator) -> setInterpolator
+    114:117:androidx.appcompat.view.ViewPropertyAnimatorCompatSet setListener(androidx.core.view.ViewPropertyAnimatorListener) -> setListener
+    68:83:void start() -> start
+androidx.appcompat.view.ViewPropertyAnimatorCompatSet$1 -> androidx.appcompat.view.ViewPropertyAnimatorCompatSet$1:
+    121:123:void <init>(androidx.appcompat.view.ViewPropertyAnimatorCompatSet) -> <init>
+    144:150:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    127:134:void onAnimationStart(android.view.View) -> onAnimationStart
+    137:140:void onEnd() -> onEnd
+androidx.appcompat.view.WindowCallbackWrapper -> androidx.appcompat.view.WindowCallbackWrapper:
+    50:55:void <init>(android.view.Window$Callback) -> <init>
+    79:79:boolean dispatchGenericMotionEvent(android.view.MotionEvent) -> dispatchGenericMotionEvent
+    59:59:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    64:64:boolean dispatchKeyShortcutEvent(android.view.KeyEvent) -> dispatchKeyShortcutEvent
+    84:84:boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    69:69:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    74:74:boolean dispatchTrackballEvent(android.view.MotionEvent) -> dispatchTrackballEvent
+    188:188:android.view.Window$Callback getWrapped() -> getWrapped
+    171:172:void onActionModeFinished(android.view.ActionMode) -> onActionModeFinished
+    166:167:void onActionModeStarted(android.view.ActionMode) -> onActionModeStarted
+    129:130:void onAttachedToWindow() -> onAttachedToWindow
+    119:120:void onContentChanged() -> onContentChanged
+    94:94:boolean onCreatePanelMenu(int,android.view.Menu) -> onCreatePanelMenu
+    89:89:android.view.View onCreatePanelView(int) -> onCreatePanelView
+    134:135:void onDetachedFromWindow() -> onDetachedFromWindow
+    109:109:boolean onMenuItemSelected(int,android.view.MenuItem) -> onMenuItemSelected
+    104:104:boolean onMenuOpened(int,android.view.Menu) -> onMenuOpened
+    139:140:void onPanelClosed(int,android.view.Menu) -> onPanelClosed
+    184:185:void onPointerCaptureChanged(boolean) -> onPointerCaptureChanged
+    99:99:boolean onPreparePanel(int,android.view.View,android.view.Menu) -> onPreparePanel
+    178:179:void onProvideKeyboardShortcuts(java.util.List,android.view.Menu,int) -> onProvideKeyboardShortcuts
+    145:145:boolean onSearchRequested(android.view.SearchEvent) -> onSearchRequested
+    150:150:boolean onSearchRequested() -> onSearchRequested
+    114:115:void onWindowAttributesChanged(android.view.WindowManager$LayoutParams) -> onWindowAttributesChanged
+    124:125:void onWindowFocusChanged(boolean) -> onWindowFocusChanged
+    155:155:android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback) -> onWindowStartingActionMode
+    161:161:android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback,int) -> onWindowStartingActionMode
+androidx.appcompat.view.menu.ActionMenuItem -> androidx.appcompat.view.menu.ActionMenuItem:
+    53:85:void <init>(android.content.Context,int,int,int,int,java.lang.CharSequence) -> <init>
+    437:449:void applyIconTint() -> applyIconTint
+    371:371:boolean collapseActionView() -> collapseActionView
+    366:366:boolean expandActionView() -> expandActionView
+    340:340:android.view.ActionProvider getActionProvider() -> getActionProvider
+    330:330:android.view.View getActionView() -> getActionView
+    94:94:int getAlphabeticModifiers() -> getAlphabeticModifiers
+    89:89:char getAlphabeticShortcut() -> getAlphabeticShortcut
+    392:392:java.lang.CharSequence getContentDescription() -> getContentDescription
+    99:99:int getGroupId() -> getGroupId
+    104:104:android.graphics.drawable.Drawable getIcon() -> getIcon
+    418:418:android.content.res.ColorStateList getIconTintList() -> getIconTintList
+    433:433:android.graphics.PorterDuff$Mode getIconTintMode() -> getIconTintMode
+    109:109:android.content.Intent getIntent() -> getIntent
+    114:114:int getItemId() -> getItemId
+    119:119:android.view.ContextMenu$ContextMenuInfo getMenuInfo() -> getMenuInfo
+    129:129:int getNumericModifiers() -> getNumericModifiers
+    124:124:char getNumericShortcut() -> getNumericShortcut
+    134:134:int getOrder() -> getOrder
+    139:139:android.view.SubMenu getSubMenu() -> getSubMenu
+    350:350:androidx.core.view.ActionProvider getSupportActionProvider() -> getSupportActionProvider
+    144:144:java.lang.CharSequence getTitle() -> getTitle
+    149:149:java.lang.CharSequence getTitleCondensed() -> getTitleCondensed
+    403:403:java.lang.CharSequence getTooltipText() -> getTooltipText
+    154:154:boolean hasSubMenu() -> hasSubMenu
+    296:305:boolean invoke() -> invoke
+    376:376:boolean isActionViewExpanded() -> isActionViewExpanded
+    159:159:boolean isCheckable() -> isCheckable
+    164:164:boolean isChecked() -> isChecked
+    169:169:boolean isEnabled() -> isEnabled
+    174:174:boolean isVisible() -> isVisible
+    315:315:boolean requiresActionButton() -> requiresActionButton
+    320:320:boolean requiresOverflow() -> requiresOverflow
+    335:335:android.view.MenuItem setActionProvider(android.view.ActionProvider) -> setActionProvider
+    42:42:android.view.MenuItem setActionView(int) -> setActionView
+    42:42:android.view.MenuItem setActionView(android.view.View) -> setActionView
+    325:325:androidx.core.internal.view.SupportMenuItem setActionView(android.view.View) -> setActionView
+    345:345:androidx.core.internal.view.SupportMenuItem setActionView(int) -> setActionView
+    179:180:android.view.MenuItem setAlphabeticShortcut(char) -> setAlphabeticShortcut
+    185:187:android.view.MenuItem setAlphabeticShortcut(char,int) -> setAlphabeticShortcut
+    192:193:android.view.MenuItem setCheckable(boolean) -> setCheckable
+    203:204:android.view.MenuItem setChecked(boolean) -> setChecked
+    42:42:android.view.MenuItem setContentDescription(java.lang.CharSequence) -> setContentDescription
+    386:387:androidx.core.internal.view.SupportMenuItem setContentDescription(java.lang.CharSequence) -> setContentDescription
+    209:210:android.view.MenuItem setEnabled(boolean) -> setEnabled
+    197:198:androidx.appcompat.view.menu.ActionMenuItem setExclusiveCheckable(boolean) -> setExclusiveCheckable
+    215:218:android.view.MenuItem setIcon(android.graphics.drawable.Drawable) -> setIcon
+    223:226:android.view.MenuItem setIcon(int) -> setIcon
+    408:413:android.view.MenuItem setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    423:428:android.view.MenuItem setIconTintMode(android.graphics.PorterDuff$Mode) -> setIconTintMode
+    231:232:android.view.MenuItem setIntent(android.content.Intent) -> setIntent
+    237:238:android.view.MenuItem setNumericShortcut(char) -> setNumericShortcut
+    243:245:android.view.MenuItem setNumericShortcut(char,int) -> setNumericShortcut
+    381:381:android.view.MenuItem setOnActionExpandListener(android.view.MenuItem$OnActionExpandListener) -> setOnActionExpandListener
+    250:251:android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    256:258:android.view.MenuItem setShortcut(char,char) -> setShortcut
+    264:268:android.view.MenuItem setShortcut(char,char,int,int) -> setShortcut
+    311:311:void setShowAsAction(int) -> setShowAsAction
+    42:42:android.view.MenuItem setShowAsActionFlags(int) -> setShowAsActionFlags
+    360:361:androidx.core.internal.view.SupportMenuItem setShowAsActionFlags(int) -> setShowAsActionFlags
+    355:355:androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider) -> setSupportActionProvider
+    273:274:android.view.MenuItem setTitle(java.lang.CharSequence) -> setTitle
+    279:280:android.view.MenuItem setTitle(int) -> setTitle
+    285:286:android.view.MenuItem setTitleCondensed(java.lang.CharSequence) -> setTitleCondensed
+    42:42:android.view.MenuItem setTooltipText(java.lang.CharSequence) -> setTooltipText
+    397:398:androidx.core.internal.view.SupportMenuItem setTooltipText(java.lang.CharSequence) -> setTooltipText
+    291:292:android.view.MenuItem setVisible(boolean) -> setVisible
+androidx.appcompat.view.menu.ActionMenuItemView -> androidx.appcompat.view.menu.ActionMenuItemView:
+    64:65:void <init>(android.content.Context) -> <init>
+    68:69:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    72:88:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    119:119:androidx.appcompat.view.menu.MenuItemImpl getItemData() -> getItemData
+    237:237:boolean hasText() -> hasText
+    124:137:void initialize(androidx.appcompat.view.menu.MenuItemImpl,int) -> initialize
+    264:264:boolean needsDividerAfter() -> needsDividerAfter
+    259:259:boolean needsDividerBefore() -> needsDividerBefore
+    150:153:void onClick(android.view.View) -> onClick
+    92:96:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    269:296:void onMeasure(int,int) -> onMeasure
+    333:334:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    141:145:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    165:165:boolean prefersCondensedTitle() -> prefersCondensedTitle
+    171:171:void setCheckable(boolean) -> setCheckable
+    176:176:void setChecked(boolean) -> setChecked
+    179:185:void setExpandedFormat(boolean) -> setExpandedFormat
+    215:234:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    156:157:void setItemInvoker(androidx.appcompat.view.menu.MenuBuilder$ItemInvoker) -> setItemInvoker
+    113:115:void setPadding(int,int,int,int) -> setPadding
+    160:161:void setPopupCallback(androidx.appcompat.view.menu.ActionMenuItemView$PopupCallback) -> setPopupCallback
+    243:243:void setShortcut(boolean,char) -> setShortcut
+    247:250:void setTitle(java.lang.CharSequence) -> setTitle
+    103:107:boolean shouldAllowTextWithIcon() -> shouldAllowTextWithIcon
+    254:254:boolean showsIcon() -> showsIcon
+    188:211:void updateTextButtonVisibility() -> updateTextButtonVisibility
+androidx.appcompat.view.menu.ActionMenuItemView$ActionMenuItemForwardingListener -> androidx.appcompat.view.menu.ActionMenuItemView$ActionMenuItemForwardingListener:
+    299:301:void <init>(androidx.appcompat.view.menu.ActionMenuItemView) -> <init>
+    305:308:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    314:318:boolean onForwardingStarted() -> onForwardingStarted
+androidx.appcompat.view.menu.ActionMenuItemView$PopupCallback -> androidx.appcompat.view.menu.ActionMenuItemView$PopupCallback:
+    336:336:void <init>() -> <init>
+androidx.appcompat.view.menu.BaseMenuPresenter -> androidx.appcompat.view.menu.BaseMenuPresenter:
+    61:66:void <init>(android.content.Context,int,int) -> <init>
+    134:139:void addItemView(android.view.View,int) -> addItemView
+    239:239:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    167:167:androidx.appcompat.view.menu.MenuView$ItemView createItemView(android.view.ViewGroup) -> createItemView
+    234:234:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    148:149:boolean filterLeftoverView(android.view.ViewGroup,int) -> filterLeftoverView
+    229:229:boolean flagActionItems() -> flagActionItems
+    158:158:androidx.appcompat.view.menu.MenuPresenter$Callback getCallback() -> getCallback
+    244:244:int getId() -> getId
+    183:189:android.view.View getItemView(androidx.appcompat.view.menu.MenuItemImpl,android.view.View,android.view.ViewGroup) -> getItemView
+    77:83:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    70:73:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    213:216:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    220:224:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    154:155:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    248:249:void setId(int) -> setId
+    208:208:boolean shouldIncludeItem(int,androidx.appcompat.view.menu.MenuItemImpl) -> shouldIncludeItem
+    91:125:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.view.menu.BaseMenuWrapper -> androidx.appcompat.view.menu.BaseMenuWrapper:
+    34:36:void <init>(android.content.Context) -> <init>
+    39:58:android.view.MenuItem getMenuItemWrapper(android.view.MenuItem) -> getMenuItemWrapper
+    62:78:android.view.SubMenu getSubMenuWrapper(android.view.SubMenu) -> getSubMenuWrapper
+    83:89:void internalClear() -> internalClear
+    92:101:void internalRemoveGroup(int) -> internalRemoveGroup
+    104:113:void internalRemoveItem(int) -> internalRemoveItem
+androidx.appcompat.view.menu.CascadingMenuPopup -> androidx.appcompat.view.menu.CascadingMenuPopup:
+    66:66:void <clinit>() -> <clinit>
+    89:238:void <init>(android.content.Context,android.view.View,int,int,boolean) -> <init>
+    355:362:void addMenu(androidx.appcompat.view.menu.MenuBuilder) -> addMenu
+    792:792:boolean closeMenuOnSubMenuOpened() -> closeMenuOnSubMenuOpened
+    246:255:androidx.appcompat.widget.MenuPopupWindow createPopupWindow() -> createPopupWindow
+    288:299:void dismiss() -> dismiss
+    656:663:int findIndexOfAddedMenu(androidx.appcompat.view.menu.MenuBuilder) -> findIndexOfAddedMenu
+    517:524:android.view.MenuItem findMenuItemForSubmenu(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuBuilder) -> findMenuItemForSubmenu
+    538:581:android.view.View findParentViewForSubmenu(androidx.appcompat.view.menu.CascadingMenuPopup$CascadingMenuInfo,androidx.appcompat.view.menu.MenuBuilder) -> findParentViewForSubmenu
+    727:727:boolean flagActionItems() -> flagActionItems
+    316:318:int getInitialMenuPosition() -> getInitialMenuPosition
+    766:768:android.widget.ListView getListView() -> getListView
+    330:349:int getNextMenuPosition(int) -> getNextMenuPosition
+    589:589:boolean isShowing() -> isShowing
+    668:723:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    599:613:void onDismiss() -> onDismiss
+    303:307:boolean onKey(android.view.View,int,android.view.KeyEvent) -> onKey
+    737:737:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    732:732:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    630:646:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    750:757:void setAnchorView(android.view.View) -> setAnchorView
+    624:625:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    242:243:void setForceShowIcon(boolean) -> setForceShowIcon
+    741:746:void setGravity(int) -> setGravity
+    773:775:void setHorizontalOffset(int) -> setHorizontalOffset
+    761:762:void setOnDismissListener(android.widget.PopupWindow$OnDismissListener) -> setOnDismissListener
+    785:786:void setShowTitle(boolean) -> setShowTitle
+    779:781:void setVerticalOffset(int) -> setVerticalOffset
+    260:280:void show() -> show
+    370:504:void showMenu(androidx.appcompat.view.menu.MenuBuilder) -> showMenu
+    617:620:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.view.menu.CascadingMenuPopup$1 -> androidx.appcompat.view.menu.CascadingMenuPopup$1:
+    98:98:void <init>(androidx.appcompat.view.menu.CascadingMenuPopup) -> <init>
+    104:116:void onGlobalLayout() -> onGlobalLayout
+androidx.appcompat.view.menu.CascadingMenuPopup$2 -> androidx.appcompat.view.menu.CascadingMenuPopup$2:
+    120:120:void <init>(androidx.appcompat.view.menu.CascadingMenuPopup) -> <init>
+    123:123:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    127:134:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.appcompat.view.menu.CascadingMenuPopup$3 -> androidx.appcompat.view.menu.CascadingMenuPopup$3:
+    137:137:void <init>(androidx.appcompat.view.menu.CascadingMenuPopup) -> <init>
+    150:194:void onItemHoverEnter(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onItemHoverEnter
+    143:144:void onItemHoverExit(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onItemHoverExit
+androidx.appcompat.view.menu.CascadingMenuPopup$3$1 -> androidx.appcompat.view.menu.CascadingMenuPopup$3$1:
+    173:173:void <init>(androidx.appcompat.view.menu.CascadingMenuPopup$3,androidx.appcompat.view.menu.CascadingMenuPopup$CascadingMenuInfo,android.view.MenuItem,androidx.appcompat.view.menu.MenuBuilder) -> <init>
+    178:190:void run() -> run
+androidx.appcompat.view.menu.CascadingMenuPopup$CascadingMenuInfo -> androidx.appcompat.view.menu.CascadingMenuPopup$CascadingMenuInfo:
+    801:805:void <init>(androidx.appcompat.widget.MenuPopupWindow,androidx.appcompat.view.menu.MenuBuilder,int) -> <init>
+    808:808:android.widget.ListView getListView() -> getListView
+androidx.appcompat.view.menu.ExpandedMenuView -> androidx.appcompat.view.menu.ExpandedMenuView:
+    42:42:void <clinit>() -> <clinit>
+    53:54:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    57:69:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    97:97:int getWindowAnimations() -> getWindowAnimations
+    73:74:void initialize(androidx.appcompat.view.menu.MenuBuilder) -> initialize
+    86:86:boolean invokeItem(androidx.appcompat.view.menu.MenuItemImpl) -> invokeItem
+    78:82:void onDetachedFromWindow() -> onDetachedFromWindow
+    92:93:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.appcompat.view.menu.ListMenuItemView -> androidx.appcompat.view.menu.ListMenuItemView:
+    74:75:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    78:98:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    138:139:void addContentView(android.view.View) -> addContentView
+    142:147:void addContentView(android.view.View,int) -> addContentView
+    347:355:void adjustListItemSelectionBounds(android.graphics.Rect) -> adjustListItemSelectionBounds
+    327:330:android.view.LayoutInflater getInflater() -> getInflater
+    166:166:androidx.appcompat.view.menu.MenuItemImpl getItemData() -> getItemData
+    124:135:void initialize(androidx.appcompat.view.menu.MenuItemImpl,int) -> initialize
+    309:314:void insertCheckBox() -> insertCheckBox
+    294:298:void insertIconView() -> insertIconView
+    301:306:void insertRadioButton() -> insertRadioButton
+    102:120:void onFinishInflate() -> onFinishInflate
+    282:291:void onMeasure(int,int) -> onMeasure
+    318:318:boolean prefersCondensedTitle() -> prefersCondensedTitle
+    171:213:void setCheckable(boolean) -> setCheckable
+    219:232:void setChecked(boolean) -> setChecked
+    150:151:void setForceShowIcon(boolean) -> setForceShowIcon
+    339:343:void setGroupDividerEnabled(boolean) -> setGroupDividerEnabled
+    256:278:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    242:252:void setShortcut(boolean,char) -> setShortcut
+    235:238:void setSubMenuArrowVisible(boolean) -> setSubMenuArrowVisible
+    155:162:void setTitle(java.lang.CharSequence) -> setTitle
+    323:323:boolean showsIcon() -> showsIcon
+androidx.appcompat.view.menu.ListMenuPresenter -> androidx.appcompat.view.menu.ListMenuPresenter:
+    71:74:void <init>(android.content.Context,int) -> <init>
+    81:84:void <init>(int,int) -> <init>
+    188:188:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    183:183:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    178:178:boolean flagActionItems() -> flagActionItems
+    125:128:android.widget.ListAdapter getAdapter() -> getAdapter
+    212:212:int getId() -> getId
+    161:161:int getItemIndexOffset() -> getItemIndexOffset
+    105:114:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    88:101:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    155:158:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    173:174:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+    228:229:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    217:223:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    143:150:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    200:204:void restoreHierarchyState(android.os.Bundle) -> restoreHierarchyState
+    192:197:void saveHierarchyState(android.os.Bundle) -> saveHierarchyState
+    138:139:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    207:208:void setId(int) -> setId
+    165:169:void setItemIndexOffset(int) -> setItemIndexOffset
+    133:134:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.view.menu.ListMenuPresenter$MenuAdapter -> androidx.appcompat.view.menu.ListMenuPresenter$MenuAdapter:
+    232:236:void <init>(androidx.appcompat.view.menu.ListMenuPresenter) -> <init>
+    277:290:void findExpandedIndex() -> findExpandedIndex
+    240:245:int getCount() -> getCount
+    231:231:java.lang.Object getItem(int) -> getItem
+    250:255:androidx.appcompat.view.menu.MenuItemImpl getItem(int) -> getItem
+    262:262:long getItemId(int) -> getItemId
+    267:273:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    294:296:void notifyDataSetChanged() -> notifyDataSetChanged
+androidx.appcompat.view.menu.MenuAdapter -> androidx.appcompat.view.menu.MenuAdapter:
+    36:50:void <init>(androidx.appcompat.view.menu.MenuBuilder,android.view.LayoutInflater,boolean,int) -> <init>
+    114:127:void findExpandedIndex() -> findExpandedIndex
+    71:71:androidx.appcompat.view.menu.MenuBuilder getAdapterMenu() -> getAdapterMenu
+    62:67:int getCount() -> getCount
+    53:53:boolean getForceShowIcon() -> getForceShowIcon
+    32:32:java.lang.Object getItem(int) -> getItem
+    76:81:androidx.appcompat.view.menu.MenuItemImpl getItem(int) -> getItem
+    88:88:long getItemId(int) -> getItemId
+    93:110:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    131:133:void notifyDataSetChanged() -> notifyDataSetChanged
+    57:58:void setForceShowIcon(boolean) -> setForceShowIcon
+androidx.appcompat.view.menu.MenuBuilder -> androidx.appcompat.view.menu.MenuBuilder:
+    68:68:void <clinit>() -> <clinit>
+    134:236:void <init>(android.content.Context) -> <init>
+    466:466:android.view.MenuItem add(java.lang.CharSequence) -> add
+    471:471:android.view.MenuItem add(int) -> add
+    476:476:android.view.MenuItem add(int,int,int,java.lang.CharSequence) -> add
+    481:481:android.view.MenuItem add(int,int,int,int) -> add
+    520:544:int addIntentOptions(int,int,int,android.content.ComponentName,android.content.Intent[],android.content.Intent,int,android.view.MenuItem[]) -> addIntentOptions
+    441:454:android.view.MenuItem addInternal(int,int,int,java.lang.CharSequence) -> addInternal
+    250:251:void addMenuPresenter(androidx.appcompat.view.menu.MenuPresenter) -> addMenuPresenter
+    263:266:void addMenuPresenter(androidx.appcompat.view.menu.MenuPresenter,android.content.Context) -> addMenuPresenter
+    486:486:android.view.SubMenu addSubMenu(java.lang.CharSequence) -> addSubMenu
+    491:491:android.view.SubMenu addSubMenu(int) -> addSubMenu
+    496:500:android.view.SubMenu addSubMenu(int,int,int,java.lang.CharSequence) -> addSubMenu
+    505:505:android.view.SubMenu addSubMenu(int,int,int,int) -> addSubMenu
+    841:844:void changeMenuMode() -> changeMenuMode
+    604:610:void clear() -> clear
+    592:600:void clearAll() -> clearAll
+    1213:1218:void clearHeader() -> clearHeader
+    1030:1042:void close(boolean) -> close
+    1046:1047:void close() -> close
+    1373:1391:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    460:460:androidx.appcompat.view.menu.MenuItemImpl createNewMenuItem(int,int,int,int,java.lang.CharSequence,int) -> createNewMenuItem
+    834:834:boolean dispatchMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> dispatchMenuItemSelected
+    284:296:void dispatchPresenterUpdate(boolean) -> dispatchPresenterUpdate
+    344:362:void dispatchRestoreInstanceState(android.os.Bundle) -> dispatchRestoreInstanceState
+    321:341:void dispatchSaveInstanceState(android.os.Bundle) -> dispatchSaveInstanceState
+    300:317:boolean dispatchSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder,androidx.appcompat.view.menu.MenuPresenter) -> dispatchSubMenuSelected
+    1351:1369:boolean expandItemActionView(androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    724:724:int findGroupIndex(int) -> findGroupIndex
+    728:742:int findGroupIndex(int,int) -> findGroupIndex
+    847:854:int findInsertIndex(java.util.ArrayList,int) -> findInsertIndex
+    693:707:android.view.MenuItem findItem(int) -> findItem
+    711:720:int findItemIndex(int) -> findItemIndex
+    930:965:androidx.appcompat.view.menu.MenuItemImpl findItemWithShortcutForKey(int,android.view.KeyEvent) -> findItemWithShortcutForKey
+    882:914:void findItemsWithShortcutForKey(java.util.List,int,android.view.KeyEvent) -> findItemsWithShortcutForKey
+    1163:1200:void flagActionItems() -> flagActionItems
+    1203:1204:java.util.ArrayList getActionItems() -> getActionItems
+    430:430:java.lang.String getActionViewStatesKey() -> getActionViewStatesKey
+    830:830:android.content.Context getContext() -> getContext
+    1395:1395:androidx.appcompat.view.menu.MenuItemImpl getExpandedItem() -> getExpandedItem
+    1316:1316:android.graphics.drawable.Drawable getHeaderIcon() -> getHeaderIcon
+    1312:1312:java.lang.CharSequence getHeaderTitle() -> getHeaderTitle
+    1320:1320:android.view.View getHeaderView() -> getHeaderView
+    752:752:android.view.MenuItem getItem(int) -> getItem
+    1208:1209:java.util.ArrayList getNonActionItems() -> getNonActionItems
+    1347:1347:boolean getOptionalIconsVisible() -> getOptionalIconsVisible
+    779:785:int getOrdering(int) -> getOrdering
+    826:826:android.content.res.Resources getResources() -> getResources
+    1328:1328:androidx.appcompat.view.menu.MenuBuilder getRootMenu() -> getRootMenu
+    1118:1133:java.util.ArrayList getVisibleItems() -> getVisibleItems
+    675:688:boolean hasVisibleItems() -> hasVisibleItems
+    514:514:boolean isGroupDividerEnabled() -> isGroupDividerEnabled
+    792:792:boolean isQwertyMode() -> isQwertyMode
+    757:757:boolean isShortcutKey(int,android.view.KeyEvent) -> isShortcutKey
+    822:822:boolean isShortcutsVisible() -> isShortcutsVisible
+    1112:1114:void onItemActionRequestChanged(androidx.appcompat.view.menu.MenuItemImpl) -> onItemActionRequestChanged
+    1101:1103:void onItemVisibleChanged(androidx.appcompat.view.menu.MenuItemImpl) -> onItemVisibleChanged
+    1057:1070:void onItemsChanged(boolean) -> onItemsChanged
+    971:971:boolean performIdentifierAction(int,int) -> performIdentifierAction
+    975:975:boolean performItemAction(android.view.MenuItem,int) -> performItemAction
+    979:1018:boolean performItemAction(android.view.MenuItem,androidx.appcompat.view.menu.MenuPresenter,int) -> performItemAction
+    859:871:boolean performShortcut(int,android.view.KeyEvent,int) -> performShortcut
+    554:567:void removeGroup(int) -> removeGroup
+    549:550:void removeItem(int) -> removeItem
+    588:589:void removeItemAt(int) -> removeItemAt
+    580:585:void removeItemAtInt(int,boolean) -> removeItemAtInt
+    275:281:void removeMenuPresenter(androidx.appcompat.view.menu.MenuPresenter) -> removeMenuPresenter
+    400:427:void restoreActionViewStates(android.os.Bundle) -> restoreActionViewStates
+    369:370:void restorePresenterStates(android.os.Bundle) -> restorePresenterStates
+    373:397:void saveActionViewStates(android.os.Bundle) -> saveActionViewStates
+    365:366:void savePresenterStates(android.os.Bundle) -> savePresenterStates
+    434:435:void setCallback(androidx.appcompat.view.menu.MenuBuilder$Callback) -> setCallback
+    1339:1340:void setCurrentMenuInfo(android.view.ContextMenu$ContextMenuInfo) -> setCurrentMenuInfo
+    239:240:androidx.appcompat.view.menu.MenuBuilder setDefaultShowAsAction(int) -> setDefaultShowAsAction
+    613:628:void setExclusiveItemChecked(android.view.MenuItem) -> setExclusiveItemChecked
+    632:641:void setGroupCheckable(int,boolean,boolean) -> setGroupCheckable
+    510:511:void setGroupDividerEnabled(boolean) -> setGroupDividerEnabled
+    663:671:void setGroupEnabled(int,boolean) -> setGroupEnabled
+    645:659:void setGroupVisible(int,boolean) -> setGroupVisible
+    1283:1284:androidx.appcompat.view.menu.MenuBuilder setHeaderIconInt(android.graphics.drawable.Drawable) -> setHeaderIconInt
+    1295:1296:androidx.appcompat.view.menu.MenuBuilder setHeaderIconInt(int) -> setHeaderIconInt
+    1222:1249:void setHeaderInternal(int,java.lang.CharSequence,int,android.graphics.drawable.Drawable,android.view.View) -> setHeaderInternal
+    1259:1260:androidx.appcompat.view.menu.MenuBuilder setHeaderTitleInt(java.lang.CharSequence) -> setHeaderTitleInt
+    1271:1272:androidx.appcompat.view.menu.MenuBuilder setHeaderTitleInt(int) -> setHeaderTitleInt
+    1307:1308:androidx.appcompat.view.menu.MenuBuilder setHeaderViewInt(android.view.View) -> setHeaderViewInt
+    1343:1344:void setOptionalIconsVisible(boolean) -> setOptionalIconsVisible
+    1404:1405:void setOverrideVisibleItems(boolean) -> setOverrideVisibleItems
+    762:765:void setQwertyMode(boolean) -> setQwertyMode
+    803:809:void setShortcutsVisible(boolean) -> setShortcutsVisible
+    812:816:void setShortcutsVisibleInner(boolean) -> setShortcutsVisibleInner
+    747:747:int size() -> size
+    1086:1092:void startDispatchingItemsChanged() -> startDispatchingItemsChanged
+    1078:1083:void stopDispatchingItemsChanged() -> stopDispatchingItemsChanged
+androidx.appcompat.view.menu.MenuDialogHelper -> androidx.appcompat.view.menu.MenuDialogHelper:
+    43:45:void <init>(androidx.appcompat.view.menu.MenuBuilder) -> <init>
+    140:143:void dismiss() -> dismiss
+    170:171:void onClick(android.content.DialogInterface,int) -> onClick
+    152:158:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    147:148:void onDismiss(android.content.DialogInterface) -> onDismiss
+    95:126:boolean onKey(android.content.DialogInterface,int,android.view.KeyEvent) -> onKey
+    162:165:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+    131:132:void setPresenterCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setPresenterCallback
+    54:91:void show(android.os.IBinder) -> show
+androidx.appcompat.view.menu.MenuItemImpl -> androidx.appcompat.view.menu.MenuItemImpl:
+    68:146:void <init>(androidx.appcompat.view.menu.MenuBuilder,int,int,int,int,java.lang.CharSequence,int) -> <init>
+    691:692:void actionFormatChanged() -> actionFormatChanged
+    402:405:void appendModifier(java.lang.StringBuilder,int,int,java.lang.String) -> appendModifier
+    570:585:android.graphics.drawable.Drawable applyIconTintIfNecessary(android.graphics.drawable.Drawable) -> applyIconTintIfNecessary
+    838:851:boolean collapseActionView() -> collapseActionView
+    824:833:boolean expandActionView() -> expandActionView
+    788:788:android.view.ActionProvider getActionProvider() -> getActionProvider
+    770:776:android.view.View getActionView() -> getActionView
+    275:275:int getAlphabeticModifiers() -> getAlphabeticModifiers
+    243:243:char getAlphabeticShortcut() -> getAlphabeticShortcut
+    233:233:java.lang.Runnable getCallback() -> getCallback
+    891:891:java.lang.CharSequence getContentDescription() -> getContentDescription
+    203:203:int getGroupId() -> getGroupId
+    500:511:android.graphics.drawable.Drawable getIcon() -> getIcon
+    550:550:android.content.res.ColorStateList getIconTintList() -> getIconTintList
+    566:566:android.graphics.PorterDuff$Mode getIconTintMode() -> getIconTintMode
+    223:223:android.content.Intent getIntent() -> getIntent
+    209:209:int getItemId() -> getItemId
+    687:687:android.view.ContextMenu$ContextMenuInfo getMenuInfo() -> getMenuInfo
+    285:285:int getNumericModifiers() -> getNumericModifiers
+    280:280:char getNumericShortcut() -> getNumericShortcut
+    214:214:int getOrder() -> getOrder
+    218:218:int getOrdering() -> getOrdering
+    342:342:char getShortcut() -> getShortcut
+    352:398:java.lang.String getShortcutLabel() -> getShortcutLabel
+    419:419:android.view.SubMenu getSubMenu() -> getSubMenu
+    794:794:androidx.core.view.ActionProvider getSupportActionProvider() -> getSupportActionProvider
+    436:436:java.lang.CharSequence getTitle() -> getTitle
+    471:480:java.lang.CharSequence getTitleCondensed() -> getTitleCondensed
+    446:448:java.lang.CharSequence getTitleForItemView(androidx.appcompat.view.menu.MenuView$ItemView) -> getTitleForItemView
+    905:905:java.lang.CharSequence getTooltipText() -> getTooltipText
+    855:861:boolean hasCollapsibleActionView() -> hasCollapsibleActionView
+    424:424:boolean hasSubMenu() -> hasSubMenu
+    154:180:boolean invoke() -> invoke
+    702:702:boolean isActionButton() -> isActionButton
+    871:871:boolean isActionViewExpanded() -> isActionViewExpanded
+    590:590:boolean isCheckable() -> isCheckable
+    614:614:boolean isChecked() -> isChecked
+    185:185:boolean isEnabled() -> isEnabled
+    609:609:boolean isExclusiveCheckable() -> isExclusiveCheckable
+    640:643:boolean isVisible() -> isVisible
+    706:706:boolean requestsActionButton() -> requestsActionButton
+    711:711:boolean requiresActionButton() -> requiresActionButton
+    716:716:boolean requiresOverflow() -> requiresOverflow
+    782:782:android.view.MenuItem setActionProvider(android.view.ActionProvider) -> setActionProvider
+    51:51:android.view.MenuItem setActionView(int) -> setActionView
+    51:51:android.view.MenuItem setActionView(android.view.View) -> setActionView
+    751:757:androidx.core.internal.view.SupportMenuItem setActionView(android.view.View) -> setActionView
+    762:765:androidx.core.internal.view.SupportMenuItem setActionView(int) -> setActionView
+    865:867:void setActionViewExpanded(boolean) -> setActionViewExpanded
+    248:256:android.view.MenuItem setAlphabeticShortcut(char) -> setAlphabeticShortcut
+    261:270:android.view.MenuItem setAlphabeticShortcut(char,int) -> setAlphabeticShortcut
+    237:238:android.view.MenuItem setCallback(java.lang.Runnable) -> setCallback
+    595:601:android.view.MenuItem setCheckable(boolean) -> setCheckable
+    619:627:android.view.MenuItem setChecked(boolean) -> setChecked
+    631:636:void setCheckedInt(boolean) -> setCheckedInt
+    51:51:android.view.MenuItem setContentDescription(java.lang.CharSequence) -> setContentDescription
+    882:886:androidx.core.internal.view.SupportMenuItem setContentDescription(java.lang.CharSequence) -> setContentDescription
+    190:198:android.view.MenuItem setEnabled(boolean) -> setEnabled
+    605:606:void setExclusiveCheckable(boolean) -> setExclusiveCheckable
+    516:521:android.view.MenuItem setIcon(android.graphics.drawable.Drawable) -> setIcon
+    526:533:android.view.MenuItem setIcon(int) -> setIcon
+    539:545:android.view.MenuItem setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    555:561:android.view.MenuItem setIconTintMode(android.graphics.PorterDuff$Mode) -> setIconTintMode
+    228:229:android.view.MenuItem setIntent(android.content.Intent) -> setIntent
+    720:725:void setIsActionButton(boolean) -> setIsActionButton
+    682:683:void setMenuInfo(android.view.ContextMenu$ContextMenuInfo) -> setMenuInfo
+    290:298:android.view.MenuItem setNumericShortcut(char) -> setNumericShortcut
+    303:312:android.view.MenuItem setNumericShortcut(char,int) -> setNumericShortcut
+    876:877:android.view.MenuItem setOnActionExpandListener(android.view.MenuItem$OnActionExpandListener) -> setOnActionExpandListener
+    672:673:android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    317:322:android.view.MenuItem setShortcut(char,char) -> setShortcut
+    328:335:android.view.MenuItem setShortcut(char,char,int,int) -> setShortcut
+    733:747:void setShowAsAction(int) -> setShowAsAction
+    51:51:android.view.MenuItem setShowAsActionFlags(int) -> setShowAsActionFlags
+    818:819:androidx.core.internal.view.SupportMenuItem setShowAsActionFlags(int) -> setShowAsActionFlags
+    428:431:void setSubMenu(androidx.appcompat.view.menu.SubMenuBuilder) -> setSubMenu
+    799:813:androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider) -> setSupportActionProvider
+    453:461:android.view.MenuItem setTitle(java.lang.CharSequence) -> setTitle
+    466:466:android.view.MenuItem setTitle(int) -> setTitle
+    486:495:android.view.MenuItem setTitleCondensed(java.lang.CharSequence) -> setTitleCondensed
+    51:51:android.view.MenuItem setTooltipText(java.lang.CharSequence) -> setTooltipText
+    896:900:androidx.core.internal.view.SupportMenuItem setTooltipText(java.lang.CharSequence) -> setTooltipText
+    665:667:android.view.MenuItem setVisible(boolean) -> setVisible
+    655:657:boolean setVisibleInt(boolean) -> setVisibleInt
+    698:698:boolean shouldShowIcon() -> shouldShowIcon
+    414:414:boolean shouldShowShortcut() -> shouldShowShortcut
+    728:728:boolean showsTextAsAction() -> showsTextAsAction
+    678:678:java.lang.String toString() -> toString
+androidx.appcompat.view.menu.MenuItemImpl$1 -> androidx.appcompat.view.menu.MenuItemImpl$1:
+    806:806:void <init>(androidx.appcompat.view.menu.MenuItemImpl) -> <init>
+    809:810:void onActionProviderVisibilityChanged(boolean) -> onActionProviderVisibilityChanged
+androidx.appcompat.view.menu.MenuItemWrapperICS -> androidx.appcompat.view.menu.MenuItemWrapperICS:
+    56:61:void <init>(android.content.Context,androidx.core.internal.view.SupportMenuItem) -> <init>
+    326:326:boolean collapseActionView() -> collapseActionView
+    321:321:boolean expandActionView() -> expandActionView
+    312:316:android.view.ActionProvider getActionProvider() -> getActionProvider
+    291:295:android.view.View getActionView() -> getActionView
+    188:188:int getAlphabeticModifiers() -> getAlphabeticModifiers
+    183:183:char getAlphabeticShortcut() -> getAlphabeticShortcut
+    349:349:java.lang.CharSequence getContentDescription() -> getContentDescription
+    70:70:int getGroupId() -> getGroupId
+    120:120:android.graphics.drawable.Drawable getIcon() -> getIcon
+    371:371:android.content.res.ColorStateList getIconTintList() -> getIconTintList
+    382:382:android.graphics.PorterDuff$Mode getIconTintMode() -> getIconTintMode
+    131:131:android.content.Intent getIntent() -> getIntent
+    65:65:int getItemId() -> getItemId
+    253:253:android.view.ContextMenu$ContextMenuInfo getMenuInfo() -> getMenuInfo
+    166:166:int getNumericModifiers() -> getNumericModifiers
+    161:161:char getNumericShortcut() -> getNumericShortcut
+    75:75:int getOrder() -> getOrder
+    241:241:android.view.SubMenu getSubMenu() -> getSubMenu
+    92:92:java.lang.CharSequence getTitle() -> getTitle
+    103:103:java.lang.CharSequence getTitleCondensed() -> getTitleCondensed
+    360:360:java.lang.CharSequence getTooltipText() -> getTooltipText
+    236:236:boolean hasSubMenu() -> hasSubMenu
+    331:331:boolean isActionViewExpanded() -> isActionViewExpanded
+    199:199:boolean isCheckable() -> isCheckable
+    210:210:boolean isChecked() -> isChecked
+    231:231:boolean isEnabled() -> isEnabled
+    220:220:boolean isVisible() -> isVisible
+    301:307:android.view.MenuItem setActionProvider(android.view.ActionProvider) -> setActionProvider
+    269:273:android.view.MenuItem setActionView(android.view.View) -> setActionView
+    279:286:android.view.MenuItem setActionView(int) -> setActionView
+    171:172:android.view.MenuItem setAlphabeticShortcut(char) -> setAlphabeticShortcut
+    177:178:android.view.MenuItem setAlphabeticShortcut(char,int) -> setAlphabeticShortcut
+    193:194:android.view.MenuItem setCheckable(boolean) -> setCheckable
+    204:205:android.view.MenuItem setChecked(boolean) -> setChecked
+    343:344:android.view.MenuItem setContentDescription(java.lang.CharSequence) -> setContentDescription
+    225:226:android.view.MenuItem setEnabled(boolean) -> setEnabled
+    387:395:void setExclusiveCheckable(boolean) -> setExclusiveCheckable
+    108:109:android.view.MenuItem setIcon(android.graphics.drawable.Drawable) -> setIcon
+    114:115:android.view.MenuItem setIcon(int) -> setIcon
+    365:366:android.view.MenuItem setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    376:377:android.view.MenuItem setIconTintMode(android.graphics.PorterDuff$Mode) -> setIconTintMode
+    125:126:android.view.MenuItem setIntent(android.content.Intent) -> setIntent
+    149:150:android.view.MenuItem setNumericShortcut(char) -> setNumericShortcut
+    155:156:android.view.MenuItem setNumericShortcut(char,int) -> setNumericShortcut
+    336:338:android.view.MenuItem setOnActionExpandListener(android.view.MenuItem$OnActionExpandListener) -> setOnActionExpandListener
+    246:248:android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    136:137:android.view.MenuItem setShortcut(char,char) -> setShortcut
+    143:144:android.view.MenuItem setShortcut(char,char,int,int) -> setShortcut
+    258:259:void setShowAsAction(int) -> setShowAsAction
+    263:264:android.view.MenuItem setShowAsActionFlags(int) -> setShowAsActionFlags
+    80:81:android.view.MenuItem setTitle(java.lang.CharSequence) -> setTitle
+    86:87:android.view.MenuItem setTitle(int) -> setTitle
+    97:98:android.view.MenuItem setTitleCondensed(java.lang.CharSequence) -> setTitleCondensed
+    354:355:android.view.MenuItem setTooltipText(java.lang.CharSequence) -> setTooltipText
+    215:215:android.view.MenuItem setVisible(boolean) -> setVisible
+androidx.appcompat.view.menu.MenuItemWrapperICS$ActionProviderWrapper -> androidx.appcompat.view.menu.MenuItemWrapperICS$ActionProviderWrapper:
+    432:435:void <init>(androidx.appcompat.view.menu.MenuItemWrapperICS,android.content.Context,android.view.ActionProvider) -> <init>
+    449:449:boolean hasSubMenu() -> hasSubMenu
+    439:439:android.view.View onCreateActionView() -> onCreateActionView
+    444:444:boolean onPerformDefaultAction() -> onPerformDefaultAction
+    454:455:void onPrepareSubMenu(android.view.SubMenu) -> onPrepareSubMenu
+androidx.appcompat.view.menu.MenuItemWrapperICS$ActionProviderWrapperJB -> androidx.appcompat.view.menu.MenuItemWrapperICS$ActionProviderWrapperJB:
+    463:465:void <init>(androidx.appcompat.view.menu.MenuItemWrapperICS,android.content.Context,android.view.ActionProvider) -> <init>
+    479:479:boolean isVisible() -> isVisible
+    495:498:void onActionProviderVisibilityChanged(boolean) -> onActionProviderVisibilityChanged
+    469:469:android.view.View onCreateActionView(android.view.MenuItem) -> onCreateActionView
+    474:474:boolean overridesItemVisibility() -> overridesItemVisibility
+    484:485:void refreshVisibility() -> refreshVisibility
+    489:491:void setVisibilityListener(androidx.core.view.ActionProvider$VisibilityListener) -> setVisibilityListener
+androidx.appcompat.view.menu.MenuItemWrapperICS$CollapsibleActionViewWrapper -> androidx.appcompat.view.menu.MenuItemWrapperICS$CollapsibleActionViewWrapper:
+    512:515:void <init>(android.view.View) -> <init>
+    528:528:android.view.View getWrappedView() -> getWrappedView
+    524:525:void onActionViewCollapsed() -> onActionViewCollapsed
+    519:520:void onActionViewExpanded() -> onActionViewExpanded
+androidx.appcompat.view.menu.MenuItemWrapperICS$OnActionExpandListenerWrapper -> androidx.appcompat.view.menu.MenuItemWrapperICS$OnActionExpandListenerWrapper:
+    414:416:void <init>(androidx.appcompat.view.menu.MenuItemWrapperICS,android.view.MenuItem$OnActionExpandListener) -> <init>
+    425:425:boolean onMenuItemActionCollapse(android.view.MenuItem) -> onMenuItemActionCollapse
+    420:420:boolean onMenuItemActionExpand(android.view.MenuItem) -> onMenuItemActionExpand
+androidx.appcompat.view.menu.MenuItemWrapperICS$OnMenuItemClickListenerWrapper -> androidx.appcompat.view.menu.MenuItemWrapperICS$OnMenuItemClickListenerWrapper:
+    401:403:void <init>(androidx.appcompat.view.menu.MenuItemWrapperICS,android.view.MenuItem$OnMenuItemClickListener) -> <init>
+    407:407:boolean onMenuItemClick(android.view.MenuItem) -> onMenuItemClick
+androidx.appcompat.view.menu.MenuPopup -> androidx.appcompat.view.menu.MenuPopup:
+    39:39:void <init>() -> <init>
+    217:217:boolean closeMenuOnSubMenuOpened() -> closeMenuOnSubMenuOpened
+    113:113:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    108:108:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    78:78:android.graphics.Rect getEpicenterBounds() -> getEpicenterBounds
+    118:118:int getId() -> getId
+    103:103:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    99:99:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    143:172:int measureIndividualMenuWidth(android.widget.ListAdapter,android.view.ViewGroup,android.content.Context,int) -> measureIndividualMenuWidth
+    123:132:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+    71:72:void setEpicenterBounds(android.graphics.Rect) -> setEpicenterBounds
+    202:213:boolean shouldPreserveIconSpacing(androidx.appcompat.view.menu.MenuBuilder) -> shouldPreserveIconSpacing
+    184:187:androidx.appcompat.view.menu.MenuAdapter toMenuAdapter(android.widget.ListAdapter) -> toMenuAdapter
+androidx.appcompat.view.menu.MenuPopupHelper -> androidx.appcompat.view.menu.MenuPopupHelper:
+    69:70:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> <init>
+    74:75:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder,android.view.View) -> <init>
+    80:81:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder,android.view.View,boolean,int) -> <init>
+    61:340:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder,android.view.View,boolean,int,int) -> <init>
+    230:265:androidx.appcompat.view.menu.MenuPopup createPopup() -> createPopup
+    304:307:void dismiss() -> dismiss
+    140:140:int getGravity() -> getGravity
+    351:351:android.widget.ListView getListView() -> getListView
+    161:164:androidx.appcompat.view.menu.MenuPopup getPopup() -> getPopup
+    326:326:boolean isShowing() -> isShowing
+    318:323:void onDismiss() -> onDismiss
+    106:107:void setAnchorView(android.view.View) -> setAnchorView
+    119:123:void setForceShowIcon(boolean) -> setForceShowIcon
+    133:134:void setGravity(int) -> setGravity
+    95:96:void setOnDismissListener(android.widget.PopupWindow$OnDismissListener) -> setOnDismissListener
+    331:335:void setPresenterCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setPresenterCallback
+    144:147:void show() -> show
+    150:153:void show(int,int) -> show
+    269:297:void showPopup(int,int,boolean,boolean) -> showPopup
+    174:183:boolean tryShow() -> tryShow
+    210:219:boolean tryShow(int,int) -> tryShow
+androidx.appcompat.view.menu.MenuPopupHelper$1 -> androidx.appcompat.view.menu.MenuPopupHelper$1:
+    340:340:void <init>(androidx.appcompat.view.menu.MenuPopupHelper) -> <init>
+    343:344:void onDismiss() -> onDismiss
+androidx.appcompat.view.menu.MenuWrapperICS -> androidx.appcompat.view.menu.MenuWrapperICS:
+    41:46:void <init>(android.content.Context,androidx.core.internal.view.SupportMenu) -> <init>
+    50:50:android.view.MenuItem add(java.lang.CharSequence) -> add
+    55:55:android.view.MenuItem add(int) -> add
+    60:60:android.view.MenuItem add(int,int,int,java.lang.CharSequence) -> add
+    65:65:android.view.MenuItem add(int,int,int,int) -> add
+    92:106:int addIntentOptions(int,int,int,android.content.ComponentName,android.content.Intent[],android.content.Intent,int,android.view.MenuItem[]) -> addIntentOptions
+    70:70:android.view.SubMenu addSubMenu(java.lang.CharSequence) -> addSubMenu
+    75:75:android.view.SubMenu addSubMenu(int) -> addSubMenu
+    80:80:android.view.SubMenu addSubMenu(int,int,int,java.lang.CharSequence) -> addSubMenu
+    85:86:android.view.SubMenu addSubMenu(int,int,int,int) -> addSubMenu
+    123:125:void clear() -> clear
+    164:165:void close() -> close
+    149:149:android.view.MenuItem findItem(int) -> findItem
+    159:159:android.view.MenuItem getItem(int) -> getItem
+    144:144:boolean hasVisibleItems() -> hasVisibleItems
+    174:174:boolean isShortcutKey(int,android.view.KeyEvent) -> isShortcutKey
+    179:179:boolean performIdentifierAction(int,int) -> performIdentifierAction
+    169:169:boolean performShortcut(int,android.view.KeyEvent,int) -> performShortcut
+    117:119:void removeGroup(int) -> removeGroup
+    111:113:void removeItem(int) -> removeItem
+    129:130:void setGroupCheckable(int,boolean,boolean) -> setGroupCheckable
+    139:140:void setGroupEnabled(int,boolean) -> setGroupEnabled
+    134:135:void setGroupVisible(int,boolean) -> setGroupVisible
+    184:185:void setQwertyMode(boolean) -> setQwertyMode
+    154:154:int size() -> size
+androidx.appcompat.view.menu.StandardMenuPopup -> androidx.appcompat.view.menu.StandardMenuPopup:
+    46:46:void <clinit>() -> <clinit>
+    60:136:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder,android.view.View,int,int,boolean) -> <init>
+    223:223:void addMenu(androidx.appcompat.view.menu.MenuBuilder) -> addMenu
+    215:218:void dismiss() -> dismiss
+    311:311:boolean flagActionItems() -> flagActionItems
+    344:344:android.widget.ListView getListView() -> getListView
+    227:227:boolean isShowing() -> isShowing
+    301:307:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    232:245:void onDismiss() -> onDismiss
+    330:334:boolean onKey(android.view.View,int,android.view.KeyEvent) -> onKey
+    321:321:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    316:316:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    263:295:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    325:326:void setAnchorView(android.view.View) -> setAnchorView
+    258:259:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    140:141:void setForceShowIcon(boolean) -> setForceShowIcon
+    145:146:void setGravity(int) -> setGravity
+    350:351:void setHorizontalOffset(int) -> setHorizontalOffset
+    339:340:void setOnDismissListener(android.widget.PopupWindow$OnDismissListener) -> setOnDismissListener
+    360:361:void setShowTitle(boolean) -> setShowTitle
+    355:356:void setVerticalOffset(int) -> setVerticalOffset
+    208:211:void show() -> show
+    149:203:boolean tryShow() -> tryShow
+    249:254:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.view.menu.StandardMenuPopup$1 -> androidx.appcompat.view.menu.StandardMenuPopup$1:
+    61:61:void <init>(androidx.appcompat.view.menu.StandardMenuPopup) -> <init>
+    67:76:void onGlobalLayout() -> onGlobalLayout
+androidx.appcompat.view.menu.StandardMenuPopup$2 -> androidx.appcompat.view.menu.StandardMenuPopup$2:
+    80:80:void <init>(androidx.appcompat.view.menu.StandardMenuPopup) -> <init>
+    83:83:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    87:92:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.appcompat.view.menu.SubMenuBuilder -> androidx.appcompat.view.menu.SubMenuBuilder:
+    43:47:void <init>(android.content.Context,androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> <init>
+    138:138:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    90:91:boolean dispatchMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> dispatchMenuItemSelected
+    133:133:boolean expandItemActionView(androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    143:147:java.lang.String getActionViewStatesKey() -> getActionViewStatesKey
+    75:75:android.view.MenuItem getItem() -> getItem
+    70:70:android.view.Menu getParentMenu() -> getParentMenu
+    85:85:androidx.appcompat.view.menu.MenuBuilder getRootMenu() -> getRootMenu
+    157:157:boolean isGroupDividerEnabled() -> isGroupDividerEnabled
+    56:56:boolean isQwertyMode() -> isQwertyMode
+    66:66:boolean isShortcutsVisible() -> isShortcutsVisible
+    80:81:void setCallback(androidx.appcompat.view.menu.MenuBuilder$Callback) -> setCallback
+    152:153:void setGroupDividerEnabled(boolean) -> setGroupDividerEnabled
+    108:108:android.view.SubMenu setHeaderIcon(android.graphics.drawable.Drawable) -> setHeaderIcon
+    113:113:android.view.SubMenu setHeaderIcon(int) -> setHeaderIcon
+    118:118:android.view.SubMenu setHeaderTitle(java.lang.CharSequence) -> setHeaderTitle
+    123:123:android.view.SubMenu setHeaderTitle(int) -> setHeaderTitle
+    128:128:android.view.SubMenu setHeaderView(android.view.View) -> setHeaderView
+    96:97:android.view.SubMenu setIcon(android.graphics.drawable.Drawable) -> setIcon
+    102:103:android.view.SubMenu setIcon(int) -> setIcon
+    51:52:void setQwertyMode(boolean) -> setQwertyMode
+    61:62:void setShortcutsVisible(boolean) -> setShortcutsVisible
+androidx.appcompat.view.menu.SubMenuWrapperICS -> androidx.appcompat.view.menu.SubMenuWrapperICS:
+    39:41:void <init>(android.content.Context,androidx.core.internal.view.SupportSubMenu) -> <init>
+    75:76:void clearHeader() -> clearHeader
+    92:92:android.view.MenuItem getItem() -> getItem
+    57:58:android.view.SubMenu setHeaderIcon(int) -> setHeaderIcon
+    63:64:android.view.SubMenu setHeaderIcon(android.graphics.drawable.Drawable) -> setHeaderIcon
+    45:46:android.view.SubMenu setHeaderTitle(int) -> setHeaderTitle
+    51:52:android.view.SubMenu setHeaderTitle(java.lang.CharSequence) -> setHeaderTitle
+    69:70:android.view.SubMenu setHeaderView(android.view.View) -> setHeaderView
+    80:81:android.view.SubMenu setIcon(int) -> setIcon
+    86:87:android.view.SubMenu setIcon(android.graphics.drawable.Drawable) -> setIcon
+androidx.appcompat.widget.AbsActionBarView -> androidx.appcompat.widget.AbsActionBarView:
+    54:55:void <init>(android.content.Context) -> <init>
+    58:59:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:71:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    36:36:void access$001(androidx.appcompat.widget.AbsActionBarView,int) -> access$001
+    36:36:void access$101(androidx.appcompat.widget.AbsActionBarView,int) -> access$101
+    181:183:void animateToVisibility(int) -> animateToVisibility
+    237:237:boolean canShowOverflowMenu() -> canShowOverflowMenu
+    241:244:void dismissPopupMenus() -> dismissPopupMenus
+    153:156:int getAnimatedVisibility() -> getAnimatedVisibility
+    146:146:int getContentHeight() -> getContentHeight
+    212:215:boolean hideOverflowMenu() -> hideOverflowMenu
+    226:229:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    219:222:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    233:233:boolean isOverflowReserved() -> isOverflowReserved
+    248:254:int measureChildView(android.view.View,int,int,int) -> measureChildView
+    258:258:int next(int,int,boolean) -> next
+    75:87:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    120:137:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    96:112:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    262:272:int positionChild(android.view.View,int,int,int,boolean) -> positionChild
+    203:209:void postShowOverflowMenu() -> postShowOverflowMenu
+    141:143:void setContentHeight(int) -> setContentHeight
+    187:193:void setVisibility(int) -> setVisibility
+    160:176:androidx.core.view.ViewPropertyAnimatorCompat setupAnimatorToVisibility(int,long) -> setupAnimatorToVisibility
+    196:199:boolean showOverflowMenu() -> showOverflowMenu
+androidx.appcompat.widget.AbsActionBarView$1 -> androidx.appcompat.widget.AbsActionBarView$1:
+    203:203:void <init>(androidx.appcompat.widget.AbsActionBarView) -> <init>
+    206:207:void run() -> run
+androidx.appcompat.widget.AbsActionBarView$VisibilityAnimListener -> androidx.appcompat.widget.AbsActionBarView$VisibilityAnimListener:
+    275:276:void <init>(androidx.appcompat.widget.AbsActionBarView) -> <init>
+    302:303:void onAnimationCancel(android.view.View) -> onAnimationCancel
+    294:298:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    288:290:void onAnimationStart(android.view.View) -> onAnimationStart
+    281:283:androidx.appcompat.widget.AbsActionBarView$VisibilityAnimListener withFinalVisibility(androidx.core.view.ViewPropertyAnimatorCompat,int) -> withFinalVisibility
+androidx.appcompat.widget.ActionBarBackgroundDrawable -> androidx.appcompat.widget.ActionBarBackgroundDrawable:
+    32:34:void <init>(androidx.appcompat.widget.ActionBarContainer) -> <init>
+    38:50:void draw(android.graphics.Canvas) -> draw
+    62:62:int getOpacity() -> getOpacity
+    68:78:void getOutline(android.graphics.Outline) -> getOutline
+    54:54:void setAlpha(int) -> setAlpha
+    58:58:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+androidx.appcompat.widget.ActionBarContainer -> androidx.appcompat.widget.ActionBarContainer:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:80:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    168:178:void drawableStateChanged() -> drawableStateChanged
+    267:268:int getMeasuredHeightWithMargins(android.view.View) -> getMeasuredHeightWithMargins
+    243:243:android.view.View getTabContainer() -> getTabContainer
+    263:263:boolean isCollapsed(android.view.View) -> isCollapsed
+    182:192:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    84:87:void onFinishInflate() -> onFinishInflate
+    222:225:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    209:209:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    303:347:void onLayout(boolean,int,int,int,int) -> onLayout
+    273:299:void onMeasure(int,int) -> onMeasure
+    214:217:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    90:108:void setPrimaryBackground(android.graphics.drawable.Drawable) -> setPrimaryBackground
+    132:149:void setSplitBackground(android.graphics.drawable.Drawable) -> setSplitBackground
+    111:129:void setStackedBackground(android.graphics.drawable.Drawable) -> setStackedBackground
+    229:240:void setTabContainer(androidx.appcompat.widget.ScrollingTabContainerView) -> setTabContainer
+    202:205:void setTransitioning(boolean) -> setTransitioning
+    153:158:void setVisibility(int) -> setVisibility
+    250:250:android.view.ActionMode startActionModeForChild(android.view.View,android.view.ActionMode$Callback) -> startActionModeForChild
+    256:259:android.view.ActionMode startActionModeForChild(android.view.View,android.view.ActionMode$Callback,int) -> startActionModeForChild
+    162:163:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+androidx.appcompat.widget.ActionBarContextView -> androidx.appcompat.widget.ActionBarContextView:
+    59:60:void <init>(android.content.Context) -> <init>
+    63:64:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    68:86:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    42:42:void animateToVisibility(int) -> animateToVisibility
+    42:42:boolean canShowOverflowMenu() -> canShowOverflowMenu
+    195:199:void closeMode() -> closeMode
+    42:42:void dismissPopupMenus() -> dismissPopupMenus
+    239:239:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    244:244:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    42:42:int getAnimatedVisibility() -> getAnimatedVisibility
+    42:42:int getContentHeight() -> getContentHeight
+    132:132:java.lang.CharSequence getSubtitle() -> getSubtitle
+    128:128:java.lang.CharSequence getTitle() -> getTitle
+    221:224:boolean hideOverflowMenu() -> hideOverflowMenu
+    163:192:void initForMode(androidx.appcompat.view.ActionMode) -> initForMode
+    136:160:void initTitle() -> initTitle
+    42:42:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    229:232:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    42:42:boolean isOverflowReserved() -> isOverflowReserved
+    384:384:boolean isTitleOptional() -> isTitleOptional
+    202:209:void killMode() -> killMode
+    90:95:void onDetachedFromWindow() -> onDetachedFromWindow
+    42:42:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    365:374:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    329:356:void onLayout(boolean,int,int,int,int) -> onLayout
+    249:325:void onMeasure(int,int) -> onMeasure
+    42:42:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    42:42:void postShowOverflowMenu() -> postShowOverflowMenu
+    99:100:void setContentHeight(int) -> setContentHeight
+    103:115:void setCustomView(android.view.View) -> setCustomView
+    123:125:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    118:120:void setTitle(java.lang.CharSequence) -> setTitle
+    377:381:void setTitleOptional(boolean) -> setTitleOptional
+    42:42:void setVisibility(int) -> setVisibility
+    42:42:androidx.core.view.ViewPropertyAnimatorCompat setupAnimatorToVisibility(int,long) -> setupAnimatorToVisibility
+    360:360:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+    213:216:boolean showOverflowMenu() -> showOverflowMenu
+androidx.appcompat.widget.ActionBarContextView$1 -> androidx.appcompat.widget.ActionBarContextView$1:
+    172:172:void <init>(androidx.appcompat.widget.ActionBarContextView,androidx.appcompat.view.ActionMode) -> <init>
+    175:176:void onClick(android.view.View) -> onClick
+androidx.appcompat.widget.ActionBarOverlayLayout -> androidx.appcompat.widget.ActionBarOverlayLayout:
+    147:147:void <clinit>() -> <clinit>
+    155:156:void <init>(android.content.Context) -> <init>
+    71:163:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    741:743:void addActionBarHideOffset() -> addActionBarHideOffset
+    287:305:boolean applyInsets(android.view.View,android.graphics.Rect,boolean,boolean,boolean,boolean) -> applyInsets
+    822:823:boolean canShowOverflowMenu() -> canShowOverflowMenu
+    404:404:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    876:878:void dismissPopups() -> dismissPopups
+    543:552:void draw(android.graphics.Canvas) -> draw
+    311:313:boolean fitSystemWindows(android.graphics.Rect) -> fitSystemWindows
+    63:63:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    389:389:androidx.appcompat.widget.ActionBarOverlayLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    63:63:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    394:394:androidx.appcompat.widget.ActionBarOverlayLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    399:399:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    707:707:int getActionBarHideOffset() -> getActionBarHideOffset
+    682:688:androidx.appcompat.widget.DecorToolbar getDecorToolbar(android.view.View) -> getDecorToolbar
+    670:670:int getNestedScrollAxes() -> getNestedScrollAxes
+    765:766:java.lang.CharSequence getTitle() -> getTitle
+    718:723:void haltActionBarHideOffsetAnimations() -> haltActionBarHideOffsetAnimations
+    792:793:boolean hasIcon() -> hasIcon
+    798:799:boolean hasLogo() -> hasLogo
+    846:847:boolean hideOverflowMenu() -> hideOverflowMenu
+    166:176:void init(android.content.Context) -> init
+    771:783:void initFeature(int) -> initFeature
+    703:703:boolean isHideOnContentScrollEnabled() -> isHideOnContentScrollEnabled
+    211:211:boolean isInOverlayMode() -> isInOverlayMode
+    834:835:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    828:829:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    347:384:android.view.WindowInsets onApplyWindowInsets(android.view.WindowInsets) -> onApplyWindowInsets
+    241:244:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    180:182:void onDetachedFromWindow() -> onDetachedFromWindow
+    520:539:void onLayout(boolean,int,int,int,int) -> onLayout
+    410:516:void onMeasure(int,int) -> onMeasure
+    646:655:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    665:665:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    598:601:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    661:661:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    564:565:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    591:594:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    626:628:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    576:579:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    615:621:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    571:571:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    607:610:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    583:586:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    632:642:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    253:274:void onWindowSystemUiVisibilityChanged(int) -> onWindowSystemUiVisibilityChanged
+    278:283:void onWindowVisibilityChanged(int) -> onWindowVisibilityChanged
+    731:733:void postAddActionBarHideOffset() -> postAddActionBarHideOffset
+    726:728:void postRemoveActionBarHideOffset() -> postRemoveActionBarHideOffset
+    674:679:void pullChildren() -> pullChildren
+    736:738:void removeActionBarHideOffset() -> removeActionBarHideOffset
+    870:872:void restoreToolbarHierarchyState(android.util.SparseArray) -> restoreToolbarHierarchyState
+    864:866:void saveToolbarHierarchyState(android.util.SparseArray) -> saveToolbarHierarchyState
+    711:715:void setActionBarHideOffset(int) -> setActionBarHideOffset
+    185:196:void setActionBarVisibilityCallback(androidx.appcompat.widget.ActionBarOverlayLayout$ActionBarVisibilityCallback) -> setActionBarVisibilityCallback
+    215:216:void setHasNonEmbeddedTabs(boolean) -> setHasNonEmbeddedTabs
+    693:700:void setHideOnContentScrollEnabled(boolean) -> setHideOnContentScrollEnabled
+    804:806:void setIcon(int) -> setIcon
+    810:812:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    816:818:void setLogo(int) -> setLogo
+    858:860:void setMenu(android.view.Menu,androidx.appcompat.view.menu.MenuPresenter$Callback) -> setMenu
+    852:854:void setMenuPrepared() -> setMenuPrepared
+    199:208:void setOverlayMode(boolean) -> setOverlayMode
+    237:237:void setShowingForActionMode(boolean) -> setShowingForActionMode
+    788:788:void setUiOptions(int) -> setUiOptions
+    753:755:void setWindowCallback(android.view.Window$Callback) -> setWindowCallback
+    759:761:void setWindowTitle(java.lang.CharSequence) -> setWindowTitle
+    556:556:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+    746:748:boolean shouldHideActionBarOnFling(float) -> shouldHideActionBarOnFling
+    840:841:boolean showOverflowMenu() -> showOverflowMenu
+androidx.appcompat.widget.ActionBarOverlayLayout$1 -> androidx.appcompat.widget.ActionBarOverlayLayout$1:
+    114:114:void <init>(androidx.appcompat.widget.ActionBarOverlayLayout) -> <init>
+    123:125:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    117:119:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.appcompat.widget.ActionBarOverlayLayout$2 -> androidx.appcompat.widget.ActionBarOverlayLayout$2:
+    128:128:void <init>(androidx.appcompat.widget.ActionBarOverlayLayout) -> <init>
+    131:134:void run() -> run
+androidx.appcompat.widget.ActionBarOverlayLayout$3 -> androidx.appcompat.widget.ActionBarOverlayLayout$3:
+    137:137:void <init>(androidx.appcompat.widget.ActionBarOverlayLayout) -> <init>
+    140:144:void run() -> run
+androidx.appcompat.widget.ActionBarOverlayLayout$LayoutParams -> androidx.appcompat.widget.ActionBarOverlayLayout$LayoutParams:
+    882:883:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    886:887:void <init>(int,int) -> <init>
+    890:891:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    894:895:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+androidx.appcompat.widget.ActionMenuPresenter -> androidx.appcompat.widget.ActionMenuPresenter:
+    75:88:void <init>(android.content.Context) -> <init>
+    54:54:androidx.appcompat.view.menu.MenuBuilder access$000(androidx.appcompat.widget.ActionMenuPresenter) -> access$000
+    54:54:androidx.appcompat.view.menu.MenuBuilder access$100(androidx.appcompat.widget.ActionMenuPresenter) -> access$100
+    54:54:androidx.appcompat.view.menu.MenuView access$200(androidx.appcompat.widget.ActionMenuPresenter) -> access$200
+    54:54:androidx.appcompat.view.menu.MenuBuilder access$300(androidx.appcompat.widget.ActionMenuPresenter) -> access$300
+    54:54:androidx.appcompat.view.menu.MenuBuilder access$400(androidx.appcompat.widget.ActionMenuPresenter) -> access$400
+    54:54:androidx.appcompat.view.menu.MenuBuilder access$500(androidx.appcompat.widget.ActionMenuPresenter) -> access$500
+    54:54:androidx.appcompat.view.menu.MenuView access$600(androidx.appcompat.widget.ActionMenuPresenter) -> access$600
+    207:217:void bindItemView(androidx.appcompat.view.menu.MenuItemImpl,androidx.appcompat.view.menu.MenuView$ItemView) -> bindItemView
+    373:375:boolean dismissPopupMenus() -> dismissPopupMenus
+    275:276:boolean filterLeftoverView(android.view.ViewGroup,int) -> filterLeftoverView
+    317:328:android.view.View findViewForItem(android.view.MenuItem) -> findViewForItem
+    413:543:boolean flagActionItems() -> flagActionItems
+    191:202:android.view.View getItemView(androidx.appcompat.view.menu.MenuItemImpl,android.view.View,android.view.ViewGroup) -> getItemView
+    181:186:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    171:176:android.graphics.drawable.Drawable getOverflowIcon() -> getOverflowIcon
+    354:365:boolean hideOverflowMenu() -> hideOverflowMenu
+    384:388:boolean hideSubMenus() -> hideSubMenus
+    92:130:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    399:399:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    395:395:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    406:406:boolean isOverflowReserved() -> isOverflowReserved
+    548:550:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    133:139:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    561:573:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    554:556:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    281:313:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    577:583:void onSubUiVisibilityChanged(boolean) -> onSubUiVisibilityChanged
+    158:159:void setExpandedActionViewsExclusive(boolean) -> setExpandedActionViewsExclusive
+    153:155:void setItemLimit(int) -> setItemLimit
+    586:588:void setMenuView(androidx.appcompat.widget.ActionMenuView) -> setMenuView
+    162:168:void setOverflowIcon(android.graphics.drawable.Drawable) -> setOverflowIcon
+    148:150:void setReserveOverflow(boolean) -> setReserveOverflow
+    142:145:void setWidthLimit(int,boolean) -> setWidthLimit
+    221:221:boolean shouldIncludeItem(int,androidx.appcompat.view.menu.MenuItemImpl) -> shouldIncludeItem
+    336:345:boolean showOverflowMenu() -> showOverflowMenu
+    226:271:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.widget.ActionMenuPresenter$ActionButtonSubmenu -> androidx.appcompat.widget.ActionMenuPresenter$ActionButtonSubmenu:
+    733:743:void <init>(androidx.appcompat.widget.ActionMenuPresenter,android.content.Context,androidx.appcompat.view.menu.SubMenuBuilder,android.view.View) -> <init>
+    747:751:void onDismiss() -> onDismiss
+androidx.appcompat.widget.ActionMenuPresenter$ActionMenuPopupCallback -> androidx.appcompat.widget.ActionMenuPresenter$ActionMenuPopupCallback:
+    800:801:void <init>(androidx.appcompat.widget.ActionMenuPresenter) -> <init>
+    805:805:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+androidx.appcompat.widget.ActionMenuPresenter$OpenOverflowRunnable -> androidx.appcompat.widget.ActionMenuPresenter$OpenOverflowRunnable:
+    782:784:void <init>(androidx.appcompat.widget.ActionMenuPresenter,androidx.appcompat.widget.ActionMenuPresenter$OverflowPopup) -> <init>
+    788:796:void run() -> run
+androidx.appcompat.widget.ActionMenuPresenter$OverflowMenuButton -> androidx.appcompat.widget.ActionMenuPresenter$OverflowMenuButton:
+    628:667:void <init>(androidx.appcompat.widget.ActionMenuPresenter,android.content.Context) -> <init>
+    687:687:boolean needsDividerAfter() -> needsDividerAfter
+    682:682:boolean needsDividerBefore() -> needsDividerBefore
+    671:677:boolean performClick() -> performClick
+    692:709:boolean setFrame(int,int,int,int) -> setFrame
+androidx.appcompat.widget.ActionMenuPresenter$OverflowMenuButton$1 -> androidx.appcompat.widget.ActionMenuPresenter$OverflowMenuButton$1:
+    638:638:void <init>(androidx.appcompat.widget.ActionMenuPresenter$OverflowMenuButton,android.view.View,androidx.appcompat.widget.ActionMenuPresenter) -> <init>
+    641:645:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    650:651:boolean onForwardingStarted() -> onForwardingStarted
+    659:664:boolean onForwardingStopped() -> onForwardingStopped
+androidx.appcompat.widget.ActionMenuPresenter$OverflowPopup -> androidx.appcompat.widget.ActionMenuPresenter$OverflowPopup:
+    715:719:void <init>(androidx.appcompat.widget.ActionMenuPresenter,android.content.Context,androidx.appcompat.view.menu.MenuBuilder,android.view.View,boolean) -> <init>
+    723:729:void onDismiss() -> onDismiss
+androidx.appcompat.widget.ActionMenuPresenter$PopupPresenterCallback -> androidx.appcompat.widget.ActionMenuPresenter$PopupPresenterCallback:
+    755:756:void <init>(androidx.appcompat.widget.ActionMenuPresenter) -> <init>
+    769:776:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    760:764:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+androidx.appcompat.widget.ActionMenuPresenter$SavedState -> androidx.appcompat.widget.ActionMenuPresenter$SavedState:
+    611:611:void <clinit>() -> <clinit>
+    594:595:void <init>() -> <init>
+    597:599:void <init>(android.os.Parcel) -> <init>
+    603:603:int describeContents() -> describeContents
+    608:609:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.appcompat.widget.ActionMenuPresenter$SavedState$1 -> androidx.appcompat.widget.ActionMenuPresenter$SavedState$1:
+    612:612:void <init>() -> <init>
+    612:612:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    615:615:androidx.appcompat.widget.ActionMenuPresenter$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    612:612:java.lang.Object[] newArray(int) -> newArray
+    620:620:androidx.appcompat.widget.ActionMenuPresenter$SavedState[] newArray(int) -> newArray
+androidx.appcompat.widget.ActionMenuView -> androidx.appcompat.widget.ActionMenuView:
+    78:79:void <init>(android.content.Context) -> <init>
+    82:89:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    609:609:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    722:725:void dismissPopupMenus() -> dismissPopupMenus
+    749:749:boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    50:50:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    50:50:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    582:585:androidx.appcompat.widget.ActionMenuView$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    50:50:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    50:50:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    50:50:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    50:50:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    590:590:androidx.appcompat.widget.ActionMenuView$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    595:604:androidx.appcompat.widget.ActionMenuView$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    615:617:androidx.appcompat.widget.ActionMenuView$LayoutParams generateOverflowButtonLayoutParams() -> generateOverflowButtonLayoutParams
+    650:662:android.view.Menu getMenu() -> getMenu
+    564:565:android.graphics.drawable.Drawable getOverflowIcon() -> getOverflowIcon
+    115:115:int getPopupTheme() -> getPopupTheme
+    631:631:int getWindowAnimations() -> getWindowAnimations
+    732:744:boolean hasSupportDividerBeforeChildAt(int) -> hasSupportDividerBeforeChildAt
+    699:699:boolean hideOverflowMenu() -> hideOverflowMenu
+    638:639:void initialize(androidx.appcompat.view.menu.MenuBuilder) -> initialize
+    624:624:boolean invokeItem(androidx.appcompat.view.menu.MenuItemImpl) -> invokeItem
+    715:715:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    709:709:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    571:571:boolean isOverflowReserved() -> isOverflowReserved
+    406:436:int measureChildForCells(android.view.View,int,int,int,int) -> measureChildForCells
+    130:140:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    543:545:void onDetachedFromWindow() -> onDetachedFromWindow
+    441:539:void onLayout(boolean,int,int,int,int) -> onLayout
+    149:176:void onMeasure(int,int) -> onMeasure
+    180:389:void onMeasureExactFormat(int,int) -> onMeasureExactFormat
+    681:681:androidx.appcompat.view.menu.MenuBuilder peekMenu() -> peekMenu
+    755:756:void setExpandedActionViewsExclusive(boolean) -> setExpandedActionViewsExclusive
+    671:673:void setMenuCallbacks(androidx.appcompat.view.menu.MenuPresenter$Callback,androidx.appcompat.view.menu.MenuBuilder$Callback) -> setMenuCallbacks
+    143:144:void setOnMenuItemClickListener(androidx.appcompat.widget.ActionMenuView$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    553:555:void setOverflowIcon(android.graphics.drawable.Drawable) -> setOverflowIcon
+    577:578:void setOverflowReserved(boolean) -> setOverflowReserved
+    99:107:void setPopupTheme(int) -> setPopupTheme
+    124:126:void setPresenter(androidx.appcompat.widget.ActionMenuPresenter) -> setPresenter
+    690:690:boolean showOverflowMenu() -> showOverflowMenu
+androidx.appcompat.widget.ActionMenuView$ActionMenuPresenterCallback -> androidx.appcompat.widget.ActionMenuView$ActionMenuPresenterCallback:
+    792:793:void <init>() -> <init>
+    797:797:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    801:801:boolean onOpenSubMenu(androidx.appcompat.view.menu.MenuBuilder) -> onOpenSubMenu
+androidx.appcompat.widget.ActionMenuView$LayoutParams -> androidx.appcompat.widget.ActionMenuView$LayoutParams:
+    832:833:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    836:837:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    840:842:void <init>(androidx.appcompat.widget.ActionMenuView$LayoutParams) -> <init>
+    845:847:void <init>(int,int) -> <init>
+    850:852:void <init>(int,int,boolean) -> <init>
+androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback -> androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback:
+    774:775:void <init>(androidx.appcompat.widget.ActionMenuView) -> <init>
+    779:780:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    785:788:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+androidx.appcompat.widget.ActivityChooserModel -> androidx.appcompat.widget.ActivityChooserModel:
+    156:222:void <clinit>() -> <clinit>
+    228:353:void <init>(android.content.Context,java.lang.String) -> <init>
+    727:735:boolean addHistoricalRecord(androidx.appcompat.widget.ActivityChooserModel$HistoricalRecord) -> addHistoricalRecord
+    456:487:android.content.Intent chooseActivity(int) -> chooseActivity
+    654:661:void ensureConsistentState() -> ensureConsistentState
+    329:336:androidx.appcompat.widget.ActivityChooserModel get(android.content.Context,java.lang.String) -> get
+    409:412:android.content.pm.ResolveInfo getActivity(int) -> getActivity
+    394:397:int getActivityCount() -> getActivityCount
+    423:434:int getActivityIndex(android.content.pm.ResolveInfo) -> getActivityIndex
+    511:517:android.content.pm.ResolveInfo getDefaultActivity() -> getDefaultActivity
+    630:632:int getHistoryMaxSize() -> getHistoryMaxSize
+    641:644:int getHistorySize() -> getHistorySize
+    381:383:android.content.Intent getIntent() -> getIntent
+    687:699:boolean loadActivitiesIfNeeded() -> loadActivitiesIfNeeded
+    565:577:void persistHistoricalDataIfNeeded() -> persistHistoricalDataIfNeeded
+    742:753:void pruneExcessiveHistoricalRecordsIfNeeded() -> pruneExcessiveHistoricalRecordsIfNeeded
+    710:717:boolean readHistoricalDataIfNeeded() -> readHistoricalDataIfNeeded
+    964:1032:void readHistoricalDataImpl() -> readHistoricalDataImpl
+    587:596:void setActivitySorter(androidx.appcompat.widget.ActivityChooserModel$ActivitySorter) -> setActivitySorter
+    531:553:void setDefaultActivity(int) -> setDefaultActivity
+    612:622:void setHistoryMaxSize(int) -> setHistoryMaxSize
+    365:373:void setIntent(android.content.Intent) -> setIntent
+    496:499:void setOnChooseActivityListener(androidx.appcompat.widget.ActivityChooserModel$OnChooseActivityListener) -> setOnChooseActivityListener
+    671:677:boolean sortActivitiesIfNeeded() -> sortActivitiesIfNeeded
+androidx.appcompat.widget.ActivityChooserModel$ActivityResolveInfo -> androidx.appcompat.widget.ActivityChooserModel$ActivityResolveInfo:
+    869:871:void <init>(android.content.pm.ResolveInfo) -> <init>
+    852:852:int compareTo(java.lang.Object) -> compareTo
+    898:898:int compareTo(androidx.appcompat.widget.ActivityChooserModel$ActivityResolveInfo) -> compareTo
+    880:893:boolean equals(java.lang.Object) -> equals
+    875:875:int hashCode() -> hashCode
+    903:908:java.lang.String toString() -> toString
+androidx.appcompat.widget.ActivityChooserModel$DefaultSorter -> androidx.appcompat.widget.ActivityChooserModel$DefaultSorter:
+    918:922:void <init>() -> <init>
+    927:960:void sort(android.content.Intent,java.util.List,java.util.List) -> sort
+androidx.appcompat.widget.ActivityChooserModel$HistoricalRecord -> androidx.appcompat.widget.ActivityChooserModel$HistoricalRecord:
+    783:784:void <init>(java.lang.String,long,float) -> <init>
+    793:797:void <init>(android.content.ComponentName,long,float) -> <init>
+    811:834:boolean equals(java.lang.Object) -> equals
+    801:806:int hashCode() -> hashCode
+    839:845:java.lang.String toString() -> toString
+androidx.appcompat.widget.ActivityChooserModel$PersistHistoryAsyncTask -> androidx.appcompat.widget.ActivityChooserModel$PersistHistoryAsyncTask:
+    1040:1040:void <init>(androidx.appcompat.widget.ActivityChooserModel) -> <init>
+    1037:1037:java.lang.Object doInBackground(java.lang.Object[]) -> doInBackground
+    1045:1100:java.lang.Void doInBackground(java.lang.Object[]) -> doInBackground
+androidx.appcompat.widget.ActivityChooserView -> androidx.appcompat.widget.ActivityChooserView:
+    201:202:void <init>(android.content.Context) -> <init>
+    211:212:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    135:296:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    416:423:boolean dismissPopup() -> dismissPopup
+    489:489:androidx.appcompat.widget.ActivityChooserModel getDataModel() -> getDataModel
+    533:541:androidx.appcompat.widget.ListPopupWindow getListPopupWindow() -> getListPopupWindow
+    432:432:boolean isShowingPopup() -> isShowingPopup
+    437:443:void onAttachedToWindow() -> onAttachedToWindow
+    447:460:void onDetachedFromWindow() -> onDetachedFromWindow
+    478:482:void onLayout(boolean,int,int,int,int) -> onLayout
+    464:474:void onMeasure(int,int) -> onMeasure
+    305:310:void setActivityChooserModel(androidx.appcompat.widget.ActivityChooserModel) -> setActivityChooserModel
+    524:525:void setDefaultActionButtonContentDescription(int) -> setDefaultActionButtonContentDescription
+    338:340:void setExpandActivityOverflowButtonContentDescription(int) -> setExpandActivityOverflowButtonContentDescription
+    324:325:void setExpandActivityOverflowButtonDrawable(android.graphics.drawable.Drawable) -> setExpandActivityOverflowButtonDrawable
+    510:511:void setInitialActivityCount(int) -> setInitialActivityCount
+    498:499:void setOnDismissListener(android.widget.PopupWindow$OnDismissListener) -> setOnDismissListener
+    348:349:void setProvider(androidx.core.view.ActionProvider) -> setProvider
+    357:362:boolean showPopup() -> showPopup
+    371:408:void showPopupUnchecked(int) -> showPopupUnchecked
+    549:577:void updateAppearance() -> updateAppearance
+androidx.appcompat.widget.ActivityChooserView$1 -> androidx.appcompat.widget.ActivityChooserView$1:
+    135:135:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    139:141:void onChanged() -> onChanged
+    144:146:void onInvalidated() -> onInvalidated
+androidx.appcompat.widget.ActivityChooserView$2 -> androidx.appcompat.widget.ActivityChooserView$2:
+    149:149:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    152:162:void onGlobalLayout() -> onGlobalLayout
+androidx.appcompat.widget.ActivityChooserView$3 -> androidx.appcompat.widget.ActivityChooserView$3:
+    254:254:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    257:259:void onInitializeAccessibilityNodeInfo(android.view.View,android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+androidx.appcompat.widget.ActivityChooserView$4 -> androidx.appcompat.widget.ActivityChooserView$4:
+    261:261:void <init>(androidx.appcompat.widget.ActivityChooserView,android.view.View) -> <init>
+    264:264:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    269:270:boolean onForwardingStarted() -> onForwardingStarted
+    275:276:boolean onForwardingStopped() -> onForwardingStopped
+androidx.appcompat.widget.ActivityChooserView$5 -> androidx.appcompat.widget.ActivityChooserView$5:
+    285:285:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    288:290:void onChanged() -> onChanged
+androidx.appcompat.widget.ActivityChooserView$ActivityChooserViewAdapter -> androidx.appcompat.widget.ActivityChooserView$ActivityChooserViewAdapter:
+    687:696:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    840:840:int getActivityCount() -> getActivityCount
+    726:734:int getCount() -> getCount
+    848:848:androidx.appcompat.widget.ActivityChooserModel getDataModel() -> getDataModel
+    829:829:android.content.pm.ResolveInfo getDefaultActivity() -> getDefaultActivity
+    844:844:int getHistorySize() -> getHistorySize
+    739:749:java.lang.Object getItem(int) -> getItem
+    755:755:long getItemId(int) -> getItemId
+    712:715:int getItemViewType(int) -> getItemViewType
+    862:862:boolean getShowDefaultActivity() -> getShowDefaultActivity
+    760:793:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    721:721:int getViewTypeCount() -> getViewTypeCount
+    800:818:int measureContentWidth() -> measureContentWidth
+    699:708:void setDataModel(androidx.appcompat.widget.ActivityChooserModel) -> setDataModel
+    822:826:void setMaxActivityCount(int) -> setMaxActivityCount
+    853:859:void setShowDefaultActivity(boolean,boolean) -> setShowDefaultActivity
+    833:837:void setShowFooterView(boolean) -> setShowFooterView
+androidx.appcompat.widget.ActivityChooserView$Callbacks -> androidx.appcompat.widget.ActivityChooserView$Callbacks:
+    585:586:void <init>(androidx.appcompat.widget.ActivityChooserView) -> <init>
+    664:667:void notifyOnDismissListener() -> notifyOnDismissListener
+    623:638:void onClick(android.view.View) -> onClick
+    657:661:void onDismiss() -> onDismiss
+    591:618:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+    643:651:boolean onLongClick(android.view.View) -> onLongClick
+androidx.appcompat.widget.ActivityChooserView$InnerLayout -> androidx.appcompat.widget.ActivityChooserView$InnerLayout:
+    873:873:void <clinit>() -> <clinit>
+    878:882:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+androidx.appcompat.widget.AlertDialogLayout -> androidx.appcompat.widget.AlertDialogLayout:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    217:236:void forceUniformWidth(int,int) -> forceUniformWidth
+    265:345:void onLayout(boolean,int,int,int,int) -> onLayout
+    64:68:void onMeasure(int,int) -> onMeasure
+    248:260:int resolveMinimumHeight(android.view.View) -> resolveMinimumHeight
+    348:349:void setChildFrame(android.view.View,int,int,int,int) -> setChildFrame
+    71:206:boolean tryOnMeasure(int,int) -> tryOnMeasure
+androidx.appcompat.widget.AppCompatAutoCompleteTextView -> androidx.appcompat.widget.AppCompatAutoCompleteTextView:
+    59:59:void <clinit>() -> <clinit>
+    67:68:void <init>(android.content.Context) -> <init>
+    71:72:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    76:93:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    174:181:void drawableStateChanged() -> drawableStateChanged
+    140:141:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    168:169:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    193:193:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    110:114:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    102:106:void setBackgroundResource(int) -> setBackgroundResource
+    203:205:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    97:98:void setDropDownBackgroundResource(int) -> setDropDownBackgroundResource
+    125:128:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    153:156:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    185:189:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+androidx.appcompat.widget.AppCompatBackgroundHelper -> androidx.appcompat.widget.AppCompatBackgroundHelper:
+    37:46:void <init>(android.view.View) -> <init>
+    178:200:boolean applyFrameworkTintUsingColorFilter(android.graphics.drawable.Drawable) -> applyFrameworkTintUsingColorFilter
+    123:140:void applySupportBackgroundTint() -> applySupportBackgroundTint
+    105:105:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    119:119:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    49:77:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    89:93:void onSetBackgroundDrawable(android.graphics.drawable.Drawable) -> onSetBackgroundDrawable
+    80:86:void onSetBackgroundResource(int) -> onSetBackgroundResource
+    143:153:void setInternalBackgroundTint(android.content.res.ColorStateList) -> setInternalBackgroundTint
+    96:102:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    109:116:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    156:160:boolean shouldApplyFrameworkTintUsingColorFilter() -> shouldApplyFrameworkTintUsingColorFilter
+androidx.appcompat.widget.AppCompatButton -> androidx.appcompat.widget.AppCompatButton:
+    66:67:void <init>(android.content.Context) -> <init>
+    70:71:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    75:85:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    161:168:void drawableStateChanged() -> drawableStateChanged
+    329:336:int getAutoSizeMaxTextSize() -> getAutoSizeMaxTextSize
+    313:320:int getAutoSizeMinTextSize() -> getAutoSizeMinTextSize
+    297:304:int getAutoSizeStepGranularity() -> getAutoSizeStepGranularity
+    345:352:int[] getAutoSizeTextAvailableSizes() -> getAutoSizeTextAvailableSizes
+    279:288:int getAutoSizeTextType() -> getAutoSizeTextType
+    127:128:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    155:156:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    399:399:android.content.res.ColorStateList getSupportCompoundDrawablesTintList() -> getSupportCompoundDrawablesTintList
+    421:421:android.graphics.PorterDuff$Mode getSupportCompoundDrawablesTintMode() -> getSupportCompoundDrawablesTintMode
+    180:182:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    186:188:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    192:196:void onLayout(boolean,int,int,int,int) -> onLayout
+    211:215:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+    243:252:void setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int) -> setAutoSizeTextTypeUniformWithConfiguration
+    261:268:void setAutoSizeTextTypeUniformWithPresetSizes(int[],int) -> setAutoSizeTextTypeUniformWithPresetSizes
+    224:231:void setAutoSizeTextTypeWithDefaults(int) -> setAutoSizeTextTypeWithDefaults
+    97:101:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    89:93:void setBackgroundResource(int) -> setBackgroundResource
+    376:378:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    365:368:void setSupportAllCaps(boolean) -> setSupportAllCaps
+    112:115:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    140:143:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    387:389:void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList) -> setSupportCompoundDrawablesTintList
+    409:411:void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff$Mode) -> setSupportCompoundDrawablesTintMode
+    172:176:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+    200:207:void setTextSize(int,float) -> setTextSize
+androidx.appcompat.widget.AppCompatCheckBox -> androidx.appcompat.widget.AppCompatCheckBox:
+    62:63:void <init>(android.content.Context) -> <init>
+    66:67:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    71:83:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    229:236:void drawableStateChanged() -> drawableStateChanged
+    100:103:int getCompoundPaddingLeft() -> getCompoundPaddingLeft
+    179:180:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    207:208:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    126:128:android.content.res.ColorStateList getSupportButtonTintList() -> getSupportButtonTintList
+    151:153:android.graphics.PorterDuff$Mode getSupportButtonTintMode() -> getSupportButtonTintMode
+    213:217:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    221:225:void setBackgroundResource(int) -> setBackgroundResource
+    87:91:void setButtonDrawable(android.graphics.drawable.Drawable) -> setButtonDrawable
+    95:96:void setButtonDrawable(int) -> setButtonDrawable
+    164:167:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    192:195:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    113:116:void setSupportButtonTintList(android.content.res.ColorStateList) -> setSupportButtonTintList
+    138:141:void setSupportButtonTintMode(android.graphics.PorterDuff$Mode) -> setSupportButtonTintMode
+androidx.appcompat.widget.AppCompatCheckedTextView -> androidx.appcompat.widget.AppCompatCheckedTextView:
+    42:42:void <clinit>() -> <clinit>
+    49:50:void <init>(android.content.Context) -> <init>
+    53:54:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    58:70:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    87:91:void drawableStateChanged() -> drawableStateChanged
+    95:95:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    74:75:void setCheckMarkDrawable(int) -> setCheckMarkDrawable
+    105:107:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    79:83:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+androidx.appcompat.widget.AppCompatCompoundButtonHelper -> androidx.appcompat.widget.AppCompatCompoundButtonHelper:
+    39:48:void <init>(android.widget.CompoundButton) -> <init>
+    127:145:void applyButtonTint() -> applyButtonTint
+    148:156:int getCompoundPaddingLeft(int) -> getCompoundPaddingLeft
+    102:102:android.content.res.ColorStateList getSupportButtonTintList() -> getSupportButtonTintList
+    113:113:android.graphics.PorterDuff$Mode getSupportButtonTintMode() -> getSupportButtonTintMode
+    51:92:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    117:124:void onSetButtonDrawable() -> onSetButtonDrawable
+    95:99:void setSupportButtonTintList(android.content.res.ColorStateList) -> setSupportButtonTintList
+    106:110:void setSupportButtonTintMode(android.graphics.PorterDuff$Mode) -> setSupportButtonTintMode
+androidx.appcompat.widget.AppCompatDrawableManager -> androidx.appcompat.widget.AppCompatDrawableManager:
+    54:54:void <clinit>() -> <clinit>
+    51:51:void <init>() -> <init>
+    51:51:android.graphics.PorterDuff$Mode access$000() -> access$000
+    465:469:androidx.appcompat.widget.AppCompatDrawableManager get() -> get
+    475:475:android.graphics.drawable.Drawable getDrawable(android.content.Context,int) -> getDrawable
+    480:480:android.graphics.drawable.Drawable getDrawable(android.content.Context,int,boolean) -> getDrawable
+    507:507:android.graphics.PorterDuffColorFilter getPorterDuffColorFilter(int,android.graphics.PorterDuff$Mode) -> getPorterDuffColorFilter
+    498:498:android.content.res.ColorStateList getTintList(android.content.Context,int) -> getTintList
+    483:485:void onConfigurationChanged(android.content.Context) -> onConfigurationChanged
+    489:489:android.graphics.drawable.Drawable onDrawableLoadedFromResources(android.content.Context,androidx.appcompat.widget.VectorEnabledTintResources,int) -> onDrawableLoadedFromResources
+    58:460:void preload() -> preload
+    502:503:void tintDrawable(android.graphics.drawable.Drawable,androidx.appcompat.widget.TintInfo,int[]) -> tintDrawable
+    494:494:boolean tintDrawableUsingColorFilter(android.content.Context,int,android.graphics.drawable.Drawable) -> tintDrawableUsingColorFilter
+androidx.appcompat.widget.AppCompatDrawableManager$1 -> androidx.appcompat.widget.AppCompatDrawableManager$1:
+    62:128:void <init>() -> <init>
+    360:365:boolean arrayContains(int[],int) -> arrayContains
+    143:143:android.content.res.ColorStateList createBorderlessButtonColorStateList(android.content.Context) -> createBorderlessButtonColorStateList
+    154:181:android.content.res.ColorStateList createButtonColorStateList(android.content.Context,int) -> createButtonColorStateList
+    148:149:android.content.res.ColorStateList createColoredButtonColorStateList(android.content.Context) -> createColoredButtonColorStateList
+    136:137:android.content.res.ColorStateList createDefaultButtonColorStateList(android.content.Context) -> createDefaultButtonColorStateList
+    234:254:android.graphics.drawable.Drawable createDrawableFor(androidx.appcompat.widget.ResourceManagerInternal,android.content.Context,int) -> createDrawableFor
+    185:228:android.content.res.ColorStateList createSwitchThumbColorStateList(android.content.Context) -> createSwitchThumbColorStateList
+    260:309:android.graphics.drawable.LayerDrawable getRatingBarLayerDrawable(androidx.appcompat.widget.ResourceManagerInternal,android.content.Context,int) -> getRatingBarLayerDrawable
+    372:396:android.content.res.ColorStateList getTintListForDrawableRes(android.content.Context,int) -> getTintListForDrawableRes
+    450:456:android.graphics.PorterDuff$Mode getTintModeForDrawableRes(int) -> getTintModeForDrawableRes
+    313:318:void setPorterDuffColorFilter(android.graphics.drawable.Drawable,int,android.graphics.PorterDuff$Mode) -> setPorterDuffColorFilter
+    323:356:boolean tintDrawable(android.content.Context,int,android.graphics.drawable.Drawable) -> tintDrawable
+    402:445:boolean tintDrawableUsingColorFilter(android.content.Context,int,android.graphics.drawable.Drawable) -> tintDrawableUsingColorFilter
+androidx.appcompat.widget.AppCompatEditText -> androidx.appcompat.widget.AppCompatEditText:
+    84:85:void <init>(android.content.Context) -> <init>
+    88:89:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    93:107:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    197:204:void drawableStateChanged() -> drawableStateChanged
+    163:164:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    191:192:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    75:75:java.lang.CharSequence getText() -> getText
+    115:120:android.text.Editable getText() -> getText
+    270:273:android.view.textclassifier.TextClassifier getTextClassifier() -> getTextClassifier
+    223:233:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    278:281:boolean onDragEvent(android.view.DragEvent) -> onDragEvent
+    317:317:androidx.core.view.ContentInfoCompat onReceiveContent(androidx.core.view.ContentInfoCompat) -> onReceiveContent
+    292:295:boolean onTextContextMenuItem(int) -> onTextContextMenuItem
+    133:137:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    125:129:void setBackgroundResource(int) -> setBackgroundResource
+    242:244:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    148:151:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    176:179:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    208:212:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+    252:257:void setTextClassifier(android.view.textclassifier.TextClassifier) -> setTextClassifier
+androidx.appcompat.widget.AppCompatHintHelper -> androidx.appcompat.widget.AppCompatHintHelper:
+    43:44:void <init>() -> <init>
+    28:40:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.InputConnection,android.view.inputmethod.EditorInfo,android.view.View) -> onCreateInputConnection
+androidx.appcompat.widget.AppCompatImageButton -> androidx.appcompat.widget.AppCompatImageButton:
+    66:67:void <init>(android.content.Context) -> <init>
+    70:71:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    75:84:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    245:252:void drawableStateChanged() -> drawableStateChanged
+    156:157:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    184:185:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    211:212:android.content.res.ColorStateList getSupportImageTintList() -> getSupportImageTintList
+    239:240:android.graphics.PorterDuff$Mode getSupportImageTintMode() -> getSupportImageTintMode
+    256:256:boolean hasOverlappingRendering() -> hasOverlappingRendering
+    126:130:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    118:122:void setBackgroundResource(int) -> setBackgroundResource
+    102:106:void setImageBitmap(android.graphics.Bitmap) -> setImageBitmap
+    94:98:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    89:90:void setImageResource(int) -> setImageResource
+    110:114:void setImageURI(android.net.Uri) -> setImageURI
+    141:144:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    169:172:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    196:199:void setSupportImageTintList(android.content.res.ColorStateList) -> setSupportImageTintList
+    224:227:void setSupportImageTintMode(android.graphics.PorterDuff$Mode) -> setSupportImageTintMode
+androidx.appcompat.widget.AppCompatImageHelper -> androidx.appcompat.widget.AppCompatImageHelper:
+    47:49:void <init>(android.widget.ImageView) -> <init>
+    200:222:boolean applyFrameworkTintUsingColorFilter(android.graphics.drawable.Drawable) -> applyFrameworkTintUsingColorFilter
+    141:162:void applySupportImageTint() -> applySupportImageTint
+    123:123:android.content.res.ColorStateList getSupportImageTintList() -> getSupportImageTintList
+    137:137:android.graphics.PorterDuff$Mode getSupportImageTintMode() -> getSupportImageTintMode
+    103:110:boolean hasOverlappingRendering() -> hasOverlappingRendering
+    52:86:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    89:100:void setImageResource(int) -> setImageResource
+    165:175:void setInternalImageTint(android.content.res.ColorStateList) -> setInternalImageTint
+    114:120:void setSupportImageTintList(android.content.res.ColorStateList) -> setSupportImageTintList
+    127:134:void setSupportImageTintMode(android.graphics.PorterDuff$Mode) -> setSupportImageTintMode
+    178:182:boolean shouldApplyFrameworkTintUsingColorFilter() -> shouldApplyFrameworkTintUsingColorFilter
+androidx.appcompat.widget.AppCompatImageView -> androidx.appcompat.widget.AppCompatImageView:
+    65:66:void <init>(android.content.Context) -> <init>
+    69:70:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    74:83:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    256:263:void drawableStateChanged() -> drawableStateChanged
+    166:167:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    194:195:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    222:223:android.content.res.ColorStateList getSupportImageTintList() -> getSupportImageTintList
+    250:251:android.graphics.PorterDuff$Mode getSupportImageTintMode() -> getSupportImageTintMode
+    267:267:boolean hasOverlappingRendering() -> hasOverlappingRendering
+    136:140:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    128:132:void setBackgroundResource(int) -> setBackgroundResource
+    112:116:void setImageBitmap(android.graphics.Bitmap) -> setImageBitmap
+    104:108:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    96:100:void setImageResource(int) -> setImageResource
+    120:124:void setImageURI(android.net.Uri) -> setImageURI
+    151:154:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    179:182:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    207:210:void setSupportImageTintList(android.content.res.ColorStateList) -> setSupportImageTintList
+    235:238:void setSupportImageTintMode(android.graphics.PorterDuff$Mode) -> setSupportImageTintMode
+androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView -> androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView:
+    56:56:void <clinit>() -> <clinit>
+    64:65:void <init>(android.content.Context) -> <init>
+    69:70:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    74:91:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    172:179:void drawableStateChanged() -> drawableStateChanged
+    138:139:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    166:167:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    191:191:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    108:112:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    100:104:void setBackgroundResource(int) -> setBackgroundResource
+    95:96:void setDropDownBackgroundResource(int) -> setDropDownBackgroundResource
+    123:126:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    151:154:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    183:187:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+androidx.appcompat.widget.AppCompatPopupWindow -> androidx.appcompat.widget.AppCompatPopupWindow:
+    34:34:void <clinit>() -> <clinit>
+    40:42:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    46:48:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    51:60:void init(android.content.Context,android.util.AttributeSet,int,int) -> init
+    90:95:void setSupportOverlapAnchor(boolean) -> setSupportOverlapAnchor
+    64:69:void showAsDropDown(android.view.View,int,int) -> showAsDropDown
+    73:78:void showAsDropDown(android.view.View,int,int,int) -> showAsDropDown
+    82:87:void update(android.view.View,int,int,int,int) -> update
+androidx.appcompat.widget.AppCompatProgressBarHelper -> androidx.appcompat.widget.AppCompatProgressBarHelper:
+    38:38:void <clinit>() -> <clinit>
+    47:49:void <init>(android.widget.ProgressBar) -> <init>
+    140:141:android.graphics.drawable.shapes.Shape getDrawableShape() -> getDrawableShape
+    145:145:android.graphics.Bitmap getSampleTile() -> getSampleTile
+    52:66:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    73:113:android.graphics.drawable.Drawable tileify(android.graphics.drawable.Drawable,boolean) -> tileify
+    122:136:android.graphics.drawable.Drawable tileifyIndeterminate(android.graphics.drawable.Drawable) -> tileifyIndeterminate
+androidx.appcompat.widget.AppCompatRadioButton -> androidx.appcompat.widget.AppCompatRadioButton:
+    61:62:void <init>(android.content.Context) -> <init>
+    65:66:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    69:81:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    228:235:void drawableStateChanged() -> drawableStateChanged
+    98:101:int getCompoundPaddingLeft() -> getCompoundPaddingLeft
+    178:179:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    206:207:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    124:126:android.content.res.ColorStateList getSupportButtonTintList() -> getSupportButtonTintList
+    149:151:android.graphics.PorterDuff$Mode getSupportButtonTintMode() -> getSupportButtonTintMode
+    212:216:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    220:224:void setBackgroundResource(int) -> setBackgroundResource
+    85:89:void setButtonDrawable(android.graphics.drawable.Drawable) -> setButtonDrawable
+    93:94:void setButtonDrawable(int) -> setButtonDrawable
+    163:166:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    191:194:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    111:114:void setSupportButtonTintList(android.content.res.ColorStateList) -> setSupportButtonTintList
+    136:139:void setSupportButtonTintMode(android.graphics.PorterDuff$Mode) -> setSupportButtonTintMode
+androidx.appcompat.widget.AppCompatRatingBar -> androidx.appcompat.widget.AppCompatRatingBar:
+    42:43:void <init>(android.content.Context) -> <init>
+    46:47:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    51:57:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    60:69:void onMeasure(int,int) -> onMeasure
+androidx.appcompat.widget.AppCompatReceiveContentHelper -> androidx.appcompat.widget.AppCompatReceiveContentHelper:
+    53:53:void <init>() -> <init>
+    179:179:androidx.core.view.inputmethod.InputConnectionCompat$OnCommitContentListener createOnCommitContentListener(android.view.View) -> createOnCommitContentListener
+    89:116:boolean maybeHandleDragEventViaPerformReceiveContent(android.view.View,android.view.DragEvent) -> maybeHandleDragEventViaPerformReceiveContent
+    65:78:boolean maybeHandleMenuActionViaPerformReceiveContent(android.widget.TextView,int) -> maybeHandleMenuActionViaPerformReceiveContent
+    159:166:android.app.Activity tryGetActivity(android.view.View) -> tryGetActivity
+androidx.appcompat.widget.AppCompatReceiveContentHelper$1 -> androidx.appcompat.widget.AppCompatReceiveContentHelper$1:
+    179:179:void <init>(android.view.View) -> <init>
+    183:209:boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat,int,android.os.Bundle) -> onCommitContent
+androidx.appcompat.widget.AppCompatReceiveContentHelper$OnDropApi24Impl -> androidx.appcompat.widget.AppCompatReceiveContentHelper$OnDropApi24Impl:
+    121:121:void <init>() -> <init>
+    125:136:boolean onDropForTextView(android.view.DragEvent,android.widget.TextView,android.app.Activity) -> onDropForTextView
+    141:145:boolean onDropForView(android.view.DragEvent,android.view.View,android.app.Activity) -> onDropForView
+androidx.appcompat.widget.AppCompatSeekBar -> androidx.appcompat.widget.AppCompatSeekBar:
+    41:42:void <init>(android.content.Context) -> <init>
+    45:46:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    50:56:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    66:68:void drawableStateChanged() -> drawableStateChanged
+    72:74:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    59:62:void onDraw(android.graphics.Canvas) -> onDraw
+androidx.appcompat.widget.AppCompatSeekBarHelper -> androidx.appcompat.widget.AppCompatSeekBarHelper:
+    36:44:void <init>(android.widget.SeekBar) -> <init>
+    128:145:void applyTickMarkTint() -> applyTickMarkTint
+    165:185:void drawTickMarks(android.graphics.Canvas) -> drawTickMarks
+    154:159:void drawableStateChanged() -> drawableStateChanged
+    100:100:android.graphics.drawable.Drawable getTickMark() -> getTickMark
+    112:112:android.content.res.ColorStateList getTickMarkTintList() -> getTickMarkTintList
+    124:124:android.graphics.PorterDuff$Mode getTickMarkTintMode() -> getTickMarkTintMode
+    148:151:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    48:77:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    80:96:void setTickMark(android.graphics.drawable.Drawable) -> setTickMark
+    104:108:void setTickMarkTintList(android.content.res.ColorStateList) -> setTickMarkTintList
+    116:120:void setTickMarkTintMode(android.graphics.PorterDuff$Mode) -> setTickMarkTintMode
+androidx.appcompat.widget.AppCompatSpinner -> androidx.appcompat.widget.AppCompatSpinner:
+    79:79:void <clinit>() -> <clinit>
+    116:117:void <init>(android.content.Context) -> <init>
+    132:133:void <init>(android.content.Context,int) -> <init>
+    144:145:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    160:161:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    180:181:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    106:302:void <init>(android.content.Context,android.util.AttributeSet,int,int,android.content.res.Resources$Theme) -> <init>
+    558:598:int compatMeasureContentWidth(android.widget.SpinnerAdapter,android.graphics.drawable.Drawable) -> compatMeasureContentWidth
+    551:555:void drawableStateChanged() -> drawableStateChanged
+    373:376:int getDropDownHorizontalOffset() -> getDropDownHorizontalOffset
+    347:350:int getDropDownVerticalOffset() -> getDropDownVerticalOffset
+    392:395:int getDropDownWidth() -> getDropDownWidth
+    603:603:androidx.appcompat.widget.AppCompatSpinner$SpinnerPopup getInternalPopup() -> getInternalPopup
+    328:331:android.graphics.drawable.Drawable getPopupBackground() -> getPopupBackground
+    309:309:android.content.Context getPopupContext() -> getPopupContext
+    472:472:java.lang.CharSequence getPrompt() -> getPrompt
+    516:517:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    545:546:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    419:424:void onDetachedFromWindow() -> onDetachedFromWindow
+    436:445:void onMeasure(int,int) -> onMeasure
+    625:651:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    617:620:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    428:431:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    449:458:boolean performClick() -> performClick
+    77:77:void setAdapter(android.widget.Adapter) -> setAdapter
+    404:415:void setAdapter(android.widget.SpinnerAdapter) -> setAdapter
+    485:489:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    477:481:void setBackgroundResource(int) -> setBackgroundResource
+    357:363:void setDropDownHorizontalOffset(int) -> setDropDownHorizontalOffset
+    338:343:void setDropDownVerticalOffset(int) -> setDropDownVerticalOffset
+    383:388:void setDropDownWidth(int) -> setDropDownWidth
+    314:319:void setPopupBackgroundDrawable(android.graphics.drawable.Drawable) -> setPopupBackgroundDrawable
+    323:324:void setPopupBackgroundResource(int) -> setPopupBackgroundResource
+    463:468:void setPrompt(java.lang.CharSequence) -> setPrompt
+    501:504:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    530:533:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    607:612:void showPopup() -> showPopup
+androidx.appcompat.widget.AppCompatSpinner$1 -> androidx.appcompat.widget.AppCompatSpinner$1:
+    264:264:void <init>(androidx.appcompat.widget.AppCompatSpinner,android.view.View,androidx.appcompat.widget.AppCompatSpinner$DropdownPopup) -> <init>
+    267:267:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    273:276:boolean onForwardingStarted() -> onForwardingStarted
+androidx.appcompat.widget.AppCompatSpinner$2 -> androidx.appcompat.widget.AppCompatSpinner$2:
+    632:632:void <init>(androidx.appcompat.widget.AppCompatSpinner) -> <init>
+    635:646:void onGlobalLayout() -> onGlobalLayout
+androidx.appcompat.widget.AppCompatSpinner$DialogPopup -> androidx.appcompat.widget.AppCompatSpinner$DialogPopup:
+    858:858:void <init>(androidx.appcompat.widget.AppCompatSpinner) -> <init>
+    866:870:void dismiss() -> dismiss
+    937:937:android.graphics.drawable.Drawable getBackground() -> getBackground
+    889:889:java.lang.CharSequence getHintText() -> getHintText
+    947:947:int getHorizontalOffset() -> getHorizontalOffset
+    957:957:int getHorizontalOriginalOffset() -> getHorizontalOriginalOffset
+    942:942:int getVerticalOffset() -> getVerticalOffset
+    874:874:boolean isShowing() -> isShowing
+    913:918:void onClick(android.content.DialogInterface,int) -> onClick
+    879:880:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    922:923:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    932:933:void setHorizontalOffset(int) -> setHorizontalOffset
+    952:953:void setHorizontalOriginalOffset(int) -> setHorizontalOriginalOffset
+    884:885:void setPromptText(java.lang.CharSequence) -> setPromptText
+    927:928:void setVerticalOffset(int) -> setVerticalOffset
+    894:909:void show(int,int) -> show
+androidx.appcompat.widget.AppCompatSpinner$DropDownAdapter -> androidx.appcompat.widget.AppCompatSpinner$DropDownAdapter:
+    703:725:void <init>(android.widget.SpinnerAdapter,android.content.res.Resources$Theme) -> <init>
+    778:782:boolean areAllItemsEnabled() -> areAllItemsEnabled
+    729:729:int getCount() -> getCount
+    749:750:android.view.View getDropDownView(int,android.view.View,android.view.ViewGroup) -> getDropDownView
+    734:734:java.lang.Object getItem(int) -> getItem
+    739:739:long getItemId(int) -> getItemId
+    802:802:int getItemViewType(int) -> getItemViewType
+    744:744:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    807:807:int getViewTypeCount() -> getViewTypeCount
+    755:755:boolean hasStableIds() -> hasStableIds
+    812:812:boolean isEmpty() -> isEmpty
+    792:796:boolean isEnabled(int) -> isEnabled
+    760:763:void registerDataSetObserver(android.database.DataSetObserver) -> registerDataSetObserver
+    767:770:void unregisterDataSetObserver(android.database.DataSetObserver) -> unregisterDataSetObserver
+androidx.appcompat.widget.AppCompatSpinner$DropdownPopup -> androidx.appcompat.widget.AppCompatSpinner$DropdownPopup:
+    965:986:void <init>(androidx.appcompat.widget.AppCompatSpinner,android.content.Context,android.util.AttributeSet,int) -> <init>
+    962:962:void access$001(androidx.appcompat.widget.AppCompatSpinner$DropdownPopup) -> access$001
+    1006:1041:void computeContentWidth() -> computeContentWidth
+    996:996:java.lang.CharSequence getHintText() -> getHintText
+    1112:1112:int getHorizontalOriginalOffset() -> getHorizontalOriginalOffset
+    1102:1102:boolean isVisibleToUser(android.view.View) -> isVisibleToUser
+    990:992:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    1107:1108:void setHorizontalOriginalOffset(int) -> setHorizontalOriginalOffset
+    1002:1003:void setPromptText(java.lang.CharSequence) -> setPromptText
+    1045:1096:void show(int,int) -> show
+androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$1 -> androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$1:
+    975:975:void <init>(androidx.appcompat.widget.AppCompatSpinner$DropdownPopup,androidx.appcompat.widget.AppCompatSpinner) -> <init>
+    978:984:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$2 -> androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$2:
+    1071:1071:void <init>(androidx.appcompat.widget.AppCompatSpinner$DropdownPopup) -> <init>
+    1074:1083:void onGlobalLayout() -> onGlobalLayout
+androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$3 -> androidx.appcompat.widget.AppCompatSpinner$DropdownPopup$3:
+    1086:1086:void <init>(androidx.appcompat.widget.AppCompatSpinner$DropdownPopup,android.view.ViewTreeObserver$OnGlobalLayoutListener) -> <init>
+    1089:1093:void onDismiss() -> onDismiss
+androidx.appcompat.widget.AppCompatSpinner$SavedState -> androidx.appcompat.widget.AppCompatSpinner$SavedState:
+    671:671:void <clinit>() -> <clinit>
+    657:658:void <init>(android.os.Parcelable) -> <init>
+    661:663:void <init>(android.os.Parcel) -> <init>
+    667:669:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.appcompat.widget.AppCompatSpinner$SavedState$1 -> androidx.appcompat.widget.AppCompatSpinner$SavedState$1:
+    672:672:void <init>() -> <init>
+    672:672:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    675:675:androidx.appcompat.widget.AppCompatSpinner$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    672:672:java.lang.Object[] newArray(int) -> newArray
+    680:680:androidx.appcompat.widget.AppCompatSpinner$SavedState[] newArray(int) -> newArray
+androidx.appcompat.widget.AppCompatTextClassifierHelper -> androidx.appcompat.widget.AppCompatTextClassifierHelper:
+    42:44:void <init>(android.widget.TextView) -> <init>
+    62:70:android.view.textclassifier.TextClassifier getTextClassifier() -> getTextClassifier
+    51:52:void setTextClassifier(android.view.textclassifier.TextClassifier) -> setTextClassifier
+androidx.appcompat.widget.AppCompatTextHelper -> androidx.appcompat.widget.AppCompatTextHelper:
+    73:81:void <init>(android.widget.TextView) -> <init>
+    541:544:void applyCompoundDrawableTint(android.graphics.drawable.Drawable,androidx.appcompat.widget.TintInfo) -> applyCompoundDrawableTint
+    523:538:void applyCompoundDrawablesTints() -> applyCompoundDrawablesTints
+    579:580:void autoSizeText() -> autoSizeText
+    548:555:androidx.appcompat.widget.TintInfo createTintInfo(android.content.Context,androidx.appcompat.widget.AppCompatDrawableManager,int) -> createTintInfo
+    624:624:int getAutoSizeMaxTextSize() -> getAutoSizeMaxTextSize
+    620:620:int getAutoSizeMinTextSize() -> getAutoSizeMinTextSize
+    616:616:int getAutoSizeStepGranularity() -> getAutoSizeStepGranularity
+    628:628:int[] getAutoSizeTextAvailableSizes() -> getAutoSizeTextAvailableSizes
+    612:612:int getAutoSizeTextType() -> getAutoSizeTextType
+    633:633:android.content.res.ColorStateList getCompoundDrawableTintList() -> getCompoundDrawableTintList
+    647:647:android.graphics.PorterDuff$Mode getCompoundDrawableTintMode() -> getCompoundDrawableTintMode
+    585:585:boolean isAutoSizeEnabled() -> isAutoSizeEnabled
+    85:339:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    437:454:void onAsyncTypefaceReceived(java.lang.ref.WeakReference,android.graphics.Typeface) -> onAsyncTypefaceReceived
+    561:564:void onLayout(boolean,int,int,int,int) -> onLayout
+    519:520:void onSetCompoundDrawables() -> onSetCompoundDrawables
+    457:512:void onSetTextAppearance(android.content.Context,int) -> onSetTextAppearance
+    722:725:void populateSurroundingTextIfNeeded(android.widget.TextView,android.view.inputmethod.InputConnection,android.view.inputmethod.EditorInfo) -> populateSurroundingTextIfNeeded
+    515:516:void setAllCaps(boolean) -> setAllCaps
+    601:603:void setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int) -> setAutoSizeTextTypeUniformWithConfiguration
+    607:608:void setAutoSizeTextTypeUniformWithPresetSizes(int[],int) -> setAutoSizeTextTypeUniformWithPresetSizes
+    593:594:void setAutoSizeTextTypeWithDefaults(int) -> setAutoSizeTextTypeWithDefaults
+    637:643:void setCompoundDrawableTintList(android.content.res.ColorStateList) -> setCompoundDrawableTintList
+    651:657:void setCompoundDrawableTintMode(android.graphics.PorterDuff$Mode) -> setCompoundDrawableTintMode
+    672:704:void setCompoundDrawables(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawables
+    660:666:void setCompoundTints() -> setCompoundTints
+    569:574:void setTextSize(int,float) -> setTextSize
+    589:590:void setTextSizeInternal(int,float) -> setTextSizeInternal
+    342:433:void updateTypefaceAndStyle(android.content.Context,androidx.appcompat.widget.TintTypedArray) -> updateTypefaceAndStyle
+androidx.appcompat.widget.AppCompatTextHelper$1 -> androidx.appcompat.widget.AppCompatTextHelper$1:
+    362:362:void <init>(androidx.appcompat.widget.AppCompatTextHelper,int,int,java.lang.ref.WeakReference) -> <init>
+    377:377:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    365:372:void onFontRetrieved(android.graphics.Typeface) -> onFontRetrieved
+androidx.appcompat.widget.AppCompatTextHelper$2 -> androidx.appcompat.widget.AppCompatTextHelper$2:
+    443:443:void <init>(androidx.appcompat.widget.AppCompatTextHelper,android.widget.TextView,android.graphics.Typeface,int) -> <init>
+    446:447:void run() -> run
+androidx.appcompat.widget.AppCompatTextView -> androidx.appcompat.widget.AppCompatTextView:
+    93:94:void <init>(android.content.Context) -> <init>
+    97:98:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    87:114:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    488:497:void consumeTextFutureAndSetBlocking() -> consumeTextFutureAndSetBlocking
+    198:205:void drawableStateChanged() -> drawableStateChanged
+    370:377:int getAutoSizeMaxTextSize() -> getAutoSizeMaxTextSize
+    351:358:int getAutoSizeMinTextSize() -> getAutoSizeMinTextSize
+    332:339:int getAutoSizeStepGranularity() -> getAutoSizeStepGranularity
+    389:396:int[] getAutoSizeTextAvailableSizes() -> getAutoSizeTextAvailableSizes
+    311:320:int getAutoSizeTextType() -> getAutoSizeTextType
+    428:428:int getFirstBaselineToTopHeight() -> getFirstBaselineToTopHeight
+    433:433:int getLastBaselineToBottomHeight() -> getLastBaselineToBottomHeight
+    156:157:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    184:185:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    640:640:android.content.res.ColorStateList getSupportCompoundDrawablesTintList() -> getSupportCompoundDrawablesTintList
+    683:683:android.graphics.PorterDuff$Mode getSupportCompoundDrawablesTintMode() -> getSupportCompoundDrawablesTintMode
+    501:502:java.lang.CharSequence getText() -> getText
+    529:532:android.view.textclassifier.TextClassifier getTextClassifier() -> getTextClassifier
+    460:460:androidx.core.text.PrecomputedTextCompat$Params getTextMetricsParamsCompat() -> getTextMetricsParamsCompat
+    401:403:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    209:213:void onLayout(boolean,int,int,int,int) -> onLayout
+    556:558:void onMeasure(int,int) -> onMeasure
+    228:232:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+    268:277:void setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int) -> setAutoSizeTextTypeUniformWithConfiguration
+    290:297:void setAutoSizeTextTypeUniformWithPresetSizes(int[],int) -> setAutoSizeTextTypeUniformWithPresetSizes
+    245:252:void setAutoSizeTextTypeWithDefaults(int) -> setAutoSizeTextTypeWithDefaults
+    126:130:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    118:122:void setBackgroundResource(int) -> setBackgroundResource
+    563:567:void setCompoundDrawables(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawables
+    573:577:void setCompoundDrawablesRelative(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelative
+    605:609:void setCompoundDrawablesRelativeWithIntrinsicBounds(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    615:624:void setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    582:586:void setCompoundDrawablesWithIntrinsicBounds(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesWithIntrinsicBounds
+    590:599:void setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) -> setCompoundDrawablesWithIntrinsicBounds
+    447:449:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    408:413:void setFirstBaselineToTopHeight(int) -> setFirstBaselineToTopHeight
+    418:424:void setLastBaselineToBottomHeight(int) -> setLastBaselineToBottomHeight
+    438:439:void setLineHeight(int) -> setLineHeight
+    484:485:void setPrecomputedText(androidx.core.text.PrecomputedTextCompat) -> setPrecomputedText
+    141:144:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    169:172:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    663:665:void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList) -> setSupportCompoundDrawablesTintList
+    703:705:void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff$Mode) -> setSupportCompoundDrawablesTintMode
+    190:194:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+    511:516:void setTextClassifier(android.view.textclassifier.TextClassifier) -> setTextClassifier
+    548:552:void setTextFuture(java.util.concurrent.Future) -> setTextFuture
+    471:472:void setTextMetricsParamsCompat(androidx.core.text.PrecomputedTextCompat$Params) -> setTextMetricsParamsCompat
+    217:224:void setTextSize(int,float) -> setTextSize
+    709:728:void setTypeface(android.graphics.Typeface,int) -> setTypeface
+androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper -> androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper:
+    64:79:void <clinit>() -> <clinit>
+    87:162:void <init>(android.widget.TextView) -> <init>
+    864:872:java.lang.Object accessAndReturnWithDefault(java.lang.Object,java.lang.String,java.lang.Object) -> accessAndReturnWithDefault
+    603:637:void autoSizeText() -> autoSizeText
+    510:534:int[] cleanupAutoSizePresetSizes(int[]) -> cleanupAutoSizePresetSizes
+    640:646:void clearAutoSizeConfiguration() -> clearAutoSizeConfiguration
+    734:735:android.text.StaticLayout createLayout(java.lang.CharSequence,android.text.Layout$Alignment,int,int) -> createLayout
+    779:799:android.text.StaticLayout createStaticLayoutForMeasuring(java.lang.CharSequence,android.text.Layout$Alignment,int,int) -> createStaticLayoutForMeasuring
+    822:829:android.text.StaticLayout createStaticLayoutForMeasuringPre16(java.lang.CharSequence,android.text.Layout$Alignment,int) -> createStaticLayoutForMeasuringPre16
+    805:811:android.text.StaticLayout createStaticLayoutForMeasuringPre23(java.lang.CharSequence,android.text.Layout$Alignment,int) -> createStaticLayoutForMeasuringPre23
+    697:717:int findLargestTextSizeWhichFits(android.graphics.RectF) -> findLargestTextSizeWhichFits
+    467:467:int getAutoSizeMaxTextSize() -> getAutoSizeMaxTextSize
+    451:451:int getAutoSizeMinTextSize() -> getAutoSizeMinTextSize
+    435:435:int getAutoSizeStepGranularity() -> getAutoSizeStepGranularity
+    480:480:int[] getAutoSizeTextAvailableSizes() -> getAutoSizeTextAvailableSizes
+    421:421:int getAutoSizeTextType() -> getAutoSizeTextType
+    899:911:java.lang.reflect.Field getTextViewField(java.lang.String) -> getTextViewField
+    879:892:java.lang.reflect.Method getTextViewMethod(java.lang.String) -> getTextViewMethod
+    722:729:void initTempTextPaint(int) -> initTempTextPaint
+    841:857:java.lang.Object invokeAndReturnWithDefault(java.lang.Object,java.lang.String,java.lang.Object) -> invokeAndReturnWithDefault
+    923:923:boolean isAutoSizeEnabled() -> isAutoSizeEnabled
+    165:243:void loadFromAttributes(android.util.AttributeSet,int) -> loadFromAttributes
+    328:344:void setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int) -> setAutoSizeTextTypeUniformWithConfiguration
+    371:401:void setAutoSizeTextTypeUniformWithPresetSizes(int[],int) -> setAutoSizeTextTypeUniformWithPresetSizes
+    261:291:void setAutoSizeTextTypeWithDefaults(int) -> setAutoSizeTextTypeWithDefaults
+    659:690:void setRawTextSize(float) -> setRawTextSize
+    651:656:void setTextSizeInternal(int,float) -> setTextSizeInternal
+    573:593:boolean setupAutoSizeText() -> setupAutoSizeText
+    484:494:void setupAutoSizeUniformPresetSizes(android.content.res.TypedArray) -> setupAutoSizeUniformPresetSizes
+    497:505:boolean setupAutoSizeUniformPresetSizesConfiguration() -> setupAutoSizeUniformPresetSizesConfiguration
+    744:772:boolean suggestedSizeFitsInSpace(int,android.graphics.RectF) -> suggestedSizeFitsInSpace
+    932:932:boolean supportsAutoSizeText() -> supportsAutoSizeText
+    548:570:void validateAndSetAutoSizeTextTypeUniformConfiguration(float,float,float) -> validateAndSetAutoSizeTextTypeUniformConfiguration
+androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl -> androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl:
+    112:112:void <init>() -> <init>
+    119:119:void computeAndSetTextDirection(android.text.StaticLayout$Builder,android.widget.TextView) -> computeAndSetTextDirection
+    115:115:boolean isHorizontallyScrollable(android.widget.TextView) -> isHorizontallyScrollable
+androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl23 -> androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl23:
+    124:124:void <init>() -> <init>
+    129:133:void computeAndSetTextDirection(android.text.StaticLayout$Builder,android.widget.TextView) -> computeAndSetTextDirection
+androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl29 -> androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl29:
+    138:138:void <init>() -> <init>
+    148:149:void computeAndSetTextDirection(android.text.StaticLayout$Builder,android.widget.TextView) -> computeAndSetTextDirection
+    142:142:boolean isHorizontallyScrollable(android.widget.TextView) -> isHorizontallyScrollable
+androidx.appcompat.widget.AppCompatToggleButton -> androidx.appcompat.widget.AppCompatToggleButton:
+    56:57:void <init>(android.content.Context) -> <init>
+    60:61:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    65:74:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    150:157:void drawableStateChanged() -> drawableStateChanged
+    116:117:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    144:145:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    86:90:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    78:82:void setBackgroundResource(int) -> setBackgroundResource
+    101:104:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    129:132:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+androidx.appcompat.widget.ButtonBarLayout -> androidx.appcompat.widget.ButtonBarLayout:
+    47:58:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    154:154:int getMinimumHeight() -> getMinimumHeight
+    144:149:int getNextVisibleChildIndex(int) -> getNextVisibleChildIndex
+    175:175:boolean isStacked() -> isStacked
+    72:141:void onMeasure(int,int) -> onMeasure
+    61:68:void setAllowStacking(boolean) -> setAllowStacking
+    158:172:void setStacked(boolean) -> setStacked
+androidx.appcompat.widget.ContentFrameLayout -> androidx.appcompat.widget.ContentFrameLayout:
+    60:61:void <init>(android.content.Context) -> <init>
+    64:65:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    69:71:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    78:79:void dispatchFitSystemWindows(android.graphics.Rect) -> dispatchFitSystemWindows
+    197:198:android.util.TypedValue getFixedHeightMajor() -> getFixedHeightMajor
+    202:203:android.util.TypedValue getFixedHeightMinor() -> getFixedHeightMinor
+    187:188:android.util.TypedValue getFixedWidthMajor() -> getFixedWidthMajor
+    192:193:android.util.TypedValue getFixedWidthMinor() -> getFixedWidthMinor
+    177:178:android.util.TypedValue getMinWidthMajor() -> getMinWidthMajor
+    182:183:android.util.TypedValue getMinWidthMinor() -> getMinWidthMinor
+    208:212:void onAttachedToWindow() -> onAttachedToWindow
+    216:220:void onDetachedFromWindow() -> onDetachedFromWindow
+    101:174:void onMeasure(int,int) -> onMeasure
+    82:83:void setAttachListener(androidx.appcompat.widget.ContentFrameLayout$OnAttachListener) -> setAttachListener
+    93:97:void setDecorPadding(int,int,int,int) -> setDecorPadding
+androidx.appcompat.widget.DialogTitle -> androidx.appcompat.widget.DialogTitle:
+    42:43:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    46:47:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    50:51:void <init>(android.content.Context) -> <init>
+    55:82:void onMeasure(int,int) -> onMeasure
+androidx.appcompat.widget.DrawableUtils -> androidx.appcompat.widget.DrawableUtils:
+    45:64:void <clinit>() -> <clinit>
+    66:66:void <init>() -> <init>
+    142:176:boolean canSafelyMutateDrawable(android.graphics.drawable.Drawable) -> canSafelyMutateDrawable
+    131:135:void fixDrawable(android.graphics.drawable.Drawable) -> fixDrawable
+    184:194:void fixVectorDrawableTinting(android.graphics.drawable.Drawable) -> fixVectorDrawableTinting
+    73:122:android.graphics.Rect getOpticalBounds(android.graphics.drawable.Drawable) -> getOpticalBounds
+    200:207:android.graphics.PorterDuff$Mode parseTintMode(int,android.graphics.PorterDuff$Mode) -> parseTintMode
+androidx.appcompat.widget.DropDownListView -> androidx.appcompat.widget.DropDownListView:
+    50:129:void <init>(android.content.Context,boolean) -> <init>
+    629:643:void clearPressedItem() -> clearPressedItem
+    541:543:void clickPressedItem(android.view.View,int) -> clickPressedItem
+    199:205:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    564:571:void drawSelectorCompat(android.graphics.Canvas) -> drawSelectorCompat
+    187:195:void drawableStateChanged() -> drawableStateChanged
+    165:165:boolean hasFocus() -> hasFocus
+    145:145:boolean hasWindowFocus() -> hasWindowFocus
+    155:155:boolean isFocused() -> isFocused
+    135:135:boolean isInTouchMode() -> isInTouchMode
+    230:257:int lookForSelectablePosition(int,boolean) -> lookForSelectablePosition
+    291:368:int measureHeightOfChildrenCompat(int,int,int,int,int) -> measureHeightOfChildrenCompat
+    470:472:void onDetachedFromWindow() -> onDetachedFromWindow
+    481:533:boolean onForwardedEvent(android.view.MotionEvent,int) -> onForwardedEvent
+    429:465:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    209:218:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    604:626:void positionSelectorCompat(int,android.view.View) -> positionSelectorCompat
+    585:600:void positionSelectorLikeFocusCompat(int,android.view.View) -> positionSelectorLikeFocusCompat
+    574:580:void positionSelectorLikeTouchCompat(int,android.view.View,float,float) -> positionSelectorLikeTouchCompat
+    553:554:void setListSelectionHidden(boolean) -> setListSelectionHidden
+    646:690:void setPressedItem(android.view.View,int,float,float) -> setPressedItem
+    170:182:void setSelector(android.graphics.drawable.Drawable) -> setSelector
+    372:375:void setSelectorEnabled(boolean) -> setSelectorEnabled
+    693:693:boolean touchModeDrawsInPressedStateCompat() -> touchModeDrawsInPressedStateCompat
+    557:561:void updateSelectorStateCompat() -> updateSelectorStateCompat
+androidx.appcompat.widget.DropDownListView$GateKeeperDrawable -> androidx.appcompat.widget.DropDownListView$GateKeeperDrawable:
+    381:383:void <init>(android.graphics.drawable.Drawable) -> <init>
+    399:402:void draw(android.graphics.Canvas) -> draw
+    386:387:void setEnabled(boolean) -> setEnabled
+    406:409:void setHotspot(float,float) -> setHotspot
+    413:416:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    391:394:boolean setState(int[]) -> setState
+    420:423:boolean setVisible(boolean,boolean) -> setVisible
+androidx.appcompat.widget.DropDownListView$ResolveHoverRunnable -> androidx.appcompat.widget.DropDownListView$ResolveHoverRunnable:
+    700:701:void <init>(androidx.appcompat.widget.DropDownListView) -> <init>
+    711:713:void cancel() -> cancel
+    716:717:void post() -> post
+    706:708:void run() -> run
+androidx.appcompat.widget.FitWindowsFrameLayout -> androidx.appcompat.widget.FitWindowsFrameLayout:
+    39:40:void <init>(android.content.Context) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    53:56:boolean fitSystemWindows(android.graphics.Rect) -> fitSystemWindows
+    48:49:void setOnFitSystemWindowsListener(androidx.appcompat.widget.FitWindowsViewGroup$OnFitSystemWindowsListener) -> setOnFitSystemWindowsListener
+androidx.appcompat.widget.FitWindowsLinearLayout -> androidx.appcompat.widget.FitWindowsLinearLayout:
+    39:40:void <init>(android.content.Context) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    53:56:boolean fitSystemWindows(android.graphics.Rect) -> fitSystemWindows
+    48:49:void setOnFitSystemWindowsListener(androidx.appcompat.widget.FitWindowsViewGroup$OnFitSystemWindowsListener) -> setOnFitSystemWindowsListener
+androidx.appcompat.widget.ForwardingListener -> androidx.appcompat.widget.ForwardingListener:
+    66:78:void <init>(android.view.View) -> <init>
+    216:223:void clearCallbacks() -> clearCallbacks
+    139:143:boolean onForwardingStarted() -> onForwardingStarted
+    156:160:boolean onForwardingStopped() -> onForwardingStopped
+    226:249:void onLongPress() -> onLongPress
+    94:112:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+    259:284:boolean onTouchForwarded(android.view.MotionEvent) -> onTouchForwarded
+    170:212:boolean onTouchObserved(android.view.MotionEvent) -> onTouchObserved
+    117:117:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    121:127:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+    288:290:boolean pointInView(android.view.View,float,float,float) -> pointInView
+    309:312:boolean toGlobalMotionEvent(android.view.View,android.view.MotionEvent) -> toGlobalMotionEvent
+    298:301:boolean toLocalMotionEvent(android.view.View,android.view.MotionEvent) -> toLocalMotionEvent
+androidx.appcompat.widget.ForwardingListener$DisallowIntercept -> androidx.appcompat.widget.ForwardingListener$DisallowIntercept:
+    316:317:void <init>(androidx.appcompat.widget.ForwardingListener) -> <init>
+    321:325:void run() -> run
+androidx.appcompat.widget.ForwardingListener$TriggerLongPress -> androidx.appcompat.widget.ForwardingListener$TriggerLongPress:
+    329:330:void <init>(androidx.appcompat.widget.ForwardingListener) -> <init>
+    334:335:void run() -> run
+androidx.appcompat.widget.LinearLayoutCompat -> androidx.appcompat.widget.LinearLayoutCompat:
+    151:152:void <init>(android.content.Context) -> <init>
+    155:156:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    102:195:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1761:1761:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    332:370:void drawDividersHorizontal(android.graphics.Canvas) -> drawDividersHorizontal
+    305:329:void drawDividersVertical(android.graphics.Canvas) -> drawDividersVertical
+    373:376:void drawHorizontalDivider(android.graphics.Canvas,int) -> drawHorizontalDivider
+    379:382:void drawVerticalDivider(android.graphics.Canvas,int) -> drawVerticalDivider
+    1327:1346:void forceUniformHeight(int,int) -> forceUniformHeight
+    905:924:void forceUniformWidth(int,int) -> forceUniformWidth
+    59:59:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1744:1749:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    59:59:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    59:59:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1731:1731:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1754:1754:androidx.appcompat.widget.LinearLayoutCompat$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    433:481:int getBaseline() -> getBaseline
+    490:490:int getBaselineAlignedChildIndex() -> getBaselineAlignedChildIndex
+    1357:1357:int getChildrenSkipCount(android.view.View,int) -> getChildrenSkipCount
+    231:231:android.graphics.drawable.Drawable getDividerDrawable() -> getDividerDrawable
+    278:278:int getDividerPadding() -> getDividerPadding
+    288:288:int getDividerWidth() -> getDividerWidth
+    1710:1710:int getGravity() -> getGravity
+    1399:1399:int getLocationOffset(android.view.View) -> getLocationOffset
+    1411:1411:int getNextLocationOffset(android.view.View) -> getNextLocationOffset
+    1677:1677:int getOrientation() -> getOrientation
+    222:222:int getShowDividers() -> getShowDividers
+    515:515:android.view.View getVirtualChildAt(int) -> getVirtualChildAt
+    528:528:int getVirtualChildCount() -> getVirtualChildCount
+    539:539:float getWeightSum() -> getWeightSum
+    576:590:boolean hasDividerBeforeChildAt(int) -> hasDividerBeforeChildAt
+    391:391:boolean isBaselineAligned() -> isBaselineAligned
+    414:414:boolean isMeasureWithLargestChildEnabled() -> isMeasureWithLargestChildEnabled
+    1531:1652:void layoutHorizontal(int,int,int,int) -> layoutHorizontal
+    1436:1516:void layoutVertical(int,int,int,int) -> layoutVertical
+    1387:1389:void measureChildBeforeLayout(android.view.View,int,int,int,int,int) -> measureChildBeforeLayout
+    938:1321:void measureHorizontal(int,int) -> measureHorizontal
+    1368:1368:int measureNullChild(int) -> measureNullChild
+    605:901:void measureVertical(int,int) -> measureVertical
+    293:302:void onDraw(android.graphics.Canvas) -> onDraw
+    1766:1768:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    1772:1774:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    1416:1421:void onLayout(boolean,int,int,int,int) -> onLayout
+    560:565:void onMeasure(int,int) -> onMeasure
+    402:403:void setBaselineAligned(boolean) -> setBaselineAligned
+    498:503:void setBaselineAlignedChildIndex(int) -> setBaselineAlignedChildIndex
+    1655:1656:void setChildFrame(android.view.View,int,int,int,int) -> setChildFrame
+    242:255:void setDividerDrawable(android.graphics.drawable.Drawable) -> setDividerDrawable
+    267:268:void setDividerPadding(int) -> setDividerPadding
+    1689:1701:void setGravity(int) -> setGravity
+    1714:1719:void setHorizontalGravity(int) -> setHorizontalGravity
+    428:429:void setMeasureWithLargestChildEnabled(boolean) -> setMeasureWithLargestChildEnabled
+    1664:1668:void setOrientation(int) -> setOrientation
+    205:209:void setShowDividers(int) -> setShowDividers
+    1722:1727:void setVerticalGravity(int) -> setVerticalGravity
+    555:556:void setWeightSum(float) -> setWeightSum
+    213:213:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+androidx.appcompat.widget.LinearLayoutCompat$LayoutParams -> androidx.appcompat.widget.LinearLayoutCompat$LayoutParams:
+    1785:1786:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1792:1793:void <init>(int,int) -> <init>
+    1806:1807:void <init>(int,int,float) -> <init>
+    1813:1814:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    1820:1821:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+androidx.appcompat.widget.ListPopupWindow -> androidx.appcompat.widget.ListPopupWindow:
+    84:109:void <clinit>() -> <clinit>
+    224:225:void <init>(android.content.Context) -> <init>
+    235:236:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    248:249:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    115:278:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    1156:1329:int buildDropDown() -> buildDropDown
+    846:853:void clearListSelection() -> clearListSelection
+    1140:1140:android.view.View$OnTouchListener createDragToOpenListener(android.view.View) -> createDragToOpenListener
+    950:950:androidx.appcompat.widget.DropDownListView createDropDownListView(android.content.Context,boolean) -> createDropDownListView
+    772:777:void dismiss() -> dismiss
+    460:460:android.view.View getAnchorView() -> getAnchorView
+    451:451:int getAnimationStyle() -> getAnimationStyle
+    423:423:android.graphics.drawable.Drawable getBackground() -> getBackground
+    528:528:android.graphics.Rect getEpicenterBounds() -> getEpicenterBounds
+    578:578:int getHeight() -> getHeight
+    477:477:int getHorizontalOffset() -> getHorizontalOffset
+    820:820:int getInputMethodMode() -> getInputMethodMode
+    946:946:android.widget.ListView getListView() -> getListView
+    1445:1457:int getMaxAvailableHeight(android.view.View,int,boolean) -> getMaxAvailableHeight
+    322:322:int getPromptPosition() -> getPromptPosition
+    895:898:java.lang.Object getSelectedItem() -> getSelectedItem
+    921:924:long getSelectedItemId() -> getSelectedItemId
+    908:911:int getSelectedItemPosition() -> getSelectedItemPosition
+    934:937:android.view.View getSelectedView() -> getSelectedView
+    407:407:int getSoftInputMode() -> getSoftInputMode
+    493:496:int getVerticalOffset() -> getVerticalOffset
+    545:545:int getWidth() -> getWidth
+    1427:1427:boolean isConfirmKey(int) -> isConfirmKey
+    383:383:boolean isDropDownAlwaysVisible() -> isDropDownAlwaysVisible
+    868:868:boolean isInputMethodNotNeeded() -> isInputMethodNotNeeded
+    345:345:boolean isModal() -> isModal
+    860:860:boolean isShowing() -> isShowing
+    976:1056:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    1095:1116:boolean onKeyPreIme(int,android.view.KeyEvent) -> onKeyPreIme
+    1071:1080:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    879:888:boolean performItemClick(int) -> performItemClick
+    654:655:void postShow() -> postShow
+    789:796:void removePromptView() -> removePromptView
+    287:300:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    470:471:void setAnchorView(android.view.View) -> setAnchorView
+    441:442:void setAnimationStyle(int) -> setAnimationStyle
+    432:433:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    565:572:void setContentWidth(int) -> setContentWidth
+    373:374:void setDropDownAlwaysVisible(boolean) -> setDropDownAlwaysVisible
+    538:539:void setDropDownGravity(int) -> setDropDownGravity
+    517:518:void setEpicenterBounds(android.graphics.Rect) -> setEpicenterBounds
+    357:358:void setForceIgnoreOutsideTouch(boolean) -> setForceIgnoreOutsideTouch
+    590:596:void setHeight(int) -> setHeight
+    486:487:void setHorizontalOffset(int) -> setHorizontalOffset
+    811:812:void setInputMethodMode(int) -> setInputMethodMode
+    960:961:void setListItemExpandMax(int) -> setListItemExpandMax
+    416:417:void setListSelector(android.graphics.drawable.Drawable) -> setListSelector
+    335:337:void setModal(boolean) -> setModal
+    785:786:void setOnDismissListener(android.widget.PopupWindow$OnDismissListener) -> setOnDismissListener
+    619:620:void setOnItemClickListener(android.widget.AdapterView$OnItemClickListener) -> setOnItemClickListener
+    630:631:void setOnItemSelectedListener(android.widget.AdapterView$OnItemSelectedListener) -> setOnItemSelectedListener
+    1338:1340:void setOverlapAnchor(boolean) -> setOverlapAnchor
+    1431:1442:void setPopupClipToScreenEnabled(boolean) -> setPopupClipToScreenEnabled
+    312:313:void setPromptPosition(int) -> setPromptPosition
+    640:648:void setPromptView(android.view.View) -> setPromptView
+    830:839:void setSelection(int) -> setSelection
+    397:398:void setSoftInputMode(int) -> setSoftInputMode
+    505:507:void setVerticalOffset(int) -> setVerticalOffset
+    555:556:void setWidth(int) -> setWidth
+    608:609:void setWindowLayoutType(int) -> setWindowLayoutType
+    663:765:void show() -> show
+androidx.appcompat.widget.ListPopupWindow$1 -> androidx.appcompat.widget.ListPopupWindow$1:
+    1140:1140:void <init>(androidx.appcompat.widget.ListPopupWindow,android.view.View) -> <init>
+    1140:1140:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    1143:1143:androidx.appcompat.widget.ListPopupWindow getPopup() -> getPopup
+androidx.appcompat.widget.ListPopupWindow$2 -> androidx.appcompat.widget.ListPopupWindow$2:
+    1167:1167:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1171:1175:void run() -> run
+androidx.appcompat.widget.ListPopupWindow$3 -> androidx.appcompat.widget.ListPopupWindow$3:
+    1186:1186:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1191:1198:void onItemSelected(android.widget.AdapterView,android.view.View,int,long) -> onItemSelected
+    1202:1202:void onNothingSelected(android.widget.AdapterView) -> onNothingSelected
+androidx.appcompat.widget.ListPopupWindow$ListSelectorHider -> androidx.appcompat.widget.ListPopupWindow$ListSelectorHider:
+    1361:1362:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1366:1367:void run() -> run
+androidx.appcompat.widget.ListPopupWindow$PopupDataSetObserver -> androidx.appcompat.widget.ListPopupWindow$PopupDataSetObserver:
+    1343:1344:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1348:1352:void onChanged() -> onChanged
+    1356:1357:void onInvalidated() -> onInvalidated
+androidx.appcompat.widget.ListPopupWindow$PopupScrollListener -> androidx.appcompat.widget.ListPopupWindow$PopupScrollListener:
+    1407:1408:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1414:1414:void onScroll(android.widget.AbsListView,int,int,int) -> onScroll
+    1418:1423:void onScrollStateChanged(android.widget.AbsListView,int) -> onScrollStateChanged
+androidx.appcompat.widget.ListPopupWindow$PopupTouchInterceptor -> androidx.appcompat.widget.ListPopupWindow$PopupTouchInterceptor:
+    1386:1387:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1391:1402:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+androidx.appcompat.widget.ListPopupWindow$ResizePopupRunnable -> androidx.appcompat.widget.ListPopupWindow$ResizePopupRunnable:
+    1371:1372:void <init>(androidx.appcompat.widget.ListPopupWindow) -> <init>
+    1376:1382:void run() -> run
+androidx.appcompat.widget.MenuPopupWindow -> androidx.appcompat.widget.MenuPopupWindow:
+    61:68:void <clinit>() -> <clinit>
+    74:75:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    80:82:androidx.appcompat.widget.DropDownListView createDropDownListView(android.content.Context,boolean) -> createDropDownListView
+    122:125:void onItemHoverEnter(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onItemHoverEnter
+    130:133:void onItemHoverExit(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onItemHoverExit
+    86:89:void setEnterTransition(java.lang.Object) -> setEnterTransition
+    92:95:void setExitTransition(java.lang.Object) -> setExitTransition
+    98:99:void setHoverListener(androidx.appcompat.widget.MenuItemHoverListener) -> setHoverListener
+    106:117:void setTouchModal(boolean) -> setTouchModal
+androidx.appcompat.widget.MenuPopupWindow$MenuDropDownListView -> androidx.appcompat.widget.MenuPopupWindow$MenuDropDownListView:
+    147:159:void <init>(android.content.Context,boolean) -> <init>
+    166:167:void clearSelection() -> clearSelection
+    138:138:boolean hasFocus() -> hasFocus
+    138:138:boolean hasWindowFocus() -> hasWindowFocus
+    138:138:boolean isFocused() -> isFocused
+    138:138:boolean isInTouchMode() -> isInTouchMode
+    138:138:int lookForSelectablePosition(int,boolean) -> lookForSelectablePosition
+    138:138:int measureHeightOfChildrenCompat(int,int,int,int,int) -> measureHeightOfChildrenCompat
+    138:138:boolean onForwardedEvent(android.view.MotionEvent,int) -> onForwardedEvent
+    201:242:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    171:195:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    138:138:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    162:163:void setHoverListener(androidx.appcompat.widget.MenuItemHoverListener) -> setHoverListener
+    138:138:void setSelector(android.graphics.drawable.Drawable) -> setSelector
+androidx.appcompat.widget.PopupMenu -> androidx.appcompat.widget.PopupMenu:
+    68:69:void <init>(android.content.Context,android.view.View) -> <init>
+    83:84:void <init>(android.content.Context,android.view.View,int) -> <init>
+    104:133:void <init>(android.content.Context,android.view.View,int,int,int) -> <init>
+    247:248:void dismiss() -> dismiss
+    174:196:android.view.View$OnTouchListener getDragToOpenListener() -> getDragToOpenListener
+    153:153:int getGravity() -> getGravity
+    209:209:android.view.Menu getMenu() -> getMenu
+    219:219:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    306:309:android.widget.ListView getMenuListView() -> getMenuListView
+    229:230:void inflate(int) -> inflate
+    145:146:void setGravity(int) -> setGravity
+    266:267:void setOnDismissListener(androidx.appcompat.widget.PopupMenu$OnDismissListener) -> setOnDismissListener
+    257:258:void setOnMenuItemClickListener(androidx.appcompat.widget.PopupMenu$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    238:239:void show() -> show
+androidx.appcompat.widget.PopupMenu$1 -> androidx.appcompat.widget.PopupMenu$1:
+    109:109:void <init>(androidx.appcompat.widget.PopupMenu) -> <init>
+    112:115:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    120:120:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+androidx.appcompat.widget.PopupMenu$2 -> androidx.appcompat.widget.PopupMenu$2:
+    125:125:void <init>(androidx.appcompat.widget.PopupMenu) -> <init>
+    128:131:void onDismiss() -> onDismiss
+androidx.appcompat.widget.PopupMenu$3 -> androidx.appcompat.widget.PopupMenu$3:
+    175:175:void <init>(androidx.appcompat.widget.PopupMenu,android.view.View) -> <init>
+    191:191:androidx.appcompat.view.menu.ShowableListMenu getPopup() -> getPopup
+    178:179:boolean onForwardingStarted() -> onForwardingStarted
+    184:185:boolean onForwardingStopped() -> onForwardingStopped
+androidx.appcompat.widget.ResourceManagerInternal -> androidx.appcompat.widget.ResourceManagerInternal:
+    85:115:void <clinit>() -> <clinit>
+    61:121:void <init>() -> <init>
+    370:374:void addDelegate(java.lang.String,androidx.appcompat.widget.ResourceManagerInternal$InflateDelegate) -> addDelegate
+    338:349:boolean addDrawableToCache(android.content.Context,long,android.graphics.drawable.Drawable) -> addDrawableToCache
+    405:414:void addTintListToCache(android.content.Context,int,android.content.res.ColorStateList) -> addTintListToCache
+    485:498:void checkVectorDrawableSetup(android.content.Context) -> checkVectorDrawableSetup
+    170:170:long createCacheKey(android.util.TypedValue) -> createCacheKey
+    175:198:android.graphics.drawable.Drawable createDrawableIfNeeded(android.content.Context,int) -> createDrawableIfNeeded
+    463:467:android.graphics.PorterDuffColorFilter createTintFilter(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode,int[]) -> createTintFilter
+    95:100:androidx.appcompat.widget.ResourceManagerInternal get() -> get
+    317:334:android.graphics.drawable.Drawable getCachedDrawable(android.content.Context,long) -> getCachedDrawable
+    135:135:android.graphics.drawable.Drawable getDrawable(android.content.Context,int) -> getDrawable
+    139:158:android.graphics.drawable.Drawable getDrawable(android.content.Context,int,boolean) -> getDrawable
+    472:481:android.graphics.PorterDuffColorFilter getPorterDuffColorFilter(int,android.graphics.PorterDuff$Mode) -> getPorterDuffColorFilter
+    381:392:android.content.res.ColorStateList getTintList(android.content.Context,int) -> getTintList
+    396:400:android.content.res.ColorStateList getTintListFromCache(android.content.Context,int) -> getTintListFromCache
+    377:377:android.graphics.PorterDuff$Mode getTintMode(int) -> getTintMode
+    107:113:void installDefaultInflateDelegates(androidx.appcompat.widget.ResourceManagerInternal) -> installDefaultInflateDelegates
+    501:502:boolean isVectorDrawable(android.graphics.drawable.Drawable) -> isVectorDrawable
+    232:313:android.graphics.drawable.Drawable loadDrawableFromDelegates(android.content.Context,int) -> loadDrawableFromDelegates
+    161:167:void onConfigurationChanged(android.content.Context) -> onConfigurationChanged
+    353:361:android.graphics.drawable.Drawable onDrawableLoadedFromResources(android.content.Context,androidx.appcompat.widget.VectorEnabledTintResources,int) -> onDrawableLoadedFromResources
+    130:132:void setHooks(androidx.appcompat.widget.ResourceManagerInternal$ResourceManagerHooks) -> setHooks
+    203:228:android.graphics.drawable.Drawable tintDrawable(android.content.Context,int,boolean,android.graphics.drawable.Drawable) -> tintDrawable
+    439:459:void tintDrawable(android.graphics.drawable.Drawable,androidx.appcompat.widget.TintInfo,int[]) -> tintDrawable
+    366:366:boolean tintDrawableUsingColorFilter(android.content.Context,int,android.graphics.drawable.Drawable) -> tintDrawableUsingColorFilter
+androidx.appcompat.widget.ResourceManagerInternal$AsldcInflateDelegate -> androidx.appcompat.widget.ResourceManagerInternal$AsldcInflateDelegate:
+    539:539:void <init>() -> <init>
+    544:548:android.graphics.drawable.Drawable createFromXmlInner(android.content.Context,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+androidx.appcompat.widget.ResourceManagerInternal$AvdcInflateDelegate -> androidx.appcompat.widget.ResourceManagerInternal$AvdcInflateDelegate:
+    523:524:void <init>() -> <init>
+    530:534:android.graphics.drawable.Drawable createFromXmlInner(android.content.Context,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+androidx.appcompat.widget.ResourceManagerInternal$ColorFilterLruCache -> androidx.appcompat.widget.ResourceManagerInternal$ColorFilterLruCache:
+    419:420:void <init>(int) -> <init>
+    431:434:int generateCacheKey(int,android.graphics.PorterDuff$Mode) -> generateCacheKey
+    423:423:android.graphics.PorterDuffColorFilter get(int,android.graphics.PorterDuff$Mode) -> get
+    427:427:android.graphics.PorterDuffColorFilter put(int,android.graphics.PorterDuff$Mode,android.graphics.PorterDuffColorFilter) -> put
+androidx.appcompat.widget.ResourceManagerInternal$DrawableDelegate -> androidx.appcompat.widget.ResourceManagerInternal$DrawableDelegate:
+    553:553:void <init>() -> <init>
+    557:575:android.graphics.drawable.Drawable createFromXmlInner(android.content.Context,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+androidx.appcompat.widget.ResourceManagerInternal$VdcInflateDelegate -> androidx.appcompat.widget.ResourceManagerInternal$VdcInflateDelegate:
+    506:507:void <init>() -> <init>
+    513:517:android.graphics.drawable.Drawable createFromXmlInner(android.content.Context,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+androidx.appcompat.widget.ResourcesWrapper -> androidx.appcompat.widget.ResourcesWrapper:
+    48:50:void <init>(android.content.res.Resources) -> <init>
+    188:188:android.content.res.XmlResourceParser getAnimation(int) -> getAnimation
+    173:173:boolean getBoolean(int) -> getBoolean
+    162:162:int getColor(int) -> getColor
+    168:168:android.content.res.ColorStateList getColorStateList(int) -> getColorStateList
+    251:251:android.content.res.Configuration getConfiguration() -> getConfiguration
+    110:110:float getDimension(int) -> getDimension
+    115:115:int getDimensionPixelOffset(int) -> getDimensionPixelOffset
+    120:120:int getDimensionPixelSize(int) -> getDimensionPixelSize
+    246:246:android.util.DisplayMetrics getDisplayMetrics() -> getDisplayMetrics
+    131:131:android.graphics.drawable.Drawable getDrawable(int) -> getDrawable
+    137:137:android.graphics.drawable.Drawable getDrawable(int,android.content.res.Resources$Theme) -> getDrawable
+    144:144:android.graphics.drawable.Drawable getDrawableForDensity(int,int) -> getDrawableForDensity
+    150:150:android.graphics.drawable.Drawable getDrawableForDensity(int,int,android.content.res.Resources$Theme) -> getDrawableForDensity
+    125:125:float getFraction(int,int,int) -> getFraction
+    256:256:int getIdentifier(java.lang.String,java.lang.String,java.lang.String) -> getIdentifier
+    100:100:int[] getIntArray(int) -> getIntArray
+    178:178:int getInteger(int) -> getInteger
+    183:183:android.content.res.XmlResourceParser getLayout(int) -> getLayout
+    156:156:android.graphics.Movie getMovie(int) -> getMovie
+    75:75:java.lang.String getQuantityString(int,int,java.lang.Object[]) -> getQuantityString
+    80:80:java.lang.String getQuantityString(int,int) -> getQuantityString
+    59:59:java.lang.CharSequence getQuantityText(int,int) -> getQuantityText
+    276:276:java.lang.String getResourceEntryName(int) -> getResourceEntryName
+    261:261:java.lang.String getResourceName(int) -> getResourceName
+    266:266:java.lang.String getResourcePackageName(int) -> getResourcePackageName
+    271:271:java.lang.String getResourceTypeName(int) -> getResourceTypeName
+    64:64:java.lang.String getString(int) -> getString
+    69:69:java.lang.String getString(int,java.lang.Object[]) -> getString
+    95:95:java.lang.String[] getStringArray(int) -> getStringArray
+    54:54:java.lang.CharSequence getText(int) -> getText
+    85:85:java.lang.CharSequence getText(int,java.lang.CharSequence) -> getText
+    90:90:java.lang.CharSequence[] getTextArray(int) -> getTextArray
+    214:215:void getValue(int,android.util.TypedValue,boolean) -> getValue
+    227:228:void getValue(java.lang.String,android.util.TypedValue,boolean) -> getValue
+    221:222:void getValueForDensity(int,int,android.util.TypedValue,boolean) -> getValueForDensity
+    193:193:android.content.res.XmlResourceParser getXml(int) -> getXml
+    232:232:android.content.res.TypedArray obtainAttributes(android.util.AttributeSet,int[]) -> obtainAttributes
+    105:105:android.content.res.TypedArray obtainTypedArray(int) -> obtainTypedArray
+    198:198:java.io.InputStream openRawResource(int) -> openRawResource
+    203:203:java.io.InputStream openRawResource(int,android.util.TypedValue) -> openRawResource
+    208:208:android.content.res.AssetFileDescriptor openRawResourceFd(int) -> openRawResourceFd
+    288:289:void parseBundleExtra(java.lang.String,android.util.AttributeSet,android.os.Bundle) -> parseBundleExtra
+    282:283:void parseBundleExtras(android.content.res.XmlResourceParser,android.os.Bundle) -> parseBundleExtras
+    238:242:void updateConfiguration(android.content.res.Configuration,android.util.DisplayMetrics) -> updateConfiguration
+androidx.appcompat.widget.RtlSpacingHelper -> androidx.appcompat.widget.RtlSpacingHelper:
+    25:36:void <init>() -> <init>
+    51:51:int getEnd() -> getEnd
+    39:39:int getLeft() -> getLeft
+    43:43:int getRight() -> getRight
+    47:47:int getStart() -> getStart
+    68:71:void setAbsolute(int,int) -> setAbsolute
+    74:90:void setDirection(boolean) -> setDirection
+    55:65:void setRelative(int,int) -> setRelative
+androidx.appcompat.widget.ScrollingTabContainerView -> androidx.appcompat.widget.ScrollingTabContainerView:
+    78:78:void <clinit>() -> <clinit>
+    76:94:void <init>(android.content.Context) -> <init>
+    311:323:void addTab(androidx.appcompat.app.ActionBar$Tab,boolean) -> addTab
+    326:338:void addTab(androidx.appcompat.app.ActionBar$Tab,int,boolean) -> addTab
+    261:274:void animateToTab(int) -> animateToTab
+    236:258:void animateToVisibility(int) -> animateToVisibility
+    215:221:android.widget.Spinner createSpinner() -> createSpinner
+    205:211:androidx.appcompat.widget.LinearLayoutCompat createTabLayout() -> createTabLayout
+    294:307:androidx.appcompat.widget.ScrollingTabContainerView$TabView createTabView(androidx.appcompat.app.ActionBar$Tab,boolean) -> createTabView
+    147:147:boolean isCollapsed() -> isCollapsed
+    278:283:void onAttachedToWindow() -> onAttachedToWindow
+    226:233:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    287:291:void onDetachedFromWindow() -> onDetachedFromWindow
+    372:374:void onItemSelected(android.widget.AdapterView,android.view.View,int,long) -> onItemSelected
+    98:139:void onMeasure(int,int) -> onMeasure
+    379:379:void onNothingSelected(android.widget.AdapterView) -> onNothingSelected
+    155:171:void performCollapse() -> performCollapse
+    174:180:boolean performExpand() -> performExpand
+    361:368:void removeAllTabs() -> removeAllTabs
+    351:358:void removeTabAt(int) -> removeTabAt
+    151:152:void setAllowCollapse(boolean) -> setAllowCollapse
+    200:202:void setContentHeight(int) -> setContentHeight
+    184:197:void setTabSelected(int) -> setTabSelected
+    341:348:void updateTab(int) -> updateTab
+androidx.appcompat.widget.ScrollingTabContainerView$1 -> androidx.appcompat.widget.ScrollingTabContainerView$1:
+    265:265:void <init>(androidx.appcompat.widget.ScrollingTabContainerView,android.view.View) -> <init>
+    268:271:void run() -> run
+androidx.appcompat.widget.ScrollingTabContainerView$TabAdapter -> androidx.appcompat.widget.ScrollingTabContainerView$TabAdapter:
+    527:528:void <init>(androidx.appcompat.widget.ScrollingTabContainerView) -> <init>
+    532:532:int getCount() -> getCount
+    537:537:java.lang.Object getItem(int) -> getItem
+    542:542:long getItemId(int) -> getItemId
+    547:552:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+androidx.appcompat.widget.ScrollingTabContainerView$TabClickListener -> androidx.appcompat.widget.ScrollingTabContainerView$TabClickListener:
+    557:558:void <init>(androidx.appcompat.widget.ScrollingTabContainerView) -> <init>
+    562:569:void onClick(android.view.View) -> onClick
+androidx.appcompat.widget.ScrollingTabContainerView$TabView -> androidx.appcompat.widget.ScrollingTabContainerView$TabView:
+    382:411:void <init>(androidx.appcompat.widget.ScrollingTabContainerView,android.content.Context,androidx.appcompat.app.ActionBar$Tab,boolean) -> <init>
+    414:416:void bindTab(androidx.appcompat.app.ActionBar$Tab) -> bindTab
+    522:522:androidx.appcompat.app.ActionBar$Tab getTab() -> getTab
+    429:432:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    436:440:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    444:451:void onMeasure(int,int) -> onMeasure
+    420:425:void setSelected(boolean) -> setSelected
+    454:519:void update() -> update
+androidx.appcompat.widget.ScrollingTabContainerView$VisibilityAnimListener -> androidx.appcompat.widget.ScrollingTabContainerView$VisibilityAnimListener:
+    572:573:void <init>(androidx.appcompat.widget.ScrollingTabContainerView) -> <init>
+    599:600:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    591:595:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    585:587:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    578:580:androidx.appcompat.widget.ScrollingTabContainerView$VisibilityAnimListener withFinalVisibility(android.view.ViewPropertyAnimator,int) -> withFinalVisibility
+androidx.appcompat.widget.SearchView -> androidx.appcompat.widget.SearchView:
+    175:176:void <clinit>() -> <clinit>
+    267:268:void <init>(android.content.Context) -> <init>
+    271:272:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    131:1713:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1364:1385:void adjustDropDownSizeAndPosition() -> adjustDropDownSizeAndPosition
+    497:502:void clearFocus() -> clearFocus
+    1537:1560:android.content.Intent createIntent(java.lang.String,android.net.Uri,java.lang.String,java.lang.String,int,java.lang.String) -> createIntent
+    1656:1692:android.content.Intent createIntentFromSuggestion(android.database.Cursor,int,java.lang.String) -> createIntentFromSuggestion
+    1582:1637:android.content.Intent createVoiceAppSearchIntent(android.content.Intent,android.app.SearchableInfo) -> createVoiceAppSearchIntent
+    1567:1571:android.content.Intent createVoiceWebSearchIntent(android.content.Intent,android.app.SearchableInfo) -> createVoiceWebSearchIntent
+    1202:1203:void dismissSuggestions() -> dismissSuggestions
+    1697:1703:void forceSuggestionQuery() -> forceSuggestionQuery
+    851:856:void getChildBoundsWithinSearchView(android.view.View,android.graphics.Rect) -> getChildBoundsWithinSearchView
+    1088:1098:java.lang.CharSequence getDecoratedHint(java.lang.CharSequence) -> getDecoratedHint
+    452:452:int getImeOptions() -> getImeOptions
+    474:474:int getInputType() -> getInputType
+    777:777:int getMaxWidth() -> getMaxWidth
+    864:865:int getPreferredHeight() -> getPreferredHeight
+    859:860:int getPreferredWidth() -> getPreferredWidth
+    559:559:java.lang.CharSequence getQuery() -> getQuery
+    619:626:java.lang.CharSequence getQueryHint() -> getQueryHint
+    394:394:int getSuggestionCommitIconResId() -> getSuggestionCommitIconResId
+    390:390:int getSuggestionRowLayout() -> getSuggestionRowLayout
+    755:755:androidx.cursoradapter.widget.CursorAdapter getSuggestionsAdapter() -> getSuggestionsAdapter
+    893:906:boolean hasVoiceSearch() -> hasVoiceSearch
+    655:655:boolean isIconfiedByDefault() -> isIconfiedByDefault
+    683:683:boolean isIconified() -> isIconified
+    1706:1706:boolean isLandscapeMode(android.content.Context) -> isLandscapeMode
+    735:735:boolean isQueryRefinementEnabled() -> isQueryRefinementEnabled
+    910:910:boolean isSubmitAreaEnabled() -> isSubmitAreaEnabled
+    705:705:boolean isSubmitButtonEnabled() -> isSubmitButtonEnabled
+    1494:1504:void launchIntent(android.content.Intent) -> launchIntent
+    1516:1519:void launchQuerySearch(int,java.lang.String,java.lang.String) -> launchQuerySearch
+    1477:1487:boolean launchSuggestion(int,int,java.lang.String) -> launchSuggestion
+    1279:1284:void onActionViewCollapsed() -> onActionViewCollapsed
+    1291:1298:void onActionViewExpanded() -> onActionViewExpanded
+    1206:1223:void onCloseClicked() -> onCloseClicked
+    964:967:void onDetachedFromWindow() -> onDetachedFromWindow
+    1388:1395:boolean onItemClicked(int,int,java.lang.String) -> onItemClicked
+    1399:1404:boolean onItemSelected(int) -> onItemSelected
+    832:848:void onLayout(boolean,int,int,int,int) -> onLayout
+    783:828:void onMeasure(int,int) -> onMeasure
+    973:974:void onQueryRefine(java.lang.CharSequence) -> onQueryRefine
+    1353:1361:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1345:1348:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1226:1232:void onSearchClicked() -> onSearchClicked
+    1188:1199:void onSubmitQuery() -> onSubmitQuery
+    1043:1082:boolean onSuggestionsKey(android.view.View,int,android.view.KeyEvent) -> onSuggestionsKey
+    1174:1185:void onTextChanged(java.lang.CharSequence) -> onTextChanged
+    1258:1265:void onTextFocusChanged() -> onTextFocusChanged
+    1236:1255:void onVoiceClicked() -> onVoiceClicked
+    1269:1272:void onWindowFocusChanged(boolean) -> onWindowFocusChanged
+    945:946:void postUpdateFocusedState() -> postUpdateFocusedState
+    480:491:boolean requestFocus(int,android.graphics.Rect) -> requestFocus
+    1444:1464:void rewriteQueryFromSuggestion(int) -> rewriteQueryFromSuggestion
+    429:430:void setAppSearchData(android.os.Bundle) -> setAppSearchData
+    669:674:void setIconified(boolean) -> setIconified
+    642:646:void setIconifiedByDefault(boolean) -> setIconifiedByDefault
+    441:442:void setImeOptions(int) -> setImeOptions
+    464:465:void setInputType(int) -> setInputType
+    764:767:void setMaxWidth(int) -> setMaxWidth
+    520:521:void setOnCloseListener(androidx.appcompat.widget.SearchView$OnCloseListener) -> setOnCloseListener
+    529:530:void setOnQueryTextFocusChangeListener(android.view.View$OnFocusChangeListener) -> setOnQueryTextFocusChangeListener
+    511:512:void setOnQueryTextListener(androidx.appcompat.widget.SearchView$OnQueryTextListener) -> setOnQueryTextListener
+    550:551:void setOnSearchClickListener(android.view.View$OnClickListener) -> setOnSearchClickListener
+    538:539:void setOnSuggestionListener(androidx.appcompat.widget.SearchView$OnSuggestionListener) -> setOnSuggestionListener
+    571:581:void setQuery(java.lang.CharSequence,boolean) -> setQuery
+    1510:1513:void setQuery(java.lang.CharSequence) -> setQuery
+    594:596:void setQueryHint(java.lang.CharSequence) -> setQueryHint
+    723:728:void setQueryRefinementEnabled(boolean) -> setQueryRefinementEnabled
+    406:420:void setSearchableInfo(android.app.SearchableInfo) -> setSearchableInfo
+    695:697:void setSubmitButtonEnabled(boolean) -> setSubmitButtonEnabled
+    745:748:void setSuggestionsAdapter(androidx.cursoradapter.widget.CursorAdapter) -> setSuggestionsAdapter
+    933:942:void updateCloseButton() -> updateCloseButton
+    949:960:void updateFocusedState() -> updateFocusedState
+    1102:1104:void updateQueryHint() -> updateQueryHint
+    1110:1144:void updateSearchAutoComplete() -> updateSearchAutoComplete
+    923:930:void updateSubmitArea() -> updateSubmitArea
+    914:920:void updateSubmitButton(boolean) -> updateSubmitButton
+    869:890:void updateViewsVisibility(boolean) -> updateViewsVisibility
+    1153:1159:void updateVoiceButton(boolean) -> updateVoiceButton
+androidx.appcompat.widget.SearchView$1 -> androidx.appcompat.widget.SearchView$1:
+    178:178:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    181:182:void run() -> run
+androidx.appcompat.widget.SearchView$10 -> androidx.appcompat.widget.SearchView$10:
+    1713:1713:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    1725:1725:void afterTextChanged(android.text.Editable) -> afterTextChanged
+    1715:1715:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+    1720:1721:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+androidx.appcompat.widget.SearchView$2 -> androidx.appcompat.widget.SearchView$2:
+    185:185:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    188:191:void run() -> run
+androidx.appcompat.widget.SearchView$3 -> androidx.appcompat.widget.SearchView$3:
+    331:331:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    334:337:void onFocusChange(android.view.View,boolean) -> onFocusChange
+androidx.appcompat.widget.SearchView$4 -> androidx.appcompat.widget.SearchView$4:
+    376:376:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    380:381:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+androidx.appcompat.widget.SearchView$5 -> androidx.appcompat.widget.SearchView$5:
+    976:976:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    979:990:void onClick(android.view.View) -> onClick
+androidx.appcompat.widget.SearchView$6 -> androidx.appcompat.widget.SearchView$6:
+    998:998:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    1002:1032:boolean onKey(android.view.View,int,android.view.KeyEvent) -> onKey
+androidx.appcompat.widget.SearchView$7 -> androidx.appcompat.widget.SearchView$7:
+    1161:1161:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    1168:1169:boolean onEditorAction(android.widget.TextView,int,android.view.KeyEvent) -> onEditorAction
+androidx.appcompat.widget.SearchView$8 -> androidx.appcompat.widget.SearchView$8:
+    1407:1407:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    1415:1416:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.appcompat.widget.SearchView$9 -> androidx.appcompat.widget.SearchView$9:
+    1419:1419:void <init>(androidx.appcompat.widget.SearchView) -> <init>
+    1427:1428:void onItemSelected(android.widget.AdapterView,android.view.View,int,long) -> onItemSelected
+    1437:1437:void onNothingSelected(android.widget.AdapterView) -> onNothingSelected
+androidx.appcompat.widget.SearchView$PreQAutoCompleteTextViewReflector -> androidx.appcompat.widget.SearchView$PreQAutoCompleteTextViewReflector:
+    2037:2067:void <init>() -> <init>
+    2080:2087:void doAfterTextChanged(android.widget.AutoCompleteTextView) -> doAfterTextChanged
+    2070:2077:void doBeforeTextChanged(android.widget.AutoCompleteTextView) -> doBeforeTextChanged
+    2090:2097:void ensureImeVisible(android.widget.AutoCompleteTextView) -> ensureImeVisible
+    2100:2104:void preApi29Check() -> preApi29Check
+androidx.appcompat.widget.SearchView$SavedState -> androidx.appcompat.widget.SearchView$SavedState:
+    1325:1325:void <clinit>() -> <clinit>
+    1304:1305:void <init>(android.os.Parcelable) -> <init>
+    1308:1310:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1320:1321:java.lang.String toString() -> toString
+    1314:1316:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.appcompat.widget.SearchView$SavedState$1 -> androidx.appcompat.widget.SearchView$SavedState$1:
+    1325:1325:void <init>() -> <init>
+    1325:1325:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1325:1325:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1328:1328:androidx.appcompat.widget.SearchView$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1333:1333:androidx.appcompat.widget.SearchView$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1325:1325:java.lang.Object[] newArray(int) -> newArray
+    1338:1338:androidx.appcompat.widget.SearchView$SavedState[] newArray(int) -> newArray
+androidx.appcompat.widget.SearchView$SearchAutoComplete -> androidx.appcompat.widget.SearchView$SearchAutoComplete:
+    1842:1843:void <init>(android.content.Context) -> <init>
+    1846:1847:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1834:1852:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1931:1931:boolean enoughToFilter() -> enoughToFilter
+    2025:2033:void ensureImeVisible() -> ensureImeVisible
+    1964:1974:int getSearchViewTextMinWidthDp() -> getSearchViewTextMinWidthDp
+    1876:1876:boolean isEmpty() -> isEmpty
+    1983:1988:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    1856:1860:void onFinishInflate() -> onFinishInflate
+    1921:1923:void onFocusChanged(boolean,int,android.graphics.Rect) -> onFocusChanged
+    1936:1957:boolean onKeyPreIme(int,android.view.KeyEvent) -> onKeyPreIme
+    1903:1917:void onWindowFocusChanged(boolean) -> onWindowFocusChanged
+    1895:1895:void performCompletion() -> performCompletion
+    1885:1885:void replaceText(java.lang.CharSequence) -> replaceText
+    2001:2022:void setImeVisibility(boolean) -> setImeVisibility
+    1863:1864:void setSearchView(androidx.appcompat.widget.SearchView) -> setSearchView
+    1868:1870:void setThreshold(int) -> setThreshold
+    1992:1998:void showSoftInputIfNecessary() -> showSoftInputIfNecessary
+androidx.appcompat.widget.SearchView$SearchAutoComplete$1 -> androidx.appcompat.widget.SearchView$SearchAutoComplete$1:
+    1834:1834:void <init>(androidx.appcompat.widget.SearchView$SearchAutoComplete) -> <init>
+    1837:1838:void run() -> run
+androidx.appcompat.widget.SearchView$UpdatableTouchDelegate -> androidx.appcompat.widget.SearchView$UpdatableTouchDelegate:
+    1760:1767:void <init>(android.graphics.Rect,android.graphics.Rect,android.view.View) -> <init>
+    1778:1819:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    1770:1774:void setBounds(android.graphics.Rect,android.graphics.Rect) -> setBounds
+androidx.appcompat.widget.ShareActionProvider -> androidx.appcompat.widget.ShareActionProvider:
+    164:199:void <init>(android.content.Context) -> <init>
+    249:249:boolean hasSubMenu() -> hasSubMenu
+    222:241:android.view.View onCreateActionView() -> onCreateActionView
+    258:286:void onPrepareSubMenu(android.view.SubMenu) -> onPrepareSubMenu
+    383:391:void setActivityChooserPolicyIfNeeded() -> setActivityChooserPolicyIfNeeded
+    212:214:void setOnShareTargetSelectedListener(androidx.appcompat.widget.ShareActionProvider$OnShareTargetSelectedListener) -> setOnShareTargetSelectedListener
+    321:323:void setShareHistoryFileName(java.lang.String) -> setShareHistoryFileName
+    342:351:void setShareIntent(android.content.Intent) -> setShareIntent
+    411:419:void updateIntent(android.content.Intent) -> updateIntent
+androidx.appcompat.widget.ShareActionProvider$ShareActivityChooserModelPolicy -> androidx.appcompat.widget.ShareActionProvider$ShareActivityChooserModelPolicy:
+    397:398:void <init>(androidx.appcompat.widget.ShareActionProvider) -> <init>
+    402:406:boolean onChooseActivity(androidx.appcompat.widget.ActivityChooserModel,android.content.Intent) -> onChooseActivity
+androidx.appcompat.widget.ShareActionProvider$ShareMenuItemOnMenuItemClickListener -> androidx.appcompat.widget.ShareActionProvider$ShareMenuItemOnMenuItemClickListener:
+    357:358:void <init>(androidx.appcompat.widget.ShareActionProvider) -> <init>
+    362:374:boolean onMenuItemClick(android.view.MenuItem) -> onMenuItemClick
+androidx.appcompat.widget.SuggestionsAdapter -> androidx.appcompat.widget.SuggestionsAdapter:
+    73:104:void <init>(android.content.Context,androidx.appcompat.widget.SearchView,android.app.SearchableInfo,java.util.WeakHashMap) -> <init>
+    273:323:void bindView(android.view.View,android.content.Context,android.database.Cursor) -> bindView
+    215:235:void changeCursor(android.database.Cursor) -> changeCursor
+    582:587:android.graphics.drawable.Drawable checkIconCache(java.lang.String) -> checkIconCache
+    172:174:void close() -> close
+    414:437:java.lang.CharSequence convertToString(android.database.Cursor) -> convertToString
+    334:346:java.lang.CharSequence formatUrl(java.lang.CharSequence) -> formatUrl
+    645:662:android.graphics.drawable.Drawable getActivityIcon(android.content.ComponentName) -> getActivityIcon
+    623:634:android.graphics.drawable.Drawable getActivityIconWithCache(android.content.ComponentName) -> getActivityIconWithCache
+    674:675:java.lang.String getColumnString(android.database.Cursor,java.lang.String) -> getColumnString
+    604:610:android.graphics.drawable.Drawable getDefaultIcon1() -> getDefaultIcon1
+    549:575:android.graphics.drawable.Drawable getDrawable(android.net.Uri) -> getDrawable
+    697:728:android.graphics.drawable.Drawable getDrawableFromResourceUri(android.net.Uri) -> getDrawableFromResourceUri
+    506:538:android.graphics.drawable.Drawable getDrawableFromResourceValue(java.lang.String) -> getDrawableFromResourceValue
+    472:482:android.view.View getDropDownView(int,android.view.View,android.view.ViewGroup) -> getDropDownView
+    361:369:android.graphics.drawable.Drawable getIcon1(android.database.Cursor) -> getIcon1
+    373:377:android.graphics.drawable.Drawable getIcon2(android.database.Cursor) -> getIcon2
+    124:124:int getQueryRefinement() -> getQueryRefinement
+    735:776:android.database.Cursor getSearchManagerSuggestions(android.app.SearchableInfo,java.lang.String,int) -> getSearchManagerSuggestions
+    679:688:java.lang.String getStringOrNull(android.database.Cursor,int) -> getStringOrNull
+    449:459:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    133:133:boolean hasStableIds() -> hasStableIds
+    242:248:android.view.View newView(android.content.Context,android.database.Cursor,android.view.ViewGroup) -> newView
+    179:182:void notifyDataSetChanged() -> notifyDataSetChanged
+    187:190:void notifyDataSetInvalidated() -> notifyDataSetInvalidated
+    327:331:void onClick(android.view.View) -> onClick
+    144:167:android.database.Cursor runQueryOnBackgroundThread(java.lang.CharSequence) -> runQueryOnBackgroundThread
+    116:117:void setQueryRefinement(int) -> setQueryRefinement
+    387:402:void setViewDrawable(android.widget.ImageView,android.graphics.drawable.Drawable,int) -> setViewDrawable
+    351:358:void setViewText(android.widget.TextView,java.lang.CharSequence) -> setViewText
+    591:594:void storeInIconCache(java.lang.String,android.graphics.drawable.Drawable) -> storeInIconCache
+    193:206:void updateSpinnerState(android.database.Cursor) -> updateSpinnerState
+androidx.appcompat.widget.SuggestionsAdapter$ChildViewCache -> androidx.appcompat.widget.SuggestionsAdapter$ChildViewCache:
+    262:268:void <init>(android.view.View) -> <init>
+androidx.appcompat.widget.SwitchCompat -> androidx.appcompat.widget.SwitchCompat:
+    116:199:void <clinit>() -> <clinit>
+    209:210:void <init>(android.content.Context) -> <init>
+    220:221:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    130:316:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1059:1066:void animateThumbToCheckedState(boolean) -> animateThumbToCheckedState
+    719:736:void applyThumbTint() -> applyThumbTint
+    596:613:void applyTrackTint() -> applyTrackTint
+    1069:1072:void cancelPositionAnimator() -> cancelPositionAnimator
+    1019:1023:void cancelSuperTouch(android.view.MotionEvent) -> cancelSuperTouch
+    1469:1469:float constrain(float,float,float) -> constrain
+    1174:1235:void draw(android.graphics.Canvas) -> draw
+    1394:1405:void drawableHotspotChanged(float,float) -> drawableHotspotChanged
+    1372:1390:void drawableStateChanged() -> drawableStateChanged
+    1304:1311:int getCompoundPaddingLeft() -> getCompoundPaddingLeft
+    1316:1323:int getCompoundPaddingRight() -> getCompoundPaddingRight
+    827:827:boolean getShowText() -> getShowText
+    758:758:boolean getSplitTrack() -> getSplitTrack
+    471:471:int getSwitchMinWidth() -> getSwitchMinWidth
+    446:446:int getSwitchPadding() -> getSwitchPadding
+    1075:1075:boolean getTargetCheckedState() -> getTargetCheckedState
+    791:791:java.lang.CharSequence getTextOff() -> getTextOff
+    767:767:java.lang.CharSequence getTextOn() -> getTextOn
+    655:655:android.graphics.drawable.Drawable getThumbDrawable() -> getThumbDrawable
+    1334:1339:int getThumbOffset() -> getThumbOffset
+    1343:1357:int getThumbScrollRange() -> getThumbScrollRange
+    494:494:int getThumbTextPadding() -> getThumbTextPadding
+    686:686:android.content.res.ColorStateList getThumbTintList() -> getThumbTintList
+    715:715:android.graphics.PorterDuff$Mode getThumbTintMode() -> getThumbTintMode
+    534:534:android.graphics.drawable.Drawable getTrackDrawable() -> getTrackDrawable
+    564:564:android.content.res.ColorStateList getTrackTintList() -> getTrackTintList
+    592:592:android.graphics.PorterDuff$Mode getTrackTintMode() -> getTrackTintMode
+    923:936:boolean hitThumb(float,float) -> hitThumb
+    1414:1428:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    909:915:android.text.Layout makeLayout(java.lang.CharSequence) -> makeLayout
+    1363:1367:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    1239:1300:void onDraw(android.graphics.Canvas) -> onDraw
+    1432:1434:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    1438:1453:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    1118:1170:void onLayout(boolean,int,int,int,int) -> onLayout
+    832:896:void onMeasure(int,int) -> onMeasure
+    900:906:void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+    941:1015:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    1095:1114:void setChecked(boolean) -> setChecked
+    1461:1463:void setCustomSelectionActionModeCallback(android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    1482:1488:void setOffStateDescriptionOnRAndAbove() -> setOffStateDescriptionOnRAndAbove
+    1473:1479:void setOnStateDescriptionOnRAndAbove() -> setOnStateDescriptionOnRAndAbove
+    816:820:void setShowText(boolean) -> setShowText
+    748:750:void setSplitTrack(boolean) -> setSplitTrack
+    458:460:void setSwitchMinWidth(int) -> setSwitchMinWidth
+    434:436:void setSwitchPadding(int) -> setSwitchPadding
+    325:361:void setSwitchTextAppearance(android.content.Context,int) -> setSwitchTextAppearance
+    389:407:void setSwitchTypeface(android.graphics.Typeface,int) -> setSwitchTypeface
+    417:424:void setSwitchTypeface(android.graphics.Typeface) -> setSwitchTypeface
+    364:380:void setSwitchTypefaceByIndex(int,int) -> setSwitchTypefaceByIndex
+    800:807:void setTextOff(java.lang.CharSequence) -> setTextOff
+    776:783:void setTextOn(java.lang.CharSequence) -> setTextOn
+    624:632:void setThumbDrawable(android.graphics.drawable.Drawable) -> setThumbDrawable
+    1084:1086:void setThumbPosition(float) -> setThumbPosition
+    643:644:void setThumbResource(int) -> setThumbResource
+    482:484:void setThumbTextPadding(int) -> setThumbTextPadding
+    673:677:void setThumbTintList(android.content.res.ColorStateList) -> setThumbTintList
+    701:705:void setThumbTintMode(android.graphics.PorterDuff$Mode) -> setThumbTintMode
+    505:513:void setTrackDrawable(android.graphics.drawable.Drawable) -> setTrackDrawable
+    523:524:void setTrackResource(int) -> setTrackResource
+    551:555:void setTrackTintList(android.content.res.ColorStateList) -> setTrackTintList
+    578:582:void setTrackTintMode(android.graphics.PorterDuff$Mode) -> setTrackTintMode
+    1031:1056:void stopDrag(android.view.MotionEvent) -> stopDrag
+    1090:1091:void toggle() -> toggle
+    1409:1409:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+androidx.appcompat.widget.SwitchCompat$1 -> androidx.appcompat.widget.SwitchCompat$1:
+    117:117:void <init>(java.lang.Class,java.lang.String) -> <init>
+    117:117:java.lang.Object get(java.lang.Object) -> get
+    120:120:java.lang.Float get(androidx.appcompat.widget.SwitchCompat) -> get
+    117:117:void set(java.lang.Object,java.lang.Object) -> set
+    125:126:void set(androidx.appcompat.widget.SwitchCompat,java.lang.Float) -> set
+androidx.appcompat.widget.ThemeUtils -> androidx.appcompat.widget.ThemeUtils:
+    41:53:void <clinit>() -> <clinit>
+    178:179:void <init>() -> <init>
+    162:176:void checkAppCompatTheme(android.view.View,android.content.Context) -> checkAppCompatTheme
+    66:80:android.content.res.ColorStateList createDisabledStateList(int,int) -> createDisabledStateList
+    126:138:int getDisabledThemeAttrColor(android.content.Context,int) -> getDisabledThemeAttrColor
+    91:97:int getThemeAttrColor(android.content.Context,int) -> getThemeAttrColor
+    152:154:int getThemeAttrColor(android.content.Context,int,float) -> getThemeAttrColor
+    109:115:android.content.res.ColorStateList getThemeAttrColorStateList(android.content.Context,int) -> getThemeAttrColorStateList
+    143:148:android.util.TypedValue getTypedValue() -> getTypedValue
+androidx.appcompat.widget.ThemedSpinnerAdapter$Helper -> androidx.appcompat.widget.ThemedSpinnerAdapter$Helper:
+    111:114:void <init>(android.content.Context) -> <init>
+    152:152:android.view.LayoutInflater getDropDownViewInflater() -> getDropDownViewInflater
+    140:140:android.content.res.Resources$Theme getDropDownViewTheme() -> getDropDownViewTheme
+    124:132:void setDropDownViewTheme(android.content.res.Resources$Theme) -> setDropDownViewTheme
+androidx.appcompat.widget.TintContextWrapper -> androidx.appcompat.widget.TintContextWrapper:
+    42:42:void <clinit>() -> <clinit>
+    92:104:void <init>(android.content.Context) -> <init>
+    128:128:android.content.res.AssetManager getAssets() -> getAssets
+    122:122:android.content.res.Resources getResources() -> getResources
+    108:108:android.content.res.Resources$Theme getTheme() -> getTheme
+    113:118:void setTheme(int) -> setTheme
+    78:85:boolean shouldWrap(android.content.Context) -> shouldWrap
+    46:74:android.content.Context wrap(android.content.Context) -> wrap
+androidx.appcompat.widget.TintInfo -> androidx.appcompat.widget.TintInfo:
+    28:28:void <init>() -> <init>
+    35:39:void clear() -> clear
+androidx.appcompat.widget.TintResources -> androidx.appcompat.widget.TintResources:
+    35:37:void <init>(android.content.Context,android.content.res.Resources) -> <init>
+    46:51:android.graphics.drawable.Drawable getDrawable(int) -> getDrawable
+androidx.appcompat.widget.TintTypedArray -> androidx.appcompat.widget.TintTypedArray:
+    67:70:void <init>(android.content.Context,android.content.res.TypedArray) -> <init>
+    158:158:boolean getBoolean(int,boolean) -> getBoolean
+    257:257:int getChangingConfigurations() -> getChangingConfigurations
+    170:170:int getColor(int,int) -> getColor
+    174:184:android.content.res.ColorStateList getColorStateList(int) -> getColorStateList
+    192:192:float getDimension(int,float) -> getDimension
+    196:196:int getDimensionPixelOffset(int,int) -> getDimensionPixelOffset
+    200:200:int getDimensionPixelSize(int,int) -> getDimensionPixelSize
+    80:86:android.graphics.drawable.Drawable getDrawable(int) -> getDrawable
+    90:96:android.graphics.drawable.Drawable getDrawableIfKnown(int) -> getDrawableIfKnown
+    166:166:float getFloat(int,float) -> getFloat
+    119:126:android.graphics.Typeface getFont(int,int,androidx.core.content.res.ResourcesCompat$FontCallback) -> getFont
+    212:212:float getFraction(int,int,int,float) -> getFraction
+    138:138:int getIndex(int) -> getIndex
+    134:134:int getIndexCount() -> getIndexCount
+    162:162:int getInt(int,int) -> getInt
+    188:188:int getInteger(int,int) -> getInteger
+    204:204:int getLayoutDimension(int,java.lang.String) -> getLayoutDimension
+    208:208:int getLayoutDimension(int,int) -> getLayoutDimension
+    154:154:java.lang.String getNonResourceString(int) -> getNonResourceString
+    248:248:java.lang.String getPositionDescription() -> getPositionDescription
+    216:216:int getResourceId(int,int) -> getResourceId
+    142:142:android.content.res.Resources getResources() -> getResources
+    150:150:java.lang.String getString(int) -> getString
+    146:146:java.lang.CharSequence getText(int) -> getText
+    220:220:java.lang.CharSequence[] getTextArray(int) -> getTextArray
+    228:229:int getType(int) -> getType
+    224:224:boolean getValue(int,android.util.TypedValue) -> getValue
+    76:76:android.content.res.TypedArray getWrappedTypeArray() -> getWrappedTypeArray
+    240:240:boolean hasValue(int) -> hasValue
+    130:130:int length() -> length
+    54:54:androidx.appcompat.widget.TintTypedArray obtainStyledAttributes(android.content.Context,android.util.AttributeSet,int[]) -> obtainStyledAttributes
+    59:60:androidx.appcompat.widget.TintTypedArray obtainStyledAttributes(android.content.Context,android.util.AttributeSet,int[],int,int) -> obtainStyledAttributes
+    64:64:androidx.appcompat.widget.TintTypedArray obtainStyledAttributes(android.content.Context,int,int[]) -> obtainStyledAttributes
+    244:244:android.util.TypedValue peekValue(int) -> peekValue
+    252:253:void recycle() -> recycle
+androidx.appcompat.widget.Toolbar -> androidx.appcompat.widget.Toolbar:
+    229:230:void <init>(android.content.Context) -> <init>
+    233:234:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    182:354:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    2250:2256:void addChildrenForExpandedActionView() -> addChildrenForExpandedActionView
+    2142:2168:void addCustomViewsWithGravity(java.util.List,int) -> addCustomViewsWithGravity
+    1513:1530:void addSystemView(android.view.View,boolean) -> addSystemView
+    518:518:boolean canShowOverflowMenu() -> canShowOverflowMenu
+    2224:2224:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    726:731:void collapseActionView() -> collapseActionView
+    596:599:void dismissPopupMenus() -> dismissPopupMenus
+    1494:1510:void ensureCollapseButtonView() -> ensureCollapseButtonView
+    2287:2290:void ensureContentInsets() -> ensureContentInsets
+    696:699:void ensureLogoView() -> ensureLogoView
+    1155:1165:void ensureMenu() -> ensureMenu
+    1168:1178:void ensureMenuView() -> ensureMenuView
+    1484:1491:void ensureNavButtonView() -> ensureNavButtonView
+    146:146:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    2219:2219:androidx.appcompat.widget.Toolbar$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    146:146:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    146:146:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    2201:2201:androidx.appcompat.widget.Toolbar$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    2206:2213:androidx.appcompat.widget.Toolbar$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    2171:2180:int getChildHorizontalGravity(int) -> getChildHorizontalGravity
+    2091:2118:int getChildTop(android.view.View,int) -> getChildTop
+    2123:2130:int getChildVerticalGravity(int) -> getChildVerticalGravity
+    1038:1038:java.lang.CharSequence getCollapseContentDescription() -> getCollapseContentDescription
+    1083:1083:android.graphics.drawable.Drawable getCollapseIcon() -> getCollapseIcon
+    1269:1269:int getContentInsetEnd() -> getContentInsetEnd
+    1391:1393:int getContentInsetEndWithActions() -> getContentInsetEndWithActions
+    1312:1312:int getContentInsetLeft() -> getContentInsetLeft
+    1332:1332:int getContentInsetRight() -> getContentInsetRight
+    1249:1249:int getContentInsetStart() -> getContentInsetStart
+    1348:1350:int getContentInsetStartWithNavigation() -> getContentInsetStartWithNavigation
+    1443:1450:int getCurrentContentInsetEnd() -> getCurrentContentInsetEnd
+    1463:1465:int getCurrentContentInsetLeft() -> getCurrentContentInsetLeft
+    1478:1480:int getCurrentContentInsetRight() -> getCurrentContentInsetRight
+    1429:1431:int getCurrentContentInsetStart() -> getCurrentContentInsetStart
+    2189:2191:int getHorizontalMargins(android.view.View) -> getHorizontalMargins
+    654:654:android.graphics.drawable.Drawable getLogo() -> getLogo
+    692:692:java.lang.CharSequence getLogoDescription() -> getLogoDescription
+    1129:1130:android.view.Menu getMenu() -> getMenu
+    1181:1181:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    918:918:java.lang.CharSequence getNavigationContentDescription() -> getNavigationContentDescription
+    1010:1010:android.graphics.drawable.Drawable getNavigationIcon() -> getNavigationIcon
+    2314:2314:androidx.appcompat.widget.ActionMenuPresenter getOuterActionMenuPresenter() -> getOuterActionMenuPresenter
+    1150:1151:android.graphics.drawable.Drawable getOverflowIcon() -> getOverflowIcon
+    2318:2318:android.content.Context getPopupContext() -> getPopupContext
+    380:380:int getPopupTheme() -> getPopupTheme
+    795:795:java.lang.CharSequence getSubtitle() -> getSubtitle
+    2307:2307:android.widget.TextView getSubtitleTextView() -> getSubtitleTextView
+    739:739:java.lang.CharSequence getTitle() -> getTitle
+    477:477:int getTitleMarginBottom() -> getTitleMarginBottom
+    455:455:int getTitleMarginEnd() -> getTitleMarginEnd
+    411:411:int getTitleMarginStart() -> getTitleMarginStart
+    433:433:int getTitleMarginTop() -> getTitleMarginTop
+    2298:2298:android.widget.TextView getTitleTextView() -> getTitleTextView
+    2195:2196:int getVerticalMargins(android.view.View) -> getVerticalMargins
+    2046:2061:int getViewListMeasuredWidth(java.util.List,int[]) -> getViewListMeasuredWidth
+    2230:2233:androidx.appcompat.widget.DecorToolbar getWrapper() -> getWrapper
+    712:712:boolean hasExpandedActionView() -> hasExpandedActionView
+    552:552:boolean hideOverflowMenu() -> hideOverflowMenu
+    1194:1195:void inflateMenu(int) -> inflateMenu
+    2259:2259:boolean isChildOrHidden(android.view.View) -> isChildOrHidden
+    534:534:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    528:528:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    604:619:boolean isTitleTruncated() -> isTitleTruncated
+    2066:2074:int layoutChildLeft(android.view.View,int,int[],int) -> layoutChildLeft
+    2079:2087:int layoutChildRight(android.view.View,int,int[],int) -> layoutChildRight
+    1655:1672:int measureChildCollapseMargins(android.view.View,int,int,int,int,int[]) -> measureChildCollapseMargins
+    1630:1647:void measureChildConstrained(android.view.View,int,int,int,int,int) -> measureChildConstrained
+    1574:1576:void onDetachedFromWindow() -> onDetachedFromWindow
+    1609:1625:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    1828:2043:void onLayout(boolean,int,int,int,int) -> onLayout
+    1694:1824:void onMeasure(int,int) -> onMeasure
+    1546:1565:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    494:500:void onRtlPropertiesChanged(int) -> onRtlPropertiesChanged
+    1534:1541:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1585:1601:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    1568:1570:void postShowOverflowMenu() -> postShowOverflowMenu
+    2237:2247:void removeChildrenForExpandedActionView() -> removeChildrenForExpandedActionView
+    1052:1053:void setCollapseContentDescription(int) -> setCollapseContentDescription
+    1066:1072:void setCollapseContentDescription(java.lang.CharSequence) -> setCollapseContentDescription
+    1097:1098:void setCollapseIcon(int) -> setCollapseIcon
+    1111:1117:void setCollapseIcon(android.graphics.drawable.Drawable) -> setCollapseIcon
+    2269:2271:void setCollapsible(boolean) -> setCollapsible
+    1409:1418:void setContentInsetEndWithActions(int) -> setContentInsetEndWithActions
+    1367:1376:void setContentInsetStartWithNavigation(int) -> setContentInsetStartWithNavigation
+    1291:1293:void setContentInsetsAbsolute(int,int) -> setContentInsetsAbsolute
+    1228:1230:void setContentInsetsRelative(int,int) -> setContentInsetsRelative
+    512:513:void setLogo(int) -> setLogo
+    632:644:void setLogo(android.graphics.drawable.Drawable) -> setLogo
+    666:667:void setLogoDescription(int) -> setLogoDescription
+    678:684:void setLogoDescription(java.lang.CharSequence) -> setLogoDescription
+    558:590:void setMenu(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.widget.ActionMenuPresenter) -> setMenu
+    2279:2284:void setMenuCallbacks(androidx.appcompat.view.menu.MenuPresenter$Callback,androidx.appcompat.view.menu.MenuBuilder$Callback) -> setMenuCallbacks
+    932:933:void setNavigationContentDescription(int) -> setNavigationContentDescription
+    946:952:void setNavigationContentDescription(java.lang.CharSequence) -> setNavigationContentDescription
+    969:970:void setNavigationIcon(int) -> setNavigationIcon
+    987:999:void setNavigationIcon(android.graphics.drawable.Drawable) -> setNavigationIcon
+    1023:1025:void setNavigationOnClickListener(android.view.View$OnClickListener) -> setNavigationOnClickListener
+    1206:1207:void setOnMenuItemClickListener(androidx.appcompat.widget.Toolbar$OnMenuItemClickListener) -> setOnMenuItemClickListener
+    1139:1141:void setOverflowIcon(android.graphics.drawable.Drawable) -> setOverflowIcon
+    364:372:void setPopupTheme(int) -> setPopupTheme
+    806:807:void setSubtitle(int) -> setSubtitle
+    817:841:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    859:863:void setSubtitleTextAppearance(android.content.Context,int) -> setSubtitleTextAppearance
+    892:893:void setSubtitleTextColor(int) -> setSubtitleTextColor
+    901:905:void setSubtitleTextColor(android.content.res.ColorStateList) -> setSubtitleTextColor
+    751:752:void setTitle(int) -> setTitle
+    763:787:void setTitle(java.lang.CharSequence) -> setTitle
+    397:403:void setTitleMargin(int,int,int,int) -> setTitleMargin
+    488:490:void setTitleMarginBottom(int) -> setTitleMarginBottom
+    466:469:void setTitleMarginEnd(int) -> setTitleMarginEnd
+    422:425:void setTitleMarginStart(int) -> setTitleMarginStart
+    444:447:void setTitleMarginTop(int) -> setTitleMarginTop
+    848:852:void setTitleTextAppearance(android.content.Context,int) -> setTitleTextAppearance
+    871:872:void setTitleTextColor(int) -> setTitleTextColor
+    880:884:void setTitleTextColor(android.content.res.ColorStateList) -> setTitleTextColor
+    1679:1689:boolean shouldCollapse() -> shouldCollapse
+    2185:2185:boolean shouldLayout(android.view.View) -> shouldLayout
+    543:543:boolean showOverflowMenu() -> showOverflowMenu
+androidx.appcompat.widget.Toolbar$1 -> androidx.appcompat.widget.Toolbar$1:
+    204:204:void <init>(androidx.appcompat.widget.Toolbar) -> <init>
+    207:210:boolean onMenuItemClick(android.view.MenuItem) -> onMenuItemClick
+androidx.appcompat.widget.Toolbar$2 -> androidx.appcompat.widget.Toolbar$2:
+    222:222:void <init>(androidx.appcompat.widget.Toolbar) -> <init>
+    224:225:void run() -> run
+androidx.appcompat.widget.Toolbar$3 -> androidx.appcompat.widget.Toolbar$3:
+    1503:1503:void <init>(androidx.appcompat.widget.Toolbar) -> <init>
+    1506:1507:void onClick(android.view.View) -> onClick
+androidx.appcompat.widget.Toolbar$ExpandedActionViewMenuPresenter -> androidx.appcompat.widget.Toolbar$ExpandedActionViewMenuPresenter:
+    2446:2447:void <init>(androidx.appcompat.widget.Toolbar) -> <init>
+    2544:2557:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    2507:2537:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    2502:2502:boolean flagActionItems() -> flagActionItems
+    2562:2562:int getId() -> getId
+    2460:2460:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    2452:2456:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    2498:2498:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    2572:2572:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    2567:2567:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    2493:2493:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    2489:2489:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    2466:2485:void updateMenuView(boolean) -> updateMenuView
+androidx.appcompat.widget.Toolbar$LayoutParams -> androidx.appcompat.widget.Toolbar$LayoutParams:
+    2350:2354:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2350:2359:void <init>(int,int) -> <init>
+    2350:2364:void <init>(int,int,int) -> <init>
+    2367:2368:void <init>(int) -> <init>
+    2350:2374:void <init>(androidx.appcompat.widget.Toolbar$LayoutParams) -> <init>
+    2350:2378:void <init>(androidx.appcompat.app.ActionBar$LayoutParams) -> <init>
+    2350:2385:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    2350:2389:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    2392:2396:void copyMarginsFromCompat(android.view.ViewGroup$MarginLayoutParams) -> copyMarginsFromCompat
+androidx.appcompat.widget.Toolbar$SavedState -> androidx.appcompat.widget.Toolbar$SavedState:
+    2424:2424:void <clinit>() -> <clinit>
+    2404:2405:void <init>(android.os.Parcel) -> <init>
+    2408:2411:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    2414:2415:void <init>(android.os.Parcelable) -> <init>
+    2419:2422:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.appcompat.widget.Toolbar$SavedState$1 -> androidx.appcompat.widget.Toolbar$SavedState$1:
+    2424:2424:void <init>() -> <init>
+    2424:2424:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2424:2424:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2427:2427:androidx.appcompat.widget.Toolbar$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2432:2432:androidx.appcompat.widget.Toolbar$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    2424:2424:java.lang.Object[] newArray(int) -> newArray
+    2437:2437:androidx.appcompat.widget.Toolbar$SavedState[] newArray(int) -> newArray
+androidx.appcompat.widget.ToolbarWidgetWrapper -> androidx.appcompat.widget.ToolbarWidgetWrapper:
+    96:98:void <init>(androidx.appcompat.widget.Toolbar,boolean) -> <init>
+    90:192:void <init>(androidx.appcompat.widget.Toolbar,boolean,int,int) -> <init>
+    556:561:void animateToVisibility(int) -> animateToVisibility
+    335:335:boolean canShowOverflowMenu() -> canShowOverflowMenu
+    232:233:void collapseActionView() -> collapseActionView
+    206:212:int detectDisplayOptions() -> detectDisplayOptions
+    375:376:void dismissPopupMenus() -> dismissPopupMenus
+    503:509:void ensureSpinner() -> ensureSpinner
+    222:222:android.content.Context getContext() -> getContext
+    551:551:android.view.View getCustomView() -> getCustomView
+    380:380:int getDisplayOptions() -> getDisplayOptions
+    535:535:int getDropdownItemCount() -> getDropdownItemCount
+    530:530:int getDropdownSelectedPosition() -> getDropdownSelectedPosition
+    656:656:int getHeight() -> getHeight
+    677:677:android.view.Menu getMenu() -> getMenu
+    458:458:int getNavigationMode() -> getNavigationMode
+    268:268:java.lang.CharSequence getSubtitle() -> getSubtitle
+    250:250:java.lang.CharSequence getTitle() -> getTitle
+    217:217:android.view.ViewGroup getViewGroup() -> getViewGroup
+    666:666:int getVisibility() -> getVisibility
+    438:438:boolean hasEmbeddedTabs() -> hasEmbeddedTabs
+    227:227:boolean hasExpandedActionView() -> hasExpandedActionView
+    291:291:boolean hasIcon() -> hasIcon
+    296:296:boolean hasLogo() -> hasLogo
+    355:355:boolean hideOverflowMenu() -> hideOverflowMenu
+    286:287:void initIndeterminateProgress() -> initIndeterminateProgress
+    281:282:void initProgress() -> initProgress
+    345:345:boolean isOverflowMenuShowPending() -> isOverflowMenuShowPending
+    340:340:boolean isOverflowMenuShowing() -> isOverflowMenuShowing
+    443:443:boolean isTitleTruncated() -> isTitleTruncated
+    646:647:void restoreHierarchyState(android.util.SparseArray) -> restoreHierarchyState
+    641:642:void saveHierarchyState(android.util.SparseArray) -> saveHierarchyState
+    651:652:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    448:449:void setCollapsible(boolean) -> setCollapsible
+    540:547:void setCustomView(android.view.View) -> setCustomView
+    196:203:void setDefaultNavigationContentDescription(int) -> setDefaultNavigationContentDescription
+    604:608:void setDefaultNavigationIcon(android.graphics.drawable.Drawable) -> setDefaultNavigationIcon
+    385:418:void setDisplayOptions(int) -> setDisplayOptions
+    514:517:void setDropdownParams(android.widget.SpinnerAdapter,android.widget.AdapterView$OnItemSelectedListener) -> setDropdownParams
+    521:526:void setDropdownSelectedPosition(int) -> setDropdownSelectedPosition
+    422:434:void setEmbeddedTabView(androidx.appcompat.widget.ScrollingTabContainerView) -> setEmbeddedTabView
+    454:454:void setHomeButtonEnabled(boolean) -> setHomeButtonEnabled
+    301:302:void setIcon(int) -> setIcon
+    306:308:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    312:313:void setLogo(int) -> setLogo
+    317:319:void setLogo(android.graphics.drawable.Drawable) -> setLogo
+    365:371:void setMenu(android.view.Menu,androidx.appcompat.view.menu.MenuPresenter$Callback) -> setMenu
+    672:673:void setMenuCallbacks(androidx.appcompat.view.menu.MenuPresenter$Callback,androidx.appcompat.view.menu.MenuBuilder$Callback) -> setMenuCallbacks
+    360:361:void setMenuPrepared() -> setMenuPrepared
+    620:622:void setNavigationContentDescription(java.lang.CharSequence) -> setNavigationContentDescription
+    626:627:void setNavigationContentDescription(int) -> setNavigationContentDescription
+    593:595:void setNavigationIcon(android.graphics.drawable.Drawable) -> setNavigationIcon
+    599:600:void setNavigationIcon(int) -> setNavigationIcon
+    463:500:void setNavigationMode(int) -> setNavigationMode
+    273:277:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    255:257:void setTitle(java.lang.CharSequence) -> setTitle
+    260:264:void setTitleInt(java.lang.CharSequence) -> setTitleInt
+    661:662:void setVisibility(int) -> setVisibility
+    237:238:void setWindowCallback(android.view.Window$Callback) -> setWindowCallback
+    243:246:void setWindowTitle(java.lang.CharSequence) -> setWindowTitle
+    566:569:androidx.core.view.ViewPropertyAnimatorCompat setupAnimatorToVisibility(int,long) -> setupAnimatorToVisibility
+    350:350:boolean showOverflowMenu() -> showOverflowMenu
+    630:637:void updateHomeAccessibility() -> updateHomeAccessibility
+    611:616:void updateNavigationIcon() -> updateNavigationIcon
+    322:331:void updateToolbarLogo() -> updateToolbarLogo
+androidx.appcompat.widget.ToolbarWidgetWrapper$1 -> androidx.appcompat.widget.ToolbarWidgetWrapper$1:
+    182:183:void <init>(androidx.appcompat.widget.ToolbarWidgetWrapper) -> <init>
+    187:190:void onClick(android.view.View) -> onClick
+androidx.appcompat.widget.ToolbarWidgetWrapper$2 -> androidx.appcompat.widget.ToolbarWidgetWrapper$2:
+    569:570:void <init>(androidx.appcompat.widget.ToolbarWidgetWrapper,int) -> <init>
+    586:587:void onAnimationCancel(android.view.View) -> onAnimationCancel
+    579:582:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    574:575:void onAnimationStart(android.view.View) -> onAnimationStart
+androidx.appcompat.widget.TooltipCompat -> androidx.appcompat.widget.TooltipCompat:
+    48:48:void <init>() -> <init>
+    41:46:void setTooltipText(android.view.View,java.lang.CharSequence) -> setTooltipText
+androidx.appcompat.widget.TooltipCompatHandler -> androidx.appcompat.widget.TooltipCompatHandler:
+    54:117:void <init>(android.view.View,java.lang.CharSequence) -> <init>
+    224:225:void cancelPendingShow() -> cancelPendingShow
+    250:252:void clearAnchorPos() -> clearAnchorPos
+    192:207:void hide() -> hide
+    129:149:boolean onHover(android.view.View,android.view.MotionEvent) -> onHover
+    121:124:boolean onLongClick(android.view.View) -> onLongClick
+    155:155:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    159:160:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+    220:221:void scheduleShow() -> scheduleShow
+    210:217:void setPendingHandler(androidx.appcompat.widget.TooltipCompatHandler) -> setPendingHandler
+    93:106:void setTooltipText(android.view.View,java.lang.CharSequence) -> setTooltipText
+    163:189:void show(boolean) -> show
+    235:243:boolean updateAnchorPos(android.view.MotionEvent) -> updateAnchorPos
+androidx.appcompat.widget.TooltipCompatHandler$1 -> androidx.appcompat.widget.TooltipCompatHandler$1:
+    54:54:void <init>(androidx.appcompat.widget.TooltipCompatHandler) -> <init>
+    57:58:void run() -> run
+androidx.appcompat.widget.TooltipCompatHandler$2 -> androidx.appcompat.widget.TooltipCompatHandler$2:
+    60:60:void <init>(androidx.appcompat.widget.TooltipCompatHandler) -> <init>
+    63:64:void run() -> run
+androidx.appcompat.widget.TooltipPopup -> androidx.appcompat.widget.TooltipPopup:
+    54:74:void <init>(android.content.Context) -> <init>
+    105:185:void computePosition(android.view.View,int,int,boolean,android.view.WindowManager$LayoutParams) -> computePosition
+    188:208:android.view.View getAppRootView(android.view.View) -> getAppRootView
+    91:97:void hide() -> hide
+    100:100:boolean isShowing() -> isShowing
+    78:88:void show(android.view.View,int,int,boolean,java.lang.CharSequence) -> show
+androidx.appcompat.widget.VectorEnabledTintResources -> androidx.appcompat.widget.VectorEnabledTintResources:
+    39:39:void <clinit>() -> <clinit>
+    56:58:void <init>(android.content.Context,android.content.res.Resources) -> <init>
+    68:72:android.graphics.drawable.Drawable getDrawable(int) -> getDrawable
+    96:96:boolean isCompatVectorFromResourcesEnabled() -> isCompatVectorFromResourcesEnabled
+    86:87:void setCompatVectorFromResourcesEnabled(boolean) -> setCompatVectorFromResourcesEnabled
+    42:42:boolean shouldBeUsed() -> shouldBeUsed
+    78:78:android.graphics.drawable.Drawable superGetDrawable(int) -> superGetDrawable
+androidx.appcompat.widget.ViewStubCompat -> androidx.appcompat.widget.ViewStubCompat:
+    55:56:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:72:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    161:161:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    157:157:void draw(android.graphics.Canvas) -> draw
+    85:85:int getInflatedId() -> getInflatedId
+    146:146:android.view.LayoutInflater getLayoutInflater() -> getLayoutInflater
+    115:115:int getLayoutResource() -> getLayoutResource
+    198:237:android.view.View inflate() -> inflate
+    151:152:void onMeasure(int,int) -> onMeasure
+    99:100:void setInflatedId(int) -> setInflatedId
+    139:140:void setLayoutInflater(android.view.LayoutInflater) -> setLayoutInflater
+    131:132:void setLayoutResource(int) -> setLayoutResource
+    250:251:void setOnInflateListener(androidx.appcompat.widget.ViewStubCompat$OnInflateListener) -> setOnInflateListener
+    175:188:void setVisibility(int) -> setVisibility
+androidx.appcompat.widget.ViewUtils -> androidx.appcompat.widget.ViewUtils:
+    42:53:void <clinit>() -> <clinit>
+    55:55:void <init>() -> <init>
+    66:73:void computeFitSystemWindows(android.view.View,android.graphics.Rect,android.graphics.Rect) -> computeFitSystemWindows
+    58:58:boolean isLayoutRtl(android.view.View) -> isLayoutRtl
+    80:97:void makeOptionalFitsSystemWindows(android.view.View) -> makeOptionalFitsSystemWindows
+androidx.arch.core.executor.ArchTaskExecutor -> androidx.arch.core.executor.ArchTaskExecutor:
+    42:50:void <clinit>() -> <clinit>
+    57:60:void <init>() -> <init>
+    96:97:void executeOnDiskIO(java.lang.Runnable) -> executeOnDiskIO
+    111:111:java.util.concurrent.Executor getIOThreadExecutor() -> getIOThreadExecutor
+    69:77:androidx.arch.core.executor.ArchTaskExecutor getInstance() -> getInstance
+    106:106:java.util.concurrent.Executor getMainThreadExecutor() -> getMainThreadExecutor
+    116:116:boolean isMainThread() -> isMainThread
+    101:102:void postToMainThread(java.lang.Runnable) -> postToMainThread
+    91:92:void setDelegate(androidx.arch.core.executor.TaskExecutor) -> setDelegate
+androidx.arch.core.executor.ArchTaskExecutor$1 -> androidx.arch.core.executor.ArchTaskExecutor$1:
+    42:42:void <init>() -> <init>
+    45:46:void execute(java.lang.Runnable) -> execute
+androidx.arch.core.executor.ArchTaskExecutor$2 -> androidx.arch.core.executor.ArchTaskExecutor$2:
+    50:50:void <init>() -> <init>
+    53:54:void execute(java.lang.Runnable) -> execute
+androidx.arch.core.executor.DefaultTaskExecutor -> androidx.arch.core.executor.DefaultTaskExecutor:
+    37:41:void <init>() -> <init>
+    81:96:android.os.Handler createAsync(android.os.Looper) -> createAsync
+    59:60:void executeOnDiskIO(java.lang.Runnable) -> executeOnDiskIO
+    77:77:boolean isMainThread() -> isMainThread
+    64:73:void postToMainThread(java.lang.Runnable) -> postToMainThread
+androidx.arch.core.executor.DefaultTaskExecutor$1 -> androidx.arch.core.executor.DefaultTaskExecutor$1:
+    41:44:void <init>(androidx.arch.core.executor.DefaultTaskExecutor) -> <init>
+    48:50:java.lang.Thread newThread(java.lang.Runnable) -> newThread
+androidx.arch.core.executor.TaskExecutor -> androidx.arch.core.executor.TaskExecutor:
+    31:31:void <init>() -> <init>
+    54:59:void executeOnMainThread(java.lang.Runnable) -> executeOnMainThread
+androidx.arch.core.internal.FastSafeIterableMap -> androidx.arch.core.internal.FastSafeIterableMap:
+    35:37:void <init>() -> <init>
+    75:78:java.util.Map$Entry ceil(java.lang.Object) -> ceil
+    66:66:boolean contains(java.lang.Object) -> contains
+    41:41:androidx.arch.core.internal.SafeIterableMap$Entry get(java.lang.Object) -> get
+    46:51:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object) -> putIfAbsent
+    56:58:java.lang.Object remove(java.lang.Object) -> remove
+androidx.arch.core.internal.SafeIterableMap -> androidx.arch.core.internal.SafeIterableMap:
+    35:43:void <init>() -> <init>
+    150:152:java.util.Iterator descendingIterator() -> descendingIterator
+    169:169:java.util.Map$Entry eldest() -> eldest
+    181:201:boolean equals(java.lang.Object) -> equals
+    46:53:androidx.arch.core.internal.SafeIterableMap$Entry get(java.lang.Object) -> get
+    206:211:int hashCode() -> hashCode
+    140:142:java.util.Iterator iterator() -> iterator
+    160:162:androidx.arch.core.internal.SafeIterableMap$IteratorWithAdditions iteratorWithAdditions() -> iteratorWithAdditions
+    176:176:java.util.Map$Entry newest() -> newest
+    75:86:androidx.arch.core.internal.SafeIterableMap$Entry put(java.lang.Object,java.lang.Object) -> put
+    66:71:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object) -> putIfAbsent
+    98:123:java.lang.Object remove(java.lang.Object) -> remove
+    130:130:int size() -> size
+    216:226:java.lang.String toString() -> toString
+androidx.arch.core.internal.SafeIterableMap$AscendingIterator -> androidx.arch.core.internal.SafeIterableMap$AscendingIterator:
+    283:284:void <init>(androidx.arch.core.internal.SafeIterableMap$Entry,androidx.arch.core.internal.SafeIterableMap$Entry) -> <init>
+    293:293:androidx.arch.core.internal.SafeIterableMap$Entry backward(androidx.arch.core.internal.SafeIterableMap$Entry) -> backward
+    288:288:androidx.arch.core.internal.SafeIterableMap$Entry forward(androidx.arch.core.internal.SafeIterableMap$Entry) -> forward
+androidx.arch.core.internal.SafeIterableMap$DescendingIterator -> androidx.arch.core.internal.SafeIterableMap$DescendingIterator:
+    300:301:void <init>(androidx.arch.core.internal.SafeIterableMap$Entry,androidx.arch.core.internal.SafeIterableMap$Entry) -> <init>
+    310:310:androidx.arch.core.internal.SafeIterableMap$Entry backward(androidx.arch.core.internal.SafeIterableMap$Entry) -> backward
+    305:305:androidx.arch.core.internal.SafeIterableMap$Entry forward(androidx.arch.core.internal.SafeIterableMap$Entry) -> forward
+androidx.arch.core.internal.SafeIterableMap$Entry -> androidx.arch.core.internal.SafeIterableMap$Entry:
+    362:365:void <init>(java.lang.Object,java.lang.Object) -> <init>
+    392:399:boolean equals(java.lang.Object) -> equals
+    370:370:java.lang.Object getKey() -> getKey
+    376:376:java.lang.Object getValue() -> getValue
+    404:404:int hashCode() -> hashCode
+    381:381:java.lang.Object setValue(java.lang.Object) -> setValue
+    386:386:java.lang.String toString() -> toString
+androidx.arch.core.internal.SafeIterableMap$IteratorWithAdditions -> androidx.arch.core.internal.SafeIterableMap$IteratorWithAdditions:
+    316:319:void <init>(androidx.arch.core.internal.SafeIterableMap) -> <init>
+    332:335:boolean hasNext() -> hasNext
+    314:314:java.lang.Object next() -> next
+    340:346:java.util.Map$Entry next() -> next
+    324:328:void supportRemove(androidx.arch.core.internal.SafeIterableMap$Entry) -> supportRemove
+androidx.arch.core.internal.SafeIterableMap$ListIterator -> androidx.arch.core.internal.SafeIterableMap$ListIterator:
+    234:237:void <init>(androidx.arch.core.internal.SafeIterableMap$Entry,androidx.arch.core.internal.SafeIterableMap$Entry) -> <init>
+    241:241:boolean hasNext() -> hasNext
+    229:229:java.lang.Object next() -> next
+    271:273:java.util.Map$Entry next() -> next
+    263:266:androidx.arch.core.internal.SafeIterableMap$Entry nextNode() -> nextNode
+    247:259:void supportRemove(androidx.arch.core.internal.SafeIterableMap$Entry) -> supportRemove
+androidx.cardview.widget.CardView -> androidx.cardview.widget.CardView:
+    81:93:void <clinit>() -> <clinit>
+    113:114:void <init>(android.content.Context) -> <init>
+    117:118:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    108:447:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    79:79:void access$001(androidx.cardview.widget.CardView,int,int,int,int) -> access$001
+    79:79:void access$101(androidx.cardview.widget.CardView,int) -> access$101
+    79:79:void access$201(androidx.cardview.widget.CardView,int) -> access$201
+    303:303:android.content.res.ColorStateList getCardBackgroundColor() -> getCardBackgroundColor
+    387:387:float getCardElevation() -> getCardElevation
+    343:343:int getContentPaddingBottom() -> getContentPaddingBottom
+    313:313:int getContentPaddingLeft() -> getContentPaddingLeft
+    323:323:int getContentPaddingRight() -> getContentPaddingRight
+    333:333:int getContentPaddingTop() -> getContentPaddingTop
+    413:413:float getMaxCardElevation() -> getMaxCardElevation
+    424:424:boolean getPreventCornerOverlap() -> getPreventCornerOverlap
+    364:364:float getRadius() -> getRadius
+    183:183:boolean getUseCompatPadding() -> getUseCompatPadding
+    232:262:void onMeasure(int,int) -> onMeasure
+    283:284:void setCardBackgroundColor(int) -> setCardBackgroundColor
+    293:294:void setCardBackgroundColor(android.content.res.ColorStateList) -> setCardBackgroundColor
+    376:377:void setCardElevation(float) -> setCardElevation
+    226:228:void setContentPadding(int,int,int,int) -> setContentPadding
+    402:403:void setMaxCardElevation(float) -> setMaxCardElevation
+    272:274:void setMinimumHeight(int) -> setMinimumHeight
+    266:268:void setMinimumWidth(int) -> setMinimumWidth
+    169:169:void setPadding(int,int,int,int) -> setPadding
+    174:174:void setPaddingRelative(int,int,int,int) -> setPaddingRelative
+    441:445:void setPreventCornerOverlap(boolean) -> setPreventCornerOverlap
+    354:355:void setRadius(float) -> setRadius
+    203:207:void setUseCompatPadding(boolean) -> setUseCompatPadding
+androidx.cardview.widget.CardView$1 -> androidx.cardview.widget.CardView$1:
+    447:447:void <init>(androidx.cardview.widget.CardView) -> <init>
+    485:485:android.graphics.drawable.Drawable getCardBackground() -> getCardBackground
+    490:490:android.view.View getCardView() -> getCardView
+    463:463:boolean getPreventCornerOverlap() -> getPreventCornerOverlap
+    458:458:boolean getUseCompatPadding() -> getUseCompatPadding
+    452:454:void setCardBackground(android.graphics.drawable.Drawable) -> setCardBackground
+    475:481:void setMinWidthHeightInternal(int,int) -> setMinWidthHeightInternal
+    468:471:void setShadowPadding(int,int,int,int) -> setShadowPadding
+androidx.cardview.widget.CardViewApi17Impl -> androidx.cardview.widget.CardViewApi17Impl:
+    25:25:void <init>() -> <init>
+    29:37:void initStatic() -> initStatic
+androidx.cardview.widget.CardViewApi17Impl$1 -> androidx.cardview.widget.CardViewApi17Impl$1:
+    30:30:void <init>(androidx.cardview.widget.CardViewApi17Impl) -> <init>
+    34:35:void drawRoundRect(android.graphics.Canvas,android.graphics.RectF,float,android.graphics.Paint) -> drawRoundRect
+androidx.cardview.widget.CardViewApi21Impl -> androidx.cardview.widget.CardViewApi21Impl:
+    26:26:void <init>() -> <init>
+    118:118:android.content.res.ColorStateList getBackgroundColor(androidx.cardview.widget.CardViewDelegate) -> getBackgroundColor
+    122:122:androidx.cardview.widget.RoundRectDrawable getCardBackground(androidx.cardview.widget.CardViewDelegate) -> getCardBackground
+    83:83:float getElevation(androidx.cardview.widget.CardViewDelegate) -> getElevation
+    58:58:float getMaxElevation(androidx.cardview.widget.CardViewDelegate) -> getMaxElevation
+    68:68:float getMinHeight(androidx.cardview.widget.CardViewDelegate) -> getMinHeight
+    63:63:float getMinWidth(androidx.cardview.widget.CardViewDelegate) -> getMinWidth
+    73:73:float getRadius(androidx.cardview.widget.CardViewDelegate) -> getRadius
+    47:47:void initStatic() -> initStatic
+    31:38:void initialize(androidx.cardview.widget.CardViewDelegate,android.content.Context,android.content.res.ColorStateList,float,float,float) -> initialize
+    103:104:void onCompatPaddingChanged(androidx.cardview.widget.CardViewDelegate) -> onCompatPaddingChanged
+    108:109:void onPreventCornerOverlapChanged(androidx.cardview.widget.CardViewDelegate) -> onPreventCornerOverlapChanged
+    113:114:void setBackgroundColor(androidx.cardview.widget.CardViewDelegate,android.content.res.ColorStateList) -> setBackgroundColor
+    78:79:void setElevation(androidx.cardview.widget.CardViewDelegate,float) -> setElevation
+    51:54:void setMaxElevation(androidx.cardview.widget.CardViewDelegate,float) -> setMaxElevation
+    42:43:void setRadius(androidx.cardview.widget.CardViewDelegate,float) -> setRadius
+    88:99:void updatePadding(androidx.cardview.widget.CardViewDelegate) -> updatePadding
+androidx.cardview.widget.CardViewBaseImpl -> androidx.cardview.widget.CardViewBaseImpl:
+    27:29:void <init>() -> <init>
+    93:93:androidx.cardview.widget.RoundRectDrawableWithShadow createBackground(android.content.Context,android.content.res.ColorStateList,float,float,float) -> createBackground
+    125:125:android.content.res.ColorStateList getBackgroundColor(androidx.cardview.widget.CardViewDelegate) -> getBackgroundColor
+    146:146:float getElevation(androidx.cardview.widget.CardViewDelegate) -> getElevation
+    157:157:float getMaxElevation(androidx.cardview.widget.CardViewDelegate) -> getMaxElevation
+    167:167:float getMinHeight(androidx.cardview.widget.CardViewDelegate) -> getMinHeight
+    162:162:float getMinWidth(androidx.cardview.widget.CardViewDelegate) -> getMinWidth
+    136:136:float getRadius(androidx.cardview.widget.CardViewDelegate) -> getRadius
+    171:171:androidx.cardview.widget.RoundRectDrawableWithShadow getShadowBackground(androidx.cardview.widget.CardViewDelegate) -> getShadowBackground
+    37:78:void initStatic() -> initStatic
+    83:88:void initialize(androidx.cardview.widget.CardViewDelegate,android.content.Context,android.content.res.ColorStateList,float,float,float) -> initialize
+    110:110:void onCompatPaddingChanged(androidx.cardview.widget.CardViewDelegate) -> onCompatPaddingChanged
+    114:116:void onPreventCornerOverlapChanged(androidx.cardview.widget.CardViewDelegate) -> onPreventCornerOverlapChanged
+    120:121:void setBackgroundColor(androidx.cardview.widget.CardViewDelegate,android.content.res.ColorStateList) -> setBackgroundColor
+    141:142:void setElevation(androidx.cardview.widget.CardViewDelegate,float) -> setElevation
+    151:153:void setMaxElevation(androidx.cardview.widget.CardViewDelegate,float) -> setMaxElevation
+    130:132:void setRadius(androidx.cardview.widget.CardViewDelegate,float) -> setRadius
+    99:105:void updatePadding(androidx.cardview.widget.CardViewDelegate) -> updatePadding
+androidx.cardview.widget.CardViewBaseImpl$1 -> androidx.cardview.widget.CardViewBaseImpl$1:
+    38:38:void <init>(androidx.cardview.widget.CardViewBaseImpl) -> <init>
+    42:76:void drawRoundRect(android.graphics.Canvas,android.graphics.RectF,float,android.graphics.Paint) -> drawRoundRect
+androidx.cardview.widget.RoundRectDrawable -> androidx.cardview.widget.RoundRectDrawable:
+    47:62:void <init>(android.content.res.ColorStateList,float) -> <init>
+    206:210:android.graphics.PorterDuffColorFilter createTintFilter(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode) -> createTintFilter
+    87:102:void draw(android.graphics.Canvas) -> draw
+    164:164:android.content.res.ColorStateList getColor() -> getColor
+    151:151:int getOpacity() -> getOpacity
+    127:128:void getOutline(android.graphics.Outline) -> getOutline
+    82:82:float getPadding() -> getPadding
+    155:155:float getRadius() -> getRadius
+    197:198:boolean isStateful() -> isStateful
+    121:123:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    183:192:boolean onStateChange(int[]) -> onStateChange
+    141:142:void setAlpha(int) -> setAlpha
+    65:67:void setBackground(android.content.res.ColorStateList) -> setBackground
+    159:161:void setColor(android.content.res.ColorStateList) -> setColor
+    146:147:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    70:79:void setPadding(float,boolean,boolean) -> setPadding
+    131:137:void setRadius(float) -> setRadius
+    169:172:void setTintList(android.content.res.ColorStateList) -> setTintList
+    176:179:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    105:117:void updateBounds(android.graphics.Rect) -> updateBounds
+androidx.cardview.widget.RoundRectDrawableWithShadow -> androidx.cardview.widget.RoundRectDrawableWithShadow:
+    41:41:void <clinit>() -> <clinit>
+    78:105:void <init>(android.content.res.Resources,android.content.res.ColorStateList,float,float,float) -> <init>
+    334:338:void buildComponents(android.graphics.Rect) -> buildComponents
+    297:328:void buildShadowCorners() -> buildShadowCorners
+    189:192:float calculateHorizontalPadding(float,float,boolean) -> calculateHorizontalPadding
+    180:183:float calculateVerticalPadding(float,float,boolean) -> calculateVerticalPadding
+    238:246:void draw(android.graphics.Canvas) -> draw
+    249:294:void drawShadow(android.graphics.Canvas) -> drawShadow
+    382:382:android.content.res.ColorStateList getColor() -> getColor
+    341:341:float getCornerRadius() -> getCornerRadius
+    345:346:void getMaxShadowAndCornerPadding(android.graphics.Rect) -> getMaxShadowAndCornerPadding
+    361:361:float getMaxShadowSize() -> getMaxShadowSize
+    371:373:float getMinHeight() -> getMinHeight
+    365:367:float getMinWidth() -> getMinWidth
+    220:220:int getOpacity() -> getOpacity
+    170:175:boolean getPadding(android.graphics.Rect) -> getPadding
+    357:357:float getShadowSize() -> getShadowSize
+    210:210:boolean isStateful() -> isStateful
+    137:139:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    198:205:boolean onStateChange(int[]) -> onStateChange
+    124:126:void setAddPaddingForCorners(boolean) -> setAddPaddingForCorners
+    130:133:void setAlpha(int) -> setAlpha
+    108:110:void setBackground(android.content.res.ColorStateList) -> setBackground
+    377:379:void setColor(android.content.res.ColorStateList) -> setColor
+    215:216:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    224:234:void setCornerRadius(float) -> setCornerRadius
+    353:354:void setMaxShadowSize(float) -> setMaxShadowSize
+    142:166:void setShadowSize(float,float) -> setShadowSize
+    349:350:void setShadowSize(float) -> setShadowSize
+    116:120:int toEven(float) -> toEven
+androidx.collection.ArrayMap -> androidx.collection.ArrayMap:
+    57:58:void <init>() -> <init>
+    64:65:void <init>(int) -> <init>
+    71:72:void <init>(androidx.collection.SimpleArrayMap) -> <init>
+    133:133:boolean containsAll(java.util.Collection) -> containsAll
+    182:182:java.util.Set entrySet() -> entrySet
+    75:123:androidx.collection.MapCollections getCollection() -> getCollection
+    194:194:java.util.Set keySet() -> keySet
+    142:146:void putAll(java.util.Map) -> putAll
+    154:154:boolean removeAll(java.util.Collection) -> removeAll
+    164:164:boolean retainAll(java.util.Collection) -> retainAll
+    206:206:java.util.Collection values() -> values
+androidx.collection.ArrayMap$1 -> androidx.collection.ArrayMap$1:
+    76:76:void <init>(androidx.collection.ArrayMap) -> <init>
+    119:120:void colClear() -> colClear
+    84:84:java.lang.Object colGetEntry(int,int) -> colGetEntry
+    99:99:java.util.Map colGetMap() -> colGetMap
+    79:79:int colGetSize() -> colGetSize
+    89:89:int colIndexOfKey(java.lang.Object) -> colIndexOfKey
+    94:94:int colIndexOfValue(java.lang.Object) -> colIndexOfValue
+    104:105:void colPut(java.lang.Object,java.lang.Object) -> colPut
+    114:115:void colRemoveAt(int) -> colRemoveAt
+    109:109:java.lang.Object colSetValue(int,java.lang.Object) -> colSetValue
+androidx.collection.ArraySet -> androidx.collection.ArraySet:
+    50:51:void <clinit>() -> <clinit>
+    240:241:void <init>() -> <init>
+    247:255:void <init>(int) -> <init>
+    261:265:void <init>(androidx.collection.ArraySet) -> <init>
+    271:275:void <init>(java.util.Collection) -> <init>
+    359:402:boolean add(java.lang.Object) -> add
+    410:423:void addAll(androidx.collection.ArraySet) -> addAll
+    719:724:boolean addAll(java.util.Collection) -> addAll
+    160:196:void allocArrays(int) -> allocArrays
+    282:288:void clear() -> clear
+    315:315:boolean contains(java.lang.Object) -> contains
+    705:710:boolean containsAll(java.util.Collection) -> containsAll
+    295:305:void ensureCapacity(int) -> ensureCapacity
+    559:582:boolean equals(java.lang.Object) -> equals
+    200:233:void freeArrays(int[],java.lang.Object[],int) -> freeArrays
+    634:682:androidx.collection.MapCollections getCollection() -> getCollection
+    590:595:int hashCode() -> hashCode
+    83:117:int indexOf(java.lang.Object,int) -> indexOf
+    325:325:int indexOf(java.lang.Object) -> indexOf
+    121:155:int indexOfNull() -> indexOfNull
+    343:343:boolean isEmpty() -> isEmpty
+    694:694:java.util.Iterator iterator() -> iterator
+    433:438:boolean remove(java.lang.Object) -> remove
+    506:514:boolean removeAll(androidx.collection.ArraySet) -> removeAll
+    734:738:boolean removeAll(java.util.Collection) -> removeAll
+    447:494:java.lang.Object removeAt(int) -> removeAt
+    749:756:boolean retainAll(java.util.Collection) -> retainAll
+    522:522:int size() -> size
+    528:530:java.lang.Object[] toArray() -> toArray
+    536:545:java.lang.Object[] toArray(java.lang.Object[]) -> toArray
+    607:625:java.lang.String toString() -> toString
+    335:335:java.lang.Object valueAt(int) -> valueAt
+androidx.collection.ArraySet$1 -> androidx.collection.ArraySet$1:
+    635:635:void <init>(androidx.collection.ArraySet) -> <init>
+    678:679:void colClear() -> colClear
+    643:643:java.lang.Object colGetEntry(int,int) -> colGetEntry
+    658:658:java.util.Map colGetMap() -> colGetMap
+    638:638:int colGetSize() -> colGetSize
+    648:648:int colIndexOfKey(java.lang.Object) -> colIndexOfKey
+    653:653:int colIndexOfValue(java.lang.Object) -> colIndexOfValue
+    663:664:void colPut(java.lang.Object,java.lang.Object) -> colPut
+    673:674:void colRemoveAt(int) -> colRemoveAt
+    668:668:java.lang.Object colSetValue(int,java.lang.Object) -> colSetValue
+androidx.collection.CircularArray -> androidx.collection.CircularArray:
+    49:50:void <init>() -> <init>
+    58:77:void <init>(int) -> <init>
+    84:89:void addFirst(java.lang.Object) -> addFirst
+    96:101:void addLast(java.lang.Object) -> addLast
+    138:139:void clear() -> clear
+    30:43:void doubleCapacity() -> doubleCapacity
+    240:243:java.lang.Object get(int) -> get
+    215:218:java.lang.Object getFirst() -> getFirst
+    227:230:java.lang.Object getLast() -> getLast
+    259:259:boolean isEmpty() -> isEmpty
+    109:115:java.lang.Object popFirst() -> popFirst
+    124:131:java.lang.Object popLast() -> popLast
+    182:207:void removeFromEnd(int) -> removeFromEnd
+    149:172:void removeFromStart(int) -> removeFromStart
+    251:251:int size() -> size
+androidx.collection.CircularIntArray -> androidx.collection.CircularIntArray:
+    50:51:void <init>() -> <init>
+    59:78:void <init>(int) -> <init>
+    85:90:void addFirst(int) -> addFirst
+    97:102:void addLast(int) -> addLast
+    133:134:void clear() -> clear
+    31:44:void doubleCapacity() -> doubleCapacity
+    197:198:int get(int) -> get
+    176:177:int getFirst() -> getFirst
+    186:187:int getLast() -> getLast
+    214:214:boolean isEmpty() -> isEmpty
+    110:113:int popFirst() -> popFirst
+    122:126:int popLast() -> popLast
+    161:168:void removeFromEnd(int) -> removeFromEnd
+    144:151:void removeFromStart(int) -> removeFromStart
+    206:206:int size() -> size
+androidx.collection.ContainerHelpers -> androidx.collection.ContainerHelpers:
+    20:22:void <clinit>() -> <clinit>
+    83:84:void <init>() -> <init>
+    46:61:int binarySearch(int[],int,int) -> binarySearch
+    65:80:int binarySearch(long[],int,long) -> binarySearch
+    41:41:boolean equal(java.lang.Object,java.lang.Object) -> equal
+    33:37:int idealByteArraySize(int) -> idealByteArraySize
+    25:25:int idealIntArraySize(int) -> idealIntArraySize
+    29:29:int idealLongArraySize(int) -> idealLongArraySize
+androidx.collection.LongSparseArray -> androidx.collection.LongSparseArray:
+    51:51:void <clinit>() -> <clinit>
+    62:63:void <init>() -> <init>
+    52:81:void <init>(int) -> <init>
+    456:483:void append(long,java.lang.Object) -> append
+    440:449:void clear() -> clear
+    50:50:java.lang.Object clone() -> clone
+    88:94:androidx.collection.LongSparseArray clone() -> clone
+    428:428:boolean containsKey(long) -> containsKey
+    433:433:boolean containsValue(java.lang.Object) -> containsValue
+    132:133:void delete(long) -> delete
+    217:240:void gc() -> gc
+    109:109:java.lang.Object get(long) -> get
+    118:123:java.lang.Object get(long,java.lang.Object) -> get
+    399:403:int indexOfKey(long) -> indexOfKey
+    415:423:int indexOfValue(java.lang.Object) -> indexOfValue
+    339:339:boolean isEmpty() -> isEmpty
+    353:357:long keyAt(int) -> keyAt
+    248:292:void put(long,java.lang.Object) -> put
+    300:303:void putAll(androidx.collection.LongSparseArray) -> putAll
+    315:319:java.lang.Object putIfAbsent(long,java.lang.Object) -> putIfAbsent
+    139:147:void remove(long) -> remove
+    156:164:boolean remove(long,java.lang.Object) -> remove
+    171:175:void removeAt(int) -> removeAt
+    185:191:java.lang.Object replace(long,java.lang.Object) -> replace
+    203:211:boolean replace(long,java.lang.Object,java.lang.Object) -> replace
+    386:391:void setValueAt(int,java.lang.Object) -> setValueAt
+    327:331:int size() -> size
+    494:515:java.lang.String toString() -> toString
+    373:377:java.lang.Object valueAt(int) -> valueAt
+androidx.collection.LruCache -> androidx.collection.LruCache:
+    51:57:void <init>(int) -> <init>
+    255:255:java.lang.Object create(java.lang.Object) -> create
+    322:322:int createCount() -> createCount
+    236:236:void entryRemoved(boolean,java.lang.Object,java.lang.Object,java.lang.Object) -> entryRemoved
+    281:282:void evictAll() -> evictAll
+    336:336:int evictionCount() -> evictionCount
+    83:126:java.lang.Object get(java.lang.Object) -> get
+    307:307:int hitCount() -> hitCount
+    299:299:int maxSize() -> maxSize
+    315:315:int missCount() -> missCount
+    138:157:java.lang.Object put(java.lang.Object,java.lang.Object) -> put
+    329:329:int putCount() -> putCount
+    200:216:java.lang.Object remove(java.lang.Object) -> remove
+    65:73:void resize(int) -> resize
+    259:263:int safeSizeOf(java.lang.Object,java.lang.Object) -> safeSizeOf
+    290:290:int size() -> size
+    274:274:int sizeOf(java.lang.Object,java.lang.Object) -> sizeOf
+    344:344:java.util.Map snapshot() -> snapshot
+    347:351:java.lang.String toString() -> toString
+    171:191:void trimToSize(int) -> trimToSize
+androidx.collection.MapCollections -> androidx.collection.MapCollections:
+    32:32:void <init>() -> <init>
+    459:465:boolean containsAllHelper(java.util.Map,java.util.Collection) -> containsAllHelper
+    515:529:boolean equalsSetHelper(java.util.Set,java.lang.Object) -> equalsSetHelper
+    533:536:java.util.Set getEntrySet() -> getEntrySet
+    540:543:java.util.Set getKeySet() -> getKeySet
+    547:550:java.util.Collection getValues() -> getValues
+    469:474:boolean removeAllHelper(java.util.Map,java.util.Collection) -> removeAllHelper
+    478:485:boolean retainAllHelper(java.util.Map,java.util.Collection) -> retainAllHelper
+    490:495:java.lang.Object[] toArrayHelper(int) -> toArrayHelper
+    499:511:java.lang.Object[] toArrayHelper(java.lang.Object[],int) -> toArrayHelper
+androidx.collection.MapCollections$ArrayIterator -> androidx.collection.MapCollections$ArrayIterator:
+    41:46:void <init>(androidx.collection.MapCollections,int) -> <init>
+    50:50:boolean hasNext() -> hasNext
+    55:59:java.lang.Object next() -> next
+    64:71:void remove() -> remove
+androidx.collection.MapCollections$EntrySet -> androidx.collection.MapCollections$EntrySet:
+    167:167:void <init>(androidx.collection.MapCollections) -> <init>
+    167:167:boolean add(java.lang.Object) -> add
+    170:170:boolean add(java.util.Map$Entry) -> add
+    175:179:boolean addAll(java.util.Collection) -> addAll
+    184:185:void clear() -> clear
+    189:197:boolean contains(java.lang.Object) -> contains
+    202:208:boolean containsAll(java.util.Collection) -> containsAll
+    253:253:boolean equals(java.lang.Object) -> equals
+    258:265:int hashCode() -> hashCode
+    213:213:boolean isEmpty() -> isEmpty
+    218:218:java.util.Iterator iterator() -> iterator
+    223:223:boolean remove(java.lang.Object) -> remove
+    228:228:boolean removeAll(java.util.Collection) -> removeAll
+    233:233:boolean retainAll(java.util.Collection) -> retainAll
+    238:238:int size() -> size
+    243:243:java.lang.Object[] toArray() -> toArray
+    248:248:java.lang.Object[] toArray(java.lang.Object[]) -> toArray
+androidx.collection.MapCollections$KeySet -> androidx.collection.MapCollections$KeySet:
+    269:269:void <init>(androidx.collection.MapCollections) -> <init>
+    273:273:boolean add(java.lang.Object) -> add
+    278:278:boolean addAll(java.util.Collection) -> addAll
+    283:284:void clear() -> clear
+    288:288:boolean contains(java.lang.Object) -> contains
+    293:293:boolean containsAll(java.util.Collection) -> containsAll
+    343:343:boolean equals(java.lang.Object) -> equals
+    348:353:int hashCode() -> hashCode
+    298:298:boolean isEmpty() -> isEmpty
+    303:303:java.util.Iterator iterator() -> iterator
+    308:313:boolean remove(java.lang.Object) -> remove
+    318:318:boolean removeAll(java.util.Collection) -> removeAll
+    323:323:boolean retainAll(java.util.Collection) -> retainAll
+    328:328:int size() -> size
+    333:333:java.lang.Object[] toArray() -> toArray
+    338:338:java.lang.Object[] toArray(java.lang.Object[]) -> toArray
+androidx.collection.MapCollections$MapIterator -> androidx.collection.MapCollections$MapIterator:
+    77:82:void <init>(androidx.collection.MapCollections) -> <init>
+    137:146:boolean equals(java.lang.Object) -> equals
+    110:114:java.lang.Object getKey() -> getKey
+    119:123:java.lang.Object getValue() -> getValue
+    86:86:boolean hasNext() -> hasNext
+    151:158:int hashCode() -> hashCode
+    74:74:java.lang.Object next() -> next
+    91:94:java.util.Map$Entry next() -> next
+    99:106:void remove() -> remove
+    128:132:java.lang.Object setValue(java.lang.Object) -> setValue
+    163:163:java.lang.String toString() -> toString
+androidx.collection.MapCollections$ValuesCollection -> androidx.collection.MapCollections$ValuesCollection:
+    357:357:void <init>(androidx.collection.MapCollections) -> <init>
+    361:361:boolean add(java.lang.Object) -> add
+    366:366:boolean addAll(java.util.Collection) -> addAll
+    371:372:void clear() -> clear
+    376:376:boolean contains(java.lang.Object) -> contains
+    381:387:boolean containsAll(java.util.Collection) -> containsAll
+    392:392:boolean isEmpty() -> isEmpty
+    397:397:java.util.Iterator iterator() -> iterator
+    402:407:boolean remove(java.lang.Object) -> remove
+    412:423:boolean removeAll(java.util.Collection) -> removeAll
+    428:439:boolean retainAll(java.util.Collection) -> retainAll
+    444:444:int size() -> size
+    449:449:java.lang.Object[] toArray() -> toArray
+    454:454:java.lang.Object[] toArray(java.lang.Object[]) -> toArray
+androidx.collection.SimpleArrayMap -> androidx.collection.SimpleArrayMap:
+    236:240:void <init>() -> <init>
+    246:254:void <init>(int) -> <init>
+    260:264:void <init>(androidx.collection.SimpleArrayMap) -> <init>
+    165:197:void allocArrays(int) -> allocArrays
+    77:80:int binarySearchHashes(int[],int,int) -> binarySearchHashes
+    270:282:void clear() -> clear
+    312:312:boolean containsKey(java.lang.Object) -> containsKey
+    352:352:boolean containsValue(java.lang.Object) -> containsValue
+    289:303:void ensureCapacity(int) -> ensureCapacity
+    681:735:boolean equals(java.lang.Object) -> equals
+    201:230:void freeArrays(int[],java.lang.Object[],int) -> freeArrays
+    369:369:java.lang.Object get(java.lang.Object) -> get
+    380:381:java.lang.Object getOrDefault(java.lang.Object,java.lang.Object) -> getOrDefault
+    743:750:int hashCode() -> hashCode
+    88:122:int indexOf(java.lang.Object,int) -> indexOf
+    322:322:int indexOfKey(java.lang.Object) -> indexOfKey
+    126:160:int indexOfNull() -> indexOfNull
+    326:341:int indexOfValue(java.lang.Object) -> indexOfValue
+    419:419:boolean isEmpty() -> isEmpty
+    390:390:java.lang.Object keyAt(int) -> keyAt
+    432:490:java.lang.Object put(java.lang.Object,java.lang.Object) -> put
+    498:511:void putAll(androidx.collection.SimpleArrayMap) -> putAll
+    523:527:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object) -> putIfAbsent
+    538:543:java.lang.Object remove(java.lang.Object) -> remove
+    553:561:boolean remove(java.lang.Object,java.lang.Object) -> remove
+    570:626:java.lang.Object removeAt(int) -> removeAt
+    637:641:java.lang.Object replace(java.lang.Object,java.lang.Object) -> replace
+    653:661:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object) -> replace
+    409:412:java.lang.Object setValueAt(int,java.lang.Object) -> setValueAt
+    668:668:int size() -> size
+    762:787:java.lang.String toString() -> toString
+    399:399:java.lang.Object valueAt(int) -> valueAt
+androidx.collection.SparseArrayCompat -> androidx.collection.SparseArrayCompat:
+    51:51:void <clinit>() -> <clinit>
+    62:63:void <init>() -> <init>
+    52:81:void <init>(int) -> <init>
+    460:487:void append(int,java.lang.Object) -> append
+    444:453:void clear() -> clear
+    50:50:java.lang.Object clone() -> clone
+    88:94:androidx.collection.SparseArrayCompat clone() -> clone
+    432:432:boolean containsKey(int) -> containsKey
+    437:437:boolean containsValue(java.lang.Object) -> containsValue
+    132:133:void delete(int) -> delete
+    230:253:void gc() -> gc
+    109:109:java.lang.Object get(int) -> get
+    118:123:java.lang.Object get(int,java.lang.Object) -> get
+    401:405:int indexOfKey(int) -> indexOfKey
+    419:427:int indexOfValue(java.lang.Object) -> indexOfValue
+    352:352:boolean isEmpty() -> isEmpty
+    361:365:int keyAt(int) -> keyAt
+    261:305:void put(int,java.lang.Object) -> put
+    313:316:void putAll(androidx.collection.SparseArrayCompat) -> putAll
+    328:332:java.lang.Object putIfAbsent(int,java.lang.Object) -> putIfAbsent
+    139:147:void remove(int) -> remove
+    156:164:boolean remove(int,java.lang.Object) -> remove
+    171:175:void removeAt(int) -> removeAt
+    184:188:void removeAtRange(int,int) -> removeAtRange
+    198:204:java.lang.Object replace(int,java.lang.Object) -> replace
+    216:224:boolean replace(int,java.lang.Object,java.lang.Object) -> replace
+    388:393:void setValueAt(int,java.lang.Object) -> setValueAt
+    340:344:int size() -> size
+    498:519:java.lang.String toString() -> toString
+    375:379:java.lang.Object valueAt(int) -> valueAt
+androidx.constraintlayout.core.ArrayLinkedVariables -> androidx.constraintlayout.core.ArrayLinkedVariables:
+    82:82:void <clinit>() -> <clinit>
+    43:109:void <init>(androidx.constraintlayout.core.ArrayRow,androidx.constraintlayout.core.Cache) -> <init>
+    226:340:void add(androidx.constraintlayout.core.SolverVariable,float,boolean) -> add
+    409:423:void clear() -> clear
+    432:443:boolean contains(androidx.constraintlayout.core.SolverVariable) -> contains
+    614:624:void display() -> display
+    500:506:void divideByAmount(float) -> divideByAmount
+    593:602:float get(androidx.constraintlayout.core.SolverVariable) -> get
+    509:509:int getCurrentSize() -> getCurrentSize
+    508:508:int getHead() -> getHead
+    512:512:int getId(int) -> getId
+    520:520:int getNextIndice(int) -> getNextIndice
+    529:548:androidx.constraintlayout.core.SolverVariable getPivotCandidate() -> getPivotCandidate
+    516:516:float getValue(int) -> getValue
+    558:566:androidx.constraintlayout.core.SolverVariable getVariable(int) -> getVariable
+    576:584:float getVariableValue(int) -> getVariableValue
+    470:478:boolean hasAtLeastOnePositiveVariable() -> hasAtLeastOnePositiveVariable
+    448:459:int indexOf(androidx.constraintlayout.core.SolverVariable) -> indexOf
+    485:491:void invert() -> invert
+    118:214:void put(androidx.constraintlayout.core.SolverVariable,float) -> put
+    369:402:float remove(androidx.constraintlayout.core.SolverVariable,boolean) -> remove
+    607:610:int sizeInBytes() -> sizeInBytes
+    633:642:java.lang.String toString() -> toString
+    349:358:float use(androidx.constraintlayout.core.ArrayRow,boolean) -> use
+androidx.constraintlayout.core.ArrayRow -> androidx.constraintlayout.core.ArrayRow:
+    26:55:void <init>() -> <init>
+    26:60:void <init>(androidx.constraintlayout.core.Cache) -> <init>
+    349:351:androidx.constraintlayout.core.ArrayRow addError(androidx.constraintlayout.core.LinearSystem,int) -> addError
+    690:703:void addError(androidx.constraintlayout.core.SolverVariable) -> addError
+    178:179:androidx.constraintlayout.core.ArrayRow addSingleError(androidx.constraintlayout.core.SolverVariable,int) -> addSingleError
+    431:442:boolean chooseSubject(androidx.constraintlayout.core.LinearSystem) -> chooseSubject
+    457:504:androidx.constraintlayout.core.SolverVariable chooseSubjectInVariables(androidx.constraintlayout.core.LinearSystem) -> chooseSubjectInVariables
+    665:668:void clear() -> clear
+    303:345:androidx.constraintlayout.core.ArrayRow createRowCentering(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,float,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int) -> createRowCentering
+    139:143:androidx.constraintlayout.core.ArrayRow createRowDefinition(androidx.constraintlayout.core.SolverVariable,int) -> createRowDefinition
+    356:358:androidx.constraintlayout.core.ArrayRow createRowDimensionPercent(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float) -> createRowDimensionPercent
+    375:379:androidx.constraintlayout.core.ArrayRow createRowDimensionRatio(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float) -> createRowDimensionRatio
+    276:298:androidx.constraintlayout.core.ArrayRow createRowEqualDimension(float,float,float,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int) -> createRowEqualDimension
+    240:268:androidx.constraintlayout.core.ArrayRow createRowEqualMatchDimensions(float,float,float,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable) -> createRowEqualMatchDimensions
+    147:154:androidx.constraintlayout.core.ArrayRow createRowEquals(androidx.constraintlayout.core.SolverVariable,int) -> createRowEquals
+    158:174:androidx.constraintlayout.core.ArrayRow createRowEquals(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int) -> createRowEquals
+    185:203:androidx.constraintlayout.core.ArrayRow createRowGreaterThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int) -> createRowGreaterThan
+    207:209:androidx.constraintlayout.core.ArrayRow createRowGreaterThan(androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable) -> createRowGreaterThan
+    214:232:androidx.constraintlayout.core.ArrayRow createRowLowerThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int) -> createRowLowerThan
+    393:398:androidx.constraintlayout.core.ArrayRow createRowWithAngle(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float) -> createRowWithAngle
+    415:420:void ensurePositiveConstant() -> ensurePositiveConstant
+    707:707:androidx.constraintlayout.core.SolverVariable getKey() -> getKey
+    660:660:androidx.constraintlayout.core.SolverVariable getPivotCandidate(androidx.constraintlayout.core.LinearSystem,boolean[]) -> getPivotCandidate
+    63:63:boolean hasKeyVariable() -> hasKeyVariable
+    135:135:boolean hasVariable(androidx.constraintlayout.core.SolverVariable) -> hasVariable
+    676:686:void initFromRow(androidx.constraintlayout.core.LinearSystem$Row) -> initFromRow
+    556:556:boolean isEmpty() -> isEmpty
+    532:532:boolean isNew(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.LinearSystem) -> isNew
+    655:655:androidx.constraintlayout.core.SolverVariable pickPivot(androidx.constraintlayout.core.SolverVariable) -> pickPivot
+    610:649:androidx.constraintlayout.core.SolverVariable pickPivotInVariables(boolean[],androidx.constraintlayout.core.SolverVariable) -> pickPivotInVariables
+    536:550:void pivot(androidx.constraintlayout.core.SolverVariable) -> pivot
+    128:132:void reset() -> reset
+    402:410:int sizeInBytes() -> sizeInBytes
+    75:124:java.lang.String toReadableString() -> toReadableString
+    71:71:java.lang.String toString() -> toString
+    575:589:void updateFromFinalVariable(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,boolean) -> updateFromFinalVariable
+    561:572:void updateFromRow(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.ArrayRow,boolean) -> updateFromRow
+    592:607:void updateFromSynonymVariable(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,boolean) -> updateFromSynonymVariable
+    712:747:void updateFromSystem(androidx.constraintlayout.core.LinearSystem) -> updateFromSystem
+androidx.constraintlayout.core.Cache -> androidx.constraintlayout.core.Cache:
+    21:25:void <init>() -> <init>
+androidx.constraintlayout.core.GoalRow -> androidx.constraintlayout.core.GoalRow:
+    22:23:void <init>(androidx.constraintlayout.core.Cache) -> <init>
+    27:31:void addError(androidx.constraintlayout.core.SolverVariable) -> addError
+androidx.constraintlayout.core.LinearSystem -> androidx.constraintlayout.core.LinearSystem:
+    37:250:void <clinit>() -> <clinit>
+    48:104:void <init>() -> <init>
+    370:383:androidx.constraintlayout.core.SolverVariable acquireSolverVariable(androidx.constraintlayout.core.SolverVariable$Type,java.lang.String) -> acquireSolverVariable
+    1445:1463:void addCenterPoint(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintWidget,float,int) -> addCenterPoint
+    1288:1294:void addCentering(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,float,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,int) -> addCentering
+    553:636:void addConstraint(androidx.constraintlayout.core.ArrayRow) -> addConstraint
+    1336:1368:androidx.constraintlayout.core.ArrayRow addEquality(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,int) -> addEquality
+    1377:1413:void addEquality(androidx.constraintlayout.core.SolverVariable,int) -> addEquality
+    306:307:void addError(androidx.constraintlayout.core.ArrayRow) -> addError
+    1229:1234:void addGreaterBarrier(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,boolean) -> addGreaterBarrier
+    1214:1223:void addGreaterThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,int) -> addGreaterThan
+    1262:1267:void addLowerBarrier(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,boolean) -> addLowerBarrier
+    1247:1256:void addLowerThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int,int) -> addLowerThan
+    1300:1306:void addRatio(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float,int) -> addRatio
+    639:684:void addRow(androidx.constraintlayout.core.ArrayRow) -> addRow
+    310:311:void addSingleError(androidx.constraintlayout.core.ArrayRow,int) -> addSingleError
+    314:325:void addSingleError(androidx.constraintlayout.core.ArrayRow,int,int) -> addSingleError
+    1309:1326:void addSynonym(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int) -> addSynonym
+    523:546:void cleanupRows() -> cleanupRows
+    1036:1040:void computeValues() -> computeValues
+    348:361:androidx.constraintlayout.core.SolverVariable createErrorVariable(int,java.lang.String) -> createErrorVariable
+    291:302:androidx.constraintlayout.core.SolverVariable createExtraVariable() -> createExtraVariable
+    220:246:androidx.constraintlayout.core.SolverVariable createObjectVariable(java.lang.Object) -> createObjectVariable
+    254:272:androidx.constraintlayout.core.ArrayRow createRow() -> createRow
+    1430:1431:androidx.constraintlayout.core.ArrayRow createRowDimensionPercent(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float) -> createRowDimensionPercent
+    276:287:androidx.constraintlayout.core.SolverVariable createSlackVariable() -> createSlackVariable
+    328:344:androidx.constraintlayout.core.SolverVariable createVariable(java.lang.String,androidx.constraintlayout.core.SolverVariable$Type) -> createVariable
+    1059:1084:void displayReadableRows() -> displayReadableRows
+    1048:1056:void displayRows() -> displayRows
+    1145:1156:void displaySolverVariables() -> displaySolverVariables
+    1120:1142:void displaySystemInformation() -> displaySystemInformation
+    1088:1098:void displayVariablesReadableRows() -> displayVariablesReadableRows
+    866:1032:int enforceBFS(androidx.constraintlayout.core.LinearSystem$Row) -> enforceBFS
+    107:108:void fillMetrics(androidx.constraintlayout.core.Metrics) -> fillMetrics
+    1171:1171:androidx.constraintlayout.core.Cache getCache() -> getCache
+    1159:1167:java.lang.String getDisplaySize(int) -> getDisplaySize
+    1175:1196:java.lang.String getDisplayStrength(int) -> getDisplayStrength
+    394:394:androidx.constraintlayout.core.LinearSystem$Row getGoal() -> getGoal
+    1102:1108:int getMemoryUsed() -> getMemoryUsed
+    111:111:androidx.constraintlayout.core.Metrics getMetrics() -> getMetrics
+    1112:1112:int getNumEquations() -> getNumEquations
+    1114:1114:int getNumVariables() -> getNumVariables
+    409:419:int getObjectVariableValue(java.lang.Object) -> getObjectVariableValue
+    397:397:androidx.constraintlayout.core.ArrayRow getRow(int) -> getRow
+    401:405:float getValueFor(java.lang.String) -> getValueFor
+    430:437:androidx.constraintlayout.core.SolverVariable getVariable(java.lang.String,androidx.constraintlayout.core.SolverVariable$Type) -> getVariable
+    140:151:void increaseTableSize() -> increaseTableSize
+    448:487:void minimize() -> minimize
+    494:520:void minimizeGoal(androidx.constraintlayout.core.LinearSystem$Row) -> minimizeGoal
+    716:857:int optimize(androidx.constraintlayout.core.LinearSystem$Row,boolean) -> optimize
+    157:174:void releaseRows() -> releaseRows
+    687:707:void removeRow(androidx.constraintlayout.core.ArrayRow) -> removeRow
+    185:213:void reset() -> reset
+androidx.constraintlayout.core.LinearSystem$ValuesRow -> androidx.constraintlayout.core.LinearSystem$ValuesRow:
+    89:91:void <init>(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.Cache) -> <init>
+androidx.constraintlayout.core.Metrics -> androidx.constraintlayout.core.Metrics:
+    25:60:void <init>() -> <init>
+    115:147:void reset() -> reset
+    71:71:java.lang.String toString() -> toString
+androidx.constraintlayout.core.Pools -> androidx.constraintlayout.core.Pools:
+    75:77:void <init>() -> <init>
+androidx.constraintlayout.core.Pools$SimplePool -> androidx.constraintlayout.core.Pools$SimplePool:
+    96:101:void <init>(int) -> <init>
+    106:113:java.lang.Object acquire() -> acquire
+    151:156:boolean isInPool(java.lang.Object) -> isInPool
+    123:128:boolean release(java.lang.Object) -> release
+    133:148:void releaseAll(java.lang.Object[],int) -> releaseAll
+androidx.constraintlayout.core.PriorityGoalRow -> androidx.constraintlayout.core.PriorityGoalRow:
+    29:156:void <init>(androidx.constraintlayout.core.Cache) -> <init>
+    25:25:void access$000(androidx.constraintlayout.core.PriorityGoalRow,androidx.constraintlayout.core.SolverVariable) -> access$000
+    190:194:void addError(androidx.constraintlayout.core.SolverVariable) -> addError
+    197:221:void addToGoal(androidx.constraintlayout.core.SolverVariable) -> addToGoal
+    147:149:void clear() -> clear
+    167:185:androidx.constraintlayout.core.SolverVariable getPivotCandidate(androidx.constraintlayout.core.LinearSystem,boolean[]) -> getPivotCandidate
+    160:160:boolean isEmpty() -> isEmpty
+    224:234:void removeGoal(androidx.constraintlayout.core.SolverVariable) -> removeGoal
+    259:266:java.lang.String toString() -> toString
+    238:255:void updateFromRow(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.ArrayRow,boolean) -> updateFromRow
+androidx.constraintlayout.core.PriorityGoalRow$1 -> androidx.constraintlayout.core.PriorityGoalRow$1:
+    208:208:void <init>(androidx.constraintlayout.core.PriorityGoalRow) -> <init>
+    208:208:int compare(java.lang.Object,java.lang.Object) -> compare
+    211:211:int compare(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable) -> compare
+androidx.constraintlayout.core.PriorityGoalRow$GoalVariableAccessor -> androidx.constraintlayout.core.PriorityGoalRow$GoalVariableAccessor:
+    39:41:void <init>(androidx.constraintlayout.core.PriorityGoalRow,androidx.constraintlayout.core.PriorityGoalRow) -> <init>
+    81:88:void add(androidx.constraintlayout.core.SolverVariable) -> add
+    48:77:boolean addToGoal(androidx.constraintlayout.core.SolverVariable,float) -> addToGoal
+    44:45:void init(androidx.constraintlayout.core.SolverVariable) -> init
+    91:100:boolean isNegative() -> isNegative
+    120:125:boolean isNull() -> isNull
+    104:116:boolean isSmallerThan(androidx.constraintlayout.core.SolverVariable) -> isSmallerThan
+    129:130:void reset() -> reset
+    133:140:java.lang.String toString() -> toString
+androidx.constraintlayout.core.SolverVariable -> androidx.constraintlayout.core.SolverVariable:
+    44:48:void <clinit>() -> <clinit>
+    53:172:void <init>(java.lang.String,androidx.constraintlayout.core.SolverVariable$Type) -> <init>
+    53:172:void <init>(androidx.constraintlayout.core.SolverVariable$Type,java.lang.String) -> <init>
+    178:189:void addToRow(androidx.constraintlayout.core.ArrayRow) -> addToRow
+    137:140:void clearStrengths() -> clearStrengths
+    27:27:int compareTo(java.lang.Object) -> compareTo
+    300:300:int compareTo(androidx.constraintlayout.core.SolverVariable) -> compareTo
+    287:287:java.lang.String getName() -> getName
+    103:116:java.lang.String getUniqueName(androidx.constraintlayout.core.SolverVariable$Type,java.lang.String) -> getUniqueName
+    99:100:void increaseErrorId() -> increaseErrorId
+    195:206:void removeFromRow(androidx.constraintlayout.core.ArrayRow) -> removeFromRow
+    257:279:void reset() -> reset
+    227:238:void setFinalValue(androidx.constraintlayout.core.LinearSystem,float) -> setFinalValue
+    290:290:void setName(java.lang.String) -> setName
+    244:254:void setSynonym(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,float) -> setSynonym
+    292:296:void setType(androidx.constraintlayout.core.SolverVariable$Type,java.lang.String) -> setType
+    143:169:java.lang.String strengthsToString() -> strengthsToString
+    308:324:java.lang.String toString() -> toString
+    215:221:void updateReferencesWithNewDefinition(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.ArrayRow) -> updateReferencesWithNewDefinition
+androidx.constraintlayout.core.SolverVariable$1 -> androidx.constraintlayout.core.SolverVariable$1:
+    106:106:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.SolverVariable$Type -> androidx.constraintlayout.core.SolverVariable$Type:
+    75:95:void <clinit>() -> <clinit>
+    75:75:void <init>(java.lang.String,int) -> <init>
+    75:75:androidx.constraintlayout.core.SolverVariable$Type valueOf(java.lang.String) -> valueOf
+    75:75:androidx.constraintlayout.core.SolverVariable$Type[] values() -> values
+androidx.constraintlayout.core.SolverVariableValues -> androidx.constraintlayout.core.SolverVariableValues:
+    28:28:void <clinit>() -> <clinit>
+    29:50:void <init>(androidx.constraintlayout.core.ArrayRow,androidx.constraintlayout.core.Cache) -> <init>
+    410:423:void add(androidx.constraintlayout.core.SolverVariable,float,boolean) -> add
+    216:236:void addToHashMap(androidx.constraintlayout.core.SolverVariable,int) -> addToHashMap
+    289:296:void addVariable(int,androidx.constraintlayout.core.SolverVariable,float) -> addVariable
+    180:196:void clear() -> clear
+    94:94:boolean contains(androidx.constraintlayout.core.SolverVariable) -> contains
+    134:144:void display() -> display
+    239:255:void displayHash() -> displayHash
+    481:490:void divideByAmount(float) -> divideByAmount
+    299:304:int findEmptySlot() -> findEmptySlot
+    125:129:float get(androidx.constraintlayout.core.SolverVariable) -> get
+    54:54:int getCurrentSize() -> getCurrentSize
+    59:73:androidx.constraintlayout.core.SolverVariable getVariable(int) -> getVariable
+    78:89:float getVariableValue(int) -> getVariableValue
+    199:210:void increaseSize() -> increaseSize
+    99:120:int indexOf(androidx.constraintlayout.core.SolverVariable) -> indexOf
+    308:327:void insertVariable(int,androidx.constraintlayout.core.SolverVariable,float) -> insertVariable
+    468:477:void invert() -> invert
+    334:369:void put(androidx.constraintlayout.core.SolverVariable,float) -> put
+    381:402:float remove(androidx.constraintlayout.core.SolverVariable,boolean) -> remove
+    260:286:void removeFromHashMap(androidx.constraintlayout.core.SolverVariable) -> removeFromHashMap
+    373:373:int sizeInBytes() -> sizeInBytes
+    148:172:java.lang.String toString() -> toString
+    427:463:float use(androidx.constraintlayout.core.ArrayRow,boolean) -> use
+androidx.constraintlayout.core.motion.CustomAttribute -> androidx.constraintlayout.core.motion.CustomAttribute:
+    31:246:void <init>(java.lang.String,androidx.constraintlayout.core.motion.CustomAttribute$AttributeType) -> <init>
+    31:253:void <init>(java.lang.String,androidx.constraintlayout.core.motion.CustomAttribute$AttributeType,java.lang.Object,boolean) -> <init>
+    31:260:void <init>(androidx.constraintlayout.core.motion.CustomAttribute,java.lang.Object) -> <init>
+    368:416:void applyCustom(java.lang.Object) -> applyCustom
+    419:424:int clamp(int) -> clamp
+    220:239:boolean diff(androidx.constraintlayout.core.motion.CustomAttribute) -> diff
+    290:309:java.util.HashMap extractAttributes(java.util.HashMap,java.lang.Object) -> extractAttributes
+    52:52:androidx.constraintlayout.core.motion.CustomAttribute$AttributeType getType() -> getType
+    109:124:float getValueToInterpolate() -> getValueToInterpolate
+    129:160:void getValuesToInterpolate(float[]) -> getValuesToInterpolate
+    189:209:int hsvToRgb(float,float,float) -> hsvToRgb
+    61:67:boolean isContinuous() -> isContinuous
+    94:99:int numberOfInterpolatedValues() -> numberOfInterpolatedValues
+    313:365:void setAttributes(java.lang.Object,java.util.HashMap) -> setAttributes
+    76:77:void setColorValue(int) -> setColorValue
+    72:73:void setFloatValue(float) -> setFloatValue
+    80:81:void setIntValue(int) -> setIntValue
+    428:473:void setInterpolatedValue(java.lang.Object,float[]) -> setInterpolatedValue
+    84:85:void setStringValue(java.lang.String) -> setStringValue
+    163:186:void setValue(float[]) -> setValue
+    263:286:void setValue(java.lang.Object) -> setValue
+androidx.constraintlayout.core.motion.CustomAttribute$1 -> androidx.constraintlayout.core.motion.CustomAttribute$1:
+    61:61:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.motion.CustomAttribute$AttributeType -> androidx.constraintlayout.core.motion.CustomAttribute$AttributeType:
+    40:48:void <clinit>() -> <clinit>
+    40:40:void <init>(java.lang.String,int) -> <init>
+    40:40:androidx.constraintlayout.core.motion.CustomAttribute$AttributeType valueOf(java.lang.String) -> valueOf
+    40:40:androidx.constraintlayout.core.motion.CustomAttribute$AttributeType[] values() -> values
+androidx.constraintlayout.core.motion.CustomVariable -> androidx.constraintlayout.core.motion.CustomVariable:
+    27:43:void <init>(androidx.constraintlayout.core.motion.CustomVariable) -> <init>
+    27:49:void <init>(java.lang.String,int,java.lang.String) -> <init>
+    27:59:void <init>(java.lang.String,int,int) -> <init>
+    27:65:void <init>(java.lang.String,int,float) -> <init>
+    27:71:void <init>(java.lang.String,int,boolean) -> <init>
+    27:303:void <init>(java.lang.String,int) -> <init>
+    27:309:void <init>(java.lang.String,int,java.lang.Object) -> <init>
+    27:316:void <init>(androidx.constraintlayout.core.motion.CustomVariable,java.lang.Object) -> <init>
+    397:414:void applyToWidget(androidx.constraintlayout.core.motion.MotionWidget) -> applyToWidget
+    343:348:int clamp(int) -> clamp
+    74:75:java.lang.String colorString(int) -> colorString
+    33:33:androidx.constraintlayout.core.motion.CustomVariable copy() -> copy
+    279:297:boolean diff(androidx.constraintlayout.core.motion.CustomVariable) -> diff
+    103:103:boolean getBooleanValue() -> getBooleanValue
+    111:111:int getColorValue() -> getColorValue
+    107:107:float getFloatValue() -> getFloatValue
+    115:115:int getIntegerValue() -> getIntegerValue
+    352:357:int getInterpolatedColor(float[]) -> getInterpolatedColor
+    417:417:java.lang.String getName() -> getName
+    119:119:java.lang.String getStringValue() -> getStringValue
+    99:99:int getType() -> getType
+    175:190:float getValueToInterpolate() -> getValueToInterpolate
+    194:223:void getValuesToInterpolate(float[]) -> getValuesToInterpolate
+    248:269:int hsvToRgb(float,float,float) -> hsvToRgb
+    128:134:boolean isContinuous() -> isContinuous
+    161:165:int numberOfInterpolatedValues() -> numberOfInterpolatedValues
+    388:393:int rgbaTocColor(float,float,float,float) -> rgbaTocColor
+    143:144:void setBooleanValue(boolean) -> setBooleanValue
+    139:140:void setFloatValue(float) -> setFloatValue
+    147:148:void setIntValue(int) -> setIntValue
+    362:385:void setInterpolatedValue(androidx.constraintlayout.core.motion.MotionWidget,float[]) -> setInterpolatedValue
+    151:152:void setStringValue(java.lang.String) -> setStringValue
+    226:245:void setValue(float[]) -> setValue
+    319:340:void setValue(java.lang.Object) -> setValue
+    80:95:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.Motion -> androidx.constraintlayout.core.motion.Motion:
+    74:150:void <init>(androidx.constraintlayout.core.motion.MotionWidget) -> <init>
+    622:626:void addKey(androidx.constraintlayout.core.motion.key.MotionKey) -> addKey
+    613:619:void addKeys(java.util.ArrayList) -> addKeys
+    357:411:void buildBounds(float[],int) -> buildBounds
+    509:526:int buildKeyBounds(float[],int[]) -> buildKeyBounds
+    483:505:int buildKeyFrames(float[],int[],int[]) -> buildKeyFrames
+    270:335:void buildPath(float[],int) -> buildPath
+    544:547:void buildRect(float,float[],int) -> buildRect
+    550:557:void buildRectangles(float[],int) -> buildRectangles
+    1206:1206:void endTrigger(boolean) -> endTrigger
+    1154:1196:float getAdjustedPosition(float,float[]) -> getAdjustedPosition
+    234:234:int getAnimateRelativeTo() -> getAnimateRelativeTo
+    532:540:int getAttributeValues(java.lang.String,float[],int) -> getAttributeValues
+    251:258:void getCenter(double,float[],float[]) -> getCenter
+    243:243:float getCenterX() -> getCenterX
+    247:247:float getCenterY() -> getCenterY
+    1378:1408:void getDpDt(float,float,float,float[]) -> getDpDt
+    1491:1496:int getDrawPath() -> getDrawPath
+    223:223:float getFinalHeight() -> getFinalHeight
+    214:214:float getFinalWidth() -> getFinalWidth
+    177:177:float getFinalX() -> getFinalX
+    187:187:float getFinalY() -> getFinalY
+    1099:1118:androidx.constraintlayout.core.motion.utils.DifferentialInterpolator getInterpolator(int,java.lang.String,int) -> getInterpolator
+    145:145:androidx.constraintlayout.core.motion.MotionPaths getKeyFrame(int) -> getKeyFrame
+    1559:1590:int getKeyFrameInfo(int,int[]) -> getKeyFrameInfo
+    561:592:float getKeyFrameParameter(int,float,float) -> getKeyFrameParameter
+    1530:1540:int getKeyFramePositions(int[],float[]) -> getKeyFramePositions
+    338:344:double[] getPos(double) -> getPos
+    462:479:androidx.constraintlayout.core.motion.key.MotionKeyPosition getPositionKeyframe(int,int,float,float) -> getPositionKeyframe
+    1425:1487:void getPostLayoutDvDp(float,int,int,float,float,float[]) -> getPostLayoutDvDp
+    414:458:float getPreCycleDistance() -> getPreCycleDistance
+    205:205:float getStartHeight() -> getStartHeight
+    196:196:float getStartWidth() -> getStartWidth
+    158:158:float getStartX() -> getStartX
+    168:168:float getStartY() -> getStartY
+    125:125:int getTransformPivotTarget() -> getTransformPivotTarget
+    978:978:androidx.constraintlayout.core.motion.MotionWidget getView() -> getView
+    596:610:void insertKey(androidx.constraintlayout.core.motion.MotionPaths) -> insertKey
+    1224:1365:boolean interpolate(androidx.constraintlayout.core.motion.MotionWidget,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> interpolate
+    1505:1505:java.lang.String name() -> name
+    1509:1520:void positionKeyframe(androidx.constraintlayout.core.motion.MotionWidget,androidx.constraintlayout.core.motion.key.MotionKeyPosition,float,float,java.lang.String[],float[]) -> positionKeyframe
+    970:971:void readView(androidx.constraintlayout.core.motion.MotionPaths) -> readView
+    1027:1062:void rotate(androidx.constraintlayout.core.motion.utils.Rect,androidx.constraintlayout.core.motion.utils.Rect,int,int,int) -> rotate
+    1136:1143:void setBothStates(androidx.constraintlayout.core.motion.MotionWidget) -> setBothStates
+    1500:1501:void setDrawPath(int) -> setDrawPath
+    990:996:void setEnd(androidx.constraintlayout.core.motion.MotionWidget) -> setEnd
+    629:630:void setPathMotionArc(int) -> setPathMotionArc
+    982:987:void setStart(androidx.constraintlayout.core.motion.MotionWidget) -> setStart
+    999:1023:void setStartState(androidx.constraintlayout.core.motion.utils.ViewState,androidx.constraintlayout.core.motion.MotionWidget,int,int,int) -> setStartState
+    134:136:void setTransformPivotTarget(int) -> setTransformPivotTarget
+    974:975:void setView(androidx.constraintlayout.core.motion.MotionWidget) -> setView
+    637:957:void setup(int,int,float,long) -> setup
+    238:240:void setupRelative(androidx.constraintlayout.core.motion.Motion) -> setupRelative
+    965:965:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.Motion$1 -> androidx.constraintlayout.core.motion.Motion$1:
+    1102:1102:void <init>(androidx.constraintlayout.core.motion.utils.Easing) -> <init>
+    1107:1108:float getInterpolation(float) -> getInterpolation
+    1113:1113:float getVelocity() -> getVelocity
+androidx.constraintlayout.core.motion.MotionConstrainedPoint -> androidx.constraintlayout.core.motion.MotionConstrainedPoint:
+    66:66:void <clinit>() -> <clinit>
+    38:152:void <init>() -> <init>
+    229:295:void addValues(java.util.HashMap,int) -> addValues
+    203:226:void applyParameters(androidx.constraintlayout.core.motion.MotionWidget) -> applyParameters
+    34:34:int compareTo(java.lang.Object) -> compareTo
+    198:198:int compareTo(androidx.constraintlayout.core.motion.MotionConstrainedPoint) -> compareTo
+    76:79:boolean diff(float,float) -> diff
+    89:140:void different(androidx.constraintlayout.core.motion.MotionConstrainedPoint,java.util.HashSet) -> different
+    143:149:void different(androidx.constraintlayout.core.motion.MotionConstrainedPoint,boolean[],java.lang.String[]) -> different
+    155:163:void fillStandard(double[],int[]) -> fillStandard
+    174:185:int getCustomData(java.lang.String,double[],int) -> getCustomData
+    170:170:int getCustomDataCount(java.lang.String) -> getCustomDataCount
+    166:166:boolean hasCustomData(java.lang.String) -> hasCustomData
+    190:194:void setBounds(float,float,float,float) -> setBounds
+    298:300:void setState(androidx.constraintlayout.core.motion.MotionWidget) -> setState
+    308:321:void setState(androidx.constraintlayout.core.motion.utils.Rect,androidx.constraintlayout.core.motion.MotionWidget,int,float) -> setState
+androidx.constraintlayout.core.motion.MotionPaths -> androidx.constraintlayout.core.motion.MotionPaths:
+    49:49:void <clinit>() -> <clinit>
+    51:485:void <init>() -> <init>
+    51:485:void <init>(int,int,androidx.constraintlayout.core.motion.key.MotionKeyPosition,androidx.constraintlayout.core.motion.MotionPaths,androidx.constraintlayout.core.motion.MotionPaths) -> <init>
+    891:907:void applyParameters(androidx.constraintlayout.core.motion.MotionWidget) -> applyParameters
+    34:34:int compareTo(java.lang.Object) -> compareTo
+    887:887:int compareTo(androidx.constraintlayout.core.motion.MotionPaths) -> compareTo
+    910:911:void configureRelativeTo(androidx.constraintlayout.core.motion.Motion) -> configureRelativeTo
+    293:296:boolean diff(float,float) -> diff
+    300:309:void different(androidx.constraintlayout.core.motion.MotionPaths,boolean[],java.lang.String[],boolean) -> different
+    839:846:void fillStandard(double[],int[]) -> fillStandard
+    457:482:void getBounds(int[],double[],float[],int) -> getBounds
+    312:351:void getCenter(double,int[],double[],float[],int) -> getCenter
+    354:413:void getCenter(double,int[],double[],float[],double[],float[]) -> getCenter
+    416:454:void getCenterVelocity(double,int[],double[],float[],int) -> getCenterVelocity
+    861:874:int getCustomData(java.lang.String,double[],int) -> getCustomData
+    853:857:int getCustomDataCount(java.lang.String) -> getCustomDataCount
+    625:749:void getRect(int[],double[],float[],int) -> getRect
+    849:849:boolean hasCustomData(java.lang.String) -> hasCustomData
+    81:116:void initCartesian(androidx.constraintlayout.core.motion.key.MotionKeyPosition,androidx.constraintlayout.core.motion.MotionPaths,androidx.constraintlayout.core.motion.MotionPaths) -> initCartesian
+    238:278:void initPath(androidx.constraintlayout.core.motion.key.MotionKeyPosition,androidx.constraintlayout.core.motion.MotionPaths,androidx.constraintlayout.core.motion.MotionPaths) -> initPath
+    145:178:void initPolar(int,int,androidx.constraintlayout.core.motion.key.MotionKeyPosition,androidx.constraintlayout.core.motion.MotionPaths,androidx.constraintlayout.core.motion.MotionPaths) -> initPolar
+    195:234:void initScreen(int,int,androidx.constraintlayout.core.motion.key.MotionKeyPosition,androidx.constraintlayout.core.motion.MotionPaths,androidx.constraintlayout.core.motion.MotionPaths) -> initScreen
+    879:883:void setBounds(float,float,float,float) -> setBounds
+    763:836:void setDpDt(float,float,float[],int[],double[],double[]) -> setDpDt
+    489:622:void setView(float,androidx.constraintlayout.core.motion.MotionWidget,int[],double[],double[],double[]) -> setView
+    181:192:void setupRelative(androidx.constraintlayout.core.motion.Motion,androidx.constraintlayout.core.motion.MotionPaths) -> setupRelative
+    281:283:float xRotate(float,float,float,float,float,float) -> xRotate
+    287:289:float yRotate(float,float,float,float,float,float) -> yRotate
+androidx.constraintlayout.core.motion.MotionWidget -> androidx.constraintlayout.core.motion.MotionWidget:
+    27:87:void <init>() -> <init>
+    27:125:void <init>(androidx.constraintlayout.core.state.WidgetFrame) -> <init>
+    94:94:androidx.constraintlayout.core.motion.MotionWidget findViewById(int) -> findViewById
+    415:415:float getAlpha() -> getAlpha
+    323:323:int getBottom() -> getBottom
+    459:459:androidx.constraintlayout.core.motion.CustomVariable getCustomAttribute(java.lang.String) -> getCustomAttribute
+    439:439:java.util.Set getCustomAttributeNames() -> getCustomAttributeNames
+    431:431:int getHeight() -> getHeight
+    307:311:int getId(java.lang.String) -> getId
+    319:319:int getLeft() -> getLeft
+    102:102:java.lang.String getName() -> getName
+    90:90:androidx.constraintlayout.core.motion.MotionWidget getParent() -> getParent
+    407:407:float getPivotX() -> getPivotX
+    411:411:float getPivotY() -> getPivotY
+    327:327:int getRight() -> getRight
+    339:339:float getRotationX() -> getRotationX
+    347:347:float getRotationY() -> getRotationY
+    355:355:float getRotationZ() -> getRotationZ
+    387:387:float getScaleX() -> getScaleX
+    395:395:float getScaleY() -> getScaleY
+    315:315:int getTop() -> getTop
+    363:363:float getTranslationX() -> getTranslationX
+    371:371:float getTranslationY() -> getTranslationY
+    383:383:float getTranslationZ() -> getTranslationZ
+    273:301:float getValueAttributes(int) -> getValueAttributes
+    403:403:int getVisibility() -> getVisibility
+    435:435:androidx.constraintlayout.core.state.WidgetFrame getWidgetFrame() -> getWidgetFrame
+    427:427:int getWidth() -> getWidth
+    419:419:int getX() -> getX
+    423:423:int getY() -> getY
+    106:107:void layout(int,int,int,int) -> layout
+    114:121:void setBounds(int,int,int,int) -> setBounds
+    443:444:void setCustomAttribute(java.lang.String,int,float) -> setCustomAttribute
+    447:448:void setCustomAttribute(java.lang.String,int,int) -> setCustomAttribute
+    451:452:void setCustomAttribute(java.lang.String,int,boolean) -> setCustomAttribute
+    455:456:void setCustomAttribute(java.lang.String,int,java.lang.String) -> setCustomAttribute
+    331:332:void setPivotX(float) -> setPivotX
+    335:336:void setPivotY(float) -> setPivotY
+    343:344:void setRotationX(float) -> setRotationX
+    351:352:void setRotationY(float) -> setRotationY
+    359:360:void setRotationZ(float) -> setRotationZ
+    391:392:void setScaleX(float) -> setScaleX
+    399:400:void setScaleY(float) -> setScaleY
+    367:368:void setTranslationX(float) -> setTranslationX
+    375:376:void setTranslationY(float) -> setTranslationY
+    379:380:void setTranslationZ(float) -> setTranslationZ
+    129:129:boolean setValue(int,int) -> setValue
+    134:138:boolean setValue(int,float) -> setValue
+    143:143:boolean setValue(int,java.lang.String) -> setValue
+    148:148:boolean setValue(int,boolean) -> setValue
+    222:265:boolean setValueAttributes(int,float) -> setValueAttributes
+    152:180:boolean setValueMotion(int,int) -> setValueMotion
+    184:195:boolean setValueMotion(int,java.lang.String) -> setValueMotion
+    199:212:boolean setValueMotion(int,float) -> setValueMotion
+    98:99:void setVisibility(int) -> setVisibility
+    110:110:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.MotionWidget$Motion -> androidx.constraintlayout.core.motion.MotionWidget$Motion:
+    59:72:void <init>() -> <init>
+androidx.constraintlayout.core.motion.MotionWidget$PropertySet -> androidx.constraintlayout.core.motion.MotionWidget$PropertySet:
+    78:82:void <init>() -> <init>
+androidx.constraintlayout.core.motion.key.MotionConstraintSet -> androidx.constraintlayout.core.motion.key.MotionConstraintSet:
+    18:33:void <init>() -> <init>
+androidx.constraintlayout.core.motion.key.MotionKey -> androidx.constraintlayout.core.motion.key.MotionKey:
+    33:33:void <clinit>() -> <clinit>
+    32:36:void <init>() -> <init>
+    32:32:java.lang.Object clone() -> clone
+    116:120:androidx.constraintlayout.core.motion.key.MotionKey copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    145:145:int getFramePosition() -> getFramePosition
+    60:61:boolean matches(java.lang.String) -> matches
+    176:177:void setCustomAttribute(java.lang.String,int,float) -> setCustomAttribute
+    180:181:void setCustomAttribute(java.lang.String,int,int) -> setCustomAttribute
+    184:185:void setCustomAttribute(java.lang.String,int,boolean) -> setCustomAttribute
+    188:189:void setCustomAttribute(java.lang.String,int,java.lang.String) -> setCustomAttribute
+    136:137:void setFramePosition(int) -> setFramePosition
+    113:113:void setInterpolation(java.util.HashMap) -> setInterpolation
+    150:155:boolean setValue(int,int) -> setValue
+    159:159:boolean setValue(int,float) -> setValue
+    163:168:boolean setValue(int,java.lang.String) -> setValue
+    172:172:boolean setValue(int,boolean) -> setValue
+    126:127:androidx.constraintlayout.core.motion.key.MotionKey setViewId(int) -> setViewId
+    103:103:boolean toBoolean(java.lang.Object) -> toBoolean
+    81:81:float toFloat(java.lang.Object) -> toFloat
+    92:92:int toInt(java.lang.Object) -> toInt
+androidx.constraintlayout.core.motion.key.MotionKeyAttributes -> androidx.constraintlayout.core.motion.key.MotionKeyAttributes:
+    26:53:void <init>() -> <init>
+    109:198:void addValues(java.util.HashMap) -> addValues
+    26:26:java.lang.Object clone() -> clone
+    202:202:androidx.constraintlayout.core.motion.key.MotionKey clone() -> clone
+    58:105:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    349:349:int getCurveFit() -> getCurveFit
+    365:397:float getFloatValue(int) -> getFloatValue
+    345:345:int getId(java.lang.String) -> getId
+    353:362:void printAttributes() -> printAttributes
+    279:326:void setInterpolation(java.util.HashMap) -> setInterpolation
+    207:222:boolean setValue(int,int) -> setValue
+    226:275:boolean setValue(int,float) -> setValue
+    329:340:boolean setValue(int,java.lang.String) -> setValue
+androidx.constraintlayout.core.motion.key.MotionKeyCycle -> androidx.constraintlayout.core.motion.key.MotionKeyCycle:
+    28:67:void <init>() -> <init>
+    293:321:void addCycleValues(java.util.HashMap) -> addCycleValues
+    114:114:void addValues(java.util.HashMap) -> addValues
+    28:28:java.lang.Object clone() -> clone
+    238:238:androidx.constraintlayout.core.motion.key.MotionKey clone() -> clone
+    326:333:void dump() -> dump
+    71:109:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    243:288:int getId(java.lang.String) -> getId
+    202:232:float getValue(java.lang.String) -> getValue
+    336:351:void printAttributes() -> printAttributes
+    117:129:boolean setValue(int,int) -> setValue
+    134:142:boolean setValue(int,java.lang.String) -> setValue
+    148:197:boolean setValue(int,float) -> setValue
+androidx.constraintlayout.core.motion.key.MotionKeyPosition -> androidx.constraintlayout.core.motion.key.MotionKeyPosition:
+    26:50:void <init>() -> <init>
+    241:241:void addValues(java.util.HashMap) -> addValues
+    72:80:void calcCartesianPosition(float,float,float,float) -> calcCartesianPosition
+    62:68:void calcPathPosition(float,float,float,float) -> calcPathPosition
+    220:231:void calcPosition(int,int,float,float,float,float) -> calcPosition
+    54:58:void calcScreenPosition(int,int) -> calcScreenPosition
+    26:26:java.lang.Object clone() -> clone
+    216:216:androidx.constraintlayout.core.motion.key.MotionKey clone() -> clone
+    199:212:androidx.constraintlayout.core.motion.key.MotionKey copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    238:238:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    301:301:int getId(java.lang.String) -> getId
+    83:83:float getPositionX() -> getPositionX
+    87:87:float getPositionY() -> getPositionY
+    190:195:boolean intersects(int,int,androidx.constraintlayout.core.motion.utils.FloatRect,androidx.constraintlayout.core.motion.utils.FloatRect,float,float) -> intersects
+    91:102:void positionAttributes(androidx.constraintlayout.core.motion.MotionWidget,androidx.constraintlayout.core.motion.utils.FloatRect,androidx.constraintlayout.core.motion.utils.FloatRect,float,float,java.lang.String[],float[]) -> positionAttributes
+    167:187:void positionCartAttributes(androidx.constraintlayout.core.motion.utils.FloatRect,androidx.constraintlayout.core.motion.utils.FloatRect,float,float,java.lang.String[],float[]) -> positionCartAttributes
+    108:137:void positionPathAttributes(androidx.constraintlayout.core.motion.utils.FloatRect,androidx.constraintlayout.core.motion.utils.FloatRect,float,float,java.lang.String[],float[]) -> positionPathAttributes
+    140:164:void positionScreenAttributes(androidx.constraintlayout.core.motion.MotionWidget,androidx.constraintlayout.core.motion.utils.FloatRect,androidx.constraintlayout.core.motion.utils.FloatRect,float,float,java.lang.String[],float[]) -> positionScreenAttributes
+    245:259:boolean setValue(int,int) -> setValue
+    265:284:boolean setValue(int,float) -> setValue
+    289:296:boolean setValue(int,java.lang.String) -> setValue
+androidx.constraintlayout.core.motion.key.MotionKeyTimeCycle -> androidx.constraintlayout.core.motion.key.MotionKeyTimeCycle:
+    28:55:void <init>() -> <init>
+    58:138:void addTimeValues(java.util.HashMap) -> addTimeValues
+    142:142:void addValues(java.util.HashMap) -> addValues
+    28:28:java.lang.Object clone() -> clone
+    297:297:androidx.constraintlayout.core.motion.key.MotionKey clone() -> clone
+    28:28:androidx.constraintlayout.core.motion.key.MotionKey copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    232:251:androidx.constraintlayout.core.motion.key.MotionKeyTimeCycle copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    256:294:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    302:302:int getId(java.lang.String) -> getId
+    146:156:boolean setValue(int,int) -> setValue
+    160:209:boolean setValue(int,float) -> setValue
+    213:224:boolean setValue(int,java.lang.String) -> setValue
+    228:228:boolean setValue(int,boolean) -> setValue
+androidx.constraintlayout.core.motion.key.MotionKeyTrigger -> androidx.constraintlayout.core.motion.key.MotionKeyTrigger:
+    29:84:void <init>() -> <init>
+    94:94:void addValues(java.util.HashMap) -> addValues
+    29:29:java.lang.Object clone() -> clone
+    150:150:androidx.constraintlayout.core.motion.key.MotionKey clone() -> clone
+    168:168:void conditionallyFire(float,androidx.constraintlayout.core.motion.MotionWidget) -> conditionallyFire
+    29:29:androidx.constraintlayout.core.motion.key.MotionKey copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    126:146:androidx.constraintlayout.core.motion.key.MotionKeyTrigger copy(androidx.constraintlayout.core.motion.key.MotionKey) -> copy
+    153:166:void fireCustom(java.lang.String,androidx.constraintlayout.core.motion.MotionWidget) -> fireCustom
+    89:89:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    98:122:int getId(java.lang.String) -> getId
+    171:194:boolean setValue(int,int) -> setValue
+    198:205:boolean setValue(int,float) -> setValue
+    209:228:boolean setValue(int,java.lang.String) -> setValue
+    232:239:boolean setValue(int,boolean) -> setValue
+androidx.constraintlayout.core.motion.parse.KeyParser -> androidx.constraintlayout.core.motion.parse.KeyParser:
+    28:28:void <init>() -> <init>
+    83:105:void main(java.lang.String[]) -> main
+    39:75:androidx.constraintlayout.core.motion.utils.TypedBundle parse(java.lang.String,androidx.constraintlayout.core.motion.parse.KeyParser$Ids,androidx.constraintlayout.core.motion.parse.KeyParser$DataType) -> parse
+    79:79:androidx.constraintlayout.core.motion.utils.TypedBundle parseAttributes(java.lang.String) -> parseAttributes
+androidx.constraintlayout.core.motion.parse.KeyParser$$ExternalSyntheticLambda0 -> androidx.constraintlayout.core.motion.parse.KeyParser$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$1 androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$1.INSTANCE -> INSTANCE
+    void androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$1.<clinit>() -> <clinit>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$1.<init>() -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    int androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$1.get(int) -> get
+      # {"id":"com.android.tools.r8.synthesized"}
+androidx.constraintlayout.core.motion.parse.KeyParser$$ExternalSyntheticLambda1 -> androidx.constraintlayout.core.motion.parse.KeyParser$$ExternalSyntheticLambda1:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$0 androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$0.INSTANCE -> INSTANCE
+    void androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$0.<clinit>() -> <clinit>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$0.<init>() -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    int androidx.constraintlayout.core.motion.parse.KeyParser$$InternalSyntheticLambda$0$e1a0828d9445fc9cb6fa8a9da3fca67e0426461f2326395afe486f2ac4a5453f$0.get(java.lang.String) -> get
+      # {"id":"com.android.tools.r8.synthesized"}
+androidx.constraintlayout.core.motion.utils.ArcCurveFit -> androidx.constraintlayout.core.motion.utils.ArcCurveFit:
+    37:281:void <init>(int[],double[],double[][]) -> <init>
+    41:92:void getPos(double,double[]) -> getPos
+    96:145:void getPos(double,float[]) -> getPos
+    172:224:double getPos(double,int) -> getPos
+    149:168:void getSlope(double,double[]) -> getSlope
+    229:251:double getSlope(double,int) -> getSlope
+    256:256:double[] getTimePoints() -> getTimePoints
+androidx.constraintlayout.core.motion.utils.ArcCurveFit$Arc -> androidx.constraintlayout.core.motion.utils.ArcCurveFit$Arc:
+    285:285:void <clinit>() -> <clinit>
+    300:332:void <init>(int,double,double,double,double,double,double) -> <init>
+    397:436:void buildTable(double,double,double,double) -> buildTable
+    351:354:double getDX() -> getDX
+    358:361:double getDY() -> getDY
+    375:375:double getLinearDX(double) -> getLinearDX
+    379:379:double getLinearDY(double) -> getLinearDY
+    365:366:double getLinearX(double) -> getLinearX
+    370:371:double getLinearY(double) -> getLinearY
+    343:343:double getX() -> getX
+    347:347:double getY() -> getY
+    383:393:double lookup(double) -> lookup
+    335:340:void setPoint(double) -> setPoint
+androidx.constraintlayout.core.motion.utils.CurveFit -> androidx.constraintlayout.core.motion.utils.CurveFit:
+    26:26:void <init>() -> <init>
+    32:41:androidx.constraintlayout.core.motion.utils.CurveFit get(int,double[],double[][]) -> get
+    46:46:androidx.constraintlayout.core.motion.utils.CurveFit getArc(int[],double[],double[][]) -> getArc
+androidx.constraintlayout.core.motion.utils.CurveFit$Constant -> androidx.constraintlayout.core.motion.utils.CurveFit$Constant:
+    65:68:void <init>(double,double[]) -> <init>
+    72:73:void getPos(double,double[]) -> getPos
+    77:80:void getPos(double,float[]) -> getPos
+    84:84:double getPos(double,int) -> getPos
+    89:92:void getSlope(double,double[]) -> getSlope
+    96:96:double getSlope(double,int) -> getSlope
+    101:101:double[] getTimePoints() -> getTimePoints
+androidx.constraintlayout.core.motion.utils.Easing -> androidx.constraintlayout.core.motion.utils.Easing:
+    27:38:void <clinit>() -> <clinit>
+    26:28:void <init>() -> <init>
+    71:71:double get(double) -> get
+    79:79:double getDiff(double) -> getDiff
+    41:67:androidx.constraintlayout.core.motion.utils.Easing getInterpolator(java.lang.String) -> getInterpolator
+    75:75:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.utils.Easing$CubicEasing -> androidx.constraintlayout.core.motion.utils.Easing$CubicEasing:
+    84:85:void <clinit>() -> <clinit>
+    88:100:void <init>(java.lang.String) -> <init>
+    102:104:void <init>(double,double,double,double) -> <init>
+    171:194:double get(double) -> get
+    146:163:double getDiff(double) -> getDiff
+    132:133:double getDiffX(double) -> getDiffX
+    137:138:double getDiffY(double) -> getDiffY
+    114:119:double getX(double) -> getX
+    123:128:double getY(double) -> getY
+    107:111:void setup(double,double,double,double) -> setup
+androidx.constraintlayout.core.motion.utils.FloatRect -> androidx.constraintlayout.core.motion.utils.FloatRect:
+    18:18:void <init>() -> <init>
+    24:24:float centerX() -> centerX
+    27:27:float centerY() -> centerY
+androidx.constraintlayout.core.motion.utils.HyperSpline -> androidx.constraintlayout.core.motion.utils.HyperSpline:
+    40:42:void <init>(double[][]) -> <init>
+    44:45:void <init>() -> <init>
+    122:145:double approxLength(androidx.constraintlayout.core.motion.utils.HyperSpline$Cubic[]) -> approxLength
+    149:176:androidx.constraintlayout.core.motion.utils.HyperSpline$Cubic[] calcNaturalCubic(int,double[]) -> calcNaturalCubic
+    88:97:void getPos(double,double[]) -> getPos
+    100:109:void getPos(double,float[]) -> getPos
+    112:118:double getPos(double,int) -> getPos
+    76:85:void getVelocity(double,double[]) -> getVelocity
+    48:73:void setup(double[][]) -> setup
+androidx.constraintlayout.core.motion.utils.HyperSpline$Cubic -> androidx.constraintlayout.core.motion.utils.HyperSpline$Cubic:
+    182:187:void <init>(double,double,double,double) -> <init>
+    193:193:double eval(double) -> eval
+    202:202:double vel(double) -> vel
+androidx.constraintlayout.core.motion.utils.KeyCache -> androidx.constraintlayout.core.motion.utils.KeyCache:
+    26:28:void <init>() -> <init>
+    63:77:float getFloatValue(java.lang.Object,java.lang.String,int) -> getFloatValue
+    31:60:void setFloatValue(java.lang.Object,java.lang.String,int,float) -> setFloatValue
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator:
+    32:41:void <init>() -> <init>
+    118:118:float get(float) -> get
+    126:126:androidx.constraintlayout.core.motion.utils.CurveFit getCurveFit() -> getCurveFit
+    122:122:float getSlope(float) -> getSlope
+    44:47:androidx.constraintlayout.core.motion.utils.KeyCycleOscillator makeWidgetCycle(java.lang.String) -> makeWidgetCycle
+    131:131:void setCustom(java.lang.Object) -> setCustom
+    152:159:void setPoint(int,int,java.lang.String,int,float,float,float,float,java.lang.Object) -> setPoint
+    178:184:void setPoint(int,int,java.lang.String,int,float,float,float,float) -> setPoint
+    413:413:void setProperty(androidx.constraintlayout.core.motion.MotionWidget,float) -> setProperty
+    114:115:void setType(java.lang.String) -> setType
+    187:211:void setup(float) -> setup
+    105:110:java.lang.String toString() -> toString
+    84:84:boolean variesByPath() -> variesByPath
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$1 -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$1:
+    191:191:void <init>(androidx.constraintlayout.core.motion.utils.KeyCycleOscillator) -> <init>
+    191:191:int compare(java.lang.Object,java.lang.Object) -> compare
+    194:194:int compare(androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$WavePoint,androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$WavePoint) -> compare
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$CoreSpline -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$CoreSpline:
+    54:57:void <init>(java.lang.String) -> <init>
+    60:61:void setProperty(androidx.constraintlayout.core.motion.MotionWidget,float) -> setProperty
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$CycleOscillator -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$CycleOscillator:
+    304:331:void <init>(int,java.lang.String,int,int) -> <init>
+    349:349:double getLastPhase() -> getLastPhase
+    353:363:double getSlope(float) -> getSlope
+    334:345:double getValues(float) -> getValues
+    374:379:void setPoint(int,int,float,float,float,float) -> setPoint
+    382:408:void setup(float) -> setup
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$IntDoubleSort -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$IntDoubleSort:
+    213:213:void <init>() -> <init>
+    233:242:int partition(int[],float[],int,int) -> partition
+    215:230:void sort(int[],float[],int,int) -> sort
+    246:252:void swap(int[],float[],int,int) -> swap
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$IntFloatFloatSort -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$IntFloatFloatSort:
+    255:255:void <init>() -> <init>
+    275:284:int partition(int[],float[],float[],int,int) -> partition
+    257:272:void sort(int[],float[],float[],int,int) -> sort
+    288:297:void swap(int[],float[],float[],int,int) -> swap
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$PathRotateSet -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$PathRotateSet:
+    68:71:void <init>(java.lang.String) -> <init>
+    79:80:void setPathRotate(androidx.constraintlayout.core.motion.MotionWidget,float,double,double) -> setPathRotate
+    75:76:void setProperty(androidx.constraintlayout.core.motion.MotionWidget,float) -> setProperty
+androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$WavePoint -> androidx.constraintlayout.core.motion.utils.KeyCycleOscillator$WavePoint:
+    94:100:void <init>(int,float,float,float,float) -> <init>
+androidx.constraintlayout.core.motion.utils.KeyFrameArray -> androidx.constraintlayout.core.motion.utils.KeyFrameArray:
+    23:23:void <init>() -> <init>
+androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomArray -> androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomArray:
+    27:34:void <init>() -> <init>
+    64:70:void append(int,androidx.constraintlayout.core.motion.CustomAttribute) -> append
+    37:40:void clear() -> clear
+    43:49:void dump() -> dump
+    60:60:int keyAt(int) -> keyAt
+    73:86:void remove(int) -> remove
+    52:52:int size() -> size
+    56:56:androidx.constraintlayout.core.motion.CustomAttribute valueAt(int) -> valueAt
+androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomVar -> androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomVar:
+    90:97:void <init>() -> <init>
+    127:133:void append(int,androidx.constraintlayout.core.motion.CustomVariable) -> append
+    100:103:void clear() -> clear
+    106:112:void dump() -> dump
+    123:123:int keyAt(int) -> keyAt
+    136:149:void remove(int) -> remove
+    115:115:int size() -> size
+    119:119:androidx.constraintlayout.core.motion.CustomVariable valueAt(int) -> valueAt
+androidx.constraintlayout.core.motion.utils.KeyFrameArray$FloatArray -> androidx.constraintlayout.core.motion.utils.KeyFrameArray$FloatArray:
+    153:160:void <init>() -> <init>
+    190:196:void append(int,float[]) -> append
+    163:166:void clear() -> clear
+    169:175:void dump() -> dump
+    186:186:int keyAt(int) -> keyAt
+    199:212:void remove(int) -> remove
+    178:178:int size() -> size
+    182:182:float[] valueAt(int) -> valueAt
+androidx.constraintlayout.core.motion.utils.LinearCurveFit -> androidx.constraintlayout.core.motion.utils.LinearCurveFit:
+    28:52:void <init>(double[],double[][]) -> <init>
+    62:101:double getLength2D(double) -> getLength2D
+    105:155:void getPos(double,double[]) -> getPos
+    158:208:void getPos(double,float[]) -> getPos
+    211:241:double getPos(double,int) -> getPos
+    245:266:void getSlope(double,double[]) -> getSlope
+    270:286:double getSlope(double,int) -> getSlope
+    291:291:double[] getTimePoints() -> getTimePoints
+androidx.constraintlayout.core.motion.utils.MonotonicCurveFit -> androidx.constraintlayout.core.motion.utils.MonotonicCurveFit:
+    31:73:void <init>(double[],double[][]) -> <init>
+    309:323:androidx.constraintlayout.core.motion.utils.MonotonicCurveFit buildWave(java.lang.String) -> buildWave
+    327:345:androidx.constraintlayout.core.motion.utils.MonotonicCurveFit buildWave(double[]) -> buildWave
+    296:297:double diff(double,double,double,double,double,double) -> diff
+    77:128:void getPos(double,double[]) -> getPos
+    132:183:void getPos(double,float[]) -> getPos
+    187:219:double getPos(double,int) -> getPos
+    224:246:void getSlope(double,double[]) -> getSlope
+    251:269:double getSlope(double,int) -> getSlope
+    274:274:double[] getTimePoints() -> getTimePoints
+    283:285:double interpolate(double,double,double,double,double,double) -> interpolate
+androidx.constraintlayout.core.motion.utils.Oscillator -> androidx.constraintlayout.core.motion.utils.Oscillator:
+    26:26:void <clinit>() -> <clinit>
+    27:45:void <init>() -> <init>
+    61:73:void addPoint(double,float) -> addPoint
+    148:164:double getDP(double) -> getDP
+    103:120:double getP(double) -> getP
+    168:188:double getSlope(double,double,double) -> getSlope
+    124:143:double getValue(double,double) -> getValue
+    79:100:void normalize() -> normalize
+    53:58:void setType(int,java.lang.String) -> setType
+    49:49:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.utils.Rect -> androidx.constraintlayout.core.motion.utils.Rect:
+    18:18:void <init>() -> <init>
+    29:29:int height() -> height
+    25:25:int width() -> width
+androidx.constraintlayout.core.motion.utils.Schlick -> androidx.constraintlayout.core.motion.utils.Schlick:
+    29:38:void <init>(java.lang.String) -> <init>
+    48:51:double dfunc(double) -> dfunc
+    41:44:double func(double) -> func
+    59:59:double get(double) -> get
+    55:55:double getDiff(double) -> getDiff
+androidx.constraintlayout.core.motion.utils.SplineSet -> androidx.constraintlayout.core.motion.utils.SplineSet:
+    33:37:void <init>() -> <init>
+    61:61:float get(float) -> get
+    69:69:androidx.constraintlayout.core.motion.utils.CurveFit getCurveFit() -> getCurveFit
+    65:65:float getSlope(float) -> getSlope
+    114:114:androidx.constraintlayout.core.motion.utils.SplineSet makeCustomSpline(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomArray) -> makeCustomSpline
+    118:118:androidx.constraintlayout.core.motion.utils.SplineSet makeCustomSplineSet(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomVar) -> makeCustomSplineSet
+    123:123:androidx.constraintlayout.core.motion.utils.SplineSet makeSpline(java.lang.String,long) -> makeSpline
+    74:81:void setPoint(int,float) -> setPoint
+    42:43:void setProperty(androidx.constraintlayout.core.motion.utils.TypedValues,float) -> setProperty
+    57:58:void setType(java.lang.String) -> setType
+    84:111:void setup(int) -> setup
+    47:53:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.utils.SplineSet$CoreSpline -> androidx.constraintlayout.core.motion.utils.SplineSet$CoreSpline:
+    220:223:void <init>(java.lang.String,long) -> <init>
+    226:228:void setProperty(androidx.constraintlayout.core.motion.utils.TypedValues,float) -> setProperty
+androidx.constraintlayout.core.motion.utils.SplineSet$CustomSet -> androidx.constraintlayout.core.motion.utils.SplineSet$CustomSet:
+    175:178:void <init>(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomArray) -> <init>
+    202:202:void setPoint(int,float) -> setPoint
+    206:207:void setPoint(int,androidx.constraintlayout.core.motion.CustomAttribute) -> setPoint
+    210:212:void setProperty(androidx.constraintlayout.core.state.WidgetFrame,float) -> setProperty
+    181:199:void setup(int) -> setup
+androidx.constraintlayout.core.motion.utils.SplineSet$CustomSpline -> androidx.constraintlayout.core.motion.utils.SplineSet$CustomSpline:
+    236:239:void <init>(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomVar) -> <init>
+    263:263:void setPoint(int,float) -> setPoint
+    271:272:void setPoint(int,androidx.constraintlayout.core.motion.CustomVariable) -> setPoint
+    267:268:void setProperty(androidx.constraintlayout.core.motion.utils.TypedValues,float) -> setProperty
+    275:277:void setProperty(androidx.constraintlayout.core.motion.MotionWidget,float) -> setProperty
+    242:260:void setup(int) -> setup
+androidx.constraintlayout.core.motion.utils.SplineSet$Sort -> androidx.constraintlayout.core.motion.utils.SplineSet$Sort:
+    126:126:void <init>() -> <init>
+    129:144:void doubleQuickSort(int[],float[],int,int) -> doubleQuickSort
+    147:156:int partition(int[],float[],int,int) -> partition
+    160:166:void swap(int[],float[],int,int) -> swap
+androidx.constraintlayout.core.motion.utils.SpringStopEngine -> androidx.constraintlayout.core.motion.utils.SpringStopEngine:
+    25:37:void <init>() -> <init>
+    101:130:void compute(double) -> compute
+    41:41:java.lang.String debug(java.lang.String,float) -> debug
+    77:80:float getAcceleration() -> getAcceleration
+    71:73:float getInterpolation(float) -> getInterpolation
+    66:66:float getVelocity(float) -> getVelocity
+    85:85:float getVelocity() -> getVelocity
+    90:96:boolean isStopped() -> isStopped
+    45:48:void log(java.lang.String) -> log
+    52:62:void springConfig(float,float,float,float,float,float,float,int) -> springConfig
+androidx.constraintlayout.core.motion.utils.StepCurve -> androidx.constraintlayout.core.motion.utils.StepCurve:
+    31:48:void <init>(java.lang.String) -> <init>
+    51:57:androidx.constraintlayout.core.motion.utils.MonotonicCurveFit genSpline(java.lang.String) -> genSpline
+    61:92:androidx.constraintlayout.core.motion.utils.MonotonicCurveFit genSpline(double[]) -> genSpline
+    100:100:double get(double) -> get
+    96:96:double getDiff(double) -> getDiff
+androidx.constraintlayout.core.motion.utils.StopLogicEngine -> androidx.constraintlayout.core.motion.utils.StopLogicEngine:
+    27:36:void <init>() -> <init>
+    111:132:float calcY(float) -> calcY
+    137:145:void config(float,float,float,float,float,float) -> config
+    47:84:java.lang.String debug(java.lang.String,float) -> debug
+    148:150:float getInterpolation(float) -> getInterpolation
+    88:107:float getVelocity(float) -> getVelocity
+    154:154:float getVelocity() -> getVelocity
+    159:159:boolean isStopped() -> isStopped
+    164:266:void setup(float,float,float,float,float) -> setup
+androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet -> androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet:
+    41:41:void <clinit>() -> <clinit>
+    29:44:void <init>() -> <init>
+    65:82:float calcWave(float) -> calcWave
+    87:87:androidx.constraintlayout.core.motion.utils.CurveFit getCurveFit() -> getCurveFit
+    95:101:void setPoint(int,float,float,int,float) -> setPoint
+    91:92:void setStartTime(long) -> setStartTime
+    57:58:void setType(java.lang.String) -> setType
+    178:207:void setup(int) -> setup
+    48:53:java.lang.String toString() -> toString
+androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$CustomSet -> androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$CustomSet:
+    106:113:void <init>(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomArray) -> <init>
+    138:138:void setPoint(int,float,float,int,float) -> setPoint
+    142:145:void setPoint(int,androidx.constraintlayout.core.motion.CustomAttribute,float,int,float) -> setPoint
+    149:173:boolean setProperty(androidx.constraintlayout.core.motion.MotionWidget,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+    116:135:void setup(int) -> setup
+androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$CustomVarSet -> androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$CustomVarSet:
+    257:264:void <init>(java.lang.String,androidx.constraintlayout.core.motion.utils.KeyFrameArray$CustomVar) -> <init>
+    289:289:void setPoint(int,float,float,int,float) -> setPoint
+    293:296:void setPoint(int,androidx.constraintlayout.core.motion.CustomVariable,float,int,float) -> setPoint
+    300:324:boolean setProperty(androidx.constraintlayout.core.motion.MotionWidget,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+    267:286:void setup(int) -> setup
+androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$Sort -> androidx.constraintlayout.core.motion.utils.TimeCycleSplineSet$Sort:
+    209:209:void <init>() -> <init>
+    211:226:void doubleQuickSort(int[],float[][],int,int) -> doubleQuickSort
+    229:238:int partition(int[],float[][],int,int) -> partition
+    242:248:void swap(int[],float[][],int,int) -> swap
+androidx.constraintlayout.core.motion.utils.TypedBundle -> androidx.constraintlayout.core.motion.utils.TypedBundle:
+    20:38:void <init>() -> <init>
+    50:56:void add(int,int) -> add
+    59:65:void add(int,float) -> add
+    74:80:void add(int,java.lang.String) -> add
+    83:89:void add(int,boolean) -> add
+    68:71:void addIfNotNull(int,java.lang.String) -> addIfNotNull
+    92:104:void applyDelta(androidx.constraintlayout.core.motion.utils.TypedValues) -> applyDelta
+    107:111:void clear() -> clear
+    41:46:int getInteger(int) -> getInteger
+androidx.constraintlayout.core.motion.utils.TypedValues$Attributes -> androidx.constraintlayout.core.motion.utils.TypedValues$Attributes:
+    113:113:void <clinit>() -> <clinit>
+    145:187:int getId(java.lang.String) -> getId
+    191:216:int getType(int) -> getType
+androidx.constraintlayout.core.motion.utils.TypedValues$Custom -> androidx.constraintlayout.core.motion.utils.TypedValues$Custom:
+    567:567:void <clinit>() -> <clinit>
+    591:607:int getId(java.lang.String) -> getId
+androidx.constraintlayout.core.motion.utils.TypedValues$Cycle -> androidx.constraintlayout.core.motion.utils.TypedValues$Cycle:
+    268:268:void <clinit>() -> <clinit>
+    302:336:int getId(java.lang.String) -> getId
+androidx.constraintlayout.core.motion.utils.TypedValues$Motion -> androidx.constraintlayout.core.motion.utils.TypedValues$Motion:
+    489:489:void <clinit>() -> <clinit>
+    526:554:int getId(java.lang.String) -> getId
+androidx.constraintlayout.core.motion.utils.TypedValues$Position -> androidx.constraintlayout.core.motion.utils.TypedValues$Position:
+    437:437:void <clinit>() -> <clinit>
+    455:471:int getId(java.lang.String) -> getId
+androidx.constraintlayout.core.motion.utils.TypedValues$Trigger -> androidx.constraintlayout.core.motion.utils.TypedValues$Trigger:
+    353:353:void <clinit>() -> <clinit>
+    388:414:int getId(java.lang.String) -> getId
+androidx.constraintlayout.core.motion.utils.Utils -> androidx.constraintlayout.core.motion.utils.Utils:
+    22:22:void <init>() -> <init>
+    42:47:int clamp(int) -> clamp
+    51:56:int getInterpolatedColor(float[]) -> getInterpolatedColor
+    24:25:void log(java.lang.String,java.lang.String) -> log
+    80:83:void log(java.lang.String) -> log
+    68:77:void logStack(java.lang.String,int) -> logStack
+    27:28:void loge(java.lang.String,java.lang.String) -> loge
+    60:65:int rgbaTocColor(float,float,float,float) -> rgbaTocColor
+    32:39:void socketSend(java.lang.String) -> socketSend
+androidx.constraintlayout.core.motion.utils.VelocityMatrix -> androidx.constraintlayout.core.motion.utils.VelocityMatrix:
+    27:27:void <clinit>() -> <clinit>
+    24:24:void <init>() -> <init>
+    97:111:void applyTransform(float,float,int,int,float[]) -> applyTransform
+    30:31:void clear() -> clear
+    34:38:void setRotationVelocity(androidx.constraintlayout.core.motion.utils.SplineSet,float) -> setRotationVelocity
+    61:64:void setRotationVelocity(androidx.constraintlayout.core.motion.utils.KeyCycleOscillator,float) -> setRotationVelocity
+    52:58:void setScaleVelocity(androidx.constraintlayout.core.motion.utils.SplineSet,androidx.constraintlayout.core.motion.utils.SplineSet,float) -> setScaleVelocity
+    78:84:void setScaleVelocity(androidx.constraintlayout.core.motion.utils.KeyCycleOscillator,androidx.constraintlayout.core.motion.utils.KeyCycleOscillator,float) -> setScaleVelocity
+    42:48:void setTranslationVelocity(androidx.constraintlayout.core.motion.utils.SplineSet,androidx.constraintlayout.core.motion.utils.SplineSet,float) -> setTranslationVelocity
+    68:75:void setTranslationVelocity(androidx.constraintlayout.core.motion.utils.KeyCycleOscillator,androidx.constraintlayout.core.motion.utils.KeyCycleOscillator,float) -> setTranslationVelocity
+androidx.constraintlayout.core.motion.utils.ViewState -> androidx.constraintlayout.core.motion.utils.ViewState:
+    20:20:void <init>() -> <init>
+    25:30:void getState(androidx.constraintlayout.core.motion.MotionWidget) -> getState
+    37:37:int height() -> height
+    33:33:int width() -> width
+androidx.constraintlayout.core.parser.CLArray -> androidx.constraintlayout.core.parser.CLArray:
+    20:21:void <init>(char[]) -> <init>
+    24:24:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    42:62:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    28:38:java.lang.String toJSON() -> toJSON
+androidx.constraintlayout.core.parser.CLContainer -> androidx.constraintlayout.core.parser.CLContainer:
+    21:25:void <init>(char[]) -> <init>
+    32:36:void add(androidx.constraintlayout.core.parser.CLElement) -> add
+    28:28:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    111:117:androidx.constraintlayout.core.parser.CLElement get(java.lang.String) -> get
+    229:232:androidx.constraintlayout.core.parser.CLElement get(int) -> get
+    139:144:androidx.constraintlayout.core.parser.CLArray getArray(java.lang.String) -> getArray
+    252:256:androidx.constraintlayout.core.parser.CLArray getArray(int) -> getArray
+    201:205:androidx.constraintlayout.core.parser.CLArray getArrayOrNull(java.lang.String) -> getArrayOrNull
+    170:175:boolean getBoolean(java.lang.String) -> getBoolean
+    276:280:boolean getBoolean(int) -> getBoolean
+    130:135:float getFloat(java.lang.String) -> getFloat
+    244:248:float getFloat(int) -> getFloat
+    217:221:float getFloatOrNaN(java.lang.String) -> getFloatOrNaN
+    121:126:int getInt(java.lang.String) -> getInt
+    236:240:int getInt(int) -> getInt
+    148:153:androidx.constraintlayout.core.parser.CLObject getObject(java.lang.String) -> getObject
+    260:264:androidx.constraintlayout.core.parser.CLObject getObject(int) -> getObject
+    193:197:androidx.constraintlayout.core.parser.CLObject getObjectOrNull(java.lang.String) -> getObjectOrNull
+    183:189:androidx.constraintlayout.core.parser.CLElement getOrNull(java.lang.String) -> getOrNull
+    288:291:androidx.constraintlayout.core.parser.CLElement getOrNull(int) -> getOrNull
+    157:165:java.lang.String getString(java.lang.String) -> getString
+    268:272:java.lang.String getString(int) -> getString
+    209:213:java.lang.String getStringOrNull(java.lang.String) -> getStringOrNull
+    295:299:java.lang.String getStringOrNull(int) -> getStringOrNull
+    66:74:boolean has(java.lang.String) -> has
+    55:62:java.util.ArrayList names() -> names
+    78:87:void put(java.lang.String,androidx.constraintlayout.core.parser.CLElement) -> put
+    90:91:void putNumber(java.lang.String,float) -> putNumber
+    94:104:void remove(java.lang.String) -> remove
+    51:51:int size() -> size
+    40:47:java.lang.String toString() -> toString
+androidx.constraintlayout.core.parser.CLElement -> androidx.constraintlayout.core.parser.CLElement:
+    26:27:void <clinit>() -> <clinit>
+    21:31:void <init>(char[]) -> <init>
+    86:89:void addIndent(java.lang.StringBuilder,int) -> addIndent
+    115:119:java.lang.String content() -> content
+    131:131:androidx.constraintlayout.core.parser.CLElement getContainer() -> getContainer
+    108:111:java.lang.String getDebugName() -> getDebugName
+    69:69:long getEnd() -> getEnd
+    154:157:float getFloat() -> getFloat
+    147:150:int getInt() -> getInt
+    47:47:int getLine() -> getLine
+    60:60:long getStart() -> getStart
+    103:104:java.lang.String getStrClass() -> getStrClass
+    123:123:boolean isDone() -> isDone
+    135:135:boolean isStarted() -> isStarted
+    34:34:boolean notStarted() -> notStarted
+    127:128:void setContainer(androidx.constraintlayout.core.parser.CLContainer) -> setContainer
+    73:83:void setEnd(long) -> setEnd
+    38:39:void setLine(int) -> setLine
+    51:52:void setStart(long) -> setStart
+    143:143:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    139:139:java.lang.String toJSON() -> toJSON
+    93:99:java.lang.String toString() -> toString
+androidx.constraintlayout.core.parser.CLKey -> androidx.constraintlayout.core.parser.CLKey:
+    22:33:void <clinit>() -> <clinit>
+    36:37:void <init>(char[]) -> <init>
+    40:40:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    44:48:androidx.constraintlayout.core.parser.CLElement allocate(java.lang.String,androidx.constraintlayout.core.parser.CLElement) -> allocate
+    51:51:java.lang.String getName() -> getName
+    94:97:androidx.constraintlayout.core.parser.CLElement getValue() -> getValue
+    86:91:void set(androidx.constraintlayout.core.parser.CLElement) -> set
+    61:82:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    54:57:java.lang.String toJSON() -> toJSON
+androidx.constraintlayout.core.parser.CLNumber -> androidx.constraintlayout.core.parser.CLNumber:
+    20:23:void <init>(char[]) -> <init>
+    20:28:void <init>(float) -> <init>
+    31:31:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    72:75:float getFloat() -> getFloat
+    64:67:int getInt() -> getInt
+    57:59:boolean isInt() -> isInt
+    79:80:void putValue(float) -> putValue
+    44:53:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    35:40:java.lang.String toJSON() -> toJSON
+androidx.constraintlayout.core.parser.CLObject -> androidx.constraintlayout.core.parser.CLObject:
+    23:24:void <init>(char[]) -> <init>
+    27:27:androidx.constraintlayout.core.parser.CLObject allocate(char[]) -> allocate
+    69:69:java.util.Iterator iterator() -> iterator
+    46:46:java.lang.String toFormattedJSON() -> toFormattedJSON
+    50:64:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    31:42:java.lang.String toJSON() -> toJSON
+androidx.constraintlayout.core.parser.CLObject$CLObjectIterator -> androidx.constraintlayout.core.parser.CLObject$CLObjectIterator:
+    74:77:void <init>(androidx.constraintlayout.core.parser.CLObject,androidx.constraintlayout.core.parser.CLObject) -> <init>
+    81:81:boolean hasNext() -> hasNext
+    86:88:java.lang.Object next() -> next
+androidx.constraintlayout.core.parser.CLParser -> androidx.constraintlayout.core.parser.CLParser:
+    20:20:void <clinit>() -> <clinit>
+    23:34:void <init>(java.lang.String) -> <init>
+    230:274:androidx.constraintlayout.core.parser.CLElement createElement(androidx.constraintlayout.core.parser.CLElement,int,androidx.constraintlayout.core.parser.CLParser$TYPE,boolean,char[]) -> createElement
+    159:225:androidx.constraintlayout.core.parser.CLElement getNextJsonElement(int,char,androidx.constraintlayout.core.parser.CLElement,char[]) -> getNextJsonElement
+    29:29:androidx.constraintlayout.core.parser.CLObject parse(java.lang.String) -> parse
+    37:154:androidx.constraintlayout.core.parser.CLObject parse() -> parse
+androidx.constraintlayout.core.parser.CLParser$1 -> androidx.constraintlayout.core.parser.CLParser$1:
+    234:234:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.parser.CLParser$TYPE -> androidx.constraintlayout.core.parser.CLParser$TYPE:
+    26:26:void <clinit>() -> <clinit>
+    26:26:void <init>(java.lang.String,int) -> <init>
+    26:26:androidx.constraintlayout.core.parser.CLParser$TYPE valueOf(java.lang.String) -> valueOf
+    26:26:androidx.constraintlayout.core.parser.CLParser$TYPE[] values() -> values
+androidx.constraintlayout.core.parser.CLParsingException -> androidx.constraintlayout.core.parser.CLParsingException:
+    23:32:void <init>(java.lang.String,androidx.constraintlayout.core.parser.CLElement) -> <init>
+    35:35:java.lang.String reason() -> reason
+    40:40:java.lang.String toString() -> toString
+androidx.constraintlayout.core.parser.CLString -> androidx.constraintlayout.core.parser.CLString:
+    21:22:void <init>(char[]) -> <init>
+    24:24:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    30:35:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    27:27:java.lang.String toJSON() -> toJSON
+androidx.constraintlayout.core.parser.CLToken -> androidx.constraintlayout.core.parser.CLToken:
+    19:47:void <init>(char[]) -> <init>
+    50:50:androidx.constraintlayout.core.parser.CLElement allocate(char[]) -> allocate
+    23:29:boolean getBoolean() -> getBoolean
+    69:69:androidx.constraintlayout.core.parser.CLToken$Type getType() -> getType
+    33:36:boolean isNull() -> isNull
+    62:65:java.lang.String toFormattedJSON(int,int) -> toFormattedJSON
+    54:57:java.lang.String toJSON() -> toJSON
+    73:108:boolean validate(char,long) -> validate
+androidx.constraintlayout.core.parser.CLToken$1 -> androidx.constraintlayout.core.parser.CLToken$1:
+    74:74:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.parser.CLToken$Type -> androidx.constraintlayout.core.parser.CLToken$Type:
+    39:39:void <clinit>() -> <clinit>
+    39:39:void <init>(java.lang.String,int) -> <init>
+    39:39:androidx.constraintlayout.core.parser.CLToken$Type valueOf(java.lang.String) -> valueOf
+    39:39:androidx.constraintlayout.core.parser.CLToken$Type[] values() -> values
+androidx.constraintlayout.core.state.ConstraintReference -> androidx.constraintlayout.core.state.ConstraintReference:
+    56:221:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    386:387:void addCustomColor(java.lang.String,int) -> addCustomColor
+    390:394:void addCustomFloat(java.lang.String,float) -> addCustomFloat
+    317:318:androidx.constraintlayout.core.state.ConstraintReference alpha(float) -> alpha
+    840:900:void apply() -> apply
+    772:837:void applyConnection(androidx.constraintlayout.core.widgets.ConstraintWidget,java.lang.Object,androidx.constraintlayout.core.state.State$Constraint) -> applyConnection
+    381:382:androidx.constraintlayout.core.state.ConstraintReference baseline() -> baseline
+    485:487:androidx.constraintlayout.core.state.ConstraintReference baselineToBaseline(java.lang.Object) -> baselineToBaseline
+    642:666:androidx.constraintlayout.core.state.ConstraintReference bias(float) -> bias
+    372:377:androidx.constraintlayout.core.state.ConstraintReference bottom() -> bottom
+    479:481:androidx.constraintlayout.core.state.ConstraintReference bottomToBottom(java.lang.Object) -> bottomToBottom
+    473:475:androidx.constraintlayout.core.state.ConstraintReference bottomToTop(java.lang.Object) -> bottomToTop
+    491:496:androidx.constraintlayout.core.state.ConstraintReference centerHorizontally(java.lang.Object) -> centerHorizontally
+    500:505:androidx.constraintlayout.core.state.ConstraintReference centerVertically(java.lang.Object) -> centerVertically
+    509:514:androidx.constraintlayout.core.state.ConstraintReference circularConstraint(java.lang.Object,float,float) -> circularConstraint
+    670:760:androidx.constraintlayout.core.state.ConstraintReference clear() -> clear
+    247:251:androidx.constraintlayout.core.state.ConstraintReference clearHorizontal() -> clearHorizontal
+    240:243:androidx.constraintlayout.core.state.ConstraintReference clearVertical() -> clearVertical
+    164:166:androidx.constraintlayout.core.widgets.ConstraintWidget createConstraintWidget() -> createConstraintWidget
+    397:410:void dereference() -> dereference
+    354:359:androidx.constraintlayout.core.state.ConstraintReference end() -> end
+    455:457:androidx.constraintlayout.core.state.ConstraintReference endToEnd(java.lang.Object) -> endToEnd
+    449:451:androidx.constraintlayout.core.state.ConstraintReference endToStart(java.lang.Object) -> endToStart
+    212:218:java.lang.Object get(java.lang.Object) -> get
+    259:259:float getAlpha() -> getAlpha
+    156:160:androidx.constraintlayout.core.widgets.ConstraintWidget getConstraintWidget() -> getConstraintWidget
+    144:144:androidx.constraintlayout.core.state.helpers.Facade getFacade() -> getFacade
+    532:532:androidx.constraintlayout.core.state.Dimension getHeight() -> getHeight
+    228:228:int getHorizontalChainStyle() -> getHorizontalChainStyle
+    39:39:java.lang.Object getKey() -> getKey
+    260:260:float getPivotX() -> getPivotX
+    261:261:float getPivotY() -> getPivotY
+    262:262:float getRotationX() -> getRotationX
+    263:263:float getRotationY() -> getRotationY
+    264:264:float getRotationZ() -> getRotationZ
+    257:257:float getScaleX() -> getScaleX
+    258:258:float getScaleY() -> getScaleY
+    47:47:java.lang.String getTag() -> getTag
+    764:768:androidx.constraintlayout.core.widgets.ConstraintWidget getTarget(java.lang.Object) -> getTarget
+    254:254:float getTranslationX() -> getTranslationX
+    255:255:float getTranslationY() -> getTranslationY
+    256:256:float getTranslationZ() -> getTranslationZ
+    236:236:int getVerticalChainStyle(int) -> getVerticalChainStyle
+    134:134:java.lang.Object getView() -> getView
+    525:525:androidx.constraintlayout.core.state.Dimension getWidth() -> getWidth
+    522:522:androidx.constraintlayout.core.state.ConstraintReference height(androidx.constraintlayout.core.state.Dimension) -> height
+    632:633:androidx.constraintlayout.core.state.ConstraintReference horizontalBias(float) -> horizontalBias
+    327:332:androidx.constraintlayout.core.state.ConstraintReference left() -> left
+    413:415:androidx.constraintlayout.core.state.ConstraintReference leftToLeft(java.lang.Object) -> leftToLeft
+    419:421:androidx.constraintlayout.core.state.ConstraintReference leftToRight(java.lang.Object) -> leftToRight
+    539:539:androidx.constraintlayout.core.state.ConstraintReference margin(java.lang.Object) -> margin
+    543:585:androidx.constraintlayout.core.state.ConstraintReference margin(int) -> margin
+    589:628:androidx.constraintlayout.core.state.ConstraintReference marginGone(int) -> marginGone
+    267:268:androidx.constraintlayout.core.state.ConstraintReference pivotX(float) -> pivotX
+    272:273:androidx.constraintlayout.core.state.ConstraintReference pivotY(float) -> pivotY
+    336:341:androidx.constraintlayout.core.state.ConstraintReference right() -> right
+    425:427:androidx.constraintlayout.core.state.ConstraintReference rightToLeft(java.lang.Object) -> rightToLeft
+    431:433:androidx.constraintlayout.core.state.ConstraintReference rightToRight(java.lang.Object) -> rightToRight
+    277:278:androidx.constraintlayout.core.state.ConstraintReference rotationX(float) -> rotationX
+    282:283:androidx.constraintlayout.core.state.ConstraintReference rotationY(float) -> rotationY
+    287:288:androidx.constraintlayout.core.state.ConstraintReference rotationZ(float) -> rotationZ
+    307:308:androidx.constraintlayout.core.state.ConstraintReference scaleX(float) -> scaleX
+    312:313:androidx.constraintlayout.core.state.ConstraintReference scaleY(float) -> scaleY
+    147:152:void setConstraintWidget(androidx.constraintlayout.core.widgets.ConstraintWidget) -> setConstraintWidget
+    138:142:void setFacade(androidx.constraintlayout.core.state.helpers.Facade) -> setFacade
+    534:535:androidx.constraintlayout.core.state.ConstraintReference setHeight(androidx.constraintlayout.core.state.Dimension) -> setHeight
+    224:225:void setHorizontalChainStyle(int) -> setHorizontalChainStyle
+    35:36:void setKey(java.lang.Object) -> setKey
+    43:44:void setTag(java.lang.String) -> setTag
+    232:233:void setVerticalChainStyle(int) -> setVerticalChainStyle
+    127:131:void setView(java.lang.Object) -> setView
+    528:529:androidx.constraintlayout.core.state.ConstraintReference setWidth(androidx.constraintlayout.core.state.Dimension) -> setWidth
+    345:350:androidx.constraintlayout.core.state.ConstraintReference start() -> start
+    443:445:androidx.constraintlayout.core.state.ConstraintReference startToEnd(java.lang.Object) -> startToEnd
+    437:439:androidx.constraintlayout.core.state.ConstraintReference startToStart(java.lang.Object) -> startToStart
+    363:368:androidx.constraintlayout.core.state.ConstraintReference top() -> top
+    467:469:androidx.constraintlayout.core.state.ConstraintReference topToBottom(java.lang.Object) -> topToBottom
+    461:463:androidx.constraintlayout.core.state.ConstraintReference topToTop(java.lang.Object) -> topToTop
+    292:293:androidx.constraintlayout.core.state.ConstraintReference translationX(float) -> translationX
+    297:298:androidx.constraintlayout.core.state.ConstraintReference translationY(float) -> translationY
+    302:303:androidx.constraintlayout.core.state.ConstraintReference translationZ(float) -> translationZ
+    189:209:void validate() -> validate
+    637:638:androidx.constraintlayout.core.state.ConstraintReference verticalBias(float) -> verticalBias
+    322:323:androidx.constraintlayout.core.state.ConstraintReference visibility(int) -> visibility
+    518:518:androidx.constraintlayout.core.state.ConstraintReference width(androidx.constraintlayout.core.state.Dimension) -> width
+androidx.constraintlayout.core.state.ConstraintReference$1 -> androidx.constraintlayout.core.state.ConstraintReference$1:
+    544:544:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.state.ConstraintReference$IncorrectConstraintException -> androidx.constraintlayout.core.state.ConstraintReference$IncorrectConstraintException:
+    173:175:void <init>(java.util.ArrayList) -> <init>
+    177:177:java.util.ArrayList getErrors() -> getErrors
+    181:181:java.lang.String toString() -> toString
+androidx.constraintlayout.core.state.Dimension -> androidx.constraintlayout.core.state.Dimension:
+    28:33:void <clinit>() -> <clinit>
+    35:67:void <init>() -> <init>
+    35:68:void <init>(java.lang.Object) -> <init>
+    83:85:androidx.constraintlayout.core.state.Dimension Fixed(int) -> Fixed
+    89:91:androidx.constraintlayout.core.state.Dimension Fixed(java.lang.Object) -> Fixed
+    101:101:androidx.constraintlayout.core.state.Dimension Parent() -> Parent
+    95:97:androidx.constraintlayout.core.state.Dimension Percent(java.lang.Object,float) -> Percent
+    113:115:androidx.constraintlayout.core.state.Dimension Ratio(java.lang.String) -> Ratio
+    109:109:androidx.constraintlayout.core.state.Dimension Spread() -> Spread
+    71:73:androidx.constraintlayout.core.state.Dimension Suggested(int) -> Suggested
+    77:79:androidx.constraintlayout.core.state.Dimension Suggested(java.lang.Object) -> Suggested
+    105:105:androidx.constraintlayout.core.state.Dimension Wrap() -> Wrap
+    197:253:void apply(androidx.constraintlayout.core.state.State,androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> apply
+    53:57:boolean equalsFixedValue(int) -> equalsFixedValue
+    164:169:androidx.constraintlayout.core.state.Dimension fixed(java.lang.Object) -> fixed
+    173:175:androidx.constraintlayout.core.state.Dimension fixed(int) -> fixed
+    189:189:int getValue() -> getValue
+    138:141:androidx.constraintlayout.core.state.Dimension max(int) -> max
+    145:149:androidx.constraintlayout.core.state.Dimension max(java.lang.Object) -> max
+    124:127:androidx.constraintlayout.core.state.Dimension min(int) -> min
+    131:134:androidx.constraintlayout.core.state.Dimension min(java.lang.Object) -> min
+    119:120:androidx.constraintlayout.core.state.Dimension percent(java.lang.Object,float) -> percent
+    179:180:androidx.constraintlayout.core.state.Dimension ratio(java.lang.String) -> ratio
+    184:187:void setValue(int) -> setValue
+    153:154:androidx.constraintlayout.core.state.Dimension suggested(int) -> suggested
+    158:160:androidx.constraintlayout.core.state.Dimension suggested(java.lang.Object) -> suggested
+androidx.constraintlayout.core.state.Dimension$Type -> androidx.constraintlayout.core.state.Dimension$Type:
+    60:64:void <clinit>() -> <clinit>
+    60:60:void <init>(java.lang.String,int) -> <init>
+    60:60:androidx.constraintlayout.core.state.Dimension$Type valueOf(java.lang.String) -> valueOf
+    60:60:androidx.constraintlayout.core.state.Dimension$Type[] values() -> values
+androidx.constraintlayout.core.state.HelperReference -> androidx.constraintlayout.core.state.HelperReference:
+    29:36:void <init>(androidx.constraintlayout.core.state.State,androidx.constraintlayout.core.state.State$Helper) -> <init>
+    41:42:androidx.constraintlayout.core.state.HelperReference add(java.lang.Object[]) -> add
+    58:58:void apply() -> apply
+    53:53:androidx.constraintlayout.core.widgets.ConstraintWidget getConstraintWidget() -> getConstraintWidget
+    49:49:androidx.constraintlayout.core.widgets.HelperWidget getHelperWidget() -> getHelperWidget
+    38:38:androidx.constraintlayout.core.state.State$Helper getType() -> getType
+    46:47:void setHelperWidget(androidx.constraintlayout.core.widgets.HelperWidget) -> setHelperWidget
+androidx.constraintlayout.core.state.Registry -> androidx.constraintlayout.core.state.Registry:
+    23:23:void <clinit>() -> <clinit>
+    21:29:void <init>() -> <init>
+    54:58:java.lang.String currentContent(java.lang.String) -> currentContent
+    62:66:java.lang.String currentLayoutInformation(java.lang.String) -> currentLayoutInformation
+    26:26:androidx.constraintlayout.core.state.Registry getInstance() -> getInstance
+    88:92:long getLastModified(java.lang.String) -> getLastModified
+    84:84:java.util.Set getLayoutList() -> getLayoutList
+    32:33:void register(java.lang.String,androidx.constraintlayout.core.state.RegistryCallback) -> register
+    70:74:void setDrawDebug(java.lang.String,int) -> setDrawDebug
+    77:81:void setLayoutInformationMode(java.lang.String,int) -> setLayoutInformationMode
+    36:37:void unregister(java.lang.String,androidx.constraintlayout.core.state.RegistryCallback) -> unregister
+    40:44:void updateContent(java.lang.String,java.lang.String) -> updateContent
+    96:100:void updateDimensions(java.lang.String,int,int) -> updateDimensions
+    47:51:void updateProgress(java.lang.String,float) -> updateProgress
+androidx.constraintlayout.core.state.State -> androidx.constraintlayout.core.state.State:
+    46:46:void <clinit>() -> <clinit>
+    37:174:void <init>() -> <init>
+    314:397:void apply(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> apply
+    230:236:androidx.constraintlayout.core.state.helpers.BarrierReference barrier(java.lang.Object,androidx.constraintlayout.core.state.State$Direction) -> barrier
+    260:262:androidx.constraintlayout.core.state.helpers.AlignHorizontallyReference centerHorizontally(java.lang.Object[]) -> centerHorizontally
+    266:268:androidx.constraintlayout.core.state.helpers.AlignVerticallyReference centerVertically(java.lang.Object[]) -> centerVertically
+    162:171:androidx.constraintlayout.core.state.ConstraintReference constraints(java.lang.Object) -> constraints
+    112:118:int convertDimension(java.lang.Object) -> convertDimension
+    128:128:androidx.constraintlayout.core.state.ConstraintReference createConstraintReference(java.lang.Object) -> createConstraintReference
+    176:176:java.lang.String createHelperKey() -> createHelperKey
+    272:280:void directMapping() -> directMapping
+    307:310:java.util.ArrayList getIdsForTag(java.lang.String) -> getIdsForTag
+    219:226:androidx.constraintlayout.core.state.helpers.GuidelineReference guideline(java.lang.Object,int) -> guideline
+    144:144:androidx.constraintlayout.core.state.State height(androidx.constraintlayout.core.state.Dimension) -> height
+    180:207:androidx.constraintlayout.core.state.HelperReference helper(java.lang.Object,androidx.constraintlayout.core.state.State$Helper) -> helper
+    250:250:androidx.constraintlayout.core.state.helpers.HorizontalChainReference horizontalChain() -> horizontalChain
+    254:256:androidx.constraintlayout.core.state.helpers.HorizontalChainReference horizontalChain(java.lang.Object[]) -> horizontalChain
+    211:211:androidx.constraintlayout.core.state.helpers.GuidelineReference horizontalGuideline(java.lang.Object) -> horizontalGuideline
+    283:288:void map(java.lang.Object,java.lang.Object) -> map
+    158:158:androidx.constraintlayout.core.state.Reference reference(java.lang.Object) -> reference
+    99:101:void reset() -> reset
+    136:136:boolean sameFixedHeight(int) -> sameFixedHeight
+    132:132:boolean sameFixedWidth(int) -> sameFixedWidth
+    153:154:androidx.constraintlayout.core.state.State setHeight(androidx.constraintlayout.core.state.Dimension) -> setHeight
+    291:304:void setTag(java.lang.String,java.lang.String) -> setTag
+    148:149:androidx.constraintlayout.core.state.State setWidth(androidx.constraintlayout.core.state.Dimension) -> setWidth
+    240:240:androidx.constraintlayout.core.state.helpers.VerticalChainReference verticalChain() -> verticalChain
+    244:246:androidx.constraintlayout.core.state.helpers.VerticalChainReference verticalChain(java.lang.Object[]) -> verticalChain
+    215:215:androidx.constraintlayout.core.state.helpers.GuidelineReference verticalGuideline(java.lang.Object) -> verticalGuideline
+    140:140:androidx.constraintlayout.core.state.State width(androidx.constraintlayout.core.state.Dimension) -> width
+androidx.constraintlayout.core.state.State$1 -> androidx.constraintlayout.core.state.State$1:
+    185:185:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.state.State$Chain -> androidx.constraintlayout.core.state.State$Chain:
+    88:91:void <clinit>() -> <clinit>
+    88:88:void <init>(java.lang.String,int) -> <init>
+    88:88:androidx.constraintlayout.core.state.State$Chain valueOf(java.lang.String) -> valueOf
+    88:88:androidx.constraintlayout.core.state.State$Chain[] values() -> values
+androidx.constraintlayout.core.state.State$Constraint -> androidx.constraintlayout.core.state.State$Constraint:
+    50:66:void <clinit>() -> <clinit>
+    50:50:void <init>(java.lang.String,int) -> <init>
+    50:50:androidx.constraintlayout.core.state.State$Constraint valueOf(java.lang.String) -> valueOf
+    50:50:androidx.constraintlayout.core.state.State$Constraint[] values() -> values
+androidx.constraintlayout.core.state.State$Direction -> androidx.constraintlayout.core.state.State$Direction:
+    69:75:void <clinit>() -> <clinit>
+    69:69:void <init>(java.lang.String,int) -> <init>
+    69:69:androidx.constraintlayout.core.state.State$Direction valueOf(java.lang.String) -> valueOf
+    69:69:androidx.constraintlayout.core.state.State$Direction[] values() -> values
+androidx.constraintlayout.core.state.State$Helper -> androidx.constraintlayout.core.state.State$Helper:
+    78:85:void <clinit>() -> <clinit>
+    78:78:void <init>(java.lang.String,int) -> <init>
+    78:78:androidx.constraintlayout.core.state.State$Helper valueOf(java.lang.String) -> valueOf
+    78:78:androidx.constraintlayout.core.state.State$Helper[] values() -> values
+androidx.constraintlayout.core.state.Transition -> androidx.constraintlayout.core.state.Transition:
+    33:41:void <init>() -> <init>
+    255:258:void addCustomColor(int,java.lang.String,java.lang.String,int) -> addCustomColor
+    249:252:void addCustomFloat(int,java.lang.String,java.lang.String,float) -> addCustomFloat
+    224:225:void addKeyAttribute(java.lang.String,androidx.constraintlayout.core.motion.utils.TypedBundle) -> addKeyAttribute
+    228:229:void addKeyCycle(java.lang.String,androidx.constraintlayout.core.motion.utils.TypedBundle) -> addKeyCycle
+    220:221:void addKeyPosition(java.lang.String,androidx.constraintlayout.core.motion.utils.TypedBundle) -> addKeyPosition
+    232:246:void addKeyPosition(java.lang.String,int,int,float,float) -> addKeyPosition
+    212:213:void clear() -> clear
+    216:216:boolean contains(java.lang.String) -> contains
+    92:107:void fillKeyPositions(androidx.constraintlayout.core.state.WidgetFrame,float[],float[],float[]) -> fillKeyPositions
+    58:68:androidx.constraintlayout.core.state.Transition$KeyPosition findNextPosition(java.lang.String,int) -> findNextPosition
+    44:54:androidx.constraintlayout.core.state.Transition$KeyPosition findPreviousPosition(java.lang.String,int) -> findPreviousPosition
+    286:290:androidx.constraintlayout.core.state.WidgetFrame getEnd(java.lang.String) -> getEnd
+    347:347:androidx.constraintlayout.core.state.WidgetFrame getEnd(androidx.constraintlayout.core.widgets.ConstraintWidget) -> getEnd
+    294:298:androidx.constraintlayout.core.state.WidgetFrame getInterpolated(java.lang.String) -> getInterpolated
+    357:357:androidx.constraintlayout.core.state.WidgetFrame getInterpolated(androidx.constraintlayout.core.widgets.ConstraintWidget) -> getInterpolated
+    311:312:int getKeyFrames(java.lang.String,float[],int[],int[]) -> getKeyFrames
+    88:88:androidx.constraintlayout.core.motion.Motion getMotion(java.lang.String) -> getMotion
+    72:84:int getNumberKeyPositions(androidx.constraintlayout.core.state.WidgetFrame) -> getNumberKeyPositions
+    302:307:float[] getPath(java.lang.String) -> getPath
+    278:282:androidx.constraintlayout.core.state.WidgetFrame getStart(java.lang.String) -> getStart
+    337:337:androidx.constraintlayout.core.state.WidgetFrame getStart(androidx.constraintlayout.core.widgets.ConstraintWidget) -> getStart
+    316:327:androidx.constraintlayout.core.state.Transition$WidgetState getWidgetState(java.lang.String,androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> getWidgetState
+    110:110:boolean hasPositionKeyframes() -> hasPositionKeyframes
+    271:275:void interpolate(int,int,float) -> interpolate
+    208:208:boolean isEmpty() -> isEmpty
+    114:115:void setTransitionProperties(androidx.constraintlayout.core.motion.utils.TypedBundle) -> setTransitionProperties
+    261:268:void updateFrom(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int) -> updateFrom
+androidx.constraintlayout.core.state.Transition$KeyPosition -> androidx.constraintlayout.core.state.Transition$KeyPosition:
+    198:204:void <init>(java.lang.String,int,int,float,float) -> <init>
+androidx.constraintlayout.core.state.Transition$WidgetState -> androidx.constraintlayout.core.state.Transition$WidgetState:
+    125:139:void <init>() -> <init>
+    171:176:androidx.constraintlayout.core.state.WidgetFrame getFrame(int) -> getFrame
+    181:188:void interpolate(int,int,float,androidx.constraintlayout.core.state.Transition) -> interpolate
+    148:151:void setKeyAttribute(androidx.constraintlayout.core.motion.utils.TypedBundle) -> setKeyAttribute
+    154:157:void setKeyCycle(androidx.constraintlayout.core.motion.utils.TypedBundle) -> setKeyCycle
+    142:145:void setKeyPosition(androidx.constraintlayout.core.motion.utils.TypedBundle) -> setKeyPosition
+    160:168:void update(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> update
+androidx.constraintlayout.core.state.WidgetFrame -> androidx.constraintlayout.core.state.WidgetFrame:
+    50:50:void <clinit>() -> <clinit>
+    32:73:void <init>() -> <init>
+    32:77:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    32:86:void <init>(androidx.constraintlayout.core.state.WidgetFrame) -> <init>
+    490:494:void add(java.lang.StringBuilder,java.lang.String,int) -> add
+    497:504:void add(java.lang.StringBuilder,java.lang.String,float) -> add
+    265:266:void addCustomColor(java.lang.String,int) -> addCustomColor
+    277:278:void addCustomFloat(java.lang.String,float) -> addCustomFloat
+    235:235:float centerX() -> centerX
+    239:239:float centerY() -> centerY
+    320:320:androidx.constraintlayout.core.motion.CustomVariable getCustomAttribute(java.lang.String) -> getCustomAttribute
+    324:324:java.util.Set getCustomAttributeNames() -> getCustomAttributeNames
+    269:273:int getCustomColor(java.lang.String) -> getCustomColor
+    281:284:float getCustomFloat(java.lang.String) -> getCustomFloat
+    69:69:int height() -> height
+    123:217:void interpolate(int,int,androidx.constraintlayout.core.state.WidgetFrame,androidx.constraintlayout.core.state.WidgetFrame,androidx.constraintlayout.core.state.WidgetFrame,androidx.constraintlayout.core.state.Transition,float) -> interpolate
+    220:231:float interpolate(float,float,float,float) -> interpolate
+    111:119:boolean isDefaultTransform() -> isDefaultTransform
+    522:532:void logv(java.lang.String) -> logv
+    391:409:void parseCustom(androidx.constraintlayout.core.parser.CLElement) -> parseCustom
+    507:519:void printCustomAttributes() -> printCustomAttributes
+    413:413:java.lang.StringBuilder serialize(java.lang.StringBuilder) -> serialize
+    423:486:java.lang.StringBuilder serialize(java.lang.StringBuilder,boolean) -> serialize
+    288:293:void setCustomAttribute(java.lang.String,int,float) -> setCustomAttribute
+    296:301:void setCustomAttribute(java.lang.String,int,int) -> setCustomAttribute
+    304:309:void setCustomAttribute(java.lang.String,int,boolean) -> setCustomAttribute
+    312:317:void setCustomAttribute(java.lang.String,int,java.lang.String) -> setCustomAttribute
+    328:387:boolean setValue(java.lang.String,androidx.constraintlayout.core.parser.CLElement) -> setValue
+    243:251:androidx.constraintlayout.core.state.WidgetFrame update() -> update
+    255:261:androidx.constraintlayout.core.state.WidgetFrame update(androidx.constraintlayout.core.widgets.ConstraintWidget) -> update
+    89:108:void updateAttributes(androidx.constraintlayout.core.state.WidgetFrame) -> updateAttributes
+    65:65:int width() -> width
+androidx.constraintlayout.core.state.helpers.AlignHorizontallyReference -> androidx.constraintlayout.core.state.helpers.AlignHorizontallyReference:
+    25:29:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    32:53:void apply() -> apply
+androidx.constraintlayout.core.state.helpers.AlignVerticallyReference -> androidx.constraintlayout.core.state.helpers.AlignVerticallyReference:
+    25:29:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    32:53:void apply() -> apply
+androidx.constraintlayout.core.state.helpers.BarrierReference -> androidx.constraintlayout.core.state.helpers.BarrierReference:
+    32:33:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    59:80:void apply() -> apply
+    52:55:androidx.constraintlayout.core.widgets.HelperWidget getHelperWidget() -> getHelperWidget
+    41:42:androidx.constraintlayout.core.state.ConstraintReference margin(java.lang.Object) -> margin
+    46:47:androidx.constraintlayout.core.state.ConstraintReference margin(int) -> margin
+    36:37:void setBarrierDirection(androidx.constraintlayout.core.state.State$Direction) -> setBarrierDirection
+androidx.constraintlayout.core.state.helpers.BarrierReference$1 -> androidx.constraintlayout.core.state.helpers.BarrierReference$1:
+    61:61:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.state.helpers.ChainReference -> androidx.constraintlayout.core.state.helpers.ChainReference:
+    25:30:void <init>(androidx.constraintlayout.core.state.State,androidx.constraintlayout.core.state.State$Helper) -> <init>
+    23:23:androidx.constraintlayout.core.state.ConstraintReference bias(float) -> bias
+    38:39:androidx.constraintlayout.core.state.helpers.ChainReference bias(float) -> bias
+    37:37:float getBias() -> getBias
+    32:32:androidx.constraintlayout.core.state.State$Chain getStyle() -> getStyle
+    34:35:androidx.constraintlayout.core.state.helpers.ChainReference style(androidx.constraintlayout.core.state.State$Chain) -> style
+androidx.constraintlayout.core.state.helpers.GuidelineReference -> androidx.constraintlayout.core.state.helpers.GuidelineReference:
+    30:45:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    77:85:void apply() -> apply
+    55:58:androidx.constraintlayout.core.state.helpers.GuidelineReference end(java.lang.Object) -> end
+    94:97:androidx.constraintlayout.core.widgets.ConstraintWidget getConstraintWidget() -> getConstraintWidget
+    89:89:androidx.constraintlayout.core.state.helpers.Facade getFacade() -> getFacade
+    40:40:java.lang.Object getKey() -> getKey
+    73:73:int getOrientation() -> getOrientation
+    62:65:androidx.constraintlayout.core.state.helpers.GuidelineReference percent(float) -> percent
+    102:107:void setConstraintWidget(androidx.constraintlayout.core.widgets.ConstraintWidget) -> setConstraintWidget
+    37:38:void setKey(java.lang.Object) -> setKey
+    69:70:void setOrientation(int) -> setOrientation
+    48:51:androidx.constraintlayout.core.state.helpers.GuidelineReference start(java.lang.Object) -> start
+androidx.constraintlayout.core.state.helpers.HorizontalChainReference -> androidx.constraintlayout.core.state.helpers.HorizontalChainReference:
+    26:27:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    30:85:void apply() -> apply
+androidx.constraintlayout.core.state.helpers.HorizontalChainReference$1 -> androidx.constraintlayout.core.state.helpers.HorizontalChainReference$1:
+    74:74:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.state.helpers.VerticalChainReference -> androidx.constraintlayout.core.state.helpers.VerticalChainReference:
+    26:27:void <init>(androidx.constraintlayout.core.state.State) -> <init>
+    30:85:void apply() -> apply
+androidx.constraintlayout.core.state.helpers.VerticalChainReference$1 -> androidx.constraintlayout.core.state.helpers.VerticalChainReference$1:
+    74:74:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.Barrier -> androidx.constraintlayout.core.widgets.Barrier:
+    36:42:void <init>() -> <init>
+    36:45:void <init>(java.lang.String) -> <init>
+    139:247:void addToSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> addToSolver
+    273:329:boolean allSolved() -> allSolved
+    49:49:boolean allowedInBarrier() -> allowedInBarrier
+    70:70:boolean allowsGoneWidget() -> allowsGoneWidget
+    89:94:void copy(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashMap) -> copy
+    77:77:boolean getAllowsGoneWidget() -> getAllowsGoneWidget
+    52:52:int getBarrierType() -> getBarrierType
+    254:254:int getMargin() -> getMargin
+    258:266:int getOrientation() -> getOrientation
+    80:80:boolean isResolvedHorizontally() -> isResolvedHorizontally
+    84:84:boolean isResolvedVertically() -> isResolvedVertically
+    111:122:void markWidgets() -> markWidgets
+    58:58:void setAllowsGoneWidget(boolean) -> setAllowsGoneWidget
+    55:56:void setBarrierType(int) -> setBarrierType
+    250:251:void setMargin(int) -> setMargin
+    98:107:java.lang.String toString() -> toString
+androidx.constraintlayout.core.widgets.Chain -> androidx.constraintlayout.core.widgets.Chain:
+    31:31:void <init>() -> <init>
+    47:69:void applyChainConstraints(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.LinearSystem,java.util.ArrayList,int) -> applyChainConstraints
+    83:458:void applyChainConstraints(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.LinearSystem,int,int,androidx.constraintlayout.core.widgets.ChainHead) -> applyChainConstraints
+androidx.constraintlayout.core.widgets.ChainHead -> androidx.constraintlayout.core.widgets.ChainHead:
+    42:67:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget,int,boolean) -> <init>
+    234:238:void define() -> define
+    84:199:void defineChainProperties() -> defineChainProperties
+    202:202:androidx.constraintlayout.core.widgets.ConstraintWidget getFirst() -> getFirst
+    222:222:androidx.constraintlayout.core.widgets.ConstraintWidget getFirstMatchConstraintWidget() -> getFirstMatchConstraintWidget
+    206:206:androidx.constraintlayout.core.widgets.ConstraintWidget getFirstVisibleWidget() -> getFirstVisibleWidget
+    218:218:androidx.constraintlayout.core.widgets.ConstraintWidget getHead() -> getHead
+    210:210:androidx.constraintlayout.core.widgets.ConstraintWidget getLast() -> getLast
+    226:226:androidx.constraintlayout.core.widgets.ConstraintWidget getLastMatchConstraintWidget() -> getLastMatchConstraintWidget
+    214:214:androidx.constraintlayout.core.widgets.ConstraintWidget getLastVisibleWidget() -> getLastVisibleWidget
+    230:230:float getTotalWeight() -> getTotalWeight
+    77:77:boolean isMatchConstraintEqualityCandidate(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> isMatchConstraintEqualityCandidate
+androidx.constraintlayout.core.widgets.ConstraintAnchor -> androidx.constraintlayout.core.widgets.ConstraintAnchor:
+    36:134:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintAnchor$Type) -> <init>
+    215:231:boolean connect(androidx.constraintlayout.core.widgets.ConstraintAnchor,int,int,boolean) -> connect
+    242:242:boolean connect(androidx.constraintlayout.core.widgets.ConstraintAnchor,int) -> connect
+    104:124:void copyFrom(androidx.constraintlayout.core.widgets.ConstraintAnchor,java.util.HashMap) -> copyFrom
+    41:46:void findDependents(int,java.util.ArrayList,androidx.constraintlayout.core.widgets.analyzer.WidgetGroup) -> findDependents
+    48:48:java.util.HashSet getDependents() -> getDependents
+    75:78:int getFinalValue() -> getFinalValue
+    170:177:int getMargin() -> getMargin
+    490:510:androidx.constraintlayout.core.widgets.ConstraintAnchor getOpposite() -> getOpposite
+    157:157:androidx.constraintlayout.core.widgets.ConstraintWidget getOwner() -> getOwner
+    140:140:androidx.constraintlayout.core.SolverVariable getSolverVariable() -> getSolverVariable
+    184:184:androidx.constraintlayout.core.widgets.ConstraintAnchor getTarget() -> getTarget
+    163:163:androidx.constraintlayout.core.widgets.ConstraintAnchor$Type getType() -> getType
+    57:66:boolean hasCenteredDependents() -> hasCenteredDependents
+    50:53:boolean hasDependents() -> hasDependents
+    86:86:boolean hasFinalValue() -> hasFinalValue
+    250:250:boolean isConnected() -> isConnected
+    430:430:boolean isConnectionAllowed(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintAnchor) -> isConnectionAllowed
+    443:454:boolean isConnectionAllowed(androidx.constraintlayout.core.widgets.ConstraintWidget) -> isConnectionAllowed
+    465:482:boolean isConnectionToMe(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashSet) -> isConnectionToMe
+    312:325:boolean isSideAnchor() -> isSideAnchor
+    336:358:boolean isSimilarDimensionConnection(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> isSimilarDimensionConnection
+    259:303:boolean isValidConnection(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> isValidConnection
+    387:400:boolean isVerticalAnchor() -> isVerticalAnchor
+    190:202:void reset() -> reset
+    82:84:void resetFinalResolution() -> resetFinalResolution
+    146:151:void resetSolverVariable(androidx.constraintlayout.core.Cache) -> resetSolverVariable
+    70:72:void setFinalValue(int) -> setFinalValue
+    376:379:void setGoneMargin(int) -> setGoneMargin
+    366:369:void setMargin(int) -> setMargin
+    410:410:java.lang.String toString() -> toString
+androidx.constraintlayout.core.widgets.ConstraintAnchor$1 -> androidx.constraintlayout.core.widgets.ConstraintAnchor$1:
+    270:270:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.ConstraintAnchor$Type -> androidx.constraintlayout.core.widgets.ConstraintAnchor$Type:
+    91:91:void <clinit>() -> <clinit>
+    91:91:void <init>(java.lang.String,int) -> <init>
+    91:91:androidx.constraintlayout.core.widgets.ConstraintAnchor$Type valueOf(java.lang.String) -> valueOf
+    91:91:androidx.constraintlayout.core.widgets.ConstraintAnchor$Type[] values() -> values
+androidx.constraintlayout.core.widgets.ConstraintWidget -> androidx.constraintlayout.core.widgets.ConstraintWidget:
+    470:470:void <clinit>() -> <clinit>
+    62:723:void <init>() -> <init>
+    62:728:void <init>(java.lang.String) -> <init>
+    62:744:void <init>(int,int,int,int) -> <init>
+    747:749:void <init>(java.lang.String,int,int,int,int) -> <init>
+    758:759:void <init>(int,int) -> <init>
+    771:773:void <init>(java.lang.String,int,int) -> <init>
+    793:801:void addAnchors() -> addAnchors
+    3511:3553:void addChildrenToSolverByDependency(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.LinearSystem,java.util.HashSet,int,boolean) -> addChildrenToSolverByDependency
+    2747:2747:boolean addFirst() -> addFirst
+    2383:2740:void addToSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> addToSolver
+    1817:1817:boolean allowedInBarrier() -> allowedInBarrier
+    2843:3313:void applyConstraints(androidx.constraintlayout.core.LinearSystem,boolean,boolean,boolean,boolean,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,boolean,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,int,int,int,int,float,boolean,boolean,boolean,boolean,boolean,int,int,int,int,float,boolean) -> applyConstraints
+    1848:1851:void connect(androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,int) -> connect
+    1866:1867:void connect(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintAnchor$Type) -> connect
+    1880:2047:void connect(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,int) -> connect
+    874:877:void connectCircularConstraint(androidx.constraintlayout.core.widgets.ConstraintWidget,float,int) -> connectCircularConstraint
+    3356:3449:void copy(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashMap) -> copy
+    968:975:void createObjectVariables(androidx.constraintlayout.core.LinearSystem) -> createObjectVariables
+    213:214:void ensureMeasureRequested() -> ensureMeasureRequested
+    762:768:void ensureWidgetRuns() -> ensureWidgetRuns
+    2142:2170:androidx.constraintlayout.core.widgets.ConstraintAnchor getAnchor(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type) -> getAnchor
+    1272:1272:java.util.ArrayList getAnchors() -> getAnchors
+    1253:1253:int getBaselineDistance() -> getBaselineDistance
+    1229:1234:float getBiasPercent(int) -> getBiasPercent
+    1170:1170:int getBottom() -> getBottom
+    1263:1263:java.lang.Object getCompanionWidget() -> getCompanionWidget
+    1752:1752:int getContainerItemSkip() -> getContainerItemSkip
+    921:921:java.lang.String getDebugName() -> getDebugName
+    2198:2203:androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour getDimensionBehaviour(int) -> getDimensionBehaviour
+    1506:1506:float getDimensionRatio() -> getDimensionRatio
+    1515:1515:int getDimensionRatioSide() -> getDimensionRatioSide
+    357:357:boolean getHasBaseline() -> getHasBaseline
+    1077:1080:int getHeight() -> getHeight
+    1208:1208:float getHorizontalBiasPercent() -> getHorizontalBiasPercent
+    2282:2302:androidx.constraintlayout.core.widgets.ConstraintWidget getHorizontalChainControlWidget() -> getHorizontalChainControlWidget
+    1790:1790:int getHorizontalChainStyle() -> getHorizontalChainStyle
+    2179:2179:androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour getHorizontalDimensionBehaviour() -> getHorizontalDimensionBehaviour
+    1177:1184:int getHorizontalMargin() -> getHorizontalMargin
+    400:400:int getLastHorizontalMeasureSpec() -> getLastHorizontalMeasureSpec
+    401:401:int getLastVerticalMeasureSpec() -> getLastVerticalMeasureSpec
+    1143:1143:int getLeft() -> getLeft
+    1090:1095:int getLength(int) -> getLength
+    321:321:int getMaxHeight() -> getMaxHeight
+    325:325:int getMaxWidth() -> getMaxWidth
+    1134:1134:int getMinHeight() -> getMinHeight
+    1125:1125:int getMinWidth() -> getMinWidth
+    2264:2273:androidx.constraintlayout.core.widgets.ConstraintWidget getNextChainMember(int) -> getNextChainMember
+    1054:1068:int getOptimizerWrapHeight() -> getOptimizerWrapHeight
+    1036:1050:int getOptimizerWrapWidth() -> getOptimizerWrapWidth
+    818:818:androidx.constraintlayout.core.widgets.ConstraintWidget getParent() -> getParent
+    2245:2254:androidx.constraintlayout.core.widgets.ConstraintWidget getPreviousChainMember(int) -> getPreviousChainMember
+    1687:1692:int getRelativePositioning(int) -> getRelativePositioning
+    1161:1161:int getRight() -> getRight
+    1106:1106:int getRootX() -> getRootX
+    1116:1116:int getRootY() -> getRootY
+    84:89:androidx.constraintlayout.core.widgets.analyzer.WidgetRun getRun(int) -> getRun
+    1152:1152:int getTop() -> getTop
+    885:885:java.lang.String getType() -> getType
+    1218:1218:float getVerticalBiasPercent() -> getVerticalBiasPercent
+    2325:2345:androidx.constraintlayout.core.widgets.ConstraintWidget getVerticalChainControlWidget() -> getVerticalChainControlWidget
+    1810:1810:int getVerticalChainStyle() -> getVerticalChainStyle
+    2188:2188:androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour getVerticalDimensionBehaviour() -> getVerticalDimensionBehaviour
+    1191:1198:int getVerticalMargin() -> getVerticalMargin
+    912:912:int getVisibility() -> getVisibility
+    1029:1032:int getWidth() -> getWidth
+    391:391:int getWrapBehaviorInParent() -> getWrapBehaviorInParent
+    1005:1008:int getX() -> getX
+    1017:1020:int getY() -> getY
+    1244:1244:boolean hasBaseline() -> hasBaseline
+    227:232:boolean hasDanglingDimension(int) -> hasDanglingDimension
+    217:223:boolean hasDependencies() -> hasDependencies
+    711:711:boolean hasDimensionOverride() -> hasDimensionOverride
+    237:250:boolean hasResolvedTargets(int,int) -> hasResolvedTargets
+    1835:1838:void immediateConnect(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,int,int) -> immediateConnect
+    2355:2356:boolean isChainHead(int) -> isChainHead
+    863:863:boolean isHeightWrapContent() -> isHeightWrapContent
+    132:132:boolean isHorizontalSolvingPassDone() -> isHorizontalSolvingPassDone
+    373:373:boolean isInBarrier(int) -> isInBarrier
+    2231:2235:boolean isInHorizontalChain() -> isInHorizontalChain
+    361:361:boolean isInPlaceholder() -> isInPlaceholder
+    2312:2316:boolean isInVerticalChain() -> isInVerticalChain
+    313:313:boolean isInVirtualLayout() -> isInVirtualLayout
+    381:381:boolean isMeasureRequested() -> isMeasureRequested
+    194:194:boolean isResolvedHorizontally() -> isResolvedHorizontally
+    198:198:boolean isResolvedVertically() -> isResolvedVertically
+    809:809:boolean isRoot() -> isRoot
+    345:345:boolean isSpreadHeight() -> isSpreadHeight
+    337:337:boolean isSpreadWidth() -> isSpreadWidth
+    136:136:boolean isVerticalSolvingPassDone() -> isVerticalSolvingPassDone
+    845:845:boolean isWidthWrapContent() -> isWidthWrapContent
+    140:141:void markHorizontalSolvingPassDone() -> markHorizontalSolvingPassDone
+    144:145:void markVerticalSolvingPassDone() -> markVerticalSolvingPassDone
+    696:699:boolean oppositeDimensionDependsOn(int) -> oppositeDimensionDependsOn
+    705:705:boolean oppositeDimensionsTied() -> oppositeDimensionsTied
+    516:579:void reset() -> reset
+    2052:2055:void resetAllConstraints() -> resetAllConstraints
+    2063:2116:void resetAnchor(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> resetAnchor
+    2122:2133:void resetAnchors() -> resetAnchors
+    202:210:void resetFinalResolution() -> resetFinalResolution
+    779:787:void resetSolverVariables(androidx.constraintlayout.core.Cache) -> resetSolverVariables
+    127:129:void resetSolvingPassFlag() -> resetSolvingPassFlag
+    652:688:java.lang.StringBuilder serialize(java.lang.StringBuilder) -> serialize
+    584:596:void serializeAnchor(java.lang.StringBuilder,java.lang.String,androidx.constraintlayout.core.widgets.ConstraintAnchor) -> serializeAnchor
+    613:620:void serializeAttribute(java.lang.StringBuilder,java.lang.String,float,float) -> serializeAttribute
+    598:610:void serializeCircle(java.lang.StringBuilder,androidx.constraintlayout.core.widgets.ConstraintAnchor,float) -> serializeCircle
+    623:633:void serializeDimensionRatio(java.lang.StringBuilder,java.lang.String,float,int) -> serializeDimensionRatio
+    640:649:void serializeSize(java.lang.StringBuilder,java.lang.String,int,int,int,int,int,int,float,float) -> serializeSize
+    1716:1718:void setBaselineDistance(int) -> setBaselineDistance
+    1727:1728:void setCompanionWidget(java.lang.Object) -> setCompanionWidget
+    1739:1744:void setContainerItemSkip(int) -> setContainerItemSkip
+    928:929:void setDebugName(java.lang.String) -> setDebugName
+    948:959:void setDebugSolverName(androidx.constraintlayout.core.LinearSystem,java.lang.String) -> setDebugSolverName
+    1571:1579:void setDimension(int,int) -> setDimension
+    1431:1485:void setDimensionRatio(java.lang.String) -> setDimensionRatio
+    1496:1498:void setDimensionRatio(float,int) -> setDimensionRatio
+    181:191:void setFinalBaseline(int) -> setFinalBaseline
+    99:114:void setFinalFrame(int,int,int,int,int,int) -> setFinalFrame
+    148:160:void setFinalHorizontal(int,int) -> setFinalHorizontal
+    117:119:void setFinalLeft(int) -> setFinalLeft
+    122:124:void setFinalTop(int) -> setFinalTop
+    163:178:void setFinalVertical(int,int) -> setFinalVertical
+    1590:1635:void setFrame(int,int,int,int) -> setFrame
+    1645:1650:void setFrame(int,int,int) -> setFrame
+    1322:1349:void setGoneMargin(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type,int) -> setGoneMargin
+    353:354:void setHasBaseline(boolean) -> setHasBaseline
+    1369:1373:void setHeight(int) -> setHeight
+    854:855:void setHeightWrapContent(boolean) -> setHeightWrapContent
+    1525:1526:void setHorizontalBiasPercent(float) -> setHorizontalBiasPercent
+    1780:1781:void setHorizontalChainStyle(int) -> setHorizontalChainStyle
+    1659:1664:void setHorizontalDimension(int,int) -> setHorizontalDimension
+    2213:2214:void setHorizontalDimensionBehaviour(androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour) -> setHorizontalDimensionBehaviour
+    1398:1405:void setHorizontalMatchStyle(int,int,int,float) -> setHorizontalMatchStyle
+    1761:1762:void setHorizontalWeight(float) -> setHorizontalWeight
+    369:370:void setInBarrier(int,boolean) -> setInBarrier
+    365:366:void setInPlaceholder(boolean) -> setInPlaceholder
+    317:318:void setInVirtualLayout(boolean) -> setInVirtualLayout
+    403:406:void setLastMeasureSpec(int,int) -> setLastMeasureSpec
+    1382:1387:void setLength(int,int) -> setLength
+    333:334:void setMaxHeight(int) -> setMaxHeight
+    329:330:void setMaxWidth(int) -> setMaxWidth
+    377:378:void setMeasureRequested(boolean) -> setMeasureRequested
+    1557:1562:void setMinHeight(int) -> setMinHeight
+    1544:1549:void setMinWidth(int) -> setMinWidth
+    1311:1313:void setOffset(int,int) -> setOffset
+    1300:1302:void setOrigin(int,int) -> setOrigin
+    827:828:void setParent(androidx.constraintlayout.core.widgets.ConstraintWidget) -> setParent
+    1703:1708:void setRelativePositioning(int,int) -> setRelativePositioning
+    894:895:void setType(java.lang.String) -> setType
+    1535:1536:void setVerticalBiasPercent(float) -> setVerticalBiasPercent
+    1800:1801:void setVerticalChainStyle(int) -> setVerticalChainStyle
+    1673:1678:void setVerticalDimension(int,int) -> setVerticalDimension
+    2222:2223:void setVerticalDimensionBehaviour(androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour) -> setVerticalDimensionBehaviour
+    1416:1423:void setVerticalMatchStyle(int,int,int,float) -> setVerticalMatchStyle
+    1770:1771:void setVerticalWeight(float) -> setVerticalWeight
+    903:904:void setVisibility(int) -> setVisibility
+    1357:1361:void setWidth(int) -> setWidth
+    836:837:void setWidthWrapContent(boolean) -> setWidthWrapContent
+    385:388:void setWrapBehaviorInParent(int) -> setWrapBehaviorInParent
+    1281:1282:void setX(int) -> setX
+    1290:1291:void setY(int) -> setY
+    2760:2814:void setupDimensionRatio(boolean,boolean,boolean,boolean) -> setupDimensionRatio
+    984:984:java.lang.String toString() -> toString
+    3452:3508:void updateFromRuns(boolean,boolean) -> updateFromRuns
+    3322:3352:void updateFromSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> updateFromSolver
+androidx.constraintlayout.core.widgets.ConstraintWidget$1 -> androidx.constraintlayout.core.widgets.ConstraintWidget$1:
+    1322:2872:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour -> androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour:
+    411:412:void <clinit>() -> <clinit>
+    411:411:void <init>(java.lang.String,int) -> <init>
+    411:411:androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour valueOf(java.lang.String) -> valueOf
+    411:411:androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour[] values() -> values
+androidx.constraintlayout.core.widgets.ConstraintWidgetContainer -> androidx.constraintlayout.core.widgets.ConstraintWidgetContainer:
+    646:646:void <clinit>() -> <clinit>
+    48:518:void <init>() -> <init>
+    48:518:void <init>(int,int,int,int) -> <init>
+    48:518:void <init>(int,int) -> <init>
+    48:518:void <init>(java.lang.String,int,int) -> <init>
+    1059:1065:void addChain(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> addChain
+    335:447:boolean addChildrenToSolver(androidx.constraintlayout.core.LinearSystem) -> addChildrenToSolver
+    1074:1080:void addHorizontalChain(androidx.constraintlayout.core.widgets.ConstraintWidget) -> addHorizontalChain
+    302:306:void addHorizontalWrapMaxVariable(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> addHorizontalWrapMaxVariable
+    288:292:void addHorizontalWrapMinVariable(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> addHorizontalWrapMinVariable
+    315:318:void addMaxWrap(androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.SolverVariable) -> addMaxWrap
+    309:312:void addMinWrap(androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.SolverVariable) -> addMinWrap
+    1089:1095:void addVerticalChain(androidx.constraintlayout.core.widgets.ConstraintWidget) -> addVerticalChain
+    295:299:void addVerticalWrapMaxVariable(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> addVerticalWrapMaxVariable
+    281:285:void addVerticalWrapMinVariable(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> addVerticalWrapMinVariable
+    100:101:void defineTerminalWidgets() -> defineTerminalWidgets
+    73:73:boolean directMeasure(boolean) -> directMeasure
+    92:92:boolean directMeasureSetup(boolean) -> directMeasureSetup
+    96:96:boolean directMeasureWithOrientation(boolean,int) -> directMeasureWithOrientation
+    143:145:void fillMetrics(androidx.constraintlayout.core.Metrics) -> fillMetrics
+    1023:1033:java.util.ArrayList getHorizontalGuidelines() -> getHorizontalGuidelines
+    136:136:androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer getMeasurer() -> getMeasurer
+    225:225:int getOptimizationLevel() -> getOptimizationLevel
+    1037:1037:androidx.constraintlayout.core.LinearSystem getSystem() -> getSystem
+    245:245:java.lang.String getType() -> getType
+    1004:1014:java.util.ArrayList getVerticalGuidelines() -> getVerticalGuidelines
+    991:991:boolean handlesInternalConstraints() -> handlesInternalConstraints
+    61:62:void invalidateGraph() -> invalidateGraph
+    68:69:void invalidateMeasures() -> invalidateMeasures
+    270:270:boolean isHeightMeasuredTooSmall() -> isHeightMeasuredTooSmall
+    511:511:boolean isRtl() -> isRtl
+    263:263:boolean isWidthMeasuredTooSmall() -> isWidthMeasuredTooSmall
+    660:983:void layout() -> layout
+    118:120:long measure(int,int,int,int,int,int,int,int,int) -> measure
+    524:643:boolean measure(int,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measure,int) -> measure
+    235:235:boolean optimizeFor(int) -> optimizeFor
+    250:257:void reset() -> reset
+    1048:1050:void resetChains() -> resetChains
+    131:133:void setMeasurer(androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer) -> setMeasurer
+    215:217:void setOptimizationLevel(int) -> setOptimizationLevel
+    490:494:void setPadding(int,int,int,int) -> setPadding
+    1102:1103:void setPass(int) -> setPass
+    502:503:void setRtl(boolean) -> setRtl
+    456:468:boolean updateChildrenFromSolver(androidx.constraintlayout.core.LinearSystem,boolean[]) -> updateChildrenFromSolver
+    473:479:void updateFromRuns(boolean,boolean) -> updateFromRuns
+    125:126:void updateHierarchy() -> updateHierarchy
+androidx.constraintlayout.core.widgets.Flow -> androidx.constraintlayout.core.widgets.Flow:
+    32:80:void <init>() -> <init>
+    32:32:int access$000(androidx.constraintlayout.core.widgets.Flow) -> access$000
+    32:32:int access$100(androidx.constraintlayout.core.widgets.Flow) -> access$100
+    32:32:int access$1000(androidx.constraintlayout.core.widgets.Flow) -> access$1000
+    32:32:float access$1100(androidx.constraintlayout.core.widgets.Flow) -> access$1100
+    32:32:int access$1200(androidx.constraintlayout.core.widgets.Flow) -> access$1200
+    32:32:float access$1300(androidx.constraintlayout.core.widgets.Flow) -> access$1300
+    32:32:float access$1400(androidx.constraintlayout.core.widgets.Flow) -> access$1400
+    32:32:int access$1500(androidx.constraintlayout.core.widgets.Flow) -> access$1500
+    32:32:float access$1600(androidx.constraintlayout.core.widgets.Flow) -> access$1600
+    32:32:int access$1700(androidx.constraintlayout.core.widgets.Flow) -> access$1700
+    32:32:float access$1800(androidx.constraintlayout.core.widgets.Flow) -> access$1800
+    32:32:int access$1900(androidx.constraintlayout.core.widgets.Flow) -> access$1900
+    32:32:int access$200(androidx.constraintlayout.core.widgets.Flow,androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> access$200
+    32:32:int access$300(androidx.constraintlayout.core.widgets.Flow,androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> access$300
+    32:32:int access$400(androidx.constraintlayout.core.widgets.Flow) -> access$400
+    32:32:androidx.constraintlayout.core.widgets.ConstraintWidget[] access$500(androidx.constraintlayout.core.widgets.Flow) -> access$500
+    32:32:int access$600(androidx.constraintlayout.core.widgets.Flow) -> access$600
+    32:32:int access$700(androidx.constraintlayout.core.widgets.Flow) -> access$700
+    32:32:int access$800(androidx.constraintlayout.core.widgets.Flow) -> access$800
+    32:32:float access$900(androidx.constraintlayout.core.widgets.Flow) -> access$900
+    1220:1243:void addToSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> addToSolver
+    85:112:void copy(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashMap) -> copy
+    1121:1206:void createAlignedConstraints(boolean) -> createAlignedConstraints
+    200:219:int getWidgetHeight(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> getWidgetHeight
+    177:196:int getWidgetWidth(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> getWidgetWidth
+    227:327:void measure(int,int,int,int) -> measure
+    967:1118:void measureAligned(androidx.constraintlayout.core.widgets.ConstraintWidget[],int,int,int,int[]) -> measureAligned
+    778:916:void measureChainWrap(androidx.constraintlayout.core.widgets.ConstraintWidget[],int,int,int,int[]) -> measureChainWrap
+    931:952:void measureNoWrap(androidx.constraintlayout.core.widgets.ConstraintWidget[],int,int,int,int[]) -> measureNoWrap
+    146:146:void setFirstHorizontalBias(float) -> setFirstHorizontalBias
+    122:122:void setFirstHorizontalStyle(int) -> setFirstHorizontalStyle
+    148:148:void setFirstVerticalBias(float) -> setFirstVerticalBias
+    124:124:void setFirstVerticalStyle(int) -> setFirstVerticalStyle
+    155:156:void setHorizontalAlign(int) -> setHorizontalAlign
+    139:140:void setHorizontalBias(float) -> setHorizontalBias
+    166:166:void setHorizontalGap(int) -> setHorizontalGap
+    131:132:void setHorizontalStyle(int) -> setHorizontalStyle
+    150:150:void setLastHorizontalBias(float) -> setLastHorizontalBias
+    126:126:void setLastHorizontalStyle(int) -> setLastHorizontalStyle
+    152:152:void setLastVerticalBias(float) -> setLastVerticalBias
+    128:128:void setLastVerticalStyle(int) -> setLastVerticalStyle
+    170:170:void setMaxElementsWrap(int) -> setMaxElementsWrap
+    119:120:void setOrientation(int) -> setOrientation
+    159:160:void setVerticalAlign(int) -> setVerticalAlign
+    143:144:void setVerticalBias(float) -> setVerticalBias
+    168:168:void setVerticalGap(int) -> setVerticalGap
+    135:136:void setVerticalStyle(int) -> setVerticalStyle
+    163:164:void setWrapMode(int) -> setWrapMode
+androidx.constraintlayout.core.widgets.Flow$WidgetsList -> androidx.constraintlayout.core.widgets.Flow$WidgetsList:
+    334:366:void <init>(androidx.constraintlayout.core.widgets.Flow,int,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,int) -> <init>
+    333:333:androidx.constraintlayout.core.widgets.ConstraintWidget access$2000(androidx.constraintlayout.core.widgets.Flow$WidgetsList) -> access$2000
+    411:447:void add(androidx.constraintlayout.core.widgets.ConstraintWidget) -> add
+    385:392:void clear() -> clear
+    450:692:void createConstraints(boolean,int,boolean) -> createConstraints
+    404:407:int getHeight() -> getHeight
+    397:400:int getWidth() -> getWidth
+    695:720:void measureMatchConstraints(int) -> measureMatchConstraints
+    723:761:void recomputeDimensions() -> recomputeDimensions
+    394:394:void setStartIndex(int) -> setStartIndex
+    372:382:void setup(int,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,int,int,int,int,int) -> setup
+androidx.constraintlayout.core.widgets.Guideline -> androidx.constraintlayout.core.widgets.Guideline:
+    37:53:void <init>() -> <init>
+    215:269:void addToSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> addToSolver
+    67:67:boolean allowedInBarrier() -> allowedInBarrier
+    57:63:void copy(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashMap) -> copy
+    315:325:void cyclePosition() -> cyclePosition
+    102:102:androidx.constraintlayout.core.widgets.ConstraintAnchor getAnchor() -> getAnchor
+    125:147:androidx.constraintlayout.core.widgets.ConstraintAnchor getAnchor(androidx.constraintlayout.core.widgets.ConstraintAnchor$Type) -> getAnchor
+    116:116:int getOrientation() -> getOrientation
+    183:183:int getRelativeBegin() -> getRelativeBegin
+    71:80:int getRelativeBehaviour() -> getRelativeBehaviour
+    187:187:int getRelativeEnd() -> getRelativeEnd
+    179:179:float getRelativePercent() -> getRelativePercent
+    112:112:java.lang.String getType() -> getType
+    299:304:void inferRelativeBeginPosition() -> inferRelativeBeginPosition
+    307:312:void inferRelativeEndPosition() -> inferRelativeEndPosition
+    291:296:void inferRelativePercentPosition() -> inferRelativePercentPosition
+    328:328:boolean isPercent() -> isPercent
+    199:199:boolean isResolvedHorizontally() -> isResolvedHorizontally
+    203:203:boolean isResolvedVertically() -> isResolvedVertically
+    194:196:void setFinalValue(int) -> setFinalValue
+    163:168:void setGuideBegin(int) -> setGuideBegin
+    171:176:void setGuideEnd(int) -> setGuideEnd
+    151:152:void setGuidePercent(int) -> setGuidePercent
+    155:160:void setGuidePercent(float) -> setGuidePercent
+    120:121:void setMinimumPosition(int) -> setMinimumPosition
+    84:99:void setOrientation(int) -> setOrientation
+    273:288:void updateFromSolver(androidx.constraintlayout.core.LinearSystem,boolean) -> updateFromSolver
+androidx.constraintlayout.core.widgets.Guideline$1 -> androidx.constraintlayout.core.widgets.Guideline$1:
+    125:125:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.HelperWidget -> androidx.constraintlayout.core.widgets.HelperWidget:
+    13:15:void <init>() -> <init>
+    28:36:void add(androidx.constraintlayout.core.widgets.ConstraintWidget) -> add
+    58:66:void addDependents(java.util.ArrayList,int,androidx.constraintlayout.core.widgets.analyzer.WidgetGroup) -> addDependents
+    40:47:void copy(androidx.constraintlayout.core.widgets.ConstraintWidget,java.util.HashMap) -> copy
+    69:78:int findGroupInDependents(int) -> findGroupInDependents
+    53:55:void removeAllIds() -> removeAllIds
+    20:20:void updateConstraints(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> updateConstraints
+androidx.constraintlayout.core.widgets.Optimizer -> androidx.constraintlayout.core.widgets.Optimizer:
+    52:52:void <clinit>() -> <clinit>
+    27:27:void <init>() -> <init>
+    65:97:void checkMatchParent(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.widgets.ConstraintWidget) -> checkMatchParent
+    100:100:boolean enabled(int,int) -> enabled
+androidx.constraintlayout.core.widgets.Rectangle -> androidx.constraintlayout.core.widgets.Rectangle:
+    21:21:void <init>() -> <init>
+    46:46:boolean contains(int,int) -> contains
+    50:50:int getCenterX() -> getCenterX
+    51:51:int getCenterY() -> getCenterY
+    34:38:void grow(int,int) -> grow
+    41:41:boolean intersects(androidx.constraintlayout.core.widgets.Rectangle) -> intersects
+    28:32:void setBounds(int,int,int,int) -> setBounds
+androidx.constraintlayout.core.widgets.VirtualLayout -> androidx.constraintlayout.core.widgets.VirtualLayout:
+    28:204:void <init>() -> <init>
+    74:83:void applyRtl(boolean) -> applyRtl
+    132:138:void captureWidgets() -> captureWidgets
+    225:231:boolean contains(java.util.HashSet) -> contains
+    145:145:int getMeasuredHeight() -> getMeasuredHeight
+    141:141:int getMeasuredWidth() -> getMeasuredWidth
+    100:100:int getPaddingBottom() -> getPaddingBottom
+    102:102:int getPaddingLeft() -> getPaddingLeft
+    104:104:int getPaddingRight() -> getPaddingRight
+    98:98:int getPaddingTop() -> getPaddingTop
+    124:124:void measure(int,int,int,int) -> measure
+    209:222:void measure(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,int,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,int) -> measure
+    154:201:boolean measureChildren() -> measureChildren
+    115:115:boolean needSolverPass() -> needSolverPass
+    111:112:void needsCallbackFromSolver(boolean) -> needsCallbackFromSolver
+    149:151:void setMeasure(int,int) -> setMeasure
+    50:56:void setPadding(int) -> setPadding
+    95:96:void setPaddingBottom(int) -> setPaddingBottom
+    65:66:void setPaddingEnd(int) -> setPaddingEnd
+    69:71:void setPaddingLeft(int) -> setPaddingLeft
+    90:92:void setPaddingRight(int) -> setPaddingRight
+    59:62:void setPaddingStart(int) -> setPaddingStart
+    86:87:void setPaddingTop(int) -> setPaddingTop
+    128:129:void updateConstraints(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> updateConstraints
+androidx.constraintlayout.core.widgets.WidgetContainer -> androidx.constraintlayout.core.widgets.WidgetContainer:
+    26:36:void <init>() -> <init>
+    26:48:void <init>(int,int,int,int) -> <init>
+    26:58:void <init>(int,int) -> <init>
+    72:78:void add(androidx.constraintlayout.core.widgets.ConstraintWidget) -> add
+    86:90:void add(androidx.constraintlayout.core.widgets.ConstraintWidget[]) -> add
+    108:108:java.util.ArrayList getChildren() -> getChildren
+    117:130:androidx.constraintlayout.core.widgets.ConstraintWidgetContainer getRootConstraintContainer() -> getRootConstraintContainer
+    158:168:void layout() -> layout
+    98:100:void remove(androidx.constraintlayout.core.widgets.ConstraintWidget) -> remove
+    181:182:void removeAllChildren() -> removeAllChildren
+    62:64:void reset() -> reset
+    172:178:void resetSolverVariables(androidx.constraintlayout.core.Cache) -> resetSolverVariables
+    146:152:void setOffset(int,int) -> setOffset
+androidx.constraintlayout.core.widgets.analyzer.BaselineDimensionDependency -> androidx.constraintlayout.core.widgets.analyzer.BaselineDimensionDependency:
+    22:23:void <init>(androidx.constraintlayout.core.widgets.analyzer.WidgetRun) -> <init>
+    26:29:void update(androidx.constraintlayout.core.widgets.analyzer.DependencyNode) -> update
+androidx.constraintlayout.core.widgets.analyzer.BasicMeasure -> androidx.constraintlayout.core.widgets.analyzer.BasicMeasure:
+    52:72:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> <init>
+    443:472:boolean measure(androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> measure
+    75:140:void measureChildren(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> measureChildren
+    148:165:void solveLinearSystem(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,java.lang.String,int,int,int) -> solveLinearSystem
+    186:431:long solverMeasure(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int,int,int,int,int,int,int) -> solverMeasure
+    56:66:void updateHierarchy(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> updateHierarchy
+androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measure -> androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measure:
+    481:483:void <clinit>() -> <clinit>
+    480:480:void <init>() -> <init>
+androidx.constraintlayout.core.widgets.analyzer.ChainRun -> androidx.constraintlayout.core.widgets.analyzer.ChainRun:
+    32:39:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget,int) -> <init>
+    513:570:void apply() -> apply
+    484:488:void applyToWidget() -> applyToWidget
+    78:104:void build() -> build
+    109:113:void clear() -> clear
+    491:497:androidx.constraintlayout.core.widgets.ConstraintWidget getFirstVisibleWidget() -> getFirstVisibleWidget
+    501:507:androidx.constraintlayout.core.widgets.ConstraintWidget getLastVisibleWidget() -> getLastVisibleWidget
+    66:74:long getWrapDimension() -> getWrapDimension
+    117:119:void reset() -> reset
+    55:62:boolean supportsWrapComputation() -> supportsWrapComputation
+    43:50:java.lang.String toString() -> toString
+    123:481:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.DependencyGraph -> androidx.constraintlayout.core.widgets.analyzer.DependencyGraph:
+    44:626:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> <init>
+    710:756:void applyGroup(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,int,int,androidx.constraintlayout.core.widgets.analyzer.DependencyNode,java.util.ArrayList,androidx.constraintlayout.core.widgets.analyzer.RunGroup) -> applyGroup
+    388:561:boolean basicMeasureWidgets(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> basicMeasureWidgets
+    630:640:void buildGraph() -> buildGraph
+    643:696:void buildGraph(java.util.ArrayList) -> buildGraph
+    65:72:int computeWrap(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int) -> computeWrap
+    82:101:void defineTerminalWidgets(androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour) -> defineTerminalWidgets
+    110:229:boolean directMeasure(boolean) -> directMeasure
+    233:264:boolean directMeasureSetup(boolean) -> directMeasureSetup
+    268:361:boolean directMeasureWithOrientation(boolean,int) -> directMeasureWithOrientation
+    701:707:void displayGraph() -> displayGraph
+    759:785:void findGroup(androidx.constraintlayout.core.widgets.analyzer.WidgetRun,int,java.util.ArrayList) -> findGroup
+    893:915:java.lang.String generateChainDisplayGraph(androidx.constraintlayout.core.widgets.analyzer.ChainRun,java.lang.String) -> generateChainDisplayGraph
+    935:1010:java.lang.String generateDisplayGraph(androidx.constraintlayout.core.widgets.analyzer.WidgetRun,java.lang.String) -> generateDisplayGraph
+    789:816:java.lang.String generateDisplayNode(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,boolean,java.lang.String) -> generateDisplayNode
+    616:617:void invalidateGraph() -> invalidateGraph
+    623:624:void invalidateMeasures() -> invalidateMeasures
+    919:931:boolean isCenteredConnection(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,androidx.constraintlayout.core.widgets.analyzer.DependencyNode) -> isCenteredConnection
+    376:385:void measure(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,int,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,int) -> measure
+    565:610:void measureWidgets() -> measureWidgets
+    820:889:java.lang.String nodeDefinition(androidx.constraintlayout.core.widgets.analyzer.WidgetRun) -> nodeDefinition
+    61:62:void setMeasurer(androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer) -> setMeasurer
+androidx.constraintlayout.core.widgets.analyzer.DependencyNode -> androidx.constraintlayout.core.widgets.analyzer.DependencyNode:
+    23:41:void <init>(androidx.constraintlayout.core.widgets.analyzer.WidgetRun) -> <init>
+    100:104:void addDependency(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> addDependency
+    119:125:void clear() -> clear
+    107:115:java.lang.String name() -> name
+    50:59:void resolve(int) -> resolve
+    45:46:java.lang.String toString() -> toString
+    62:97:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.DependencyNode$Type -> androidx.constraintlayout.core.widgets.analyzer.DependencyNode$Type:
+    27:27:void <clinit>() -> <clinit>
+    27:27:void <init>(java.lang.String,int) -> <init>
+    27:27:androidx.constraintlayout.core.widgets.analyzer.DependencyNode$Type valueOf(java.lang.String) -> valueOf
+    27:27:androidx.constraintlayout.core.widgets.analyzer.DependencyNode$Type[] values() -> values
+androidx.constraintlayout.core.widgets.analyzer.DimensionDependency -> androidx.constraintlayout.core.widgets.analyzer.DimensionDependency:
+    24:30:void <init>(androidx.constraintlayout.core.widgets.analyzer.WidgetRun) -> <init>
+    33:41:void resolve(int) -> resolve
+androidx.constraintlayout.core.widgets.analyzer.Direct -> androidx.constraintlayout.core.widgets.analyzer.Direct:
+    46:50:void <clinit>() -> <clinit>
+    42:42:void <init>() -> <init>
+    763:799:boolean canMeasure(int,androidx.constraintlayout.core.widgets.ConstraintWidget) -> canMeasure
+    310:429:void horizontalSolvingPass(int,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,boolean) -> horizontalSolvingPass
+    293:298:java.lang.String ls(int) -> ls
+    278:285:void solveBarrier(int,androidx.constraintlayout.core.widgets.Barrier,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,int,boolean) -> solveBarrier
+    822:1021:boolean solveChain(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.LinearSystem,int,int,androidx.constraintlayout.core.widgets.ChainHead,boolean,boolean,boolean) -> solveChain
+    599:628:void solveHorizontalCenterConstraints(int,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.ConstraintWidget,boolean) -> solveHorizontalCenterConstraints
+    682:711:void solveHorizontalMatchConstraint(int,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.ConstraintWidget,boolean) -> solveHorizontalMatchConstraint
+    640:669:void solveVerticalCenterConstraints(int,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.ConstraintWidget) -> solveVerticalCenterConstraints
+    723:752:void solveVerticalMatchConstraint(int,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer,androidx.constraintlayout.core.widgets.ConstraintWidget) -> solveVerticalMatchConstraint
+    59:268:void solvingPass(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer) -> solvingPass
+    440:586:void verticalSolvingPass(int,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer) -> verticalSolvingPass
+androidx.constraintlayout.core.widgets.analyzer.Grouping -> androidx.constraintlayout.core.widgets.analyzer.Grouping:
+    40:40:void <init>() -> <init>
+    367:444:androidx.constraintlayout.core.widgets.analyzer.WidgetGroup findDependents(androidx.constraintlayout.core.widgets.ConstraintWidget,int,java.util.ArrayList,androidx.constraintlayout.core.widgets.analyzer.WidgetGroup) -> findDependents
+    356:363:androidx.constraintlayout.core.widgets.analyzer.WidgetGroup findGroup(java.util.ArrayList,int) -> findGroup
+    63:352:boolean simpleSolvingPass(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measurer) -> simpleSolvingPass
+    48:55:boolean validInGroup(androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour,androidx.constraintlayout.core.widgets.ConstraintWidget$DimensionBehaviour) -> validInGroup
+androidx.constraintlayout.core.widgets.analyzer.GuidelineReference -> androidx.constraintlayout.core.widgets.analyzer.GuidelineReference:
+    25:29:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    48:50:void addDependency(androidx.constraintlayout.core.widgets.analyzer.DependencyNode) -> addDependency
+    69:108:void apply() -> apply
+    112:118:void applyToWidget() -> applyToWidget
+    33:34:void clear() -> clear
+    38:40:void reset() -> reset
+    44:44:boolean supportsWrapComputation() -> supportsWrapComputation
+    54:65:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.HelperReferences -> androidx.constraintlayout.core.widgets.analyzer.HelperReferences:
+    24:25:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    44:46:void addDependency(androidx.constraintlayout.core.widgets.analyzer.DependencyNode) -> addDependency
+    50:118:void apply() -> apply
+    144:154:void applyToWidget() -> applyToWidget
+    29:31:void clear() -> clear
+    35:36:void reset() -> reset
+    40:40:boolean supportsWrapComputation() -> supportsWrapComputation
+    122:141:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.HorizontalWidgetRun -> androidx.constraintlayout.core.widgets.analyzer.HorizontalWidgetRun:
+    37:37:void <clinit>() -> <clinit>
+    40:44:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    83:274:void apply() -> apply
+    561:564:void applyToWidget() -> applyToWidget
+    53:58:void clear() -> clear
+    277:308:void computeInsetRatio(int[],int,int,int,int,float,int) -> computeInsetRatio
+    62:68:void reset() -> reset
+    72:78:boolean supportsWrapComputation() -> supportsWrapComputation
+    48:48:java.lang.String toString() -> toString
+    312:558:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.HorizontalWidgetRun$1 -> androidx.constraintlayout.core.widgets.analyzer.HorizontalWidgetRun$1:
+    312:312:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.analyzer.RunGroup -> androidx.constraintlayout.core.widgets.analyzer.RunGroup:
+    33:49:void <init>(androidx.constraintlayout.core.widgets.analyzer.WidgetRun,int) -> <init>
+    52:54:void add(androidx.constraintlayout.core.widgets.analyzer.WidgetRun) -> add
+    121:182:long computeWrapSize(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int) -> computeWrapSize
+    186:231:boolean defineTerminalWidget(androidx.constraintlayout.core.widgets.analyzer.WidgetRun,int) -> defineTerminalWidget
+    236:242:void defineTerminalWidgets(boolean,boolean) -> defineTerminalWidgets
+    89:117:long traverseEnd(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,long) -> traverseEnd
+    57:85:long traverseStart(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,long) -> traverseStart
+androidx.constraintlayout.core.widgets.analyzer.VerticalWidgetRun -> androidx.constraintlayout.core.widgets.analyzer.VerticalWidgetRun:
+    34:43:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    203:429:void apply() -> apply
+    432:435:void applyToWidget() -> applyToWidget
+    52:58:void clear() -> clear
+    62:70:void reset() -> reset
+    74:80:boolean supportsWrapComputation() -> supportsWrapComputation
+    47:47:java.lang.String toString() -> toString
+    85:199:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+androidx.constraintlayout.core.widgets.analyzer.VerticalWidgetRun$1 -> androidx.constraintlayout.core.widgets.analyzer.VerticalWidgetRun$1:
+    85:85:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.analyzer.WidgetGroup -> androidx.constraintlayout.core.widgets.analyzer.WidgetGroup:
+    36:36:void <clinit>() -> <clinit>
+    35:46:void <init>(int) -> <init>
+    52:56:boolean add(androidx.constraintlayout.core.widgets.ConstraintWidget) -> add
+    179:189:void apply() -> apply
+    210:223:void cleanup(java.util.ArrayList) -> cleanup
+    99:100:void clear() -> clear
+    202:202:boolean contains(androidx.constraintlayout.core.widgets.ConstraintWidget) -> contains
+    49:49:int getId() -> getId
+    48:48:int getOrientation() -> getOrientation
+    63:70:java.lang.String getOrientationString() -> getOrientationString
+    192:198:boolean intersectWith(androidx.constraintlayout.core.widgets.analyzer.WidgetGroup) -> intersectWith
+    60:60:boolean isAuthoritative() -> isAuthoritative
+    103:115:int measureWrap(int,androidx.constraintlayout.core.widgets.ConstraintWidget) -> measureWrap
+    119:124:int measureWrap(androidx.constraintlayout.core.LinearSystem,int) -> measureWrap
+    87:96:void moveTo(int,androidx.constraintlayout.core.widgets.analyzer.WidgetGroup) -> moveTo
+    59:59:void setAuthoritative(boolean) -> setAuthoritative
+    175:176:void setOrientation(int) -> setOrientation
+    206:206:int size() -> size
+    128:170:int solverMeasure(androidx.constraintlayout.core.LinearSystem,java.util.ArrayList,int) -> solverMeasure
+    75:80:java.lang.String toString() -> toString
+androidx.constraintlayout.core.widgets.analyzer.WidgetGroup$MeasureResult -> androidx.constraintlayout.core.widgets.analyzer.WidgetGroup$MeasureResult:
+    235:243:void <init>(androidx.constraintlayout.core.widgets.analyzer.WidgetGroup,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.LinearSystem,int) -> <init>
+    246:250:void apply() -> apply
+androidx.constraintlayout.core.widgets.analyzer.WidgetRun -> androidx.constraintlayout.core.widgets.analyzer.WidgetRun:
+    34:45:void <init>(androidx.constraintlayout.core.widgets.ConstraintWidget) -> <init>
+    283:286:void addTarget(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,androidx.constraintlayout.core.widgets.analyzer.DependencyNode,int) -> addTarget
+    289:295:void addTarget(androidx.constraintlayout.core.widgets.analyzer.DependencyNode,androidx.constraintlayout.core.widgets.analyzer.DependencyNode,int,androidx.constraintlayout.core.widgets.analyzer.DimensionDependency) -> addTarget
+    235:256:int getLimitedDimension(int,int) -> getLimitedDimension
+    95:124:androidx.constraintlayout.core.widgets.analyzer.DependencyNode getTarget(androidx.constraintlayout.core.widgets.ConstraintAnchor) -> getTarget
+    260:279:androidx.constraintlayout.core.widgets.analyzer.DependencyNode getTarget(androidx.constraintlayout.core.widgets.ConstraintAnchor,int) -> getTarget
+    298:301:long getWrapDimension() -> getWrapDimension
+    59:74:boolean isCenterConnection() -> isCenterConnection
+    55:55:boolean isDimensionResolved() -> isDimensionResolved
+    304:304:boolean isResolved() -> isResolved
+    172:222:void resolveDimension(int,int) -> resolveDimension
+    232:232:void update(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> update
+    128:169:void updateRunCenter(androidx.constraintlayout.core.widgets.analyzer.Dependency,androidx.constraintlayout.core.widgets.ConstraintAnchor,androidx.constraintlayout.core.widgets.ConstraintAnchor,int) -> updateRunCenter
+    230:230:void updateRunEnd(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> updateRunEnd
+    226:226:void updateRunStart(androidx.constraintlayout.core.widgets.analyzer.Dependency) -> updateRunStart
+    78:91:long wrapSize(int) -> wrapSize
+androidx.constraintlayout.core.widgets.analyzer.WidgetRun$1 -> androidx.constraintlayout.core.widgets.analyzer.WidgetRun$1:
+    101:101:void <clinit>() -> <clinit>
+androidx.constraintlayout.core.widgets.analyzer.WidgetRun$RunType -> androidx.constraintlayout.core.widgets.analyzer.WidgetRun$RunType:
+    306:306:void <clinit>() -> <clinit>
+    306:306:void <init>(java.lang.String,int) -> <init>
+    306:306:androidx.constraintlayout.core.widgets.analyzer.WidgetRun$RunType valueOf(java.lang.String) -> valueOf
+    306:306:androidx.constraintlayout.core.widgets.analyzer.WidgetRun$RunType[] values() -> values
+androidx.constraintlayout.helper.widget.Carousel -> androidx.constraintlayout.helper.widget.Carousel:
+    void $r8$lambda$NfsCQvYOy-dIR2JH7qqFadhs0gY(androidx.constraintlayout.helper.widget.Carousel) -> $r8$lambda$NfsCQvYOy-dIR2JH7qqFadhs0gY
+      # {"id":"com.android.tools.r8.synthesized"}
+    42:266:void <init>(android.content.Context) -> <init>
+    42:266:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:266:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    39:39:androidx.constraintlayout.motion.widget.MotionLayout access$000(androidx.constraintlayout.helper.widget.Carousel) -> access$000
+    39:39:void access$100(androidx.constraintlayout.helper.widget.Carousel) -> access$100
+    39:39:int access$200(androidx.constraintlayout.helper.widget.Carousel) -> access$200
+    39:39:androidx.constraintlayout.helper.widget.Carousel$Adapter access$300(androidx.constraintlayout.helper.widget.Carousel) -> access$300
+    39:39:int access$400(androidx.constraintlayout.helper.widget.Carousel) -> access$400
+    39:39:float access$500(androidx.constraintlayout.helper.widget.Carousel) -> access$500
+    39:39:float access$600(androidx.constraintlayout.helper.widget.Carousel) -> access$600
+    39:39:int access$700(androidx.constraintlayout.helper.widget.Carousel) -> access$700
+    242:246:void enableAllTransitions(boolean) -> enableAllTransitions
+    249:263:boolean enableTransition(int,boolean) -> enableTransition
+    146:149:int getCount() -> getCount
+    158:158:int getCurrentIndex() -> getCurrentIndex
+    105:134:void init(android.content.Context,android.util.AttributeSet) -> init
+    184:186:void jumpToIndex(int) -> jumpToIndex
+    423:429:void lambda$updateItems$0() -> lambda$updateItems$0
+    296:324:void onAttachedToWindow() -> onAttachedToWindow
+    207:208:void onTransitionChange(androidx.constraintlayout.motion.widget.MotionLayout,int,int,float) -> onTransitionChange
+    214:239:void onTransitionCompleted(androidx.constraintlayout.motion.widget.MotionLayout,int) -> onTransitionCompleted
+    189:200:void refresh() -> refresh
+    137:138:void setAdapter(androidx.constraintlayout.helper.widget.Carousel$Adapter) -> setAdapter
+    168:176:void transitionToIndex(int,int) -> transitionToIndex
+    364:456:void updateItems() -> updateItems
+    334:342:boolean updateViewVisibility(android.view.View,int) -> updateViewVisibility
+    346:360:boolean updateViewVisibility(int,android.view.View,int) -> updateViewVisibility
+androidx.constraintlayout.helper.widget.Carousel$$ExternalSyntheticLambda0 -> androidx.constraintlayout.helper.widget.Carousel$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    androidx.constraintlayout.helper.widget.Carousel androidx.constraintlayout.helper.widget.Carousel$$InternalSyntheticLambda$0$01d9f2ff7def5a376300402697d9567c98742ac37fcfded995bdf2b5506d0ab1$0.f$0 -> f$0
+    void androidx.constraintlayout.helper.widget.Carousel$$InternalSyntheticLambda$0$01d9f2ff7def5a376300402697d9567c98742ac37fcfded995bdf2b5506d0ab1$0.<init>(androidx.constraintlayout.helper.widget.Carousel) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void androidx.constraintlayout.helper.widget.Carousel$$InternalSyntheticLambda$0$01d9f2ff7def5a376300402697d9567c98742ac37fcfded995bdf2b5506d0ab1$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+androidx.constraintlayout.helper.widget.Carousel$1 -> androidx.constraintlayout.helper.widget.Carousel$1:
+    266:266:void <init>(androidx.constraintlayout.helper.widget.Carousel) -> <init>
+    269:290:void run() -> run
+androidx.constraintlayout.helper.widget.Carousel$1$1 -> androidx.constraintlayout.helper.widget.Carousel$1$1:
+    283:283:void <init>(androidx.constraintlayout.helper.widget.Carousel$1,float) -> <init>
+    286:287:void run() -> run
+androidx.constraintlayout.helper.widget.CircularFlow -> androidx.constraintlayout.helper.widget.CircularFlow:
+    67:68:void <clinit>() -> <clinit>
+    111:112:void <init>(android.content.Context) -> <init>
+    115:116:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    119:120:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    428:443:void addAngle(java.lang.String) -> addAngle
+    449:465:void addRadius(java.lang.String) -> addRadius
+    235:246:void addViewToCircularFlow(android.view.View,int,float) -> addViewToCircularFlow
+    182:223:void anchorReferences() -> anchorReferences
+    128:128:float[] getAngles() -> getAngles
+    123:123:int[] getRadius() -> getRadius
+    134:159:void init(android.util.AttributeSet) -> init
+    492:496:boolean isUpdatable(android.view.View) -> isUpdatable
+    163:179:void onAttachedToWindow() -> onAttachedToWindow
+    362:368:float[] removeAngle(float[],int) -> removeAngle
+    468:476:int[] removeElementFromArray(int[],int) -> removeElementFromArray
+    480:488:float[] removeElementFromArray(float[],int) -> removeElementFromArray
+    375:381:int[] removeRadius(int[],int) -> removeRadius
+    337:355:int removeView(android.view.View) -> removeView
+    388:402:void setAngles(java.lang.String) -> setAngles
+    322:323:void setDefaultAngle(float) -> setDefaultAngle
+    332:333:void setDefaultRadius(int) -> setDefaultRadius
+    408:422:void setRadius(java.lang.String) -> setRadius
+    277:288:void updateAngle(android.view.View,float) -> updateAngle
+    256:267:void updateRadius(android.view.View,int) -> updateRadius
+    299:313:void updateReference(android.view.View,int,float) -> updateReference
+androidx.constraintlayout.helper.widget.Flow -> androidx.constraintlayout.helper.widget.Flow:
+    123:124:void <init>(android.content.Context) -> <init>
+    127:128:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    131:132:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    198:268:void init(android.util.AttributeSet) -> init
+    182:189:void loadParameters(androidx.constraintlayout.widget.ConstraintSet$Constraint,androidx.constraintlayout.core.widgets.HelperWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> loadParameters
+    148:149:void onMeasure(int,int) -> onMeasure
+    160:170:void onMeasure(androidx.constraintlayout.core.widgets.VirtualLayout,int,int) -> onMeasure
+    142:143:void resolveRtl(androidx.constraintlayout.core.widgets.ConstraintWidget,boolean) -> resolveRtl
+    418:420:void setFirstHorizontalBias(float) -> setFirstHorizontalBias
+    398:400:void setFirstHorizontalStyle(int) -> setFirstHorizontalStyle
+    428:430:void setFirstVerticalBias(float) -> setFirstVerticalBias
+    408:410:void setFirstVerticalStyle(int) -> setFirstVerticalStyle
+    443:445:void setHorizontalAlign(int) -> setHorizontalAlign
+    378:380:void setHorizontalBias(float) -> setHorizontalBias
+    469:471:void setHorizontalGap(int) -> setHorizontalGap
+    354:356:void setHorizontalStyle(int) -> setHorizontalStyle
+    489:491:void setMaxElementsWrap(int) -> setMaxElementsWrap
+    276:278:void setOrientation(int) -> setOrientation
+    286:288:void setPadding(int) -> setPadding
+    326:328:void setPaddingBottom(int) -> setPaddingBottom
+    296:298:void setPaddingLeft(int) -> setPaddingLeft
+    316:318:void setPaddingRight(int) -> setPaddingRight
+    306:308:void setPaddingTop(int) -> setPaddingTop
+    459:461:void setVerticalAlign(int) -> setVerticalAlign
+    388:390:void setVerticalBias(float) -> setVerticalBias
+    479:481:void setVerticalGap(int) -> setVerticalGap
+    368:370:void setVerticalStyle(int) -> setVerticalStyle
+    340:342:void setWrapMode(int) -> setWrapMode
+androidx.constraintlayout.helper.widget.Layer -> androidx.constraintlayout.helper.widget.Layer:
+    21:44:void <init>(android.content.Context) -> <init>
+    21:48:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    21:52:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    344:345:void applyLayoutFeaturesInConstraintSet(androidx.constraintlayout.widget.ConstraintLayout) -> applyLayoutFeaturesInConstraintSet
+    254:300:void calcCenters() -> calcCenters
+    59:74:void init(android.util.AttributeSet) -> init
+    78:102:void onAttachedToWindow() -> onAttachedToWindow
+    237:251:void reCacheViews() -> reCacheViews
+    209:211:void setElevation(float) -> setElevation
+    160:162:void setPivotX(float) -> setPivotX
+    171:173:void setPivotY(float) -> setPivotY
+    128:130:void setRotation(float) -> setRotation
+    138:140:void setScaleX(float) -> setScaleX
+    149:151:void setScaleY(float) -> setScaleY
+    181:184:void setTranslationX(float) -> setTranslationX
+    191:193:void setTranslationY(float) -> setTranslationY
+    200:202:void setVisibility(int) -> setVisibility
+    303:336:void transform() -> transform
+    219:234:void updatePostLayout(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostLayout
+    110:119:void updatePreDraw(androidx.constraintlayout.widget.ConstraintLayout) -> updatePreDraw
+androidx.constraintlayout.helper.widget.MotionEffect -> androidx.constraintlayout.helper.widget.MotionEffect:
+    60:73:void <init>(android.content.Context) -> <init>
+    60:78:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    60:83:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    86:120:void init(android.content.Context,android.util.AttributeSet) -> init
+    124:124:boolean isDecorator() -> isDecorator
+    129:254:void onPreSetup(androidx.constraintlayout.motion.widget.MotionLayout,java.util.HashMap) -> onPreSetup
+androidx.constraintlayout.motion.utils.StopLogic -> androidx.constraintlayout.motion.utils.StopLogic:
+    32:35:void <init>() -> <init>
+    54:56:void config(float,float,float,float,float,float) -> config
+    46:46:java.lang.String debug(java.lang.String,float) -> debug
+    87:87:float getInterpolation(float) -> getInterpolation
+    50:50:float getVelocity(float) -> getVelocity
+    92:92:float getVelocity() -> getVelocity
+    96:96:boolean isStopped() -> isStopped
+    78:83:void springConfig(float,float,float,float,float,float,float,int) -> springConfig
+androidx.constraintlayout.motion.utils.ViewOscillator -> androidx.constraintlayout.motion.utils.ViewOscillator:
+    36:36:void <init>() -> <init>
+    42:75:androidx.constraintlayout.motion.utils.ViewOscillator makeSpline(java.lang.String) -> makeSpline
+androidx.constraintlayout.motion.utils.ViewOscillator$AlphaSet -> androidx.constraintlayout.motion.utils.ViewOscillator$AlphaSet:
+    88:88:void <init>() -> <init>
+    91:92:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$CustomSet -> androidx.constraintlayout.motion.utils.ViewOscillator$CustomSet:
+    163:164:void <init>() -> <init>
+    168:169:void setCustom(java.lang.Object) -> setCustom
+    173:175:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$ElevationSet -> androidx.constraintlayout.motion.utils.ViewOscillator$ElevationSet:
+    79:79:void <init>() -> <init>
+    82:85:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$PathRotateSet -> androidx.constraintlayout.motion.utils.ViewOscillator$PathRotateSet:
+    116:116:void <init>() -> <init>
+    122:123:void setPathRotate(android.view.View,float,double,double) -> setPathRotate
+    119:119:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$ProgressSet -> androidx.constraintlayout.motion.utils.ViewOscillator$ProgressSet:
+    178:179:void <init>() -> <init>
+    183:205:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$RotationSet -> androidx.constraintlayout.motion.utils.ViewOscillator$RotationSet:
+    95:95:void <init>() -> <init>
+    98:99:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$RotationXset -> androidx.constraintlayout.motion.utils.ViewOscillator$RotationXset:
+    102:102:void <init>() -> <init>
+    105:106:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$RotationYset -> androidx.constraintlayout.motion.utils.ViewOscillator$RotationYset:
+    109:109:void <init>() -> <init>
+    112:113:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$ScaleXset -> androidx.constraintlayout.motion.utils.ViewOscillator$ScaleXset:
+    126:126:void <init>() -> <init>
+    129:130:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$ScaleYset -> androidx.constraintlayout.motion.utils.ViewOscillator$ScaleYset:
+    133:133:void <init>() -> <init>
+    136:137:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$TranslationXset -> androidx.constraintlayout.motion.utils.ViewOscillator$TranslationXset:
+    140:140:void <init>() -> <init>
+    143:144:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$TranslationYset -> androidx.constraintlayout.motion.utils.ViewOscillator$TranslationYset:
+    147:147:void <init>() -> <init>
+    150:151:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewOscillator$TranslationZset -> androidx.constraintlayout.motion.utils.ViewOscillator$TranslationZset:
+    154:154:void <init>() -> <init>
+    157:160:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline -> androidx.constraintlayout.motion.utils.ViewSpline:
+    32:32:void <init>() -> <init>
+    38:38:androidx.constraintlayout.motion.utils.ViewSpline makeCustomSpline(java.lang.String,android.util.SparseArray) -> makeCustomSpline
+    42:77:androidx.constraintlayout.motion.utils.ViewSpline makeSpline(java.lang.String) -> makeSpline
+androidx.constraintlayout.motion.utils.ViewSpline$AlphaSet -> androidx.constraintlayout.motion.utils.ViewSpline$AlphaSet:
+    91:91:void <init>() -> <init>
+    94:95:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$CustomSet -> androidx.constraintlayout.motion.utils.ViewSpline$CustomSet:
+    185:188:void <init>(java.lang.String,android.util.SparseArray) -> <init>
+    212:212:void setPoint(int,float) -> setPoint
+    216:217:void setPoint(int,androidx.constraintlayout.widget.ConstraintAttribute) -> setPoint
+    221:223:void setProperty(android.view.View,float) -> setProperty
+    191:209:void setup(int) -> setup
+androidx.constraintlayout.motion.utils.ViewSpline$ElevationSet -> androidx.constraintlayout.motion.utils.ViewSpline$ElevationSet:
+    82:82:void <init>() -> <init>
+    85:88:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$PathRotate -> androidx.constraintlayout.motion.utils.ViewSpline$PathRotate:
+    133:133:void <init>() -> <init>
+    139:140:void setPathRotate(android.view.View,float,double,double) -> setPathRotate
+    136:136:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$PivotXset -> androidx.constraintlayout.motion.utils.ViewSpline$PivotXset:
+    119:119:void <init>() -> <init>
+    122:123:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$PivotYset -> androidx.constraintlayout.motion.utils.ViewSpline$PivotYset:
+    126:126:void <init>() -> <init>
+    129:130:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$ProgressSet -> androidx.constraintlayout.motion.utils.ViewSpline$ProgressSet:
+    226:227:void <init>() -> <init>
+    231:254:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$RotationSet -> androidx.constraintlayout.motion.utils.ViewSpline$RotationSet:
+    98:98:void <init>() -> <init>
+    101:102:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$RotationXset -> androidx.constraintlayout.motion.utils.ViewSpline$RotationXset:
+    105:105:void <init>() -> <init>
+    108:109:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$RotationYset -> androidx.constraintlayout.motion.utils.ViewSpline$RotationYset:
+    112:112:void <init>() -> <init>
+    115:116:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$ScaleXset -> androidx.constraintlayout.motion.utils.ViewSpline$ScaleXset:
+    143:143:void <init>() -> <init>
+    146:147:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$ScaleYset -> androidx.constraintlayout.motion.utils.ViewSpline$ScaleYset:
+    150:150:void <init>() -> <init>
+    153:154:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$TranslationXset -> androidx.constraintlayout.motion.utils.ViewSpline$TranslationXset:
+    157:157:void <init>() -> <init>
+    160:161:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$TranslationYset -> androidx.constraintlayout.motion.utils.ViewSpline$TranslationYset:
+    164:164:void <init>() -> <init>
+    167:168:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewSpline$TranslationZset -> androidx.constraintlayout.motion.utils.ViewSpline$TranslationZset:
+    171:171:void <init>() -> <init>
+    174:177:void setProperty(android.view.View,float) -> setProperty
+androidx.constraintlayout.motion.utils.ViewState -> androidx.constraintlayout.motion.utils.ViewState:
+    23:23:void <init>() -> <init>
+    28:33:void getState(android.view.View) -> getState
+    40:40:int height() -> height
+    36:36:int width() -> width
+androidx.constraintlayout.motion.utils.ViewTimeCycle -> androidx.constraintlayout.motion.utils.ViewTimeCycle:
+    38:38:void <init>() -> <init>
+    44:65:float get(float,long,android.view.View,androidx.constraintlayout.core.motion.utils.KeyCache) -> get
+    69:69:androidx.constraintlayout.motion.utils.ViewTimeCycle makeCustomSpline(java.lang.String,android.util.SparseArray) -> makeCustomSpline
+    74:115:androidx.constraintlayout.motion.utils.ViewTimeCycle makeSpline(java.lang.String,long) -> makeSpline
+androidx.constraintlayout.motion.utils.ViewTimeCycle$AlphaSet -> androidx.constraintlayout.motion.utils.ViewTimeCycle$AlphaSet:
+    128:128:void <init>() -> <init>
+    131:132:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$CustomSet -> androidx.constraintlayout.motion.utils.ViewTimeCycle$CustomSet:
+    217:224:void <init>(java.lang.String,android.util.SparseArray) -> <init>
+    249:249:void setPoint(int,float,float,int,float) -> setPoint
+    253:256:void setPoint(int,androidx.constraintlayout.widget.ConstraintAttribute,float,int,float) -> setPoint
+    260:284:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+    227:246:void setup(int) -> setup
+androidx.constraintlayout.motion.utils.ViewTimeCycle$ElevationSet -> androidx.constraintlayout.motion.utils.ViewTimeCycle$ElevationSet:
+    118:118:void <init>() -> <init>
+    121:124:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$PathRotate -> androidx.constraintlayout.motion.utils.ViewTimeCycle$PathRotate:
+    160:160:void <init>() -> <init>
+    167:168:boolean setPathRotate(android.view.View,androidx.constraintlayout.core.motion.utils.KeyCache,float,long,double,double) -> setPathRotate
+    163:163:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$ProgressSet -> androidx.constraintlayout.motion.utils.ViewTimeCycle$ProgressSet:
+    288:289:void <init>() -> <init>
+    293:315:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationSet -> androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationSet:
+    136:136:void <init>() -> <init>
+    139:140:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationXset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationXset:
+    144:144:void <init>() -> <init>
+    147:148:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationYset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$RotationYset:
+    152:152:void <init>() -> <init>
+    155:156:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$ScaleXset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$ScaleXset:
+    172:172:void <init>() -> <init>
+    175:176:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$ScaleYset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$ScaleYset:
+    180:180:void <init>() -> <init>
+    183:184:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationXset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationXset:
+    188:188:void <init>() -> <init>
+    191:192:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationYset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationYset:
+    196:196:void <init>() -> <init>
+    199:200:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationZset -> androidx.constraintlayout.motion.utils.ViewTimeCycle$TranslationZset:
+    204:204:void <init>() -> <init>
+    207:210:boolean setProperty(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> setProperty
+androidx.constraintlayout.motion.widget.Debug -> androidx.constraintlayout.motion.widget.Debug:
+    37:37:void <init>() -> <init>
+    282:312:void dumpLayoutParams(android.view.ViewGroup,java.lang.String) -> dumpLayoutParams
+    315:344:void dumpLayoutParams(android.view.ViewGroup$LayoutParams,java.lang.String) -> dumpLayoutParams
+    95:128:void dumpPoc(java.lang.Object) -> dumpPoc
+    226:239:java.lang.String getActionType(android.view.MotionEvent) -> getActionType
+    277:278:java.lang.String getCallFrom(int) -> getCallFrom
+    257:258:java.lang.String getLoc() -> getLoc
+    248:249:java.lang.String getLocation() -> getLocation
+    267:268:java.lang.String getLocation2() -> getLocation2
+    87:90:java.lang.String getName(android.view.View) -> getName
+    139:145:java.lang.String getName(android.content.Context,int) -> getName
+    159:175:java.lang.String getName(android.content.Context,int[]) -> getName
+    186:186:java.lang.String getState(androidx.constraintlayout.motion.widget.MotionLayout,int) -> getState
+    198:216:java.lang.String getState(androidx.constraintlayout.motion.widget.MotionLayout,int,int) -> getState
+    48:57:void logStack(java.lang.String,java.lang.String,int) -> logStack
+    67:76:void printStack(java.lang.String,int) -> printStack
+androidx.constraintlayout.motion.widget.DesignTool -> androidx.constraintlayout.motion.widget.DesignTool:
+    86:116:void <clinit>() -> <clinit>
+    77:84:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    132:144:void Connect(int,androidx.constraintlayout.widget.ConstraintSet,android.view.View,java.util.HashMap,int,int) -> Connect
+    119:128:int GetPxFromDp(int,java.lang.String) -> GetPxFromDp
+    181:189:void SetAbsolutePositions(int,androidx.constraintlayout.widget.ConstraintSet,android.view.View,java.util.HashMap) -> SetAbsolutePositions
+    147:159:void SetBias(androidx.constraintlayout.widget.ConstraintSet,android.view.View,java.util.HashMap,int) -> SetBias
+    162:178:void SetDimensions(int,androidx.constraintlayout.widget.ConstraintSet,android.view.View,java.util.HashMap,int) -> SetDimensions
+    567:612:int designAccess(int,java.lang.String,java.lang.Object,float[],int,float[],int) -> designAccess
+    410:411:void disableAutoTransition(boolean) -> disableAutoTransition
+    725:735:void dumpConstraintSet(java.lang.String) -> dumpConstraintSet
+    241:253:int getAnimationKeyFrames(java.lang.Object,float[]) -> getAnimationKeyFrames
+    199:209:int getAnimationPath(java.lang.Object,float[],int) -> getAnimationPath
+    219:231:void getAnimationRectangles(java.lang.Object,float[]) -> getAnimationRectangles
+    335:345:java.lang.String getEndState() -> getEndState
+    447:451:int getKeyFrameInfo(java.lang.Object,int,int[]) -> getKeyFrameInfo
+    462:471:float getKeyFramePosition(java.lang.Object,int,float,float) -> getKeyFramePosition
+    432:436:int getKeyFramePositions(java.lang.Object,int[],float[]) -> getKeyFramePositions
+    618:621:java.lang.Object getKeyframe(int,int,int) -> getKeyframe
+    657:661:java.lang.Object getKeyframe(java.lang.Object,int,int) -> getKeyframe
+    625:641:java.lang.Object getKeyframeAtLocation(java.lang.Object,float,float) -> getKeyframeAtLocation
+    645:653:java.lang.Boolean getPositionKeyframe(java.lang.Object,java.lang.Object,float,float,java.lang.String[],float[]) -> getPositionKeyframe
+    354:354:float getProgress() -> getProgress
+    321:331:java.lang.String getStartState() -> getStartState
+    363:372:java.lang.String getState() -> getState
+    419:419:long getTransitionTimeMs() -> getTransitionTimeMs
+    381:381:boolean isInTransition() -> isInTransition
+    682:722:void setAttributes(int,java.lang.String,java.lang.Object,java.lang.Object) -> setAttributes
+    485:492:void setKeyFrame(java.lang.Object,int,java.lang.String,java.lang.Object) -> setKeyFrame
+    506:525:boolean setKeyFramePosition(java.lang.Object,int,int,float,float) -> setKeyFramePosition
+    665:671:void setKeyframe(java.lang.Object,java.lang.String,java.lang.Object) -> setKeyframe
+    276:318:void setState(java.lang.String) -> setState
+    261:268:void setToolPosition(float) -> setToolPosition
+    391:403:void setTransition(java.lang.String,java.lang.String) -> setTransition
+    534:543:void setViewDebug(java.lang.Object,int) -> setViewDebug
+androidx.constraintlayout.motion.widget.Key -> androidx.constraintlayout.motion.widget.Key:
+    36:36:void <clinit>() -> <clinit>
+    35:39:void <init>() -> <init>
+    35:35:java.lang.Object clone() -> clone
+    138:143:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    168:168:int getFramePosition() -> getFramePosition
+    73:74:boolean matches(java.lang.String) -> matches
+    159:160:void setFramePosition(int) -> setFramePosition
+    135:135:void setInterpolation(java.util.HashMap) -> setInterpolation
+    149:150:androidx.constraintlayout.motion.widget.Key setViewId(int) -> setViewId
+    125:125:boolean toBoolean(java.lang.Object) -> toBoolean
+    103:103:float toFloat(java.lang.Object) -> toFloat
+    114:114:int toInt(java.lang.Object) -> toInt
+androidx.constraintlayout.motion.widget.KeyAttributes -> androidx.constraintlayout.motion.widget.KeyAttributes:
+    43:69:void <init>() -> <init>
+    43:43:float access$000(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$000
+    43:43:float access$002(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$002
+    43:43:float access$100(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$100
+    43:43:float access$1000(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1000
+    43:43:float access$1002(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1002
+    43:43:float access$102(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$102
+    43:43:float access$1100(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1100
+    43:43:float access$1102(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1102
+    43:43:float access$1200(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1200
+    43:43:float access$1202(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1202
+    43:43:float access$1300(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1300
+    43:43:float access$1302(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1302
+    43:43:float access$1400(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1400
+    43:43:float access$1402(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1402
+    43:43:float access$1500(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$1500
+    43:43:float access$1502(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$1502
+    43:43:float access$200(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$200
+    43:43:float access$202(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$202
+    43:43:int access$300(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$300
+    43:43:int access$302(androidx.constraintlayout.motion.widget.KeyAttributes,int) -> access$302
+    43:43:float access$400(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$400
+    43:43:float access$402(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$402
+    43:43:float access$500(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$500
+    43:43:float access$502(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$502
+    43:43:float access$600(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$600
+    43:43:float access$602(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$602
+    43:43:float access$700(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$700
+    43:43:float access$702(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$702
+    43:43:float access$800(androidx.constraintlayout.motion.widget.KeyAttributes) -> access$800
+    43:43:float access$802(androidx.constraintlayout.motion.widget.KeyAttributes,float) -> access$802
+    43:43:java.lang.String access$902(androidx.constraintlayout.motion.widget.KeyAttributes,java.lang.String) -> access$902
+    194:284:void addValues(java.util.HashMap) -> addValues
+    43:43:java.lang.Object clone() -> clone
+    489:489:androidx.constraintlayout.motion.widget.Key clone() -> clone
+    467:485:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    89:136:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    83:83:int getCurveFit() -> getCurveFit
+    73:75:void load(android.content.Context,android.util.AttributeSet) -> load
+    139:190:void setInterpolation(java.util.HashMap) -> setInterpolation
+    288:341:void setValue(java.lang.String,java.lang.Object) -> setValue
+androidx.constraintlayout.motion.widget.KeyAttributes$Loader -> androidx.constraintlayout.motion.widget.KeyAttributes$Loader:
+    363:384:void <clinit>() -> <clinit>
+    343:343:void <init>() -> <init>
+    387:463:void read(androidx.constraintlayout.motion.widget.KeyAttributes,android.content.res.TypedArray) -> read
+androidx.constraintlayout.motion.widget.KeyCycle -> androidx.constraintlayout.motion.widget.KeyCycle:
+    42:82:void <init>() -> <init>
+    42:42:float access$1000(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1000
+    42:42:float access$1002(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1002
+    42:42:java.lang.String access$102(androidx.constraintlayout.motion.widget.KeyCycle,java.lang.String) -> access$102
+    42:42:float access$1100(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1100
+    42:42:float access$1102(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1102
+    42:42:float access$1200(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1200
+    42:42:float access$1202(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1202
+    42:42:float access$1300(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1300
+    42:42:float access$1302(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1302
+    42:42:float access$1400(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1400
+    42:42:float access$1402(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1402
+    42:42:float access$1500(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1500
+    42:42:float access$1502(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1502
+    42:42:float access$1600(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1600
+    42:42:float access$1602(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1602
+    42:42:float access$1700(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1700
+    42:42:float access$1702(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1702
+    42:42:float access$1800(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1800
+    42:42:float access$1802(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1802
+    42:42:float access$1900(androidx.constraintlayout.motion.widget.KeyCycle) -> access$1900
+    42:42:float access$1902(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$1902
+    42:42:int access$200(androidx.constraintlayout.motion.widget.KeyCycle) -> access$200
+    42:42:float access$2000(androidx.constraintlayout.motion.widget.KeyCycle) -> access$2000
+    42:42:float access$2002(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$2002
+    42:42:int access$202(androidx.constraintlayout.motion.widget.KeyCycle,int) -> access$202
+    42:42:java.lang.String access$302(androidx.constraintlayout.motion.widget.KeyCycle,java.lang.String) -> access$302
+    42:42:int access$400(androidx.constraintlayout.motion.widget.KeyCycle) -> access$400
+    42:42:int access$402(androidx.constraintlayout.motion.widget.KeyCycle,int) -> access$402
+    42:42:float access$500(androidx.constraintlayout.motion.widget.KeyCycle) -> access$500
+    42:42:float access$502(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$502
+    42:42:float access$600(androidx.constraintlayout.motion.widget.KeyCycle) -> access$600
+    42:42:float access$602(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$602
+    42:42:int access$700(androidx.constraintlayout.motion.widget.KeyCycle) -> access$700
+    42:42:int access$702(androidx.constraintlayout.motion.widget.KeyCycle,int) -> access$702
+    42:42:float access$800(androidx.constraintlayout.motion.widget.KeyCycle) -> access$800
+    42:42:float access$802(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$802
+    42:42:float access$900(androidx.constraintlayout.motion.widget.KeyCycle) -> access$900
+    42:42:float access$902(androidx.constraintlayout.motion.widget.KeyCycle,float) -> access$902
+    132:160:void addCycleValues(java.util.HashMap) -> addCycleValues
+    202:257:void addValues(java.util.HashMap) -> addValues
+    42:42:java.lang.Object clone() -> clone
+    498:498:androidx.constraintlayout.motion.widget.Key clone() -> clone
+    472:494:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    91:129:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    163:196:float getValue(java.lang.String) -> getValue
+    85:87:void load(android.content.Context,android.util.AttributeSet) -> load
+    408:469:void setValue(java.lang.String,java.lang.Object) -> setValue
+androidx.constraintlayout.motion.widget.KeyCycle$Loader -> androidx.constraintlayout.motion.widget.KeyCycle$Loader:
+    281:305:void <clinit>() -> <clinit>
+    259:259:void <init>() -> <init>
+    259:259:void access$000(androidx.constraintlayout.motion.widget.KeyCycle,android.content.res.TypedArray) -> access$000
+    308:403:void read(androidx.constraintlayout.motion.widget.KeyCycle,android.content.res.TypedArray) -> read
+androidx.constraintlayout.motion.widget.KeyFrames -> androidx.constraintlayout.motion.widget.KeyFrames:
+    45:59:void <clinit>() -> <clinit>
+    44:72:void <init>() -> <init>
+    44:123:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    130:134:void addAllFrames(androidx.constraintlayout.motion.widget.MotionController) -> addAllFrames
+    137:153:void addFrames(androidx.constraintlayout.motion.widget.MotionController) -> addFrames
+    62:69:void addKey(androidx.constraintlayout.motion.widget.Key) -> addKey
+    164:164:java.util.ArrayList getKeyFramesForView(int) -> getKeyFramesForView
+    160:160:java.util.Set getKeys() -> getKeys
+    156:156:java.lang.String name(int,android.content.Context) -> name
+androidx.constraintlayout.motion.widget.KeyPosition -> androidx.constraintlayout.motion.widget.KeyPosition:
+    42:72:void <init>() -> <init>
+    82:82:void addValues(java.util.HashMap) -> addValues
+    125:133:void calcCartesianPosition(float,float,float,float) -> calcCartesianPosition
+    115:121:void calcPathPosition(float,float,float,float) -> calcPathPosition
+    90:101:void calcPosition(int,int,float,float,float,float) -> calcPosition
+    107:111:void calcScreenPosition(int,int) -> calcScreenPosition
+    42:42:java.lang.Object clone() -> clone
+    399:399:androidx.constraintlayout.motion.widget.Key clone() -> clone
+    382:395:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    137:137:float getPositionX() -> getPositionX
+    142:142:float getPositionY() -> getPositionY
+    247:252:boolean intersects(int,int,android.graphics.RectF,android.graphics.RectF,float,float) -> intersects
+    76:78:void load(android.content.Context,android.util.AttributeSet) -> load
+    147:158:void positionAttributes(android.view.View,android.graphics.RectF,android.graphics.RectF,float,float,java.lang.String[],float[]) -> positionAttributes
+    223:243:void positionCartAttributes(android.graphics.RectF,android.graphics.RectF,float,float,java.lang.String[],float[]) -> positionCartAttributes
+    164:193:void positionPathAttributes(android.graphics.RectF,android.graphics.RectF,float,float,java.lang.String[],float[]) -> positionPathAttributes
+    196:220:void positionScreenAttributes(android.view.View,android.graphics.RectF,android.graphics.RectF,float,float,java.lang.String[],float[]) -> positionScreenAttributes
+    85:86:void setType(int) -> setType
+    356:379:void setValue(java.lang.String,java.lang.Object) -> setValue
+androidx.constraintlayout.motion.widget.KeyPosition$Loader -> androidx.constraintlayout.motion.widget.KeyPosition$Loader:
+    269:284:void <clinit>() -> <clinit>
+    255:255:void <init>() -> <init>
+    255:255:void access$000(androidx.constraintlayout.motion.widget.KeyPosition,android.content.res.TypedArray) -> access$000
+    287:351:void read(androidx.constraintlayout.motion.widget.KeyPosition,android.content.res.TypedArray) -> read
+androidx.constraintlayout.motion.widget.KeyPositionBase -> androidx.constraintlayout.motion.widget.KeyPositionBase:
+    29:31:void <init>() -> <init>
+    61:61:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+androidx.constraintlayout.motion.widget.KeyTimeCycle -> androidx.constraintlayout.motion.widget.KeyTimeCycle:
+    42:79:void <init>() -> <init>
+    42:42:float access$000(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$000
+    42:42:float access$002(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$002
+    42:42:float access$100(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$100
+    42:42:float access$1000(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1000
+    42:42:float access$1002(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1002
+    42:42:float access$102(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$102
+    42:42:java.lang.String access$1102(androidx.constraintlayout.motion.widget.KeyTimeCycle,java.lang.String) -> access$1102
+    42:42:float access$1200(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1200
+    42:42:float access$1202(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1202
+    42:42:float access$1300(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1300
+    42:42:float access$1302(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1302
+    42:42:float access$1400(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1400
+    42:42:float access$1402(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1402
+    42:42:float access$1500(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1500
+    42:42:float access$1502(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1502
+    42:42:float access$1600(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1600
+    42:42:float access$1602(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1602
+    42:42:float access$1700(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$1700
+    42:42:float access$1702(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$1702
+    42:42:float access$200(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$200
+    42:42:float access$202(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$202
+    42:42:int access$300(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$300
+    42:42:int access$302(androidx.constraintlayout.motion.widget.KeyTimeCycle,int) -> access$302
+    42:42:java.lang.String access$402(androidx.constraintlayout.motion.widget.KeyTimeCycle,java.lang.String) -> access$402
+    42:42:int access$500(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$500
+    42:42:int access$502(androidx.constraintlayout.motion.widget.KeyTimeCycle,int) -> access$502
+    42:42:float access$600(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$600
+    42:42:float access$602(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$602
+    42:42:float access$700(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$700
+    42:42:float access$702(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$702
+    42:42:float access$800(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$800
+    42:42:float access$802(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$802
+    42:42:float access$900(androidx.constraintlayout.motion.widget.KeyTimeCycle) -> access$900
+    42:42:float access$902(androidx.constraintlayout.motion.widget.KeyTimeCycle,float) -> access$902
+    190:268:void addTimeValues(java.util.HashMap) -> addTimeValues
+    186:186:void addValues(java.util.HashMap) -> addValues
+    42:42:java.lang.Object clone() -> clone
+    494:494:androidx.constraintlayout.motion.widget.Key clone() -> clone
+    471:490:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    93:134:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    83:85:void load(android.content.Context,android.util.AttributeSet) -> load
+    137:181:void setInterpolation(java.util.HashMap) -> setInterpolation
+    272:331:void setValue(java.lang.String,java.lang.Object) -> setValue
+androidx.constraintlayout.motion.widget.KeyTimeCycle$Loader -> androidx.constraintlayout.motion.widget.KeyTimeCycle$Loader:
+    353:375:void <clinit>() -> <clinit>
+    333:333:void <init>() -> <init>
+    378:467:void read(androidx.constraintlayout.motion.widget.KeyTimeCycle,android.content.res.TypedArray) -> read
+androidx.constraintlayout.motion.widget.KeyTrigger -> androidx.constraintlayout.motion.widget.KeyTrigger:
+    46:89:void <init>() -> <init>
+    46:46:float access$002(androidx.constraintlayout.motion.widget.KeyTrigger,float) -> access$002
+    46:46:java.lang.String access$102(androidx.constraintlayout.motion.widget.KeyTrigger,java.lang.String) -> access$102
+    46:46:java.lang.String access$202(androidx.constraintlayout.motion.widget.KeyTrigger,java.lang.String) -> access$202
+    46:46:java.lang.String access$302(androidx.constraintlayout.motion.widget.KeyTrigger,java.lang.String) -> access$302
+    46:46:int access$400(androidx.constraintlayout.motion.widget.KeyTrigger) -> access$400
+    46:46:int access$402(androidx.constraintlayout.motion.widget.KeyTrigger,int) -> access$402
+    46:46:int access$500(androidx.constraintlayout.motion.widget.KeyTrigger) -> access$500
+    46:46:int access$502(androidx.constraintlayout.motion.widget.KeyTrigger,int) -> access$502
+    46:46:boolean access$600(androidx.constraintlayout.motion.widget.KeyTrigger) -> access$600
+    46:46:boolean access$602(androidx.constraintlayout.motion.widget.KeyTrigger,boolean) -> access$602
+    46:46:int access$700(androidx.constraintlayout.motion.widget.KeyTrigger) -> access$700
+    46:46:int access$702(androidx.constraintlayout.motion.widget.KeyTrigger,int) -> access$702
+    112:112:void addValues(java.util.HashMap) -> addValues
+    46:46:java.lang.Object clone() -> clone
+    454:454:androidx.constraintlayout.motion.widget.Key clone() -> clone
+    168:280:void conditionallyFire(float,android.view.View) -> conditionallyFire
+    430:450:androidx.constraintlayout.motion.widget.Key copy(androidx.constraintlayout.motion.widget.Key) -> copy
+    283:314:void fire(java.lang.String,android.view.View) -> fire
+    317:330:void fireCustom(java.lang.String,android.view.View) -> fireCustom
+    108:108:void getAttributeNames(java.util.HashSet) -> getAttributeNames
+    103:103:int getCurveFit() -> getCurveFit
+    93:95:void load(android.content.Context,android.util.AttributeSet) -> load
+    158:165:void setUpRect(android.graphics.RectF,android.view.View,boolean) -> setUpRect
+    116:155:void setValue(java.lang.String,java.lang.Object) -> setValue
+androidx.constraintlayout.motion.widget.KeyTrigger$Loader -> androidx.constraintlayout.motion.widget.KeyTrigger$Loader:
+    347:363:void <clinit>() -> <clinit>
+    332:332:void <init>() -> <init>
+    366:426:void read(androidx.constraintlayout.motion.widget.KeyTrigger,android.content.res.TypedArray,android.content.Context) -> read
+androidx.constraintlayout.motion.widget.MotionConstrainedPoint -> androidx.constraintlayout.motion.widget.MotionConstrainedPoint:
+    71:71:void <clinit>() -> <clinit>
+    43:155:void <init>() -> <init>
+    259:328:void addValues(java.util.HashMap,int) -> addValues
+    206:224:void applyParameters(android.view.View) -> applyParameters
+    227:256:void applyParameters(androidx.constraintlayout.widget.ConstraintSet$Constraint) -> applyParameters
+    39:39:int compareTo(java.lang.Object) -> compareTo
+    201:201:int compareTo(androidx.constraintlayout.motion.widget.MotionConstrainedPoint) -> compareTo
+    81:84:boolean diff(float,float) -> diff
+    94:142:void different(androidx.constraintlayout.motion.widget.MotionConstrainedPoint,java.util.HashSet) -> different
+    145:152:void different(androidx.constraintlayout.motion.widget.MotionConstrainedPoint,boolean[],java.lang.String[]) -> different
+    158:166:void fillStandard(double[],int[]) -> fillStandard
+    177:188:int getCustomData(java.lang.String,double[],int) -> getCustomData
+    173:173:int getCustomDataCount(java.lang.String) -> getCustomDataCount
+    169:169:boolean hasCustomData(java.lang.String) -> hasCustomData
+    193:197:void setBounds(float,float,float,float) -> setBounds
+    332:334:void setState(android.view.View) -> setState
+    342:355:void setState(android.graphics.Rect,android.view.View,int,float) -> setState
+    365:378:void setState(android.graphics.Rect,androidx.constraintlayout.widget.ConstraintSet,int,int) -> setState
+androidx.constraintlayout.motion.widget.MotionController -> androidx.constraintlayout.motion.widget.MotionController:
+    82:152:void <init>(android.view.View) -> <init>
+    610:614:void addKey(androidx.constraintlayout.motion.widget.Key) -> addKey
+    601:607:void addKeys(java.util.ArrayList) -> addKeys
+    359:413:void buildBounds(float[],int) -> buildBounds
+    506:523:int buildKeyBounds(float[],int[]) -> buildKeyBounds
+    485:502:int buildKeyFrames(float[],int[]) -> buildKeyFrames
+    272:337:void buildPath(float[],int) -> buildPath
+    541:544:void buildRect(float,float[],int) -> buildRect
+    547:554:void buildRectangles(float[],int) -> buildRectangles
+    1212:1218:void endTrigger(boolean) -> endTrigger
+    1166:1208:float getAdjustedPosition(float,float[]) -> getAdjustedPosition
+    236:236:int getAnimateRelativeTo() -> getAnimateRelativeTo
+    529:537:int getAttributeValues(java.lang.String,float[],int) -> getAttributeValues
+    253:260:void getCenter(double,float[],float[]) -> getCenter
+    245:245:float getCenterX() -> getCenterX
+    249:249:float getCenterY() -> getCenterY
+    1384:1414:void getDpDt(float,float,float,float[]) -> getDpDt
+    1497:1502:int getDrawPath() -> getDrawPath
+    225:225:float getFinalHeight() -> getFinalHeight
+    216:216:float getFinalWidth() -> getFinalWidth
+    179:179:float getFinalX() -> getFinalX
+    189:189:float getFinalY() -> getFinalY
+    1106:1130:android.view.animation.Interpolator getInterpolator(android.content.Context,int,java.lang.String,int) -> getInterpolator
+    147:147:androidx.constraintlayout.motion.widget.MotionPaths getKeyFrame(int) -> getKeyFrame
+    1565:1596:int getKeyFrameInfo(int,int[]) -> getKeyFrameInfo
+    558:589:float getKeyFrameParameter(int,float,float) -> getKeyFrameParameter
+    1536:1546:int getKeyFramePositions(int[],float[]) -> getKeyFramePositions
+    340:346:double[] getPos(double) -> getPos
+    464:481:androidx.constraintlayout.motion.widget.KeyPositionBase getPositionKeyframe(int,int,float,float) -> getPositionKeyframe
+    1431:1493:void getPostLayoutDvDp(float,int,int,float,float,float[]) -> getPostLayoutDvDp
+    416:460:float getPreCycleDistance() -> getPreCycleDistance
+    207:207:float getStartHeight() -> getStartHeight
+    198:198:float getStartWidth() -> getStartWidth
+    160:160:float getStartX() -> getStartX
+    170:170:float getStartY() -> getStartY
+    133:133:int getTransformPivotTarget() -> getTransformPivotTarget
+    996:996:android.view.View getView() -> getView
+    593:598:void insertKey(androidx.constraintlayout.motion.widget.MotionPaths) -> insertKey
+    1230:1371:boolean interpolate(android.view.View,float,long,androidx.constraintlayout.core.motion.utils.KeyCache) -> interpolate
+    1510:1511:java.lang.String name() -> name
+    1515:1526:void positionKeyframe(android.view.View,androidx.constraintlayout.motion.widget.KeyPositionBase,float,float,java.lang.String[],float[]) -> positionKeyframe
+    983:984:void readView(androidx.constraintlayout.motion.widget.MotionPaths) -> readView
+    1035:1070:void rotate(android.graphics.Rect,android.graphics.Rect,int,int,int) -> rotate
+    1148:1155:void setBothStates(android.view.View) -> setBothStates
+    1506:1507:void setDrawPath(int) -> setDrawPath
+    1134:1145:void setEndState(android.graphics.Rect,androidx.constraintlayout.widget.ConstraintSet,int,int) -> setEndState
+    617:618:void setPathMotionArc(int) -> setPathMotionArc
+    1000:1004:void setStartCurrentState(android.view.View) -> setStartCurrentState
+    1007:1031:void setStartState(androidx.constraintlayout.motion.utils.ViewState,android.view.View,int,int,int) -> setStartState
+    1073:1093:void setStartState(android.graphics.Rect,androidx.constraintlayout.widget.ConstraintSet,int,int) -> setStartState
+    142:144:void setTransformPivotTarget(int) -> setTransformPivotTarget
+    987:993:void setView(android.view.View) -> setView
+    625:970:void setup(int,int,float,long) -> setup
+    240:242:void setupRelative(androidx.constraintlayout.motion.widget.MotionController) -> setupRelative
+    978:978:java.lang.String toString() -> toString
+androidx.constraintlayout.motion.widget.MotionController$1 -> androidx.constraintlayout.motion.widget.MotionController$1:
+    1109:1109:void <init>(androidx.constraintlayout.core.motion.utils.Easing) -> <init>
+    1112:1112:float getInterpolation(float) -> getInterpolation
+androidx.constraintlayout.motion.widget.MotionHelper -> androidx.constraintlayout.motion.widget.MotionHelper:
+    21:28:void <init>(android.content.Context) -> <init>
+    21:33:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    21:38:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    82:82:float getProgress() -> getProgress
+    44:58:void init(android.util.AttributeSet) -> init
+    138:138:boolean isDecorator() -> isDecorator
+    77:77:boolean isUseOnHide() -> isUseOnHide
+    67:67:boolean isUsedOnShow() -> isUsedOnShow
+    148:148:void onFinishedMotionScene(androidx.constraintlayout.motion.widget.MotionLayout) -> onFinishedMotionScene
+    153:153:void onPostDraw(android.graphics.Canvas) -> onPostDraw
+    144:144:void onPreDraw(android.graphics.Canvas) -> onPreDraw
+    158:158:void onPreSetup(androidx.constraintlayout.motion.widget.MotionLayout,java.util.HashMap) -> onPreSetup
+    125:125:void onTransitionChange(androidx.constraintlayout.motion.widget.MotionLayout,int,int,float) -> onTransitionChange
+    129:129:void onTransitionCompleted(androidx.constraintlayout.motion.widget.MotionLayout,int) -> onTransitionCompleted
+    121:121:void onTransitionStarted(androidx.constraintlayout.motion.widget.MotionLayout,int,int) -> onTransitionStarted
+    134:134:void onTransitionTrigger(androidx.constraintlayout.motion.widget.MotionLayout,int,boolean,float) -> onTransitionTrigger
+    87:107:void setProgress(float) -> setProgress
+    117:117:void setProgress(android.view.View,float) -> setProgress
+androidx.constraintlayout.motion.widget.MotionInterpolator -> androidx.constraintlayout.motion.widget.MotionInterpolator:
+    21:21:void <init>() -> <init>
+androidx.constraintlayout.motion.widget.MotionLayout -> androidx.constraintlayout.motion.widget.MotionLayout:
+    1012:4398:void <init>(android.content.Context) -> <init>
+    1012:4398:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1012:4398:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    993:993:androidx.constraintlayout.motion.widget.MotionLayout$StateCache access$000(androidx.constraintlayout.motion.widget.MotionLayout) -> access$000
+    993:993:int access$100(androidx.constraintlayout.motion.widget.MotionLayout) -> access$100
+    993:993:void access$1000(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1000
+    993:993:void access$1100(androidx.constraintlayout.motion.widget.MotionLayout,boolean,android.view.View,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> access$1100
+    993:993:int access$1200(androidx.constraintlayout.motion.widget.MotionLayout) -> access$1200
+    993:993:int access$1300(androidx.constraintlayout.motion.widget.MotionLayout) -> access$1300
+    993:993:void access$1400(androidx.constraintlayout.motion.widget.MotionLayout) -> access$1400
+    993:993:void access$1500(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1500
+    993:993:void access$1600(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1600
+    993:993:void access$1700(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1700
+    993:993:void access$1800(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1800
+    993:993:void access$1900(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$1900
+    993:993:int access$200(androidx.constraintlayout.motion.widget.MotionLayout) -> access$200
+    993:993:void access$2000(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$2000
+    993:993:void access$2100(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$2100
+    993:993:void access$2200(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> access$2200
+    993:993:void access$2300(androidx.constraintlayout.motion.widget.MotionLayout,int,int,int,int,boolean,boolean) -> access$2300
+    993:993:android.graphics.Rect access$2400(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.core.widgets.ConstraintWidget) -> access$2400
+    993:993:int access$2500(androidx.constraintlayout.motion.widget.MotionLayout) -> access$2500
+    993:993:int access$2600(androidx.constraintlayout.motion.widget.MotionLayout) -> access$2600
+    993:993:boolean access$300(androidx.constraintlayout.motion.widget.MotionLayout) -> access$300
+    993:993:boolean access$302(androidx.constraintlayout.motion.widget.MotionLayout,boolean) -> access$302
+    993:993:androidx.constraintlayout.core.widgets.ConstraintWidgetContainer access$400(androidx.constraintlayout.motion.widget.MotionLayout) -> access$400
+    993:993:androidx.constraintlayout.core.widgets.ConstraintWidgetContainer access$500(androidx.constraintlayout.motion.widget.MotionLayout) -> access$500
+    993:993:androidx.constraintlayout.core.widgets.ConstraintWidgetContainer access$600(androidx.constraintlayout.motion.widget.MotionLayout) -> access$600
+    993:993:androidx.constraintlayout.core.widgets.ConstraintWidgetContainer access$700(androidx.constraintlayout.motion.widget.MotionLayout) -> access$700
+    993:993:boolean access$800(androidx.constraintlayout.motion.widget.MotionLayout) -> access$800
+    993:993:boolean access$900(androidx.constraintlayout.motion.widget.MotionLayout) -> access$900
+    4283:4287:void addTransitionListener(androidx.constraintlayout.motion.widget.MotionLayout$TransitionListener) -> addTransitionListener
+    2080:2109:void animateTo(float) -> animateTo
+    4843:4846:boolean applyViewTransition(int,androidx.constraintlayout.motion.widget.MotionController) -> applyViewTransition
+    3996:4020:boolean callTransformedTouchEvent(android.view.View,android.view.MotionEvent,float,float) -> callTransformedTouchEvent
+    3887:3924:void checkStructure() -> checkStructure
+    3927:3955:void checkStructure(int,androidx.constraintlayout.widget.ConstraintSet) -> checkStructure
+    3962:3965:void checkStructure(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> checkStructure
+    4562:4568:androidx.constraintlayout.widget.ConstraintSet cloneConstraintSet(int) -> cloneConstraintSet
+    2112:2121:void computeCurrentPositions() -> computeCurrentPositions
+    3444:3451:void debugPos() -> debugPos
+    4755:4759:void disableAutoTransition(boolean) -> disableAutoTransition
+    3463:3523:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    1149:1165:void enableTransition(int,boolean) -> enableTransition
+    4816:4819:void enableViewTransition(int,boolean) -> enableViewTransition
+    3577:3585:void endTrigger(boolean) -> endTrigger
+    3589:3780:void evaluate(boolean) -> evaluate
+    3529:3574:void evaluateLayout() -> evaluateLayout
+    4370:4396:void fireTransitionChange() -> fireTransitionChange
+    4404:4426:void fireTransitionCompleted() -> fireTransitionCompleted
+    4784:4792:void fireTransitionStarted(androidx.constraintlayout.motion.widget.MotionLayout,int,int) -> fireTransitionStarted
+    4359:4367:void fireTrigger(int,boolean,float) -> fireTrigger
+    4231:4252:void getAnchorDpDt(int,float,float,float,float[]) -> getAnchorDpDt
+    4547:4550:androidx.constraintlayout.widget.ConstraintSet getConstraintSet(int) -> getConstraintSet
+    4530:4533:int[] getConstraintSetIds() -> getConstraintSetIds
+    4743:4746:java.lang.String getConstraintSetNames(int) -> getConstraintSetNames
+    4204:4204:int getCurrentState() -> getCurrentState
+    3987:3989:void getDebugMode(boolean) -> getDebugMode
+    4664:4667:java.util.ArrayList getDefinedTransitions() -> getDefinedTransitions
+    4450:4453:androidx.constraintlayout.motion.widget.DesignTool getDesignTool() -> getDesignTool
+    4686:4686:int getEndState() -> getEndState
+    1102:1102:androidx.constraintlayout.motion.widget.MotionController getMotionController(int) -> getMotionController
+    1136:1136:long getNanoTime() -> getNanoTime
+    4213:4213:float getProgress() -> getProgress
+    4677:4677:int getStartState() -> getStartState
+    4696:4696:float getTargetPosition() -> getTargetPosition
+    4719:4719:androidx.constraintlayout.motion.widget.MotionScene$Transition getTransition(int) -> getTransition
+    1687:1691:android.os.Bundle getTransitionState() -> getTransitionState
+    4260:4263:long getTransitionTimeMs() -> getTransitionTimeMs
+    2446:2446:float getVelocity() -> getVelocity
+    2459:2489:void getViewVelocity(android.view.View,float,float,float[],int) -> getViewVelocity
+    4033:4056:boolean handlesTouchEvent(float,float,android.view.View,android.view.MotionEvent) -> handlesTouchEvent
+    3825:3875:void init(android.util.AttributeSet) -> init
+    1529:1530:boolean isAttachedToWindow() -> isAttachedToWindow
+    4854:4854:boolean isDelayedApplicationOfInitialState() -> isDelayedApplicationOfInitialState
+    2244:2244:boolean isInRotation() -> isInRotation
+    4780:4780:boolean isInteractionEnabled() -> isInteractionEnabled
+    4828:4831:boolean isViewTransitionEnabled(int) -> isViewTransitionEnabled
+    2257:2267:void jumpToState(int) -> jumpToState
+    1459:1522:void loadLayoutDescription(int) -> loadLayoutDescription
+    4730:4733:int lookUpConstraintId(java.lang.String) -> lookUpConstraintId
+    1145:1145:androidx.constraintlayout.motion.widget.MotionLayout$MotionTracker obtainVelocityTracker() -> obtainVelocityTracker
+    4128:4169:void onAttachedToWindow() -> onAttachedToWindow
+    4067:4104:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    3786:3812:void onLayout(boolean,int,int,int,int) -> onLayout
+    2909:2957:void onMeasure(int,int) -> onMeasure
+    3100:3100:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    3095:3095:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    3016:3091:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    2999:3004:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    3011:3011:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    2978:2982:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    4183:4196:void onNewStateAttachHandlers() -> onNewStateAttachHandlers
+    4173:4176:void onRtlPropertiesChanged(int) -> onRtlPropertiesChanged
+    2964:2970:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    2991:2995:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    4112:4123:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    4461:4488:void onViewAdded(android.view.View) -> onViewAdded
+    4495:4502:void onViewRemoved(android.view.View) -> onViewRemoved
+    3821:3822:void parseLayoutDescription(int) -> parseLayoutDescription
+    4429:4444:void processTransitionCompleted() -> processTransitionCompleted
+    4578:4580:void rebuildMotion() -> rebuildMotion
+    4586:4588:void rebuildScene() -> rebuildScene
+    4297:4300:boolean removeTransitionListener(androidx.constraintlayout.motion.widget.MotionLayout$TransitionListener) -> removeTransitionListener
+    2887:2895:void requestLayout() -> requestLayout
+    2204:2241:void rotateTo(int,int) -> rotateTo
+    4635:4646:void scheduleTransitionTo(int) -> scheduleTransitionTo
+    3974:3976:void setDebugMode(int) -> setDebugMode
+    4862:4863:void setDelayedApplicationOfInitialState(boolean) -> setDelayedApplicationOfInitialState
+    4767:4768:void setInteractionEnabled(boolean) -> setInteractionEnabled
+    1562:1571:void setInterpolatedProgress(float) -> setInterpolatedProgress
+    4515:4522:void setOnHide(float) -> setOnHide
+    4505:4512:void setOnShow(float) -> setOnShow
+    1580:1592:void setProgress(float,float) -> setProgress
+    1700:1753:void setProgress(float) -> setProgress
+    3881:3884:void setScene(androidx.constraintlayout.motion.widget.MotionScene) -> setScene
+    1310:1319:void setStartState(int) -> setStartState
+    1197:1224:void setState(androidx.constraintlayout.motion.widget.MotionLayout$TransitionState) -> setState
+    1545:1554:void setState(int,int,int) -> setState
+    1328:1351:void setTransition(int,int) -> setTransition
+    1360:1413:void setTransition(int) -> setTransition
+    1416:1450:void setTransition(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> setTransition
+    4705:4710:void setTransitionDuration(int) -> setTransitionDuration
+    4273:4274:void setTransitionListener(androidx.constraintlayout.motion.widget.MotionLayout$TransitionListener) -> setTransitionListener
+    1674:1681:void setTransitionState(android.os.Bundle) -> setTransitionState
+    1759:1888:void setupMotionViews() -> setupMotionViews
+    2876:2880:android.graphics.Rect toRect(androidx.constraintlayout.core.widgets.ConstraintWidget) -> toRect
+    2899:2901:java.lang.String toString() -> toString
+    1909:1979:void touchAnimateTo(int,float,float) -> touchAnimateTo
+    1992:2019:void touchSpringTo(float,float) -> touchSpringTo
+    2138:2140:void transitionToEnd() -> transitionToEnd
+    2150:2152:void transitionToEnd(java.lang.Runnable) -> transitionToEnd
+    2129:2130:void transitionToStart() -> transitionToStart
+    2161:2169:void transitionToState(int) -> transitionToState
+    2180:2188:void transitionToState(int,int) -> transitionToState
+    2199:2200:void transitionToState(int,int,int) -> transitionToState
+    2289:2438:void transitionToState(int,int,int,int) -> transitionToState
+    4597:4604:void updateState(int,androidx.constraintlayout.widget.ConstraintSet) -> updateState
+    4654:4656:void updateState() -> updateState
+    4614:4627:void updateStateAnimate(int,androidx.constraintlayout.widget.ConstraintSet,int) -> updateStateAnimate
+    4802:4807:void viewTransition(int,android.view.View[]) -> viewTransition
+    2022:2029:boolean willJump(float,float,float) -> willJump
+androidx.constraintlayout.motion.widget.MotionLayout$1 -> androidx.constraintlayout.motion.widget.MotionLayout$1:
+    1490:1490:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    1493:1494:void run() -> run
+androidx.constraintlayout.motion.widget.MotionLayout$2 -> androidx.constraintlayout.motion.widget.MotionLayout$2:
+    2231:2231:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    2234:2235:void run() -> run
+androidx.constraintlayout.motion.widget.MotionLayout$3 -> androidx.constraintlayout.motion.widget.MotionLayout$3:
+    3058:3058:void <init>(androidx.constraintlayout.motion.widget.MotionLayout,android.view.View) -> <init>
+    3061:3062:void run() -> run
+androidx.constraintlayout.motion.widget.MotionLayout$4 -> androidx.constraintlayout.motion.widget.MotionLayout$4:
+    4151:4151:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    4154:4155:void run() -> run
+androidx.constraintlayout.motion.widget.MotionLayout$5 -> androidx.constraintlayout.motion.widget.MotionLayout$5:
+    1206:1206:void <clinit>() -> <clinit>
+androidx.constraintlayout.motion.widget.MotionLayout$DecelerateInterpolator -> androidx.constraintlayout.motion.widget.MotionLayout$DecelerateInterpolator:
+    2036:2038:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    2042:2045:void config(float,float,float) -> config
+    2049:2063:float getInterpolation(float) -> getInterpolation
+    2069:2069:float getVelocity() -> getVelocity
+androidx.constraintlayout.motion.widget.MotionLayout$DevModeDraw -> androidx.constraintlayout.motion.widget.MotionLayout$DevModeDraw:
+    3118:3166:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    3171:3221:void draw(android.graphics.Canvas,java.util.HashMap,int,int) -> draw
+    3224:3235:void drawAll(android.graphics.Canvas,int,int,androidx.constraintlayout.motion.widget.MotionController) -> drawAll
+    3238:3239:void drawBasicPath(android.graphics.Canvas) -> drawBasicPath
+    3312:3328:void drawPathAsConfigured(android.graphics.Canvas) -> drawPathAsConfigured
+    3356:3365:void drawPathCartesian(android.graphics.Canvas) -> drawPathCartesian
+    3368:3391:void drawPathCartesianTicks(android.graphics.Canvas,float,float) -> drawPathCartesianTicks
+    3307:3309:void drawPathRelative(android.graphics.Canvas) -> drawPathRelative
+    3331:3349:void drawPathRelativeTicks(android.graphics.Canvas,float,float) -> drawPathRelativeTicks
+    3394:3417:void drawPathScreenTicks(android.graphics.Canvas,float,float,int,int) -> drawPathScreenTicks
+    3420:3438:void drawRectangle(android.graphics.Canvas,androidx.constraintlayout.motion.widget.MotionController) -> drawRectangle
+    3242:3299:void drawTicks(android.graphics.Canvas,int,int,androidx.constraintlayout.motion.widget.MotionController) -> drawTicks
+    3302:3304:void drawTranslation(android.graphics.Canvas,float,float,float,float) -> drawTranslation
+    3352:3353:void getTextBounds(java.lang.String,android.graphics.Paint) -> getTextBounds
+androidx.constraintlayout.motion.widget.MotionLayout$Model -> androidx.constraintlayout.motion.widget.MotionLayout$Model:
+    2493:2497:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    2813:2863:void build() -> build
+    2502:2526:void copy(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> copy
+    2693:2713:void debugLayout(java.lang.String,androidx.constraintlayout.core.widgets.ConstraintWidgetContainer) -> debugLayout
+    2665:2679:void debugLayoutParam(java.lang.String,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> debugLayoutParam
+    2683:2689:void debugWidget(java.lang.String,androidx.constraintlayout.core.widgets.ConstraintWidget) -> debugWidget
+    2648:2660:androidx.constraintlayout.core.widgets.ConstraintWidget getWidget(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,android.view.View) -> getWidget
+    2529:2585:void initFrom(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.widget.ConstraintSet,androidx.constraintlayout.widget.ConstraintSet) -> initFrom
+    2871:2871:boolean isNotConfiguredWith(int,int) -> isNotConfiguredWith
+    2721:2810:void measure(int,int) -> measure
+    2716:2718:void reEvaluateState() -> reEvaluateState
+    2866:2868:void setMeasuredId(int,int) -> setMeasuredId
+    2588:2645:void setupConstraintWidget(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.widget.ConstraintSet) -> setupConstraintWidget
+androidx.constraintlayout.motion.widget.MotionLayout$MyTracker -> androidx.constraintlayout.motion.widget.MotionLayout$MyTracker:
+    1228:1228:void <clinit>() -> <clinit>
+    1226:1226:void <init>() -> <init>
+    1252:1255:void addMovement(android.view.MotionEvent) -> addMovement
+    1245:1248:void clear() -> clear
+    1259:1262:void computeCurrentVelocity(int) -> computeCurrentVelocity
+    1266:1269:void computeCurrentVelocity(int,float) -> computeCurrentVelocity
+    1273:1276:float getXVelocity() -> getXVelocity
+    1289:1292:float getXVelocity(int) -> getXVelocity
+    1281:1284:float getYVelocity() -> getYVelocity
+    1297:1300:float getYVelocity(int) -> getYVelocity
+    1231:1232:androidx.constraintlayout.motion.widget.MotionLayout$MyTracker obtain() -> obtain
+    1237:1241:void recycle() -> recycle
+androidx.constraintlayout.motion.widget.MotionLayout$StateCache -> androidx.constraintlayout.motion.widget.MotionLayout$StateCache:
+    1595:1603:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    1606:1628:void apply() -> apply
+    1631:1636:android.os.Bundle getTransitionState() -> getTransitionState
+    1663:1667:void recordState() -> recordState
+    1651:1652:void setEndState(int) -> setEndState
+    1647:1648:void setProgress(float) -> setProgress
+    1659:1660:void setStartState(int) -> setStartState
+    1640:1644:void setTransitionState(android.os.Bundle) -> setTransitionState
+    1655:1656:void setVelocity(float) -> setVelocity
+androidx.constraintlayout.motion.widget.MotionLayout$TransitionState -> androidx.constraintlayout.motion.widget.MotionLayout$TransitionState:
+    1105:1109:void <clinit>() -> <clinit>
+    1105:1105:void <init>(java.lang.String,int) -> <init>
+    1105:1105:androidx.constraintlayout.motion.widget.MotionLayout$TransitionState valueOf(java.lang.String) -> valueOf
+    1105:1105:androidx.constraintlayout.motion.widget.MotionLayout$TransitionState[] values() -> values
+androidx.constraintlayout.motion.widget.MotionPaths -> androidx.constraintlayout.motion.widget.MotionPaths:
+    54:54:void <clinit>() -> <clinit>
+    56:489:void <init>() -> <init>
+    56:489:void <init>(int,int,androidx.constraintlayout.motion.widget.KeyPosition,androidx.constraintlayout.motion.widget.MotionPaths,androidx.constraintlayout.motion.widget.MotionPaths) -> <init>
+    915:931:void applyParameters(androidx.constraintlayout.widget.ConstraintSet$Constraint) -> applyParameters
+    39:39:int compareTo(java.lang.Object) -> compareTo
+    911:911:int compareTo(androidx.constraintlayout.motion.widget.MotionPaths) -> compareTo
+    934:935:void configureRelativeTo(androidx.constraintlayout.motion.widget.MotionController) -> configureRelativeTo
+    298:301:boolean diff(float,float) -> diff
+    305:314:void different(androidx.constraintlayout.motion.widget.MotionPaths,boolean[],java.lang.String[],boolean) -> different
+    863:870:void fillStandard(double[],int[]) -> fillStandard
+    461:486:void getBounds(int[],double[],float[],int) -> getBounds
+    317:356:void getCenter(double,int[],double[],float[],int) -> getCenter
+    359:418:void getCenter(double,int[],double[],float[],double[],float[]) -> getCenter
+    420:458:void getCenterVelocity(double,int[],double[],float[],int) -> getCenterVelocity
+    885:898:int getCustomData(java.lang.String,double[],int) -> getCustomData
+    877:881:int getCustomDataCount(java.lang.String) -> getCustomDataCount
+    649:773:void getRect(int[],double[],float[],int) -> getRect
+    873:873:boolean hasCustomData(java.lang.String) -> hasCustomData
+    86:121:void initCartesian(androidx.constraintlayout.motion.widget.KeyPosition,androidx.constraintlayout.motion.widget.MotionPaths,androidx.constraintlayout.motion.widget.MotionPaths) -> initCartesian
+    243:283:void initPath(androidx.constraintlayout.motion.widget.KeyPosition,androidx.constraintlayout.motion.widget.MotionPaths,androidx.constraintlayout.motion.widget.MotionPaths) -> initPath
+    150:183:void initPolar(int,int,androidx.constraintlayout.motion.widget.KeyPosition,androidx.constraintlayout.motion.widget.MotionPaths,androidx.constraintlayout.motion.widget.MotionPaths) -> initPolar
+    200:239:void initScreen(int,int,androidx.constraintlayout.motion.widget.KeyPosition,androidx.constraintlayout.motion.widget.MotionPaths,androidx.constraintlayout.motion.widget.MotionPaths) -> initScreen
+    903:907:void setBounds(float,float,float,float) -> setBounds
+    787:860:void setDpDt(float,float,float[],int[],double[],double[]) -> setDpDt
+    493:646:void setView(float,android.view.View,int[],double[],double[],double[]) -> setView
+    186:197:void setupRelative(androidx.constraintlayout.motion.widget.MotionController,androidx.constraintlayout.motion.widget.MotionPaths) -> setupRelative
+    286:288:float xRotate(float,float,float,float,float,float) -> xRotate
+    292:294:float yRotate(float,float,float,float,float,float) -> yRotate
+androidx.constraintlayout.motion.widget.MotionScene -> androidx.constraintlayout.motion.widget.MotionScene:
+    70:1017:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    70:1026:void <init>(android.content.Context,androidx.constraintlayout.motion.widget.MotionLayout,int) -> <init>
+    60:60:int access$1000(androidx.constraintlayout.motion.widget.MotionScene) -> access$1000
+    60:60:android.util.SparseArray access$1100(androidx.constraintlayout.motion.widget.MotionScene) -> access$1100
+    60:60:int access$1200(androidx.constraintlayout.motion.widget.MotionScene,android.content.Context,int) -> access$1200
+    60:60:androidx.constraintlayout.motion.widget.MotionLayout access$700(androidx.constraintlayout.motion.widget.MotionScene) -> access$700
+    60:60:int access$900(androidx.constraintlayout.motion.widget.MotionScene) -> access$900
+    260:289:void addOnClickListeners(androidx.constraintlayout.motion.widget.MotionLayout,int) -> addOnClickListeners
+    175:181:void addTransition(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> addTransition
+    460:460:boolean applyViewTransition(int,androidx.constraintlayout.motion.widget.MotionController) -> applyViewTransition
+    379:433:boolean autoTransition(androidx.constraintlayout.motion.widget.MotionLayout,int) -> autoTransition
+    292:345:androidx.constraintlayout.motion.widget.MotionScene$Transition bestTransitionFor(int,float,float,android.view.MotionEvent) -> bestTransitionFor
+    1850:1851:void disableAutoTransition(boolean) -> disableAutoTransition
+    452:453:void enableViewTransition(int,boolean) -> enableViewTransition
+    1651:1651:int gatPathMotionArc() -> gatPathMotionArc
+    1715:1718:int getAutoCompleteMode() -> getAutoCompleteMode
+    1261:1275:androidx.constraintlayout.widget.ConstraintSet getConstraintSet(android.content.Context,java.lang.String) -> getConstraintSet
+    1279:1279:androidx.constraintlayout.widget.ConstraintSet getConstraintSet(int) -> getConstraintSet
+    1283:1297:androidx.constraintlayout.widget.ConstraintSet getConstraintSet(int,int,int) -> getConstraintSet
+    362:366:int[] getConstraintSetIds() -> getConstraintSetIds
+    349:349:java.util.ArrayList getDefinedTransitions() -> getDefinedTransitions
+    1631:1634:int getDuration() -> getDuration
+    1580:1583:int getEndId() -> getEndId
+    1160:1175:int getId(android.content.Context,java.lang.String) -> getId
+    200:212:int getIndex(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> getIndex
+    1595:1622:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    1339:1357:androidx.constraintlayout.motion.widget.Key getKeyFrame(android.content.Context,int,int,int) -> getKeyFrame
+    1316:1327:void getKeyFrames(androidx.constraintlayout.motion.widget.MotionController) -> getKeyFrames
+    1862:1863:java.lang.String getLine(android.content.Context,int,org.xmlpull.v1.XmlPullParser) -> getLine
+    1668:1671:float getMaxAcceleration() -> getMaxAcceleration
+    1675:1678:float getMaxVelocity() -> getMaxVelocity
+    1727:1730:boolean getMoveWhenScrollAtTop() -> getMoveWhenScrollAtTop
+    1433:1433:float getPathPercent(android.view.View,int) -> getPathPercent
+    1564:1567:float getProgressDirection(float,float) -> getProgressDirection
+    237:243:int getRealID(int) -> getRealID
+    1709:1712:int getSpringBoundary() -> getSpringBoundary
+    1696:1699:float getSpringDamping() -> getSpringDamping
+    1689:1692:float getSpringMass() -> getSpringMass
+    1682:1685:float getSpringStiffiness() -> getSpringStiffiness
+    1703:1706:float getSpringStopThreshold() -> getSpringStopThreshold
+    1661:1664:float getStaggered() -> getStaggered
+    1573:1576:int getStartId() -> getStartId
+    353:358:androidx.constraintlayout.motion.widget.MotionScene$Transition getTransitionById(int) -> getTransitionById
+    1361:1366:int getTransitionDirection(int) -> getTransitionDirection
+    247:255:java.util.List getTransitionsWithState(int) -> getTransitionsWithState
+    1758:1769:boolean hasCycleDependency(int) -> hasCycleDependency
+    1377:1388:boolean hasKeyFramePosition(android.view.View,int) -> hasKeyFramePosition
+    437:437:boolean isProcessingTouch() -> isProcessingTouch
+    456:456:boolean isViewTransitionEnabled(int) -> isViewTransitionEnabled
+    1036:1139:void load(android.content.Context,int) -> load
+    1817:1821:int lookUpConstraintId(java.lang.String) -> lookUpConstraintId
+    1831:1841:java.lang.String lookUpConstraintName(int) -> lookUpConstraintName
+    1258:1258:void onLayout(boolean,int,int,int,int) -> onLayout
+    1219:1254:int parseConstraintSet(android.content.Context,org.xmlpull.v1.XmlPullParser) -> parseConstraintSet
+    1179:1189:void parseInclude(android.content.Context,org.xmlpull.v1.XmlPullParser) -> parseInclude
+    1192:1215:int parseInclude(android.content.Context,int) -> parseInclude
+    1142:1157:void parseMotionSceneTags(android.content.Context,org.xmlpull.v1.XmlPullParser) -> parseMotionSceneTags
+    1545:1548:void processScrollMove(float,float) -> processScrollMove
+    1551:1554:void processScrollUp(float,float) -> processScrollUp
+    1454:1542:void processTouchEvent(android.view.MotionEvent,int,androidx.constraintlayout.motion.widget.MotionLayout) -> processTouchEvent
+    1779:1797:void readConstraintChain(int,androidx.constraintlayout.motion.widget.MotionLayout) -> readConstraintChain
+    1741:1749:void readFallback(androidx.constraintlayout.motion.widget.MotionLayout) -> readFallback
+    190:194:void removeTransition(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> removeTransition
+    1307:1308:void setConstraintSet(int,androidx.constraintlayout.widget.ConstraintSet) -> setConstraintSet
+    1643:1648:void setDuration(int) -> setDuration
+    1395:1430:void setKeyframe(android.view.View,int,java.lang.String,java.lang.Object) -> setKeyframe
+    441:445:void setRtl(boolean) -> setRtl
+    111:166:void setTransition(int,int) -> setTransition
+    230:234:void setTransition(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> setTransition
+    1721:1724:void setupTouch() -> setupTouch
+    1800:1807:java.lang.String stripID(java.lang.String) -> stripID
+    1440:1445:boolean supportTouch() -> supportTouch
+    220:220:boolean validateLayout(androidx.constraintlayout.motion.widget.MotionLayout) -> validateLayout
+    448:449:void viewTransition(int,android.view.View[]) -> viewTransition
+androidx.constraintlayout.motion.widget.MotionScene$1 -> androidx.constraintlayout.motion.widget.MotionScene$1:
+    1598:1598:void <init>(androidx.constraintlayout.motion.widget.MotionScene,androidx.constraintlayout.core.motion.utils.Easing) -> <init>
+    1601:1601:float getInterpolation(float) -> getInterpolation
+androidx.constraintlayout.motion.widget.MotionScene$Transition -> androidx.constraintlayout.motion.widget.MotionScene$Transition:
+    472:887:void <init>(androidx.constraintlayout.motion.widget.MotionScene,androidx.constraintlayout.motion.widget.MotionScene$Transition) -> <init>
+    472:909:void <init>(int,androidx.constraintlayout.motion.widget.MotionScene,int,int) -> <init>
+    472:916:void <init>(androidx.constraintlayout.motion.widget.MotionScene,android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    471:471:int access$000(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$000
+    471:471:int access$002(androidx.constraintlayout.motion.widget.MotionScene$Transition,int) -> access$002
+    471:471:int access$100(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$100
+    471:471:int access$102(androidx.constraintlayout.motion.widget.MotionScene$Transition,int) -> access$102
+    471:471:boolean access$1300(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1300
+    471:471:java.util.ArrayList access$1400(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1400
+    471:471:int access$1500(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1500
+    471:471:java.lang.String access$1600(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1600
+    471:471:int access$1700(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1700
+    471:471:int access$1800(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1800
+    471:471:int access$1900(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$1900
+    471:471:androidx.constraintlayout.motion.widget.TouchResponse access$200(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$200
+    471:471:float access$2000(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$2000
+    471:471:androidx.constraintlayout.motion.widget.TouchResponse access$202(androidx.constraintlayout.motion.widget.MotionScene$Transition,androidx.constraintlayout.motion.widget.TouchResponse) -> access$202
+    471:471:int access$300(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$300
+    471:471:java.util.ArrayList access$400(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$400
+    471:471:boolean access$500(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$500
+    471:471:int access$600(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$600
+    471:471:androidx.constraintlayout.motion.widget.MotionScene access$800(androidx.constraintlayout.motion.widget.MotionScene$Transition) -> access$800
+    623:624:void addKeyFrame(androidx.constraintlayout.motion.widget.KeyFrames) -> addKeyFrame
+    504:512:void addOnClick(int,int) -> addOnClick
+    536:537:void addOnClick(android.content.Context,org.xmlpull.v1.XmlPullParser) -> addOnClick
+    715:725:java.lang.String debugString(android.content.Context) -> debugString
+    931:1005:void fill(androidx.constraintlayout.motion.widget.MotionScene,android.content.Context,android.content.res.TypedArray) -> fill
+    925:928:void fillFromAttributeList(androidx.constraintlayout.motion.widget.MotionScene,android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+    557:557:int getAutoTransition() -> getAutoTransition
+    603:603:int getDuration() -> getDuration
+    575:575:int getEndConstraintSetId() -> getEndConstraintSetId
+    566:566:int getId() -> getId
+    616:616:java.util.List getKeyFrameList() -> getKeyFrameList
+    528:528:int getLayoutDuringTransition() -> getLayoutDuringTransition
+    632:632:java.util.List getOnClickList() -> getOnClickList
+    672:672:int getPathMotionArc() -> getPathMotionArc
+    612:612:float getStagger() -> getStagger
+    584:584:int getStartConstraintSetId() -> getStartConstraintSetId
+    641:641:androidx.constraintlayout.motion.widget.TouchResponse getTouchResponse() -> getTouchResponse
+    680:680:boolean isEnabled() -> isEnabled
+    729:729:boolean isTransitionFlag(int) -> isTransitionFlag
+    515:525:void removeOnClick(int) -> removeOnClick
+    547:548:void setAutoTransition(int) -> setAutoTransition
+    594:595:void setDuration(int) -> setDuration
+    693:694:void setEnable(boolean) -> setEnable
+    703:704:void setEnabled(boolean) -> setEnabled
+    919:922:void setInterpolatorInfo(int,java.lang.String,int) -> setInterpolatorInfo
+    532:533:void setLayoutDuringTransition(int) -> setLayoutDuringTransition
+    500:501:void setOnSwipe(androidx.constraintlayout.motion.widget.OnSwipe) -> setOnSwipe
+    737:741:void setOnTouchUp(int) -> setOnTouchUp
+    662:663:void setPathMotionArc(int) -> setPathMotionArc
+    652:653:void setStagger(float) -> setStagger
+    733:734:void setTransitionFlag(int) -> setTransitionFlag
+androidx.constraintlayout.motion.widget.MotionScene$Transition$TransitionOnClick -> androidx.constraintlayout.motion.widget.MotionScene$Transition$TransitionOnClick:
+    745:766:void <init>(android.content.Context,androidx.constraintlayout.motion.widget.MotionScene$Transition,org.xmlpull.v1.XmlPullParser) -> <init>
+    745:772:void <init>(androidx.constraintlayout.motion.widget.MotionScene$Transition,int,int) -> <init>
+    775:796:void addOnClickListeners(androidx.constraintlayout.motion.widget.MotionLayout,int,androidx.constraintlayout.motion.widget.MotionScene$Transition) -> addOnClickListeners
+    811:819:boolean isTransitionViable(androidx.constraintlayout.motion.widget.MotionScene$Transition,androidx.constraintlayout.motion.widget.MotionLayout) -> isTransitionViable
+    825:871:void onClick(android.view.View) -> onClick
+    799:808:void removeOnClickListeners(androidx.constraintlayout.motion.widget.MotionLayout) -> removeOnClickListeners
+androidx.constraintlayout.motion.widget.OnSwipe -> androidx.constraintlayout.motion.widget.OnSwipe:
+    22:41:void <init>() -> <init>
+    393:393:int getAutoCompleteMode() -> getAutoCompleteMode
+    124:124:int getDragDirection() -> getDragDirection
+    187:187:float getDragScale() -> getDragScale
+    204:204:float getDragThreshold() -> getDragThreshold
+    266:266:int getLimitBoundsTo() -> getLimitBoundsTo
+    156:156:float getMaxAcceleration() -> getMaxAcceleration
+    139:139:float getMaxVelocity() -> getMaxVelocity
+    172:172:boolean getMoveWhenScrollAtTop() -> getMoveWhenScrollAtTop
+    251:251:int getNestedScrollFlags() -> getNestedScrollFlags
+    234:234:int getOnTouchUp() -> getOnTouchUp
+    281:281:int getRotationCenterId() -> getRotationCenterId
+    374:374:int getSpringBoundary() -> getSpringBoundary
+    286:286:float getSpringDamping() -> getSpringDamping
+    308:308:float getSpringMass() -> getSpringMass
+    329:329:float getSpringStiffness() -> getSpringStiffness
+    352:352:float getSpringStopThreshold() -> getSpringStopThreshold
+    92:92:int getTouchAnchorId() -> getTouchAnchorId
+    109:109:int getTouchAnchorSide() -> getTouchAnchorSide
+    217:217:int getTouchRegionId() -> getTouchRegionId
+    404:405:void setAutoCompleteMode(int) -> setAutoCompleteMode
+    119:120:androidx.constraintlayout.motion.widget.OnSwipe setDragDirection(int) -> setDragDirection
+    182:183:androidx.constraintlayout.motion.widget.OnSwipe setDragScale(int) -> setDragScale
+    199:200:androidx.constraintlayout.motion.widget.OnSwipe setDragThreshold(int) -> setDragThreshold
+    261:262:androidx.constraintlayout.motion.widget.OnSwipe setLimitBoundsTo(int) -> setLimitBoundsTo
+    151:152:androidx.constraintlayout.motion.widget.OnSwipe setMaxAcceleration(int) -> setMaxAcceleration
+    134:135:androidx.constraintlayout.motion.widget.OnSwipe setMaxVelocity(int) -> setMaxVelocity
+    167:168:androidx.constraintlayout.motion.widget.OnSwipe setMoveWhenScrollAtTop(boolean) -> setMoveWhenScrollAtTop
+    246:247:androidx.constraintlayout.motion.widget.OnSwipe setNestedScrollFlags(int) -> setNestedScrollFlags
+    229:230:androidx.constraintlayout.motion.widget.OnSwipe setOnTouchUp(int) -> setOnTouchUp
+    276:277:androidx.constraintlayout.motion.widget.OnSwipe setRotateCenter(int) -> setRotateCenter
+    388:389:androidx.constraintlayout.motion.widget.OnSwipe setSpringBoundary(int) -> setSpringBoundary
+    297:298:androidx.constraintlayout.motion.widget.OnSwipe setSpringDamping(float) -> setSpringDamping
+    319:320:androidx.constraintlayout.motion.widget.OnSwipe setSpringMass(float) -> setSpringMass
+    342:343:androidx.constraintlayout.motion.widget.OnSwipe setSpringStiffness(float) -> setSpringStiffness
+    364:365:androidx.constraintlayout.motion.widget.OnSwipe setSpringStopThreshold(float) -> setSpringStopThreshold
+    87:88:androidx.constraintlayout.motion.widget.OnSwipe setTouchAnchorId(int) -> setTouchAnchorId
+    104:105:androidx.constraintlayout.motion.widget.OnSwipe setTouchAnchorSide(int) -> setTouchAnchorSide
+    212:213:androidx.constraintlayout.motion.widget.OnSwipe setTouchRegionId(int) -> setTouchRegionId
+androidx.constraintlayout.motion.widget.ProxyInterface -> androidx.constraintlayout.motion.widget.ProxyInterface:
+# {"id":"sourceFile","fileName":"DesignTool.java"}
+androidx.constraintlayout.motion.widget.TouchResponse -> androidx.constraintlayout.motion.widget.TouchResponse:
+    67:76:void <clinit>() -> <clinit>
+    45:121:void <init>(android.content.Context,androidx.constraintlayout.motion.widget.MotionLayout,org.xmlpull.v1.XmlPullParser) -> <init>
+    45:155:void <init>(androidx.constraintlayout.motion.widget.MotionLayout,androidx.constraintlayout.motion.widget.OnSwipe) -> <init>
+    821:821:float dot(float,float) -> dot
+    186:239:void fill(android.content.res.TypedArray) -> fill
+    180:183:void fillFromAttributeList(android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+    702:702:int getAnchorId() -> getAnchorId
+    760:760:int getAutoCompleteMode() -> getAutoCompleteMode
+    834:834:int getFlags() -> getFlags
+    805:813:android.graphics.RectF getLimitBoundsTo(android.view.ViewGroup,android.graphics.RectF) -> getLimitBoundsTo
+    817:817:int getLimitBoundsToId() -> getLimitBoundsToId
+    737:737:float getMaxAcceleration() -> getMaxAcceleration
+    747:747:float getMaxVelocity() -> getMaxVelocity
+    751:751:boolean getMoveWhenScrollAtTop() -> getMoveWhenScrollAtTop
+    588:602:float getProgressDirection(float,float) -> getProgressDirection
+    885:885:int getSpringBoundary() -> getSpringBoundary
+    865:865:float getSpringDamping() -> getSpringDamping
+    856:856:float getSpringMass() -> getSpringMass
+    847:847:float getSpringStiffness() -> getSpringStiffness
+    873:873:float getSpringStopThreshold() -> getSpringStopThreshold
+    781:789:android.graphics.RectF getTouchRegion(android.view.ViewGroup,android.graphics.RectF) -> getTouchRegion
+    793:793:int getTouchRegionId() -> getTouchRegionId
+    412:573:void processTouchEvent(android.view.MotionEvent,androidx.constraintlayout.motion.widget.MotionLayout$MotionTracker,int,androidx.constraintlayout.motion.widget.MotionScene) -> processTouchEvent
+    254:399:void processTouchRotateEvent(android.view.MotionEvent,androidx.constraintlayout.motion.widget.MotionLayout$MotionTracker,int,androidx.constraintlayout.motion.widget.MotionScene) -> processTouchRotateEvent
+    627:658:void scrollMove(float,float) -> scrollMove
+    606:623:void scrollUp(float,float) -> scrollUp
+    693:694:void setAnchorId(int) -> setAnchorId
+    769:770:void setAutoCompleteMode(int) -> setAutoCompleteMode
+    576:578:void setDown(float,float) -> setDown
+    733:734:void setMaxAcceleration(float) -> setMaxAcceleration
+    723:724:void setMaxVelocity(float) -> setMaxVelocity
+    158:177:void setRTL(boolean) -> setRTL
+    712:714:void setTouchAnchorLocation(float,float) -> setTouchAnchorLocation
+    838:839:void setTouchUpMode(int) -> setTouchUpMode
+    242:245:void setUpTouchEvent(float,float) -> setUpTouchEvent
+    662:685:void setupTouch() -> setupTouch
+    825:825:java.lang.String toString() -> toString
+androidx.constraintlayout.motion.widget.TouchResponse$1 -> androidx.constraintlayout.motion.widget.TouchResponse$1:
+    671:671:void <init>(androidx.constraintlayout.motion.widget.TouchResponse) -> <init>
+    674:674:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+androidx.constraintlayout.motion.widget.TouchResponse$2 -> androidx.constraintlayout.motion.widget.TouchResponse$2:
+    677:677:void <init>(androidx.constraintlayout.motion.widget.TouchResponse) -> <init>
+    682:682:void onScrollChange(androidx.core.widget.NestedScrollView,int,int,int,int) -> onScrollChange
+androidx.constraintlayout.motion.widget.TransitionAdapter -> androidx.constraintlayout.motion.widget.TransitionAdapter:
+    3:3:void <init>() -> <init>
+    12:12:void onTransitionChange(androidx.constraintlayout.motion.widget.MotionLayout,int,int,float) -> onTransitionChange
+    17:17:void onTransitionCompleted(androidx.constraintlayout.motion.widget.MotionLayout,int) -> onTransitionCompleted
+    7:7:void onTransitionStarted(androidx.constraintlayout.motion.widget.MotionLayout,int,int) -> onTransitionStarted
+    22:22:void onTransitionTrigger(androidx.constraintlayout.motion.widget.MotionLayout,int,boolean,float) -> onTransitionTrigger
+androidx.constraintlayout.motion.widget.TransitionBuilder -> androidx.constraintlayout.motion.widget.TransitionBuilder:
+    26:26:void <init>() -> <init>
+    62:69:androidx.constraintlayout.motion.widget.MotionScene$Transition buildTransition(androidx.constraintlayout.motion.widget.MotionScene,int,int,androidx.constraintlayout.widget.ConstraintSet,int,androidx.constraintlayout.widget.ConstraintSet) -> buildTransition
+    80:85:void updateConstraintSetInMotionScene(androidx.constraintlayout.motion.widget.MotionScene,androidx.constraintlayout.motion.widget.MotionScene$Transition,androidx.constraintlayout.widget.ConstraintSet,androidx.constraintlayout.widget.ConstraintSet) -> updateConstraintSetInMotionScene
+    35:47:void validate(androidx.constraintlayout.motion.widget.MotionLayout) -> validate
+androidx.constraintlayout.motion.widget.ViewTransition -> androidx.constraintlayout.motion.widget.ViewTransition:
+    void $r8$lambda$R5MnrVoAl7eqn8MpswIds-XSqNs(androidx.constraintlayout.motion.widget.ViewTransition,android.view.View[]) -> $r8$lambda$R5MnrVoAl7eqn8MpswIds-XSqNs
+      # {"id":"com.android.tools.r8.synthesized"}
+    60:60:void <clinit>() -> <clinit>
+    77:259:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    330:337:void applyIndependentTransition(androidx.constraintlayout.motion.widget.ViewTransitionController,androidx.constraintlayout.motion.widget.MotionLayout,android.view.View) -> applyIndependentTransition
+    475:530:void applyTransition(androidx.constraintlayout.motion.widget.ViewTransitionController,androidx.constraintlayout.motion.widget.MotionLayout,int,androidx.constraintlayout.widget.ConstraintSet,android.view.View[]) -> applyTransition
+    607:609:boolean checkTags(android.view.View) -> checkTags
+    551:551:int getId() -> getId
+    182:209:android.view.animation.Interpolator getInterpolator(android.content.Context) -> getInterpolator
+    151:151:int getSharedValue() -> getSharedValue
+    120:120:int getSharedValueCurrent() -> getSharedValueCurrent
+    167:167:int getSharedValueID() -> getSharedValueID
+    133:133:int getStateTransition() -> getStateTransition
+    598:598:boolean isEnabled() -> isEnabled
+    519:529:void lambda$applyTransition$0(android.view.View[]) -> lambda$applyTransition$0
+    559:581:boolean matchesView(android.view.View) -> matchesView
+    262:327:void parseViewTransitionTags(android.content.Context,org.xmlpull.v1.XmlPullParser) -> parseViewTransitionTags
+    602:603:void setEnabled(boolean) -> setEnabled
+    555:556:void setId(int) -> setId
+    158:159:void setSharedValue(int) -> setSharedValue
+    124:125:void setSharedValueCurrent(int) -> setSharedValueCurrent
+    174:175:void setSharedValueID(int) -> setSharedValueID
+    142:143:void setStateTransition(int) -> setStateTransition
+    585:594:boolean supports(int) -> supports
+    178:178:java.lang.String toString() -> toString
+    533:548:void updateTransition(androidx.constraintlayout.motion.widget.MotionScene$Transition,android.view.View) -> updateTransition
+androidx.constraintlayout.motion.widget.ViewTransition$$ExternalSyntheticLambda0 -> androidx.constraintlayout.motion.widget.ViewTransition$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    android.view.View[] androidx.constraintlayout.motion.widget.ViewTransition$$InternalSyntheticLambda$0$3650b6f22807ec68045e6a594276eaff908aea753fe513c49871a8412ea5c505$0.f$1 -> f$1
+    androidx.constraintlayout.motion.widget.ViewTransition androidx.constraintlayout.motion.widget.ViewTransition$$InternalSyntheticLambda$0$3650b6f22807ec68045e6a594276eaff908aea753fe513c49871a8412ea5c505$0.f$0 -> f$0
+    void androidx.constraintlayout.motion.widget.ViewTransition$$InternalSyntheticLambda$0$3650b6f22807ec68045e6a594276eaff908aea753fe513c49871a8412ea5c505$0.<init>(androidx.constraintlayout.motion.widget.ViewTransition,android.view.View[]) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void androidx.constraintlayout.motion.widget.ViewTransition$$InternalSyntheticLambda$0$3650b6f22807ec68045e6a594276eaff908aea753fe513c49871a8412ea5c505$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+androidx.constraintlayout.motion.widget.ViewTransition$1 -> androidx.constraintlayout.motion.widget.ViewTransition$1:
+    185:185:void <init>(androidx.constraintlayout.motion.widget.ViewTransition,androidx.constraintlayout.core.motion.utils.Easing) -> <init>
+    188:188:float getInterpolation(float) -> getInterpolation
+androidx.constraintlayout.motion.widget.ViewTransition$Animate -> androidx.constraintlayout.motion.widget.ViewTransition$Animate:
+    346:375:void <init>(androidx.constraintlayout.motion.widget.ViewTransitionController,androidx.constraintlayout.motion.widget.MotionController,int,int,int,android.view.animation.Interpolator,int,int) -> <init>
+    387:392:void mutate() -> mutate
+    423:450:void mutateForward() -> mutateForward
+    395:419:void mutateReverse() -> mutateReverse
+    453:467:void reactTo(int,float,float) -> reactTo
+    378:384:void reverse(boolean) -> reverse
+androidx.constraintlayout.motion.widget.ViewTransitionController -> androidx.constraintlayout.motion.widget.ViewTransitionController:
+    37:193:void <init>(androidx.constraintlayout.motion.widget.MotionLayout) -> <init>
+    35:35:androidx.constraintlayout.motion.widget.MotionLayout access$000(androidx.constraintlayout.motion.widget.ViewTransitionController) -> access$000
+    46:54:void add(androidx.constraintlayout.motion.widget.ViewTransition) -> add
+    196:200:void addAnimation(androidx.constraintlayout.motion.widget.ViewTransition$Animate) -> addAnimation
+    210:221:void animate() -> animate
+    228:234:boolean applyViewTransition(int,androidx.constraintlayout.motion.widget.MotionController) -> applyViewTransition
+    89:95:void enableViewTransition(int,boolean) -> enableViewTransition
+    224:225:void invalidate() -> invalidate
+    98:103:boolean isViewTransitionEnabled(int) -> isViewTransitionEnabled
+    238:276:void listenForSharedVariable(androidx.constraintlayout.motion.widget.ViewTransition,boolean) -> listenForSharedVariable
+    57:68:void remove(int) -> remove
+    203:204:void removeAnimation(androidx.constraintlayout.motion.widget.ViewTransition$Animate) -> removeAnimation
+    141:190:void touchEvent(android.view.MotionEvent) -> touchEvent
+    71:86:void viewTransition(androidx.constraintlayout.motion.widget.ViewTransition,android.view.View[]) -> viewTransition
+    113:133:void viewTransition(int,android.view.View[]) -> viewTransition
+androidx.constraintlayout.motion.widget.ViewTransitionController$1 -> androidx.constraintlayout.motion.widget.ViewTransitionController$1:
+    241:241:void <init>(androidx.constraintlayout.motion.widget.ViewTransitionController,androidx.constraintlayout.motion.widget.ViewTransition,int,boolean,int) -> <init>
+    244:274:void onNewValue(int,int,int) -> onNewValue
+androidx.constraintlayout.utils.widget.ImageFilterButton -> androidx.constraintlayout.utils.widget.ImageFilterButton:
+    87:186:void <init>(android.content.Context) -> <init>
+    87:186:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    87:186:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    86:86:float access$000(androidx.constraintlayout.utils.widget.ImageFilterButton) -> access$000
+    86:86:float access$100(androidx.constraintlayout.utils.widget.ImageFilterButton) -> access$100
+    598:610:void draw(android.graphics.Canvas) -> draw
+    410:410:float getContrast() -> getContrast
+    455:455:float getCrossfade() -> getCrossfade
+    198:198:float getImagePanX() -> getImagePanX
+    211:211:float getImagePanY() -> getImagePanY
+    229:229:float getImageRotate() -> getImageRotate
+    220:220:float getImageZoom() -> getImageZoom
+    593:593:float getRound() -> getRound
+    584:584:float getRoundPercent() -> getRoundPercent
+    391:391:float getSaturation() -> getSaturation
+    429:429:float getWarmth() -> getWarmth
+    117:175:void init(android.content.Context,android.util.AttributeSet) -> init
+    614:616:void layout(int,int,int,int) -> layout
+    314:320:void setAltImageResource(int) -> setAltImageResource
+    466:468:void setBrightness(float) -> setBrightness
+    400:402:void setContrast(float) -> setContrast
+    439:447:void setCrossfade(float) -> setCrossfade
+    282:292:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    242:244:void setImagePanX(float) -> setImagePanX
+    256:258:void setImagePanY(float) -> setImagePanY
+    296:306:void setImageResource(int) -> setImageResource
+    276:278:void setImageRotate(float) -> setImageRotate
+    266:268:void setImageZoom(float) -> setImageZoom
+    335:360:void setMatrix() -> setMatrix
+    370:371:void setOverlay(boolean) -> setOverlay
+    528:576:void setRound(float) -> setRound
+    478:519:void setRoundPercent(float) -> setRoundPercent
+    381:383:void setSaturation(float) -> setSaturation
+    419:421:void setWarmth(float) -> setWarmth
+    323:332:void updateViewMatrix() -> updateViewMatrix
+androidx.constraintlayout.utils.widget.ImageFilterButton$1 -> androidx.constraintlayout.utils.widget.ImageFilterButton$1:
+    489:489:void <init>(androidx.constraintlayout.utils.widget.ImageFilterButton) -> <init>
+    492:496:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.ImageFilterButton$2 -> androidx.constraintlayout.utils.widget.ImageFilterButton$2:
+    547:547:void <init>(androidx.constraintlayout.utils.widget.ImageFilterButton) -> <init>
+    550:553:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.ImageFilterView -> androidx.constraintlayout.utils.widget.ImageFilterView:
+    287:485:void <init>(android.content.Context) -> <init>
+    287:490:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    287:495:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    88:88:float access$000(androidx.constraintlayout.utils.widget.ImageFilterView) -> access$000
+    88:88:float access$100(androidx.constraintlayout.utils.widget.ImageFilterView) -> access$100
+    802:814:void draw(android.graphics.Canvas) -> draw
+    671:671:float getBrightness() -> getBrightness
+    606:606:float getContrast() -> getContrast
+    650:650:float getCrossfade() -> getCrossfade
+    323:323:float getImagePanX() -> getImagePanX
+    336:336:float getImagePanY() -> getImagePanY
+    354:354:float getImageRotate() -> getImageRotate
+    345:345:float getImageZoom() -> getImageZoom
+    797:797:float getRound() -> getRound
+    788:788:float getRoundPercent() -> getRoundPercent
+    587:587:float getSaturation() -> getSaturation
+    625:625:float getWarmth() -> getWarmth
+    498:557:void init(android.content.Context,android.util.AttributeSet) -> init
+    818:820:void layout(int,int,int,int) -> layout
+    434:440:void setAltImageResource(int) -> setAltImageResource
+    661:663:void setBrightness(float) -> setBrightness
+    596:598:void setContrast(float) -> setContrast
+    634:642:void setCrossfade(float) -> setCrossfade
+    407:417:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    367:369:void setImagePanX(float) -> setImagePanX
+    381:383:void setImagePanY(float) -> setImagePanY
+    421:431:void setImageResource(int) -> setImageResource
+    401:403:void setImageRotate(float) -> setImageRotate
+    391:393:void setImageZoom(float) -> setImageZoom
+    455:480:void setMatrix() -> setMatrix
+    566:567:void setOverlay(boolean) -> setOverlay
+    733:780:void setRound(float) -> setRound
+    682:724:void setRoundPercent(float) -> setRoundPercent
+    577:579:void setSaturation(float) -> setSaturation
+    615:617:void setWarmth(float) -> setWarmth
+    443:452:void updateViewMatrix() -> updateViewMatrix
+androidx.constraintlayout.utils.widget.ImageFilterView$1 -> androidx.constraintlayout.utils.widget.ImageFilterView$1:
+    693:693:void <init>(androidx.constraintlayout.utils.widget.ImageFilterView) -> <init>
+    696:700:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.ImageFilterView$2 -> androidx.constraintlayout.utils.widget.ImageFilterView$2:
+    752:752:void <init>(androidx.constraintlayout.utils.widget.ImageFilterView) -> <init>
+    755:758:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.ImageFilterView$ImageMatrix -> androidx.constraintlayout.utils.widget.ImageFilterView$ImageMatrix:
+    89:96:void <init>() -> <init>
+    228:251:void brightness(float) -> brightness
+    99:132:void saturation(float) -> saturation
+    254:284:void updateMatrix(android.widget.ImageView) -> updateMatrix
+    135:224:void warmth(float) -> warmth
+androidx.constraintlayout.utils.widget.MockView -> androidx.constraintlayout.utils.widget.MockView:
+    23:38:void <init>(android.content.Context) -> <init>
+    23:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    23:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    51:84:void init(android.content.Context,android.util.AttributeSet) -> init
+    88:111:void onDraw(android.graphics.Canvas) -> onDraw
+androidx.constraintlayout.utils.widget.MotionButton -> androidx.constraintlayout.utils.widget.MotionButton:
+    59:68:void <init>(android.content.Context) -> <init>
+    59:73:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    59:78:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    58:58:float access$000(androidx.constraintlayout.utils.widget.MotionButton) -> access$000
+    58:58:float access$100(androidx.constraintlayout.utils.widget.MotionButton) -> access$100
+    230:242:void draw(android.graphics.Canvas) -> draw
+    225:225:float getRound() -> getRound
+    216:216:float getRoundPercent() -> getRoundPercent
+    81:100:void init(android.content.Context,android.util.AttributeSet) -> init
+    160:208:void setRound(float) -> setRound
+    110:151:void setRoundPercent(float) -> setRoundPercent
+androidx.constraintlayout.utils.widget.MotionButton$1 -> androidx.constraintlayout.utils.widget.MotionButton$1:
+    121:121:void <init>(androidx.constraintlayout.utils.widget.MotionButton) -> <init>
+    124:128:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.MotionButton$2 -> androidx.constraintlayout.utils.widget.MotionButton$2:
+    179:179:void <init>(androidx.constraintlayout.utils.widget.MotionButton) -> <init>
+    182:185:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.MotionLabel -> androidx.constraintlayout.utils.widget.MotionLabel:
+    65:65:void <clinit>() -> <clinit>
+    66:828:void <init>(android.content.Context) -> <init>
+    66:828:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    66:828:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    64:64:float access$000(androidx.constraintlayout.utils.widget.MotionLabel) -> access$000
+    64:64:float access$100(androidx.constraintlayout.utils.widget.MotionLabel) -> access$100
+    262:269:void adjustTexture(float,float,float,float) -> adjustTexture
+    204:221:android.graphics.Bitmap blur(android.graphics.Bitmap,int) -> blur
+    373:396:void buildShape(float) -> buildShape
+    323:329:float getHorizontalOffset() -> getHorizontalOffset
+    801:801:float getRound() -> getRound
+    792:792:float getRoundPercent() -> getRoundPercent
+    1041:1041:float getScaleFromTextSize() -> getScaleFromTextSize
+    840:840:float getTextBackgroundPanX() -> getTextBackgroundPanX
+    853:853:float getTextBackgroundPanY() -> getTextBackgroundPanY
+    871:871:float getTextBackgroundRotate() -> getTextBackgroundRotate
+    862:862:float getTextBackgroundZoom() -> getTextBackgroundZoom
+    821:821:int getTextOutlineColor() -> getTextOutlineColor
+    962:962:float getTextPanX() -> getTextPanX
+    981:981:float getTextPanY() -> getTextPanY
+    1000:1000:float getTextureHeight() -> getTextureHeight
+    1020:1020:float getTextureWidth() -> getTextureWidth
+    632:632:android.graphics.Typeface getTypeface() -> getTypeface
+    333:342:float getVerticalOffset() -> getVerticalOffset
+    129:201:void init(android.content.Context,android.util.AttributeSet) -> init
+    404:438:void layout(int,int,int,int) -> layout
+    442:480:void layout(float,float,float,float) -> layout
+    484:542:void onDraw(android.graphics.Canvas) -> onDraw
+    637:675:void onMeasure(int,int) -> onMeasure
+    281:320:void setGravity(int) -> setGravity
+    736:784:void setRound(float) -> setRound
+    687:727:void setRoundPercent(float) -> setRoundPercent
+    1052:1053:void setScaleFromTextSize(float) -> setScaleFromTextSize
+    353:355:void setText(java.lang.CharSequence) -> setText
+    884:887:void setTextBackgroundPanX(float) -> setTextBackgroundPanX
+    899:902:void setTextBackgroundPanY(float) -> setTextBackgroundPanY
+    921:924:void setTextBackgroundRotate(float) -> setTextBackgroundRotate
+    910:913:void setTextBackgroundZoom(float) -> setTextBackgroundZoom
+    560:562:void setTextFillColor(int) -> setTextFillColor
+    570:573:void setTextOutlineColor(int) -> setTextOutlineColor
+    545:552:void setTextOutlineThickness(float) -> setTextOutlineThickness
+    971:973:void setTextPanX(float) -> setTextPanX
+    990:992:void setTextPanY(float) -> setTextPanY
+    812:818:void setTextSize(float) -> setTextSize
+    1009:1012:void setTextureHeight(float) -> setTextureHeight
+    1029:1032:void setTextureWidth(float) -> setTextureWidth
+    616:624:void setTypeface(android.graphics.Typeface) -> setTypeface
+    576:613:void setTypefaceFromAttrs(java.lang.String,int,int) -> setTypefaceFromAttrs
+    346:350:void setUpTheme(android.content.Context,android.util.AttributeSet) -> setUpTheme
+    358:370:void setupPath() -> setupPath
+    225:259:void setupTexture() -> setupTexture
+    927:954:void updateShaderMatrix() -> updateShaderMatrix
+androidx.constraintlayout.utils.widget.MotionLabel$1 -> androidx.constraintlayout.utils.widget.MotionLabel$1:
+    698:698:void <init>(androidx.constraintlayout.utils.widget.MotionLabel) -> <init>
+    701:705:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.MotionLabel$2 -> androidx.constraintlayout.utils.widget.MotionLabel$2:
+    755:755:void <init>(androidx.constraintlayout.utils.widget.MotionLabel) -> <init>
+    758:761:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+androidx.constraintlayout.utils.widget.MotionTelltales -> androidx.constraintlayout.utils.widget.MotionTelltales:
+    47:57:void <init>(android.content.Context) -> <init>
+    47:62:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:68:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    70:87:void init(android.content.Context,android.util.AttributeSet) -> init
+    91:93:void onAttachedToWindow() -> onAttachedToWindow
+    107:138:void onDraw(android.graphics.Canvas) -> onDraw
+    101:103:void onLayout(boolean,int,int,int,int) -> onLayout
+    95:97:void setText(java.lang.CharSequence) -> setText
+androidx.constraintlayout.widget.Barrier -> androidx.constraintlayout.widget.Barrier:
+    118:120:void <init>(android.content.Context) -> <init>
+    123:125:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    128:130:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    230:230:boolean allowsGoneWidget() -> allowsGoneWidget
+    239:239:boolean getAllowsGoneWidget() -> getAllowsGoneWidget
+    259:259:int getMargin() -> getMargin
+    138:138:int getType() -> getType
+    193:213:void init(android.util.AttributeSet) -> init
+    273:282:void loadParameters(androidx.constraintlayout.widget.ConstraintSet$Constraint,androidx.constraintlayout.core.widgets.HelperWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> loadParameters
+    184:185:void resolveRtl(androidx.constraintlayout.core.widgets.ConstraintWidget,boolean) -> resolveRtl
+    216:217:void setAllowsGoneWidget(boolean) -> setAllowsGoneWidget
+    248:251:void setDpMargin(int) -> setDpMargin
+    268:269:void setMargin(int) -> setMargin
+    147:148:void setType(int) -> setType
+    151:180:void updateType(androidx.constraintlayout.core.widgets.ConstraintWidget,int,boolean) -> updateType
+androidx.constraintlayout.widget.ConstraintAttribute -> androidx.constraintlayout.widget.ConstraintAttribute:
+    44:229:void <init>(java.lang.String,androidx.constraintlayout.widget.ConstraintAttribute$AttributeType) -> <init>
+    44:236:void <init>(java.lang.String,androidx.constraintlayout.widget.ConstraintAttribute$AttributeType,java.lang.Object,boolean) -> <init>
+    44:243:void <init>(androidx.constraintlayout.widget.ConstraintAttribute,java.lang.Object) -> <init>
+    359:412:void applyCustom(android.view.View) -> applyCustom
+    415:420:int clamp(int) -> clamp
+    204:223:boolean diff(androidx.constraintlayout.widget.ConstraintAttribute) -> diff
+    272:296:java.util.HashMap extractAttributes(java.util.HashMap,android.view.View) -> extractAttributes
+    65:65:androidx.constraintlayout.widget.ConstraintAttribute$AttributeType getType() -> getType
+    121:136:float getValueToInterpolate() -> getValueToInterpolate
+    140:170:void getValuesToInterpolate(float[]) -> getValuesToInterpolate
+    73:79:boolean isContinuous() -> isContinuous
+    106:111:int numberOfInterpolatedValues() -> numberOfInterpolatedValues
+    483:540:void parse(android.content.Context,org.xmlpull.v1.XmlPullParser,java.util.HashMap) -> parse
+    300:356:void setAttributes(android.view.View,java.util.HashMap) -> setAttributes
+    88:89:void setColorValue(int) -> setColorValue
+    84:85:void setFloatValue(float) -> setFloatValue
+    92:93:void setIntValue(int) -> setIntValue
+    424:480:void setInterpolatedValue(android.view.View,float[]) -> setInterpolatedValue
+    96:97:void setStringValue(java.lang.String) -> setStringValue
+    173:195:void setValue(float[]) -> setValue
+    246:268:void setValue(java.lang.Object) -> setValue
+androidx.constraintlayout.widget.ConstraintAttribute$1 -> androidx.constraintlayout.widget.ConstraintAttribute$1:
+    73:73:void <clinit>() -> <clinit>
+androidx.constraintlayout.widget.ConstraintAttribute$AttributeType -> androidx.constraintlayout.widget.ConstraintAttribute$AttributeType:
+    53:61:void <clinit>() -> <clinit>
+    53:53:void <init>(java.lang.String,int) -> <init>
+    53:53:androidx.constraintlayout.widget.ConstraintAttribute$AttributeType valueOf(java.lang.String) -> valueOf
+    53:53:androidx.constraintlayout.widget.ConstraintAttribute$AttributeType[] values() -> values
+androidx.constraintlayout.widget.ConstraintHelper -> androidx.constraintlayout.widget.ConstraintHelper:
+    48:86:void <init>(android.content.Context) -> <init>
+    48:92:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    48:98:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    256:276:void addID(java.lang.String) -> addID
+    207:215:void addRscID(int) -> addRscID
+    282:315:void addTag(java.lang.String) -> addTag
+    139:153:void addView(android.view.View) -> addView
+    444:459:void applyLayoutFeatures(androidx.constraintlayout.widget.ConstraintLayout) -> applyLayoutFeatures
+    465:469:void applyLayoutFeatures() -> applyLayoutFeatures
+    474:474:void applyLayoutFeaturesInConstraintSet(androidx.constraintlayout.widget.ConstraintLayout) -> applyLayoutFeaturesInConstraintSet
+    614:621:boolean containsId(int) -> containsId
+    583:598:int[] convertReferenceString(android.view.View,java.lang.String) -> convertReferenceString
+    323:360:int findId(java.lang.String) -> findId
+    372:394:int findId(androidx.constraintlayout.widget.ConstraintLayout,java.lang.String) -> findId
+    188:188:int[] getReferencedIds() -> getReferencedIds
+    523:531:android.view.View[] getViews(androidx.constraintlayout.widget.ConstraintLayout) -> getViews
+    625:632:int indexFromId(int) -> indexFromId
+    104:119:void init(android.util.AttributeSet) -> init
+    563:580:void loadParameters(androidx.constraintlayout.widget.ConstraintSet$Constraint,androidx.constraintlayout.core.widgets.HelperWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> loadParameters
+    123:130:void onAttachedToWindow() -> onAttachedToWindow
+    223:223:void onDraw(android.graphics.Canvas) -> onDraw
+    230:235:void onMeasure(int,int) -> onMeasure
+    162:180:int removeView(android.view.View) -> removeView
+    603:603:void resolveRtl(androidx.constraintlayout.core.widgets.ConstraintWidget,boolean) -> resolveRtl
+    401:416:void setIds(java.lang.String) -> setIds
+    422:437:void setReferenceTags(java.lang.String) -> setReferenceTags
+    196:201:void setReferencedIds(int[]) -> setReferencedIds
+    607:611:void setTag(int,java.lang.Object) -> setTag
+    554:554:void updatePostConstraints(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostConstraints
+    542:542:void updatePostLayout(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostLayout
+    550:550:void updatePostMeasure(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostMeasure
+    558:558:void updatePreDraw(androidx.constraintlayout.widget.ConstraintLayout) -> updatePreDraw
+    483:509:void updatePreLayout(androidx.constraintlayout.widget.ConstraintLayout) -> updatePreLayout
+    514:519:void updatePreLayout(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,androidx.constraintlayout.core.widgets.Helper,android.util.SparseArray) -> updatePreLayout
+    242:250:void validateParams() -> validateParams
+androidx.constraintlayout.widget.ConstraintLayout -> androidx.constraintlayout.widget.ConstraintLayout:
+    536:536:void <clinit>() -> <clinit>
+    499:1550:void <init>(android.content.Context) -> <init>
+    499:1550:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    499:1550:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    499:1550:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    486:486:int access$000(androidx.constraintlayout.widget.ConstraintLayout) -> access$000
+    486:486:java.util.ArrayList access$100(androidx.constraintlayout.widget.ConstraintLayout) -> access$100
+    1257:1480:void applyConstraintsFromLayoutParams(boolean,android.view.View,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> applyConstraintsFromLayoutParams
+    1958:1958:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    1984:2075:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    1545:1547:void fillMetrics(androidx.constraintlayout.core.Metrics) -> fillMetrics
+    3598:3600:void forceLayout() -> forceLayout
+    486:486:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1942:1942:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    486:486:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1934:1934:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1950:1950:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    572:578:java.lang.Object getDesignInformation(int,java.lang.Object) -> getDesignInformation
+    1128:1128:int getMaxHeight() -> getMaxHeight
+    1118:1118:int getMaxWidth() -> getMaxWidth
+    1081:1081:int getMinHeight() -> getMinHeight
+    1071:1071:int getMinWidth() -> getMinWidth
+    1926:1926:int getOptimizationLevel() -> getOptimizationLevel
+    1734:1743:int getPaddingWidth() -> getPaddingWidth
+    544:547:androidx.constraintlayout.widget.SharedValues getSharedValues() -> getSharedValues
+    1502:1515:androidx.constraintlayout.core.widgets.ConstraintWidget getTargetWidget(int) -> getTargetWidget
+    1976:1976:android.view.View getViewById(int) -> getViewById
+    1525:1537:androidx.constraintlayout.core.widgets.ConstraintWidget getViewWidget(android.view.View) -> getViewWidget
+    944:986:void init(android.util.AttributeSet,int,int) -> init
+    1722:1724:boolean isRtl() -> isRtl
+    2090:2099:void loadLayoutDescription(int) -> loadLayoutDescription
+    3603:3611:void markHierarchyDirty() -> markHierarchyDirty
+    1839:1890:void onLayout(boolean,int,int,int,int) -> onLayout
+    1641:1719:void onMeasure(int,int) -> onMeasure
+    1002:1023:void onViewAdded(android.view.View) -> onViewAdded
+    1030:1036:void onViewRemoved(android.view.View) -> onViewRemoved
+    994:995:void parseLayoutDescription(int) -> parseLayoutDescription
+    3592:3594:void requestLayout() -> requestLayout
+    1611:1634:void resolveMeasuredDimension(int,int,int,int,boolean,boolean) -> resolveMeasuredDimension
+    1562:1596:void resolveSystem(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int) -> resolveSystem
+    1149:1249:void setChildrenConstraints() -> setChildrenConstraints
+    1967:1968:void setConstraintSet(androidx.constraintlayout.widget.ConstraintSet) -> setConstraintSet
+    554:566:void setDesignInformation(int,java.lang.Object,java.lang.Object) -> setDesignInformation
+    607:610:void setId(int) -> setId
+    1103:1108:void setMaxHeight(int) -> setMaxHeight
+    1090:1095:void setMaxWidth(int) -> setMaxWidth
+    1057:1062:void setMinHeight(int) -> setMinHeight
+    1044:1049:void setMinWidth(int) -> setMinWidth
+    2078:2082:void setOnConstraintsChanged(androidx.constraintlayout.widget.ConstraintsChangedListener) -> setOnConstraintsChanged
+    1915:1917:void setOptimizationLevel(int) -> setOptimizationLevel
+    1748:1814:void setSelfDimensionBehaviour(androidx.constraintlayout.core.widgets.ConstraintWidgetContainer,int,int,int,int) -> setSelfDimensionBehaviour
+    1825:1828:void setState(int,int,int) -> setState
+    1483:1499:void setWidgetBaseline(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray,int,androidx.constraintlayout.core.widgets.ConstraintAnchor$Type) -> setWidgetBaseline
+    3620:3620:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+    1132:1145:boolean updateHierarchy() -> updateHierarchy
+androidx.constraintlayout.widget.ConstraintLayout$1 -> androidx.constraintlayout.widget.ConstraintLayout$1:
+    679:679:void <clinit>() -> <clinit>
+androidx.constraintlayout.widget.ConstraintLayout$LayoutParams -> androidx.constraintlayout.widget.ConstraintLayout$LayoutParams:
+    2216:2724:void <init>(androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> <init>
+    2216:3353:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2216:3415:void <init>(int,int) -> <init>
+    2216:3419:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    3583:3583:java.lang.String getConstraintTag() -> getConstraintTag
+    2615:2615:androidx.constraintlayout.core.widgets.ConstraintWidget getConstraintWidget() -> getConstraintWidget
+    2627:2630:void reset() -> reset
+    3459:3574:void resolveLayoutDirection(int) -> resolveLayoutDirection
+    2623:2624:void setWidgetDebugName(java.lang.String) -> setWidgetDebugName
+    3356:3411:void validate() -> validate
+androidx.constraintlayout.widget.ConstraintLayout$LayoutParams$Table -> androidx.constraintlayout.widget.ConstraintLayout$LayoutParams$Table:
+    2799:2872:void <clinit>() -> <clinit>
+    2726:2726:void <init>() -> <init>
+androidx.constraintlayout.widget.ConstraintLayout$Measurer -> androidx.constraintlayout.widget.ConstraintLayout$Measurer:
+    637:639:void <init>(androidx.constraintlayout.widget.ConstraintLayout,androidx.constraintlayout.widget.ConstraintLayout) -> <init>
+    629:635:void captureLayoutInfo(int,int,int,int,int,int) -> captureLayoutInfo
+    923:938:void didMeasures() -> didMeasures
+    906:918:boolean isSimilarSpec(int,int,int) -> isSimilarSpec
+    645:892:void measure(androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.core.widgets.analyzer.BasicMeasure$Measure) -> measure
+androidx.constraintlayout.widget.ConstraintLayoutStates -> androidx.constraintlayout.widget.ConstraintLayoutStates:
+    42:51:void <init>(android.content.Context,androidx.constraintlayout.widget.ConstraintLayout,int) -> <init>
+    285:346:void load(android.content.Context,int) -> load
+    54:69:boolean needsToChange(int,float,float) -> needsToChange
+    349:377:void parseConstraintSet(android.content.Context,org.xmlpull.v1.XmlPullParser) -> parseConstraintSet
+    133:134:void setOnConstraintsChanged(androidx.constraintlayout.widget.ConstraintsChangedListener) -> setOnConstraintsChanged
+    73:130:void updateConstraints(int,float,float) -> updateConstraints
+androidx.constraintlayout.widget.ConstraintLayoutStates$State -> androidx.constraintlayout.widget.ConstraintLayoutStates$State:
+    141:168:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    171:172:void add(androidx.constraintlayout.widget.ConstraintLayoutStates$Variant) -> add
+    175:180:int findMatch(float,float) -> findMatch
+androidx.constraintlayout.widget.ConstraintLayoutStates$Variant -> androidx.constraintlayout.widget.ConstraintLayoutStates$Variant:
+    186:251:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    258:270:boolean match(float,float) -> match
+androidx.constraintlayout.widget.ConstraintProperties -> androidx.constraintlayout.widget.ConstraintProperties:
+    1050:1058:void <init>(android.view.View) -> <init>
+    738:750:androidx.constraintlayout.widget.ConstraintProperties addToHorizontalChain(int,int) -> addToHorizontalChain
+    761:773:androidx.constraintlayout.widget.ConstraintProperties addToHorizontalChainRTL(int,int) -> addToHorizontalChainRTL
+    784:796:androidx.constraintlayout.widget.ConstraintProperties addToVerticalChain(int,int) -> addToVerticalChain
+    420:421:androidx.constraintlayout.widget.ConstraintProperties alpha(float) -> alpha
+    1061:1061:void apply() -> apply
+    114:140:androidx.constraintlayout.widget.ConstraintProperties center(int,int,int,int,int,int,float) -> center
+    156:159:androidx.constraintlayout.widget.ConstraintProperties centerHorizontally(int,int,int,int,int,int,float) -> centerHorizontally
+    207:212:androidx.constraintlayout.widget.ConstraintProperties centerHorizontally(int) -> centerHorizontally
+    175:178:androidx.constraintlayout.widget.ConstraintProperties centerHorizontallyRtl(int,int,int,int,int,int,float) -> centerHorizontallyRtl
+    222:227:androidx.constraintlayout.widget.ConstraintProperties centerHorizontallyRtl(int) -> centerHorizontallyRtl
+    194:197:androidx.constraintlayout.widget.ConstraintProperties centerVertically(int,int,int,int,int,int,float) -> centerVertically
+    237:242:androidx.constraintlayout.widget.ConstraintProperties centerVertically(int) -> centerVertically
+    905:1027:androidx.constraintlayout.widget.ConstraintProperties connect(int,int,int,int) -> connect
+    652:653:androidx.constraintlayout.widget.ConstraintProperties constrainDefaultHeight(int) -> constrainDefaultHeight
+    664:665:androidx.constraintlayout.widget.ConstraintProperties constrainDefaultWidth(int) -> constrainDefaultWidth
+    581:582:androidx.constraintlayout.widget.ConstraintProperties constrainHeight(int) -> constrainHeight
+    604:605:androidx.constraintlayout.widget.ConstraintProperties constrainMaxHeight(int) -> constrainMaxHeight
+    616:617:androidx.constraintlayout.widget.ConstraintProperties constrainMaxWidth(int) -> constrainMaxWidth
+    628:629:androidx.constraintlayout.widget.ConstraintProperties constrainMinHeight(int) -> constrainMinHeight
+    640:641:androidx.constraintlayout.widget.ConstraintProperties constrainMinWidth(int) -> constrainMinWidth
+    592:593:androidx.constraintlayout.widget.ConstraintProperties constrainWidth(int) -> constrainWidth
+    398:399:androidx.constraintlayout.widget.ConstraintProperties dimensionRatio(java.lang.String) -> dimensionRatio
+    431:434:androidx.constraintlayout.widget.ConstraintProperties elevation(float) -> elevation
+    341:365:androidx.constraintlayout.widget.ConstraintProperties goneMargin(int,int) -> goneMargin
+    375:376:androidx.constraintlayout.widget.ConstraintProperties horizontalBias(float) -> horizontalBias
+    707:708:androidx.constraintlayout.widget.ConstraintProperties horizontalChainStyle(int) -> horizontalChainStyle
+    676:677:androidx.constraintlayout.widget.ConstraintProperties horizontalWeight(float) -> horizontalWeight
+    306:330:androidx.constraintlayout.widget.ConstraintProperties margin(int,int) -> margin
+    252:295:androidx.constraintlayout.widget.ConstraintProperties removeConstraints(int) -> removeConstraints
+    842:892:androidx.constraintlayout.widget.ConstraintProperties removeFromHorizontalChain() -> removeFromHorizontalChain
+    807:831:androidx.constraintlayout.widget.ConstraintProperties removeFromVerticalChain() -> removeFromVerticalChain
+    444:445:androidx.constraintlayout.widget.ConstraintProperties rotation(float) -> rotation
+    455:456:androidx.constraintlayout.widget.ConstraintProperties rotationX(float) -> rotationX
+    466:467:androidx.constraintlayout.widget.ConstraintProperties rotationY(float) -> rotationY
+    477:478:androidx.constraintlayout.widget.ConstraintProperties scaleX(float) -> scaleX
+    488:488:androidx.constraintlayout.widget.ConstraintProperties scaleY(float) -> scaleY
+    1031:1047:java.lang.String sideToString(int) -> sideToString
+    521:523:androidx.constraintlayout.widget.ConstraintProperties transformPivot(float,float) -> transformPivot
+    498:499:androidx.constraintlayout.widget.ConstraintProperties transformPivotX(float) -> transformPivotX
+    509:510:androidx.constraintlayout.widget.ConstraintProperties transformPivotY(float) -> transformPivotY
+    556:558:androidx.constraintlayout.widget.ConstraintProperties translation(float,float) -> translation
+    533:534:androidx.constraintlayout.widget.ConstraintProperties translationX(float) -> translationX
+    544:545:androidx.constraintlayout.widget.ConstraintProperties translationY(float) -> translationY
+    568:571:androidx.constraintlayout.widget.ConstraintProperties translationZ(float) -> translationZ
+    386:387:androidx.constraintlayout.widget.ConstraintProperties verticalBias(float) -> verticalBias
+    726:727:androidx.constraintlayout.widget.ConstraintProperties verticalChainStyle(int) -> verticalChainStyle
+    688:689:androidx.constraintlayout.widget.ConstraintProperties verticalWeight(float) -> verticalWeight
+    409:410:androidx.constraintlayout.widget.ConstraintProperties visibility(int) -> visibility
+androidx.constraintlayout.widget.ConstraintSet -> androidx.constraintlayout.widget.ConstraintSet:
+    241:556:void <clinit>() -> <clinit>
+    78:244:void <init>() -> <init>
+    78:78:int access$100(android.content.res.TypedArray,int,int) -> access$100
+    78:78:java.util.HashMap access$1300(androidx.constraintlayout.widget.ConstraintSet) -> access$1300
+    78:78:int[] access$200() -> access$200
+    78:78:void access$300(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,int) -> access$300
+    78:78:void access$400(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,float) -> access$400
+    78:78:void access$500(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,java.lang.String) -> access$500
+    78:78:void access$600(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,boolean) -> access$600
+    3934:3950:void addAttributes(androidx.constraintlayout.widget.ConstraintAttribute$AttributeType,java.lang.String[]) -> addAttributes
+    4019:4020:void addColorAttributes(java.lang.String[]) -> addColorAttributes
+    4023:4024:void addFloatAttributes(java.lang.String[]) -> addFloatAttributes
+    4015:4016:void addIntAttributes(java.lang.String[]) -> addIntAttributes
+    4027:4028:void addStringAttributes(java.lang.String[]) -> addStringAttributes
+    3683:3691:void addToHorizontalChain(int,int,int) -> addToHorizontalChain
+    3701:3709:void addToHorizontalChainRTL(int,int,int) -> addToHorizontalChainRTL
+    3719:3727:void addToVerticalChain(int,int,int) -> addToVerticalChain
+    2285:2305:void applyCustomAttributes(androidx.constraintlayout.widget.ConstraintLayout) -> applyCustomAttributes
+    677:697:void applyDeltaFrom(androidx.constraintlayout.widget.ConstraintSet) -> applyDeltaFrom
+    2263:2266:void applyTo(androidx.constraintlayout.widget.ConstraintLayout) -> applyTo
+    2316:2324:void applyToHelper(androidx.constraintlayout.widget.ConstraintHelper,androidx.constraintlayout.core.widgets.ConstraintWidget,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,android.util.SparseArray) -> applyToHelper
+    2345:2475:void applyToInternal(androidx.constraintlayout.widget.ConstraintLayout,boolean) -> applyToInternal
+    2333:2339:void applyToLayoutParams(int,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> applyToLayoutParams
+    2275:2277:void applyToWithoutCustom(androidx.constraintlayout.widget.ConstraintLayout) -> applyToWithoutCustom
+    4232:4237:androidx.constraintlayout.widget.ConstraintSet$Constraint buildDelta(android.content.Context,org.xmlpull.v1.XmlPullParser) -> buildDelta
+    2497:2529:void center(int,int,int,int,int,int,int,float) -> center
+    2546:2552:void centerHorizontally(int,int,int,int,int,int,int,float) -> centerHorizontally
+    2978:2983:void centerHorizontally(int,int) -> centerHorizontally
+    2570:2576:void centerHorizontallyRtl(int,int,int,int,int,int,int,float) -> centerHorizontallyRtl
+    2992:2997:void centerHorizontallyRtl(int,int) -> centerHorizontallyRtl
+    2593:2599:void centerVertically(int,int,int,int,int,int,int,float) -> centerVertically
+    3006:3011:void centerVertically(int,int) -> centerVertically
+    3019:3020:void clear(int) -> clear
+    3029:3087:void clear(int,int) -> clear
+    2146:2147:void clone(android.content.Context,int) -> clone
+    2155:2163:void clone(androidx.constraintlayout.widget.ConstraintSet) -> clone
+    2171:2224:void clone(androidx.constraintlayout.widget.ConstraintLayout) -> clone
+    2232:2255:void clone(androidx.constraintlayout.widget.Constraints) -> clone
+    2721:2843:void connect(int,int,int,int,int) -> connect
+    2855:2969:void connect(int,int,int,int) -> connect
+    3489:3493:void constrainCircle(int,int,int,float) -> constrainCircle
+    3574:3575:void constrainDefaultHeight(int,int) -> constrainDefaultHeight
+    3610:3611:void constrainDefaultWidth(int,int) -> constrainDefaultWidth
+    3464:3465:void constrainHeight(int,int) -> constrainHeight
+    3504:3505:void constrainMaxHeight(int,int) -> constrainMaxHeight
+    3516:3517:void constrainMaxWidth(int,int) -> constrainMaxWidth
+    3528:3529:void constrainMinHeight(int,int) -> constrainMinHeight
+    3540:3541:void constrainMinWidth(int,int) -> constrainMinWidth
+    3562:3563:void constrainPercentHeight(int,float) -> constrainPercentHeight
+    3551:3552:void constrainPercentWidth(int,float) -> constrainPercentWidth
+    3476:3477:void constrainWidth(int,int) -> constrainWidth
+    3598:3599:void constrainedHeight(int,boolean) -> constrainedHeight
+    3586:3587:void constrainedWidth(int,boolean) -> constrainedWidth
+    5224:5256:int[] convertReferenceString(android.view.View,java.lang.String) -> convertReferenceString
+    3823:3826:void create(int,int) -> create
+    3837:3843:void createBarrier(int,int,int,int[]) -> createBarrier
+    2659:2660:void createHorizontalChain(int,int,int,int,int[],float[],int) -> createHorizontalChain
+    2684:2707:void createHorizontalChain(int,int,int,int,int[],float[],int,int,int) -> createHorizontalChain
+    2678:2679:void createHorizontalChainRtl(int,int,int,int,int[],float[],int) -> createHorizontalChainRtl
+    2618:2639:void createVerticalChain(int,int,int,int,int[],float[],int) -> createVerticalChain
+    5316:5343:void dump(androidx.constraintlayout.motion.widget.MotionScene,int[]) -> dump
+    4217:4221:androidx.constraintlayout.widget.ConstraintSet$Constraint fillFromAttributeList(android.content.Context,android.util.AttributeSet,boolean) -> fillFromAttributeList
+    4031:4034:androidx.constraintlayout.widget.ConstraintSet$Constraint get(int) -> get
+    3269:3269:boolean getApplyElevation(int) -> getApplyElevation
+    5263:5266:androidx.constraintlayout.widget.ConstraintSet$Constraint getConstraint(int) -> getConstraint
+    559:559:java.util.HashMap getCustomAttributeSet() -> getCustomAttributeSet
+    5359:5376:java.lang.String getDebugName(int) -> getDebugName
+    3240:3240:int getHeight(int) -> getHeight
+    5273:5278:int[] getKnownIds() -> getKnownIds
+    5354:5355:java.lang.String getLine(android.content.Context,int,org.xmlpull.v1.XmlPullParser) -> getLine
+    563:563:androidx.constraintlayout.widget.ConstraintSet$Constraint getParameters(int) -> getParameters
+    3889:3893:int[] getReferencedIds(int) -> getReferencedIds
+    3230:3230:int getVisibility(int) -> getVisibility
+    3220:3220:int getVisibilityMode(int) -> getVisibilityMode
+    3250:3250:int getWidth(int) -> getWidth
+    5286:5286:boolean isForceId() -> isForceId
+    4066:4102:void load(android.content.Context,int) -> load
+    4111:4206:void load(android.content.Context,org.xmlpull.v1.XmlPullParser) -> load
+    4209:4213:int lookupID(android.content.res.TypedArray,int,int) -> lookupID
+    3965:3974:void parseColorAttributes(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String) -> parseColorAttributes
+    707:779:void parseDimensionConstraints(java.lang.Object,android.content.res.TypedArray,int,int) -> parseDimensionConstraints
+    859:963:void parseDimensionConstraintsString(java.lang.Object,java.lang.String,int) -> parseDimensionConstraintsString
+    787:837:void parseDimensionRatioString(androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,java.lang.String) -> parseDimensionRatioString
+    3977:3986:void parseFloatAttributes(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String) -> parseFloatAttributes
+    3953:3962:void parseIntAttributes(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String) -> parseIntAttributes
+    3989:3995:void parseStringAttributes(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String) -> parseStringAttributes
+    4835:5221:void populateConstraint(android.content.Context,androidx.constraintlayout.widget.ConstraintSet$Constraint,android.content.res.TypedArray,boolean) -> populateConstraint
+    4242:4558:void populateOverride(android.content.Context,androidx.constraintlayout.widget.ConstraintSet$Constraint,android.content.res.TypedArray) -> populateOverride
+    573:602:void readFallback(androidx.constraintlayout.widget.ConstraintSet) -> readFallback
+    610:674:void readFallback(androidx.constraintlayout.widget.ConstraintLayout) -> readFallback
+    3914:3915:void removeAttribute(java.lang.String) -> removeAttribute
+    3770:3814:void removeFromHorizontalChain(int) -> removeFromHorizontalChain
+    3737:3760:void removeFromVerticalChain(int) -> removeFromVerticalChain
+    3260:3261:void setAlpha(int,float) -> setAlpha
+    3280:3283:void setApplyElevation(int,boolean) -> setApplyElevation
+    3909:3911:void setBarrierType(int,int) -> setBarrierType
+    3922:3923:void setColorValue(int,java.lang.String,int) -> setColorValue
+    4561:4641:void setDeltaValue(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,float) -> setDeltaValue
+    4644:4786:void setDeltaValue(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,int) -> setDeltaValue
+    4789:4811:void setDeltaValue(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,java.lang.String) -> setDeltaValue
+    4814:4832:void setDeltaValue(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,boolean) -> setDeltaValue
+    3189:3190:void setDimensionRatio(int,java.lang.String) -> setDimensionRatio
+    3436:3437:void setEditorAbsoluteX(int,int) -> setEditorAbsoluteX
+    3443:3444:void setEditorAbsoluteY(int,int) -> setEditorAbsoluteY
+    3292:3296:void setElevation(int,float) -> setElevation
+    3926:3927:void setFloatValue(int,java.lang.String,float) -> setFloatValue
+    5296:5297:void setForceId(boolean) -> setForceId
+    3133:3159:void setGoneMargin(int,int,int) -> setGoneMargin
+    3852:3856:void setGuidelineBegin(int,int) -> setGuidelineBegin
+    3865:3868:void setGuidelineEnd(int,int) -> setGuidelineEnd
+    3877:3880:void setGuidelinePercent(int,float) -> setGuidelinePercent
+    3168:3169:void setHorizontalBias(int,float) -> setHorizontalBias
+    3652:3653:void setHorizontalChainStyle(int,int) -> setHorizontalChainStyle
+    3621:3622:void setHorizontalWeight(int,float) -> setHorizontalWeight
+    3918:3919:void setIntValue(int,java.lang.String,int) -> setIntValue
+    3450:3453:void setLayoutWrapBehavior(int,int) -> setLayoutWrapBehavior
+    3097:3123:void setMargin(int,int,int) -> setMargin
+    3904:3906:void setReferencedIds(int,int[]) -> setReferencedIds
+    3305:3306:void setRotation(int,float) -> setRotation
+    3315:3316:void setRotationX(int,float) -> setRotationX
+    3325:3326:void setRotationY(int,float) -> setRotationY
+    3335:3336:void setScaleX(int,float) -> setScaleX
+    3345:3346:void setScaleY(int,float) -> setScaleY
+    3930:3931:void setStringValue(int,java.lang.String,java.lang.String) -> setStringValue
+    3382:3385:void setTransformPivot(int,float,float) -> setTransformPivot
+    3357:3358:void setTransformPivotX(int,float) -> setTransformPivotX
+    3369:3370:void setTransformPivotY(int,float) -> setTransformPivotY
+    3415:3418:void setTranslation(int,float,float) -> setTranslation
+    3394:3395:void setTranslationX(int,float) -> setTranslationX
+    3404:3405:void setTranslationY(int,float) -> setTranslationY
+    3427:3430:void setTranslationZ(int,float) -> setTranslationZ
+    5306:5307:void setValidateOnParse(boolean) -> setValidateOnParse
+    3178:3179:void setVerticalBias(int,float) -> setVerticalBias
+    3672:3673:void setVerticalChainStyle(int,int) -> setVerticalChainStyle
+    3632:3633:void setVerticalWeight(int,float) -> setVerticalWeight
+    3199:3200:void setVisibility(int,int) -> setVisibility
+    3210:3211:void setVisibilityMode(int,int) -> setVisibilityMode
+    4038:4054:java.lang.String sideToString(int) -> sideToString
+    3998:4011:java.lang.String[] splitString(java.lang.String) -> splitString
+    5380:5388:void writeState(java.io.Writer,androidx.constraintlayout.widget.ConstraintLayout,int) -> writeState
+androidx.constraintlayout.widget.ConstraintSet$Constraint -> androidx.constraintlayout.widget.ConstraintSet$Constraint:
+    1805:1812:void <init>() -> <init>
+    1805:1805:void access$000(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> access$000
+    1805:1805:void access$1000(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String,int) -> access$1000
+    1805:1805:void access$1100(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String,float) -> access$1100
+    1805:1805:void access$1200(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String,java.lang.String) -> access$1200
+    1805:1805:void access$700(androidx.constraintlayout.widget.ConstraintSet$Constraint,androidx.constraintlayout.widget.ConstraintHelper,int,androidx.constraintlayout.widget.Constraints$LayoutParams) -> access$700
+    1805:1805:void access$800(androidx.constraintlayout.widget.ConstraintSet$Constraint,int,androidx.constraintlayout.widget.Constraints$LayoutParams) -> access$800
+    1805:1805:void access$900(androidx.constraintlayout.widget.ConstraintSet$Constraint,java.lang.String,int) -> access$900
+    1912:1915:void applyDelta(androidx.constraintlayout.widget.ConstraintSet$Constraint) -> applyDelta
+    2066:2135:void applyTo(androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> applyTo
+    1805:1805:java.lang.Object clone() -> clone
+    1957:1964:androidx.constraintlayout.widget.ConstraintSet$Constraint clone() -> clone
+    1996:2063:void fillFrom(int,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> fillFrom
+    1968:1976:void fillFromConstraints(androidx.constraintlayout.widget.ConstraintHelper,int,androidx.constraintlayout.widget.Constraints$LayoutParams) -> fillFromConstraints
+    1979:1993:void fillFromConstraints(int,androidx.constraintlayout.widget.Constraints$LayoutParams) -> fillFromConstraints
+    1927:1937:androidx.constraintlayout.widget.ConstraintAttribute get(java.lang.String,androidx.constraintlayout.widget.ConstraintAttribute$AttributeType) -> get
+    1918:1923:void printDelta(java.lang.String) -> printDelta
+    1953:1954:void setColorValue(java.lang.String,int) -> setColorValue
+    1945:1946:void setFloatValue(java.lang.String,float) -> setFloatValue
+    1949:1950:void setIntValue(java.lang.String,int) -> setIntValue
+    1941:1942:void setStringValue(java.lang.String,java.lang.String) -> setStringValue
+androidx.constraintlayout.widget.ConstraintSet$Constraint$Delta -> androidx.constraintlayout.widget.ConstraintSet$Constraint$Delta:
+    1815:1861:void <init>() -> <init>
+    1825:1831:void add(int,int) -> add
+    1838:1844:void add(int,float) -> add
+    1851:1857:void add(int,java.lang.String) -> add
+    1864:1870:void add(int,boolean) -> add
+    1873:1885:void applyDelta(androidx.constraintlayout.widget.ConstraintSet$Constraint) -> applyDelta
+    1889:1908:void printDelta(java.lang.String) -> printDelta
+androidx.constraintlayout.widget.ConstraintSet$Layout -> androidx.constraintlayout.widget.ConstraintSet$Layout:
+    1117:1238:void <clinit>() -> <clinit>
+    968:1039:void <init>() -> <init>
+    1042:1115:void copyFrom(androidx.constraintlayout.widget.ConstraintSet$Layout) -> copyFrom
+    1465:1510:void dump(androidx.constraintlayout.motion.widget.MotionScene,java.lang.StringBuilder) -> dump
+    1241:1462:void fillFromAttributeList(android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+androidx.constraintlayout.widget.ConstraintSet$Motion -> androidx.constraintlayout.widget.ConstraintSet$Motion:
+    1709:1733:void <clinit>() -> <clinit>
+    1678:1692:void <init>() -> <init>
+    1699:1707:void copyFrom(androidx.constraintlayout.widget.ConstraintSet$Motion) -> copyFrom
+    1736:1799:void fillFromAttributeList(android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+androidx.constraintlayout.widget.ConstraintSet$PropertySet -> androidx.constraintlayout.widget.ConstraintSet$PropertySet:
+    1638:1643:void <init>() -> <init>
+    1646:1651:void copyFrom(androidx.constraintlayout.widget.ConstraintSet$PropertySet) -> copyFrom
+    1654:1672:void fillFromAttributeList(android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+androidx.constraintlayout.widget.ConstraintSet$Transform -> androidx.constraintlayout.widget.ConstraintSet$Transform:
+    1549:1578:void <clinit>() -> <clinit>
+    1516:1530:void <init>() -> <init>
+    1533:1547:void copyFrom(androidx.constraintlayout.widget.ConstraintSet$Transform) -> copyFrom
+    1581:1632:void fillFromAttributeList(android.content.Context,android.util.AttributeSet) -> fillFromAttributeList
+androidx.constraintlayout.widget.ConstraintSet$WriteJsonEngine -> androidx.constraintlayout.widget.ConstraintSet$WriteJsonEngine:
+    5656:5776:void <init>(androidx.constraintlayout.widget.ConstraintSet,java.io.Writer,androidx.constraintlayout.widget.ConstraintLayout,int) -> <init>
+    5779:5787:java.lang.String getName(int) -> getName
+    5792:5798:java.lang.String lookup(int) -> lookup
+    5819:5827:void writeCircle(int,float,int) -> writeCircle
+    5803:5816:void writeConstraint(java.lang.String,int,java.lang.String,int,int) -> writeConstraint
+    5736:5774:void writeDimension(java.lang.String,int,int,float,int,int,boolean) -> writeDimension
+    5727:5727:void writeGuideline(int,int,int,float) -> writeGuideline
+    5674:5724:void writeLayout() -> writeLayout
+    5830:5839:void writeVariable(java.lang.String,int) -> writeVariable
+    5842:5850:void writeVariable(java.lang.String,float) -> writeVariable
+    5853:5861:void writeVariable(java.lang.String,float,float) -> writeVariable
+    5864:5872:void writeVariable(java.lang.String,boolean) -> writeVariable
+    5874:5882:void writeVariable(java.lang.String,boolean,boolean) -> writeVariable
+    5885:5894:void writeVariable(java.lang.String,int[]) -> writeVariable
+    5897:5905:void writeVariable(java.lang.String,java.lang.String) -> writeVariable
+androidx.constraintlayout.widget.ConstraintSet$WriteXmlEngine -> androidx.constraintlayout.widget.ConstraintSet$WriteXmlEngine:
+    5395:5539:void <init>(androidx.constraintlayout.widget.ConstraintSet,java.io.Writer,androidx.constraintlayout.widget.ConstraintLayout,int) -> <init>
+    5542:5550:java.lang.String getName(int) -> getName
+    5555:5561:java.lang.String lookup(int) -> lookup
+    5526:5537:void writeBaseDimension(java.lang.String,int,int) -> writeBaseDimension
+    5511:5513:void writeBoolen(java.lang.String,boolean,boolean) -> writeBoolen
+    5591:5599:void writeCircle(int,float,int) -> writeCircle
+    5575:5588:void writeConstraint(java.lang.String,int,java.lang.String,int,int) -> writeConstraint
+    5521:5523:void writeDimension(java.lang.String,int,int) -> writeDimension
+    5516:5518:void writeEnum(java.lang.String,int,java.lang.String[],int) -> writeEnum
+    5412:5506:void writeLayout() -> writeLayout
+    5602:5606:void writeVariable(java.lang.String,int) -> writeVariable
+    5609:5615:void writeVariable(java.lang.String,float,float) -> writeVariable
+    5618:5624:void writeVariable(java.lang.String,java.lang.String,java.lang.String) -> writeVariable
+    5627:5636:void writeVariable(java.lang.String,int[]) -> writeVariable
+    5639:5647:void writeVariable(java.lang.String,java.lang.String) -> writeVariable
+    5566:5572:void writeXmlConstraint(java.lang.String,int) -> writeXmlConstraint
+androidx.constraintlayout.widget.Constraints -> androidx.constraintlayout.widget.Constraints:
+    41:43:void <init>(android.content.Context) -> <init>
+    46:49:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    52:55:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    35:35:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    136:136:androidx.constraintlayout.widget.Constraints$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    35:35:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    62:62:androidx.constraintlayout.widget.Constraints$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    148:148:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    152:157:androidx.constraintlayout.widget.ConstraintSet getConstraintSet() -> getConstraintSet
+    140:141:void init(android.util.AttributeSet) -> init
+    163:163:void onLayout(boolean,int,int,int,int) -> onLayout
+androidx.constraintlayout.widget.Constraints$LayoutParams -> androidx.constraintlayout.widget.Constraints$LayoutParams:
+    67:83:void <init>(int,int) -> <init>
+    67:87:void <init>(androidx.constraintlayout.widget.Constraints$LayoutParams) -> <init>
+    67:127:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+androidx.constraintlayout.widget.ConstraintsChangedListener -> androidx.constraintlayout.widget.ConstraintsChangedListener:
+    24:24:void <init>() -> <init>
+    42:42:void postLayoutChange(int,int) -> postLayoutChange
+    33:33:void preLayoutChange(int,int) -> preLayoutChange
+androidx.constraintlayout.widget.Group -> androidx.constraintlayout.widget.Group:
+    39:40:void <init>(android.content.Context) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    83:84:void applyLayoutFeaturesInConstraintSet(androidx.constraintlayout.widget.ConstraintLayout) -> applyLayoutFeaturesInConstraintSet
+    55:57:void init(android.util.AttributeSet) -> init
+    61:63:void onAttachedToWindow() -> onAttachedToWindow
+    73:75:void setElevation(float) -> setElevation
+    67:69:void setVisibility(int) -> setVisibility
+    92:95:void updatePostLayout(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostLayout
+androidx.constraintlayout.widget.Guideline -> androidx.constraintlayout.widget.Guideline:
+    55:57:void <init>(android.content.Context) -> <init>
+    60:62:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    65:67:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    70:72:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    90:90:void draw(android.graphics.Canvas) -> draw
+    97:98:void onMeasure(int,int) -> onMeasure
+    106:109:void setGuidelineBegin(int) -> setGuidelineBegin
+    117:120:void setGuidelineEnd(int) -> setGuidelineEnd
+    127:130:void setGuidelinePercent(float) -> setGuidelinePercent
+    79:79:void setVisibility(int) -> setVisibility
+androidx.constraintlayout.widget.Placeholder -> androidx.constraintlayout.widget.Placeholder:
+    46:53:void <init>(android.content.Context) -> <init>
+    46:58:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:63:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    46:68:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    114:114:android.view.View getContent() -> getContent
+    106:106:int getEmptyVisibility() -> getEmptyVisibility
+    71:88:void init(android.util.AttributeSet) -> init
+    125:147:void onDraw(android.graphics.Canvas) -> onDraw
+    176:194:void setContentId(int) -> setContentId
+    97:98:void setEmptyVisibility(int) -> setEmptyVisibility
+    201:215:void updatePostMeasure(androidx.constraintlayout.widget.ConstraintLayout) -> updatePostMeasure
+    154:168:void updatePreLayout(androidx.constraintlayout.widget.ConstraintLayout) -> updatePreLayout
+androidx.constraintlayout.widget.ReactiveGuide -> androidx.constraintlayout.widget.ReactiveGuide:
+    32:41:void <init>(android.content.Context) -> <init>
+    32:47:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    32:53:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    32:59:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    208:211:void changeValue(int,int,androidx.constraintlayout.motion.widget.MotionLayout,int) -> changeValue
+    125:125:void draw(android.graphics.Canvas) -> draw
+    99:99:int getApplyToConstraintSetId() -> getApplyToConstraintSetId
+    85:85:int getAttributeId() -> getAttributeId
+    62:83:void init(android.util.AttributeSet) -> init
+    106:106:boolean isAnimatingChange() -> isAnimatingChange
+    132:133:void onMeasure(int,int) -> onMeasure
+    169:205:void onNewValue(int,int,int) -> onNewValue
+    109:110:void setAnimateChange(boolean) -> setAnimateChange
+    103:104:void setApplyToConstraintSetId(int) -> setApplyToConstraintSetId
+    88:96:void setAttributeId(int) -> setAttributeId
+    141:144:void setGuidelineBegin(int) -> setGuidelineBegin
+    152:155:void setGuidelineEnd(int) -> setGuidelineEnd
+    162:165:void setGuidelinePercent(float) -> setGuidelinePercent
+    117:117:void setVisibility(int) -> setVisibility
+androidx.constraintlayout.widget.SharedValues -> androidx.constraintlayout.widget.SharedValues:
+    30:34:void <init>() -> <init>
+    41:47:void addListener(int,androidx.constraintlayout.widget.SharedValues$SharedValuesListener) -> addListener
+    71:72:void clearListeners() -> clearListeners
+    79:110:void fireNewValue(int,int) -> fireNewValue
+    75:75:int getValue(int) -> getValue
+    50:62:void removeListener(int,androidx.constraintlayout.widget.SharedValues$SharedValuesListener) -> removeListener
+    65:68:void removeListener(androidx.constraintlayout.widget.SharedValues$SharedValuesListener) -> removeListener
+androidx.constraintlayout.widget.StateSet -> androidx.constraintlayout.widget.StateSet:
+    41:57:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    179:207:int convertToConstraintSet(int,int,float,float) -> convertToConstraintSet
+    70:140:void load(android.content.Context,org.xmlpull.v1.XmlPullParser) -> load
+    143:158:boolean needsToChange(int,float,float) -> needsToChange
+    162:163:void setOnConstraintsChanged(androidx.constraintlayout.widget.ConstraintsChangedListener) -> setOnConstraintsChanged
+    166:166:int stateGetConstraintID(int,int,int) -> stateGetConstraintID
+    212:241:int updateConstraints(int,int,float,float) -> updateConstraints
+androidx.constraintlayout.widget.StateSet$State -> androidx.constraintlayout.widget.StateSet$State:
+    251:273:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    276:277:void add(androidx.constraintlayout.widget.StateSet$Variant) -> add
+    280:285:int findMatch(float,float) -> findMatch
+androidx.constraintlayout.widget.StateSet$Variant -> androidx.constraintlayout.widget.StateSet$Variant:
+    291:344:void <init>(android.content.Context,org.xmlpull.v1.XmlPullParser) -> <init>
+    351:363:boolean match(float,float) -> match
+androidx.constraintlayout.widget.VirtualLayout -> androidx.constraintlayout.widget.VirtualLayout:
+    35:36:void <init>(android.content.Context) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    125:126:void applyLayoutFeaturesInConstraintSet(androidx.constraintlayout.widget.ConstraintLayout) -> applyLayoutFeaturesInConstraintSet
+    48:62:void init(android.util.AttributeSet) -> init
+    73:99:void onAttachedToWindow() -> onAttachedToWindow
+    66:66:void onMeasure(androidx.constraintlayout.core.widgets.VirtualLayout,int,int) -> onMeasure
+    115:117:void setElevation(float) -> setElevation
+    106:108:void setVisibility(int) -> setVisibility
+androidx.coordinatorlayout.widget.CoordinatorLayout -> androidx.coordinatorlayout.widget.CoordinatorLayout:
+    118:152:void <clinit>() -> <clinit>
+    207:208:void <init>(android.content.Context) -> <init>
+    211:212:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    168:255:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    156:160:android.graphics.Rect acquireTempRect() -> acquireTempRect
+    1615:1627:void addPreDrawListener() -> addPreDrawListener
+    1760:1760:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    1281:1286:int clamp(int,int,int) -> clamp
+    1066:1078:void constrainChildRect(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams,android.graphics.Rect,int,int) -> constrainChildRect
+    854:875:androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsetsToBehaviors(androidx.core.view.WindowInsetsCompat) -> dispatchApplyWindowInsetsToBehaviors
+    1523:1535:void dispatchDependentViewsChanged(android.view.View) -> dispatchDependentViewsChanged
+    1722:1735:boolean doViewsOverlap(android.view.View,android.view.View) -> doViewsOverlap
+    1253:1277:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    332:345:void drawableStateChanged() -> drawableStateChanged
+    1584:1601:void ensurePreDrawListener() -> ensurePreDrawListener
+    112:112:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1755:1755:androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    112:112:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    112:112:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1740:1740:androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1745:1750:androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    979:988:void getChildRect(android.view.View,boolean,android.graphics.Rect) -> getChildRect
+    1547:1552:java.util.List getDependencies(android.view.View) -> getDependencies
+    1576:1577:java.util.List getDependencySortedChildren() -> getDependencySortedChildren
+    1566:1571:java.util.List getDependents(android.view.View) -> getDependents
+    732:733:void getDescendantRect(android.view.View,android.graphics.Rect) -> getDescendantRect
+    1090:1096:void getDesiredAnchoredChildRect(android.view.View,int,android.graphics.Rect,android.graphics.Rect) -> getDesiredAnchoredChildRect
+    992:1063:void getDesiredAnchoredChildRectWithoutConstraints(android.view.View,int,android.graphics.Rect,android.graphics.Rect,androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams,int,int) -> getDesiredAnchoredChildRectWithoutConstraints
+    600:610:int getKeyline(int) -> getKeyline
+    965:967:void getLastChildRect(android.view.View,android.graphics.Rect) -> getLastChildRect
+    401:401:androidx.core.view.WindowInsetsCompat getLastWindowInsets() -> getLastWindowInsets
+    2017:2017:int getNestedScrollAxes() -> getNestedScrollAxes
+    654:685:androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams getResolvedLayoutParams(android.view.View) -> getResolvedLayoutParams
+    327:327:android.graphics.drawable.Drawable getStatusBarBackground() -> getStatusBarBackground
+    742:742:int getSuggestedMinimumHeight() -> getSuggestedMinimumHeight
+    737:737:int getSuggestedMinimumWidth() -> getSuggestedMinimumWidth
+    444:457:void getTopSortedChildren(java.util.List) -> getTopSortedChildren
+    1607:1607:boolean hasDependencies(android.view.View) -> hasDependencies
+    1704:1710:boolean isPointInChildBounds(android.view.View,int,int) -> isPointInChildBounds
+    1193:1217:void layoutChild(android.view.View,int) -> layoutChild
+    1106:1116:void layoutChildWithAnchor(android.view.View,android.view.View,int) -> layoutChildWithAnchor
+    1130:1183:void layoutChildWithKeyline(android.view.View,int,int) -> layoutChildWithKeyline
+    1413:1491:void offsetChildByInset(android.view.View,android.graphics.Rect,int) -> offsetChildByInset
+    1653:1692:void offsetChildToAnchor(android.view.View,int) -> offsetChildToAnchor
+    264:279:void onAttachedToWindow() -> onAttachedToWindow
+    1307:1409:void onChildViewsChanged(int) -> onChildViewsChanged
+    283:293:void onDetachedFromWindow() -> onDetachedFromWindow
+    926:934:void onDraw(android.graphics.Canvas) -> onDraw
+    532:545:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    906:922:void onLayout(boolean,int,int,int,int) -> onLayout
+    889:901:void onLayoutChild(android.view.View,int) -> onLayoutChild
+    767:850:void onMeasure(int,int) -> onMeasure
+    760:762:void onMeasureChild(android.view.View,int,int,int,int) -> onMeasureChild
+    1962:1986:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    1992:2012:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    1913:1914:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    1919:1957:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    1852:1854:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    1859:1861:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    1868:1909:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    1796:1797:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    1802:1819:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    3241:3264:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    3269:3287:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1765:1765:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    1771:1791:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    1823:1824:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    1829:1847:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    551:587:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    615:649:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior parseBehavior(android.content.Context,android.util.AttributeSet,java.lang.String) -> parseBehavior
+    461:527:boolean performIntercept(android.view.MotionEvent,int) -> performIntercept
+    689:722:void prepareChildren() -> prepareChildren
+    953:955:void recordLastChildRect(android.view.View,android.graphics.Rect) -> recordLastChildRect
+    164:166:void releaseTempRect(android.graphics.Rect) -> releaseTempRect
+    1634:1641:void removePreDrawListener() -> removePreDrawListener
+    3293:3301:boolean requestChildRectangleOnScreen(android.view.View,android.graphics.Rect,boolean) -> requestChildRectangleOnScreen
+    592:597:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    412:437:void resetTouchBehaviors(boolean) -> resetTouchBehaviors
+    1247:1247:int resolveAnchoredChildGravity(int) -> resolveAnchoredChildGravity
+    1225:1231:int resolveGravity(int) -> resolveGravity
+    1239:1239:int resolveKeylineGravity(int) -> resolveKeylineGravity
+    938:940:void setFitsSystemWindows(boolean) -> setFitsSystemWindows
+    1494:1500:void setInsetOffsetX(android.view.View,int) -> setInsetOffsetX
+    1503:1509:void setInsetOffsetY(android.view.View,int) -> setInsetOffsetY
+    259:260:void setOnHierarchyChangeListener(android.view.ViewGroup$OnHierarchyChangeListener) -> setOnHierarchyChangeListener
+    302:318:void setStatusBarBackground(android.graphics.drawable.Drawable) -> setStatusBarBackground
+    380:381:void setStatusBarBackgroundColor(int) -> setStatusBarBackgroundColor
+    369:370:void setStatusBarBackgroundResource(int) -> setStatusBarBackgroundResource
+    354:360:void setVisibility(int) -> setVisibility
+    384:393:androidx.core.view.WindowInsetsCompat setWindowInsets(androidx.core.view.WindowInsetsCompat) -> setWindowInsets
+    3305:3329:void setupForInsets() -> setupForInsets
+    349:349:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+androidx.coordinatorlayout.widget.CoordinatorLayout$1 -> androidx.coordinatorlayout.widget.CoordinatorLayout$1:
+    3312:3312:void <init>(androidx.coordinatorlayout.widget.CoordinatorLayout) -> <init>
+    3316:3316:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior -> androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior:
+    2091:2092:void <init>() -> <init>
+    2102:2103:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2229:2229:boolean blocksInteractionBelow(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> blocksInteractionBelow
+    2796:2796:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.graphics.Rect) -> getInsetDodgeRect
+    2195:2195:int getScrimColor(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> getScrimColor
+    2213:2213:float getScrimOpacity(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> getScrimOpacity
+    2385:2386:java.lang.Object getTag(android.view.View) -> getTag
+    2256:2256:boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> layoutDependsOn
+    2716:2716:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+    2114:2114:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    2286:2286:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    2305:2305:void onDependentViewRemoved(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewRemoved
+    2124:2124:void onDetachedFromLayoutParams() -> onDetachedFromLayoutParams
+    2151:2151:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    2359:2359:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    2330:2330:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    2668:2668:boolean onNestedFling(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,float,float,boolean) -> onNestedFling
+    2696:2696:boolean onNestedPreFling(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,float,float) -> onNestedPreFling
+    2599:2599:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int[]) -> onNestedPreScroll
+    2633:2636:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    2527:2527:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int) -> onNestedScroll
+    2540:2544:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int) -> onNestedScroll
+    2583:2587:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    2443:2443:void onNestedScrollAccepted(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    2469:2473:void onNestedScrollAccepted(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    2738:2738:boolean onRequestChildRectangleOnScreen(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.graphics.Rect,boolean) -> onRequestChildRectangleOnScreen
+    2756:2756:void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.os.Parcelable) -> onRestoreInstanceState
+    2778:2778:android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onSaveInstanceState
+    2398:2398:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int) -> onStartNestedScroll
+    2426:2430:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    2484:2484:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onStopNestedScroll
+    2509:2512:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int) -> onStopNestedScroll
+    2175:2175:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    2372:2374:void setTag(android.view.View,java.lang.Object) -> setTag
+androidx.coordinatorlayout.widget.CoordinatorLayout$HierarchyChangeListener -> androidx.coordinatorlayout.widget.CoordinatorLayout$HierarchyChangeListener:
+    3218:3219:void <init>(androidx.coordinatorlayout.widget.CoordinatorLayout) -> <init>
+    3223:3226:void onChildViewAdded(android.view.View,android.view.View) -> onChildViewAdded
+    3230:3235:void onChildViewRemoved(android.view.View,android.view.View) -> onChildViewRemoved
+androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams -> androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams:
+    2809:2870:void <init>(int,int) -> <init>
+    2809:2905:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2809:2909:void <init>(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> <init>
+    2809:2913:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    2809:2917:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    3003:3003:boolean checkAnchorChanged() -> checkAnchorChanged
+    3100:3102:boolean dependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> dependsOn
+    3014:3017:boolean didBlockInteraction() -> didBlockInteraction
+    3125:3133:android.view.View findAnchorView(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> findAnchorView
+    2926:2926:int getAnchorId() -> getAnchorId
+    2952:2952:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior getBehavior() -> getBehavior
+    3079:3079:boolean getChangedAfterNestedScroll() -> getChangedAfterNestedScroll
+    2995:2995:android.graphics.Rect getLastChildRect() -> getLastChildRect
+    3112:3113:void invalidateAnchor() -> invalidateAnchor
+    3033:3038:boolean isBlockingInteractionBelow(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> isBlockingInteractionBelow
+    3069:3075:boolean isNestedScrollAccepted(int) -> isNestedScrollAccepted
+    3087:3088:void resetChangedAfterNestedScroll() -> resetChangedAfterNestedScroll
+    3054:3055:void resetNestedScroll(int) -> resetNestedScroll
+    3050:3051:void resetTouchBehaviorTracking() -> resetTouchBehaviorTracking
+    3141:3178:void resolveAnchorView(android.view.View,androidx.coordinatorlayout.widget.CoordinatorLayout) -> resolveAnchorView
+    2940:2942:void setAnchorId(int) -> setAnchorId
+    2965:2980:void setBehavior(androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior) -> setBehavior
+    3083:3084:void setChangedAfterNestedScroll(boolean) -> setChangedAfterNestedScroll
+    2987:2988:void setLastChildRect(android.graphics.Rect) -> setLastChildRect
+    3058:3066:void setNestedScrollAccepted(int,boolean) -> setNestedScrollAccepted
+    3210:3213:boolean shouldDodge(android.view.View,int) -> shouldDodge
+    3186:3203:boolean verifyAnchorView(android.view.View,androidx.coordinatorlayout.widget.CoordinatorLayout) -> verifyAnchorView
+androidx.coordinatorlayout.widget.CoordinatorLayout$OnPreDrawListener -> androidx.coordinatorlayout.widget.CoordinatorLayout$OnPreDrawListener:
+    2020:2020:void <init>(androidx.coordinatorlayout.widget.CoordinatorLayout) -> <init>
+    2023:2024:boolean onPreDraw() -> onPreDraw
+androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState -> androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState:
+    3373:3373:void <clinit>() -> <clinit>
+    3335:3348:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    3351:3352:void <init>(android.os.Parcelable) -> <init>
+    3356:3371:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState$1 -> androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState$1:
+    3374:3374:void <init>() -> <init>
+    3374:3374:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    3374:3374:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    3377:3377:androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    3382:3382:androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    3374:3374:java.lang.Object[] newArray(int) -> newArray
+    3387:3387:androidx.coordinatorlayout.widget.CoordinatorLayout$SavedState[] newArray(int) -> newArray
+androidx.coordinatorlayout.widget.CoordinatorLayout$ViewElevationComparator -> androidx.coordinatorlayout.widget.CoordinatorLayout$ViewElevationComparator:
+    2031:2031:void <init>() -> <init>
+    2031:2031:int compare(java.lang.Object,java.lang.Object) -> compare
+    2034:2041:int compare(android.view.View,android.view.View) -> compare
+androidx.coordinatorlayout.widget.DirectedAcyclicGraph -> androidx.coordinatorlayout.widget.DirectedAcyclicGraph:
+    39:44:void <init>() -> <init>
+    76:89:void addEdge(java.lang.Object,java.lang.Object) -> addEdge
+    54:57:void addNode(java.lang.Object) -> addNode
+    143:150:void clear() -> clear
+    63:63:boolean contains(java.lang.Object) -> contains
+    174:194:void dfs(java.lang.Object,java.util.ArrayList,java.util.HashSet) -> dfs
+    205:209:java.util.ArrayList getEmptyList() -> getEmptyList
+    98:98:java.util.List getIncomingEdges(java.lang.Object) -> getIncomingEdges
+    109:119:java.util.List getOutgoingEdges(java.lang.Object) -> getOutgoingEdges
+    162:170:java.util.ArrayList getSortedList() -> getSortedList
+    130:136:boolean hasOutgoingEdges(java.lang.Object) -> hasOutgoingEdges
+    213:215:void poolList(java.util.ArrayList) -> poolList
+    200:200:int size() -> size
+androidx.coordinatorlayout.widget.ViewGroupUtils -> androidx.coordinatorlayout.widget.ViewGroupUtils:
+    35:36:void <clinit>() -> <clinit>
+    96:97:void <init>() -> <init>
+    77:79:void getDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> getDescendantRect
+    82:94:void offsetDescendantMatrix(android.view.ViewParent,android.view.View,android.graphics.Matrix) -> offsetDescendantMatrix
+    48:67:void offsetDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> offsetDescendantRect
+androidx.core.accessibilityservice.AccessibilityServiceInfoCompat -> androidx.core.accessibilityservice.AccessibilityServiceInfoCompat:
+    181:181:void <init>() -> <init>
+    307:317:java.lang.String capabilityToString(int) -> capabilityToString
+    215:242:java.lang.String feedbackTypeToString(int) -> feedbackTypeToString
+    255:269:java.lang.String flagToString(int) -> flagToString
+    287:288:int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo) -> getCapabilities
+    198:199:java.lang.String loadDescription(android.accessibilityservice.AccessibilityServiceInfo,android.content.pm.PackageManager) -> loadDescription
+androidx.core.app.ActivityCompat -> androidx.core.app.ActivityCompat:
+    152:154:void <init>() -> <init>
+    290:295:void finishAffinity(android.app.Activity) -> finishAffinity
+    307:312:void finishAfterTransition(android.app.Activity) -> finishAfterTransition
+    172:172:androidx.core.app.ActivityCompat$PermissionCompatDelegate getPermissionCompatDelegate() -> getPermissionCompatDelegate
+    332:333:android.net.Uri getReferrer(android.app.Activity) -> getReferrer
+    210:211:boolean invalidateOptionsMenu(android.app.Activity) -> invalidateOptionsMenu
+    414:417:void postponeEnterTransition(android.app.Activity) -> postponeEnterTransition
+    580:606:void recreate(android.app.Activity) -> recreate
+    569:569:androidx.core.view.DragAndDropPermissionsCompat requestDragAndDropPermissions(android.app.Activity,android.view.DragEvent) -> requestDragAndDropPermissions
+    498:538:void requestPermissions(android.app.Activity,java.lang.String[],int) -> requestPermissions
+    365:373:android.view.View requireViewById(android.app.Activity,int) -> requireViewById
+    386:392:void setEnterSharedElementCallback(android.app.Activity,androidx.core.app.SharedElementCallback) -> setEnterSharedElementCallback
+    405:411:void setExitSharedElementCallback(android.app.Activity,androidx.core.app.SharedElementCallback) -> setExitSharedElementCallback
+    640:643:void setLocusContext(android.app.Activity,androidx.core.content.LocusIdCompat,android.os.Bundle) -> setLocusContext
+    164:165:void setPermissionCompatDelegate(androidx.core.app.ActivityCompat$PermissionCompatDelegate) -> setPermissionCompatDelegate
+    552:553:boolean shouldShowRequestPermissionRationale(android.app.Activity,java.lang.String) -> shouldShowRequestPermissionRationale
+    236:241:void startActivityForResult(android.app.Activity,android.content.Intent,int,android.os.Bundle) -> startActivityForResult
+    273:280:void startIntentSenderForResult(android.app.Activity,android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> startIntentSenderForResult
+    420:423:void startPostponedEnterTransition(android.app.Activity) -> startPostponedEnterTransition
+androidx.core.app.ActivityCompat$1 -> androidx.core.app.ActivityCompat$1:
+    519:519:void <init>(java.lang.String[],android.app.Activity,int) -> <init>
+    522:535:void run() -> run
+androidx.core.app.ActivityCompat$2 -> androidx.core.app.ActivityCompat$2:
+    588:588:void <init>(android.app.Activity) -> <init>
+    591:598:void run() -> run
+androidx.core.app.ActivityCompat$Api30Impl -> androidx.core.app.ActivityCompat$Api30Impl:
+    709:711:void <init>() -> <init>
+    715:716:void setLocusContext(android.app.Activity,androidx.core.content.LocusIdCompat,android.os.Bundle) -> setLocusContext
+androidx.core.app.ActivityCompat$SharedElementCallback21Impl -> androidx.core.app.ActivityCompat$SharedElementCallback21Impl:
+    649:651:void <init>(androidx.core.app.SharedElementCallback) -> <init>
+    680:680:android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View,android.graphics.Matrix,android.graphics.RectF) -> onCaptureSharedElementSnapshot
+    686:686:android.view.View onCreateSnapshotView(android.content.Context,android.os.Parcelable) -> onCreateSnapshotView
+    674:675:void onMapSharedElements(java.util.List,java.util.Map) -> onMapSharedElements
+    669:670:void onRejectSharedElements(java.util.List) -> onRejectSharedElements
+    663:665:void onSharedElementEnd(java.util.List,java.util.List,java.util.List) -> onSharedElementEnd
+    656:658:void onSharedElementStart(java.util.List,java.util.List,java.util.List) -> onSharedElementStart
+    693:700:void onSharedElementsArrived(java.util.List,java.util.List,android.app.SharedElementCallback$OnSharedElementsReadyListener) -> onSharedElementsArrived
+androidx.core.app.ActivityCompat$SharedElementCallback21Impl$1 -> androidx.core.app.ActivityCompat$SharedElementCallback21Impl$1:
+    694:694:void <init>(androidx.core.app.ActivityCompat$SharedElementCallback21Impl,android.app.SharedElementCallback$OnSharedElementsReadyListener) -> <init>
+    697:698:void onSharedElementsReady() -> onSharedElementsReady
+androidx.core.app.ActivityManagerCompat -> androidx.core.app.ActivityManagerCompat:
+    30:30:void <init>() -> <init>
+    40:41:boolean isLowRamDevice(android.app.ActivityManager) -> isLowRamDevice
+androidx.core.app.ActivityOptionsCompat -> androidx.core.app.ActivityOptionsCompat:
+    300:301:void <init>() -> <init>
+    325:325:android.graphics.Rect getLaunchBounds() -> getLaunchBounds
+    246:247:androidx.core.app.ActivityOptionsCompat makeBasic() -> makeBasic
+    122:123:androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View,int,int,int,int) -> makeClipRevealAnimation
+    68:69:androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context,int,int) -> makeCustomAnimation
+    98:99:androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View,int,int,int,int) -> makeScaleUpAnimation
+    179:180:androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity,android.view.View,java.lang.String) -> makeSceneTransitionAnimation
+    207:217:androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity,androidx.core.util.Pair[]) -> makeSceneTransitionAnimation
+    234:235:androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind() -> makeTaskLaunchBehind
+    151:152:androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View,android.graphics.Bitmap,int,int) -> makeThumbnailScaleUpAnimation
+    375:375:void requestUsageTimeReport(android.app.PendingIntent) -> requestUsageTimeReport
+    315:315:androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect) -> setLaunchBounds
+    337:337:android.os.Bundle toBundle() -> toBundle
+    347:347:void update(androidx.core.app.ActivityOptionsCompat) -> update
+androidx.core.app.ActivityOptionsCompat$ActivityOptionsCompatImpl -> androidx.core.app.ActivityOptionsCompat$ActivityOptionsCompatImpl:
+    256:258:void <init>(android.app.ActivityOptions) -> <init>
+    293:296:android.graphics.Rect getLaunchBounds() -> getLaunchBounds
+    276:279:void requestUsageTimeReport(android.app.PendingIntent) -> requestUsageTimeReport
+    284:288:androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect) -> setLaunchBounds
+    262:262:android.os.Bundle toBundle() -> toBundle
+    267:272:void update(androidx.core.app.ActivityOptionsCompat) -> update
+androidx.core.app.ActivityRecreator -> androidx.core.app.ActivityRecreator:
+    91:100:void <clinit>() -> <clinit>
+    73:73:void <init>() -> <init>
+    378:380:java.lang.Class getActivityThreadClass() -> getActivityThreadClass
+    358:362:java.lang.reflect.Field getMainThreadField() -> getMainThreadField
+    316:325:java.lang.reflect.Method getPerformStopActivity2Params(java.lang.Class) -> getPerformStopActivity2Params
+    302:311:java.lang.reflect.Method getPerformStopActivity3Params(java.lang.Class) -> getPerformStopActivity3Params
+    334:352:java.lang.reflect.Method getRequestRelaunchActivityMethod(java.lang.Class) -> getRequestRelaunchActivityMethod
+    368:372:java.lang.reflect.Field getTokenField() -> getTokenField
+    330:330:boolean needsRelaunchCall() -> needsRelaunchCall
+    257:297:boolean queueOnStopIfNecessary(java.lang.Object,int,android.app.Activity) -> queueOnStopIfNecessary
+    109:171:boolean recreate(android.app.Activity) -> recreate
+androidx.core.app.ActivityRecreator$1 -> androidx.core.app.ActivityRecreator$1:
+    143:143:void <init>(androidx.core.app.ActivityRecreator$LifecycleCheckCallbacks,java.lang.Object) -> <init>
+    146:147:void run() -> run
+androidx.core.app.ActivityRecreator$2 -> androidx.core.app.ActivityRecreator$2:
+    159:159:void <init>(android.app.Application,androidx.core.app.ActivityRecreator$LifecycleCheckCallbacks) -> <init>
+    166:167:void run() -> run
+androidx.core.app.ActivityRecreator$3 -> androidx.core.app.ActivityRecreator$3:
+    269:269:void <init>(java.lang.Object,java.lang.Object) -> <init>
+    273:292:void run() -> run
+androidx.core.app.ActivityRecreator$LifecycleCheckCallbacks -> androidx.core.app.ActivityRecreator$LifecycleCheckCallbacks:
+    183:196:void <init>(android.app.Activity) -> <init>
+    200:200:void onActivityCreated(android.app.Activity,android.os.Bundle) -> onActivityCreated
+    241:248:void onActivityDestroyed(android.app.Activity) -> onActivityDestroyed
+    218:228:void onActivityPaused(android.app.Activity) -> onActivityPaused
+    214:214:void onActivityResumed(android.app.Activity) -> onActivityResumed
+    232:232:void onActivitySaveInstanceState(android.app.Activity,android.os.Bundle) -> onActivitySaveInstanceState
+    207:210:void onActivityStarted(android.app.Activity) -> onActivityStarted
+    237:237:void onActivityStopped(android.app.Activity) -> onActivityStopped
+androidx.core.app.AlarmManagerCompat -> androidx.core.app.AlarmManagerCompat:
+    229:230:void <init>() -> <init>
+    59:66:void setAlarmClock(android.app.AlarmManager,long,android.app.PendingIntent,android.app.PendingIntent) -> setAlarmClock
+    117:122:void setAndAllowWhileIdle(android.app.AlarmManager,int,long,android.app.PendingIntent) -> setAndAllowWhileIdle
+    162:167:void setExact(android.app.AlarmManager,int,long,android.app.PendingIntent) -> setExact
+    222:227:void setExactAndAllowWhileIdle(android.app.AlarmManager,int,long,android.app.PendingIntent) -> setExactAndAllowWhileIdle
+androidx.core.app.AppComponentFactory -> androidx.core.app.AppComponentFactory:
+    40:40:void <init>() -> <init>
+    50:50:android.app.Activity instantiateActivity(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateActivity
+    137:140:android.app.Activity instantiateActivityCompat(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateActivityCompat
+    61:61:android.app.Application instantiateApplication(java.lang.ClassLoader,java.lang.String) -> instantiateApplication
+    113:116:android.app.Application instantiateApplicationCompat(java.lang.ClassLoader,java.lang.String) -> instantiateApplicationCompat
+    83:83:android.content.ContentProvider instantiateProvider(java.lang.ClassLoader,java.lang.String) -> instantiateProvider
+    204:207:android.content.ContentProvider instantiateProviderCompat(java.lang.ClassLoader,java.lang.String) -> instantiateProviderCompat
+    72:72:android.content.BroadcastReceiver instantiateReceiver(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateReceiver
+    157:160:android.content.BroadcastReceiver instantiateReceiverCompat(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateReceiverCompat
+    94:94:android.app.Service instantiateService(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateService
+    181:184:android.app.Service instantiateServiceCompat(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateServiceCompat
+androidx.core.app.AppLaunchChecker -> androidx.core.app.AppLaunchChecker:
+    87:88:void <init>() -> <init>
+    51:52:boolean hasStartedFromLauncher(android.content.Context) -> hasStartedFromLauncher
+    67:82:void onActivityCreate(android.app.Activity) -> onActivityCreate
+androidx.core.app.AppOpsManagerCompat -> androidx.core.app.AppOpsManagerCompat:
+    60:60:void <init>() -> <init>
+    104:107:int noteOp(android.content.Context,java.lang.String,int,java.lang.String) -> noteOp
+    124:127:int noteOpNoThrow(android.content.Context,java.lang.String,int,java.lang.String) -> noteOpNoThrow
+    156:158:int noteProxyOp(android.content.Context,java.lang.String,java.lang.String) -> noteProxyOp
+    175:177:int noteProxyOpNoThrow(android.content.Context,java.lang.String,java.lang.String) -> noteProxyOpNoThrow
+    75:76:java.lang.String permissionToOp(java.lang.String) -> permissionToOp
+androidx.core.app.BundleCompat -> androidx.core.app.BundleCompat:
+    94:94:void <init>() -> <init>
+    105:106:android.os.IBinder getBinder(android.os.Bundle,java.lang.String) -> getBinder
+    121:126:void putBinder(android.os.Bundle,java.lang.String,android.os.IBinder) -> putBinder
+androidx.core.app.BundleCompat$BundleCompatBaseImpl -> androidx.core.app.BundleCompat$BundleCompatBaseImpl:
+    44:45:void <init>() -> <init>
+    48:67:android.os.IBinder getBinder(android.os.Bundle,java.lang.String) -> getBinder
+    71:91:void putBinder(android.os.Bundle,java.lang.String,android.os.IBinder) -> putBinder
+androidx.core.app.ComponentActivity -> androidx.core.app.ComponentActivity:
+    48:63:void <init>() -> <init>
+    136:140:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    127:131:boolean dispatchKeyShortcutEvent(android.view.KeyEvent) -> dispatchKeyShortcutEvent
+    107:107:androidx.core.app.ComponentActivity$ExtraData getExtraData(java.lang.Class) -> getExtraData
+    113:113:androidx.lifecycle.Lifecycle getLifecycle() -> getLifecycle
+    85:87:void onCreate(android.os.Bundle) -> onCreate
+    92:94:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    79:80:void putExtraData(androidx.core.app.ComponentActivity$ExtraData) -> putExtraData
+    122:122:boolean superDispatchKeyEvent(android.view.KeyEvent) -> superDispatchKeyEvent
+androidx.core.app.ComponentActivity$ExtraData -> androidx.core.app.ComponentActivity$ExtraData:
+    151:151:void <init>() -> <init>
+androidx.core.app.CoreComponentFactory -> androidx.core.app.CoreComponentFactory:
+    39:39:void <init>() -> <init>
+    80:86:java.lang.Object checkCompatWrapper(java.lang.Object) -> checkCompatWrapper
+    45:45:android.app.Activity instantiateActivity(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateActivity
+    52:52:android.app.Application instantiateApplication(java.lang.ClassLoader,java.lang.String) -> instantiateApplication
+    67:67:android.content.ContentProvider instantiateProvider(java.lang.ClassLoader,java.lang.String) -> instantiateProvider
+    60:60:android.content.BroadcastReceiver instantiateReceiver(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateReceiver
+    75:75:android.app.Service instantiateService(java.lang.ClassLoader,java.lang.String,android.content.Intent) -> instantiateService
+androidx.core.app.DialogCompat -> androidx.core.app.DialogCompat:
+    32:33:void <init>() -> <init>
+    55:63:android.view.View requireViewById(android.app.Dialog,int) -> requireViewById
+androidx.core.app.FrameMetricsAggregator -> androidx.core.app.FrameMetricsAggregator:
+    199:200:void <init>() -> <init>
+    212:218:void <init>(int) -> <init>
+    226:227:void add(android.app.Activity) -> add
+    301:301:android.util.SparseIntArray[] getMetrics() -> getMetrics
+    243:243:android.util.SparseIntArray[] remove(android.app.Activity) -> remove
+    273:273:android.util.SparseIntArray[] reset() -> reset
+    260:260:android.util.SparseIntArray[] stop() -> stop
+androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl -> androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl:
+    341:342:void <clinit>() -> <clinit>
+    339:348:void <init>(int) -> <init>
+    411:423:void add(android.app.Activity) -> add
+    399:407:void addDurationItem(android.util.SparseIntArray,long) -> addDurationItem
+    453:453:android.util.SparseIntArray[] getMetrics() -> getMetrics
+    427:434:android.util.SparseIntArray[] remove(android.app.Activity) -> remove
+    458:460:android.util.SparseIntArray[] reset() -> reset
+    439:448:android.util.SparseIntArray[] stop() -> stop
+androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl$1 -> androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl$1:
+    349:349:void <init>(androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl) -> <init>
+    353:395:void onFrameMetricsAvailable(android.view.Window,android.view.FrameMetrics,int) -> onFrameMetricsAvailable
+androidx.core.app.FrameMetricsAggregator$FrameMetricsBaseImpl -> androidx.core.app.FrameMetricsAggregator$FrameMetricsBaseImpl:
+    309:310:void <init>() -> <init>
+    313:313:void add(android.app.Activity) -> add
+    324:324:android.util.SparseIntArray[] getMetrics() -> getMetrics
+    316:316:android.util.SparseIntArray[] remove(android.app.Activity) -> remove
+    328:328:android.util.SparseIntArray[] reset() -> reset
+    320:320:android.util.SparseIntArray[] stop() -> stop
+androidx.core.app.JobIntentService -> androidx.core.app.JobIntentService:
+    104:105:void <clinit>() -> <clinit>
+    98:421:void <init>() -> <init>
+    639:648:androidx.core.app.JobIntentService$GenericWorkItem dequeueWork() -> dequeueWork
+    598:602:boolean doStopCurrentWork() -> doStopCurrentWork
+    500:501:void enqueueWork(android.content.Context,java.lang.Class,int,android.content.Intent) -> enqueueWork
+    516:524:void enqueueWork(android.content.Context,android.content.ComponentName,int,android.content.Intent) -> enqueueWork
+    607:615:void ensureProcessorRunningLocked(boolean) -> ensureProcessorRunningLocked
+    528:540:androidx.core.app.JobIntentService$WorkEnqueuer getWorkEnqueuer(android.content.Context,android.content.ComponentName,boolean,int) -> getWorkEnqueuer
+    579:579:boolean isStopped() -> isStopped
+    464:469:android.os.IBinder onBind(android.content.Intent) -> onBind
+    425:435:void onCreate() -> onCreate
+    475:482:void onDestroy() -> onDestroy
+    443:454:int onStartCommand(android.content.Intent,int,int) -> onStartCommand
+    594:594:boolean onStopCurrentWork() -> onStopCurrentWork
+    618:636:void processorFinished() -> processorFinished
+    571:572:void setInterruptIfStopped(boolean) -> setInterruptIfStopped
+androidx.core.app.JobIntentService$CommandProcessor -> androidx.core.app.JobIntentService$CommandProcessor:
+    382:382:void <init>(androidx.core.app.JobIntentService) -> <init>
+    382:382:java.lang.Object doInBackground(java.lang.Object[]) -> doInBackground
+    389:398:java.lang.Void doInBackground(java.lang.Void[]) -> doInBackground
+    382:382:void onCancelled(java.lang.Object) -> onCancelled
+    403:404:void onCancelled(java.lang.Void) -> onCancelled
+    382:382:void onPostExecute(java.lang.Object) -> onPostExecute
+    408:409:void onPostExecute(java.lang.Void) -> onPostExecute
+androidx.core.app.JobIntentService$CompatWorkEnqueuer -> androidx.core.app.JobIntentService$CompatWorkEnqueuer:
+    162:174:void <init>(android.content.Context,android.content.ComponentName) -> <init>
+    178:196:void enqueueWork(android.content.Intent) -> enqueueWork
+    223:234:void serviceProcessingFinished() -> serviceProcessingFinished
+    209:219:void serviceProcessingStarted() -> serviceProcessingStarted
+    200:205:void serviceStartReceived() -> serviceStartReceived
+androidx.core.app.JobIntentService$CompatWorkItem -> androidx.core.app.JobIntentService$CompatWorkItem:
+    362:365:void <init>(androidx.core.app.JobIntentService,android.content.Intent,int) -> <init>
+    375:376:void complete() -> complete
+    369:369:android.content.Intent getIntent() -> getIntent
+androidx.core.app.JobIntentService$JobServiceEngineImpl -> androidx.core.app.JobIntentService$JobServiceEngineImpl:
+    248:276:void <init>(androidx.core.app.JobIntentService) -> <init>
+    280:280:android.os.IBinder compatGetBinder() -> compatGetBinder
+    310:320:androidx.core.app.JobIntentService$GenericWorkItem dequeueWork() -> dequeueWork
+    286:289:boolean onStartJob(android.app.job.JobParameters) -> onStartJob
+    295:301:boolean onStopJob(android.app.job.JobParameters) -> onStopJob
+androidx.core.app.JobIntentService$JobServiceEngineImpl$WrapperWorkItem -> androidx.core.app.JobIntentService$JobServiceEngineImpl$WrapperWorkItem:
+    254:256:void <init>(androidx.core.app.JobIntentService$JobServiceEngineImpl,android.app.job.JobWorkItem) -> <init>
+    265:270:void complete() -> complete
+    260:260:android.content.Intent getIntent() -> getIntent
+androidx.core.app.JobIntentService$JobWorkEnqueuer -> androidx.core.app.JobIntentService$JobWorkEnqueuer:
+    331:337:void <init>(android.content.Context,android.content.ComponentName,int) -> <init>
+    342:343:void enqueueWork(android.content.Intent) -> enqueueWork
+androidx.core.app.JobIntentService$WorkEnqueuer -> androidx.core.app.JobIntentService$WorkEnqueuer:
+    117:119:void <init>(android.content.ComponentName) -> <init>
+    122:129:void ensureJobId(int) -> ensureJobId
+    140:140:void serviceProcessingFinished() -> serviceProcessingFinished
+    137:137:void serviceProcessingStarted() -> serviceProcessingStarted
+    134:134:void serviceStartReceived() -> serviceStartReceived
+androidx.core.app.NavUtils -> androidx.core.app.NavUtils:
+    282:283:void <init>() -> <init>
+    129:150:android.content.Intent getParentActivityIntent(android.app.Activity) -> getParentActivityIntent
+    168:178:android.content.Intent getParentActivityIntent(android.content.Context,java.lang.Class) -> getParentActivityIntent
+    195:205:android.content.Intent getParentActivityIntent(android.content.Context,android.content.ComponentName) -> getParentActivityIntent
+    220:223:java.lang.String getParentActivityName(android.app.Activity) -> getParentActivityName
+    240:278:java.lang.String getParentActivityName(android.content.Context,android.content.ComponentName) -> getParentActivityName
+    81:92:void navigateUpFromSameTask(android.app.Activity) -> navigateUpFromSameTask
+    108:115:void navigateUpTo(android.app.Activity,android.content.Intent) -> navigateUpTo
+    60:61:boolean shouldUpRecreateTask(android.app.Activity,android.content.Intent) -> shouldUpRecreateTask
+androidx.core.app.NotificationChannelCompat -> androidx.core.app.NotificationChannelCompat:
+    59:280:void <init>(java.lang.String,int) -> <init>
+    284:309:void <init>(android.app.NotificationChannel) -> <init>
+    508:508:boolean canBubble() -> canBubble
+    485:485:boolean canBypassDnd() -> canBypassDnd
+    444:444:boolean canShowBadge() -> canShowBadge
+    403:403:android.media.AudioAttributes getAudioAttributes() -> getAudioAttributes
+    474:474:java.lang.String getConversationId() -> getConversationId
+    374:374:java.lang.String getDescription() -> getDescription
+    454:454:java.lang.String getGroup() -> getGroup
+    358:358:java.lang.String getId() -> getId
+    387:387:int getImportance() -> getImportance
+    418:418:int getLightColor() -> getLightColor
+    497:497:int getLockscreenVisibility() -> getLockscreenVisibility
+    366:366:java.lang.CharSequence getName() -> getName
+    317:332:android.app.NotificationChannel getNotificationChannel() -> getNotificationChannel
+    464:464:java.lang.String getParentChannelId() -> getParentChannelId
+    395:395:android.net.Uri getSound() -> getSound
+    434:434:long[] getVibrationPattern() -> getVibrationPattern
+    523:523:boolean isImportantConversation() -> isImportantConversation
+    410:410:boolean shouldShowLights() -> shouldShowLights
+    425:425:boolean shouldVibrate() -> shouldVibrate
+    340:350:androidx.core.app.NotificationChannelCompat$Builder toBuilder() -> toBuilder
+androidx.core.app.NotificationChannelCompat$Builder -> androidx.core.app.NotificationChannelCompat$Builder:
+    89:91:void <init>(java.lang.String,int) -> <init>
+    270:270:androidx.core.app.NotificationChannelCompat build() -> build
+    258:262:androidx.core.app.NotificationChannelCompat$Builder setConversationId(java.lang.String,java.lang.String) -> setConversationId
+    131:132:androidx.core.app.NotificationChannelCompat$Builder setDescription(java.lang.String) -> setDescription
+    149:150:androidx.core.app.NotificationChannelCompat$Builder setGroup(java.lang.String) -> setGroup
+    119:120:androidx.core.app.NotificationChannelCompat$Builder setImportance(int) -> setImportance
+    207:208:androidx.core.app.NotificationChannelCompat$Builder setLightColor(int) -> setLightColor
+    193:194:androidx.core.app.NotificationChannelCompat$Builder setLightsEnabled(boolean) -> setLightsEnabled
+    104:105:androidx.core.app.NotificationChannelCompat$Builder setName(java.lang.CharSequence) -> setName
+    164:165:androidx.core.app.NotificationChannelCompat$Builder setShowBadge(boolean) -> setShowBadge
+    179:181:androidx.core.app.NotificationChannelCompat$Builder setSound(android.net.Uri,android.media.AudioAttributes) -> setSound
+    220:221:androidx.core.app.NotificationChannelCompat$Builder setVibrationEnabled(boolean) -> setVibrationEnabled
+    234:236:androidx.core.app.NotificationChannelCompat$Builder setVibrationPattern(long[]) -> setVibrationPattern
+androidx.core.app.NotificationChannelGroupCompat -> androidx.core.app.NotificationChannelGroupCompat:
+    48:105:void <init>(java.lang.String) -> <init>
+    109:110:void <init>(android.app.NotificationChannelGroup) -> <init>
+    115:130:void <init>(android.app.NotificationChannelGroup,java.util.List) -> <init>
+    216:216:java.util.List getChannels() -> getChannels
+    134:140:java.util.List getChannelsCompat(java.util.List) -> getChannelsCompat
+    190:190:java.lang.String getDescription() -> getDescription
+    174:174:java.lang.String getId() -> getId
+    182:182:java.lang.CharSequence getName() -> getName
+    149:156:android.app.NotificationChannelGroup getNotificationChannelGroup() -> getNotificationChannelGroup
+    205:205:boolean isBlocked() -> isBlocked
+    164:166:androidx.core.app.NotificationChannelGroupCompat$Builder toBuilder() -> toBuilder
+androidx.core.app.NotificationChannelGroupCompat$Builder -> androidx.core.app.NotificationChannelGroupCompat$Builder:
+    62:64:void <init>(java.lang.String) -> <init>
+    99:99:androidx.core.app.NotificationChannelGroupCompat build() -> build
+    90:91:androidx.core.app.NotificationChannelGroupCompat$Builder setDescription(java.lang.String) -> setDescription
+    77:78:androidx.core.app.NotificationChannelGroupCompat$Builder setName(java.lang.CharSequence) -> setName
+androidx.core.app.NotificationCompat -> androidx.core.app.NotificationCompat:
+    7659:7660:void <init>() -> <init>
+    7224:7225:androidx.core.app.NotificationCompat$Action getAction(android.app.Notification,int) -> getAction
+    7263:7314:androidx.core.app.NotificationCompat$Action getActionCompatFromAction(android.app.Notification$Action) -> getActionCompatFromAction
+    7207:7208:int getActionCount(android.app.Notification) -> getActionCount
+    7649:7652:boolean getAllowSystemGeneratedContextualActions(android.app.Notification) -> getAllowSystemGeneratedContextualActions
+    7468:7468:boolean getAutoCancel(android.app.Notification) -> getAutoCancel
+    7582:7585:int getBadgeIconType(android.app.Notification) -> getBadgeIconType
+    7252:7255:androidx.core.app.NotificationCompat$BubbleMetadata getBubbleMetadata(android.app.Notification) -> getBubbleMetadata
+    7402:7403:java.lang.String getCategory(android.app.Notification) -> getCategory
+    7557:7560:java.lang.String getChannelId(android.app.Notification) -> getChannelId
+    7478:7479:int getColor(android.app.Notification) -> getColor
+    7387:7387:java.lang.CharSequence getContentInfo(android.app.Notification) -> getContentInfo
+    7381:7381:java.lang.CharSequence getContentText(android.app.Notification) -> getContentText
+    7375:7375:java.lang.CharSequence getContentTitle(android.app.Notification) -> getContentTitle
+    7193:7194:android.os.Bundle getExtras(android.app.Notification) -> getExtras
+    7433:7434:java.lang.String getGroup(android.app.Notification) -> getGroup
+    7636:7639:int getGroupAlertBehavior(android.app.Notification) -> getGroupAlertBehavior
+    7506:7506:boolean getHighPriority(android.app.Notification) -> getHighPriority
+    7327:7343:java.util.List getInvisibleActions(android.app.Notification) -> getInvisibleActions
+    7416:7417:boolean getLocalOnly(android.app.Notification) -> getLocalOnly
+    7621:7625:androidx.core.content.LocusIdCompat getLocusId(android.app.Notification) -> getLocusId
+    7174:7183:android.app.Notification[] getNotificationArrayFromBundle(android.os.Bundle,java.lang.String) -> getNotificationArrayFromBundle
+    7473:7473:boolean getOngoing(android.app.Notification) -> getOngoing
+    7463:7463:boolean getOnlyAlertOnce(android.app.Notification) -> getOnlyAlertOnce
+    7352:7369:java.util.List getPeople(android.app.Notification) -> getPeople
+    7496:7497:android.app.Notification getPublicVersion(android.app.Notification) -> getPublicVersion
+    7605:7608:java.lang.CharSequence getSettingsText(android.app.Notification) -> getSettingsText
+    7594:7597:java.lang.String getShortcutId(android.app.Notification) -> getShortcutId
+    7450:7450:boolean getShowWhen(android.app.Notification) -> getShowWhen
+    7541:7542:java.lang.String getSortKey(android.app.Notification) -> getSortKey
+    7393:7393:java.lang.CharSequence getSubText(android.app.Notification) -> getSubText
+    7569:7572:long getTimeoutAfter(android.app.Notification) -> getTimeoutAfter
+    7458:7458:boolean getUsesChronometer(android.app.Notification) -> getUsesChronometer
+    7487:7488:int getVisibility(android.app.Notification) -> getVisibility
+    7516:7517:boolean isGroupSummary(android.app.Notification) -> isGroupSummary
+androidx.core.app.NotificationCompat$Action -> androidx.core.app.NotificationCompat$Action:
+    4440:4441:void <init>(int,java.lang.CharSequence,android.app.PendingIntent) -> <init>
+    4449:4451:void <init>(androidx.core.graphics.drawable.IconCompat,java.lang.CharSequence,android.app.PendingIntent) -> <init>
+    4458:4461:void <init>(int,java.lang.CharSequence,android.app.PendingIntent,android.os.Bundle,androidx.core.app.RemoteInput[],androidx.core.app.RemoteInput[],boolean,int,boolean,boolean) -> <init>
+    4417:4483:void <init>(androidx.core.graphics.drawable.IconCompat,java.lang.CharSequence,android.app.PendingIntent,android.os.Bundle,androidx.core.app.RemoteInput[],androidx.core.app.RemoteInput[],boolean,int,boolean,boolean) -> <init>
+    4510:4510:android.app.PendingIntent getActionIntent() -> getActionIntent
+    4525:4525:boolean getAllowGeneratedReplies() -> getAllowGeneratedReplies
+    4568:4568:androidx.core.app.RemoteInput[] getDataOnlyRemoteInputs() -> getDataOnlyRemoteInputs
+    4517:4517:android.os.Bundle getExtras() -> getExtras
+    4491:4491:int getIcon() -> getIcon
+    4499:4502:androidx.core.graphics.drawable.IconCompat getIconCompat() -> getIconCompat
+    4534:4534:androidx.core.app.RemoteInput[] getRemoteInputs() -> getRemoteInputs
+    4545:4545:int getSemanticAction() -> getSemanticAction
+    4576:4576:boolean getShowsUserInterface() -> getShowsUserInterface
+    4506:4506:java.lang.CharSequence getTitle() -> getTitle
+    4554:4554:boolean isContextual() -> isContextual
+androidx.core.app.NotificationCompat$Action$Builder -> androidx.core.app.NotificationCompat$Action$Builder:
+    4642:4644:void <init>(androidx.core.graphics.drawable.IconCompat,java.lang.CharSequence,android.app.PendingIntent) -> <init>
+    4653:4661:void <init>(int,java.lang.CharSequence,android.app.PendingIntent) -> <init>
+    4669:4674:void <init>(androidx.core.app.NotificationCompat$Action) -> <init>
+    4586:4691:void <init>(androidx.core.graphics.drawable.IconCompat,java.lang.CharSequence,android.app.PendingIntent,android.os.Bundle,androidx.core.app.RemoteInput[],boolean,int,boolean,boolean) -> <init>
+    4701:4704:androidx.core.app.NotificationCompat$Action$Builder addExtras(android.os.Bundle) -> addExtras
+    4724:4730:androidx.core.app.NotificationCompat$Action$Builder addRemoteInput(androidx.core.app.RemoteInput) -> addRemoteInput
+    4813:4830:androidx.core.app.NotificationCompat$Action build() -> build
+    4797:4803:void checkContextualActionNullFields() -> checkContextualActionNullFields
+    4788:4789:androidx.core.app.NotificationCompat$Action$Builder extend(androidx.core.app.NotificationCompat$Action$Extender) -> extend
+    4603:4628:androidx.core.app.NotificationCompat$Action$Builder fromAndroidAction(android.app.Notification$Action) -> fromAndroidAction
+    4713:4713:android.os.Bundle getExtras() -> getExtras
+    4743:4744:androidx.core.app.NotificationCompat$Action$Builder setAllowGeneratedReplies(boolean) -> setAllowGeneratedReplies
+    4766:4767:androidx.core.app.NotificationCompat$Action$Builder setContextual(boolean) -> setContextual
+    4756:4757:androidx.core.app.NotificationCompat$Action$Builder setSemanticAction(int) -> setSemanticAction
+    4779:4780:androidx.core.app.NotificationCompat$Action$Builder setShowsUserInterface(boolean) -> setShowsUserInterface
+androidx.core.app.NotificationCompat$Action$WearableExtender -> androidx.core.app.NotificationCompat$Action$WearableExtender:
+    4882:4893:void <init>() -> <init>
+    4882:4908:void <init>(androidx.core.app.NotificationCompat$Action) -> <init>
+    4864:4864:java.lang.Object clone() -> clone
+    4938:4943:androidx.core.app.NotificationCompat$Action$WearableExtender clone() -> clone
+    4917:4933:androidx.core.app.NotificationCompat$Action$Builder extend(androidx.core.app.NotificationCompat$Action$Builder) -> extend
+    5057:5057:java.lang.CharSequence getCancelLabel() -> getCancelLabel
+    5029:5029:java.lang.CharSequence getConfirmLabel() -> getConfirmLabel
+    5108:5108:boolean getHintDisplayActionInline() -> getHintDisplayActionInline
+    5081:5081:boolean getHintLaunchesActivity() -> getHintLaunchesActivity
+    5000:5000:java.lang.CharSequence getInProgressLabel() -> getInProgressLabel
+    4964:4964:boolean isAvailableOffline() -> isAvailableOffline
+    4953:4954:androidx.core.app.NotificationCompat$Action$WearableExtender setAvailableOffline(boolean) -> setAvailableOffline
+    5043:5044:androidx.core.app.NotificationCompat$Action$WearableExtender setCancelLabel(java.lang.CharSequence) -> setCancelLabel
+    5014:5015:androidx.core.app.NotificationCompat$Action$WearableExtender setConfirmLabel(java.lang.CharSequence) -> setConfirmLabel
+    4968:4973:void setFlag(int,boolean) -> setFlag
+    5095:5096:androidx.core.app.NotificationCompat$Action$WearableExtender setHintDisplayActionInline(boolean) -> setHintDisplayActionInline
+    5069:5070:androidx.core.app.NotificationCompat$Action$WearableExtender setHintLaunchesActivity(boolean) -> setHintLaunchesActivity
+    4986:4987:androidx.core.app.NotificationCompat$Action$WearableExtender setInProgressLabel(java.lang.CharSequence) -> setInProgressLabel
+androidx.core.app.NotificationCompat$BigPictureStyle -> androidx.core.app.NotificationCompat$BigPictureStyle:
+    2942:2943:void <init>() -> <init>
+    2945:2947:void <init>(androidx.core.app.NotificationCompat$Builder) -> <init>
+    3000:3027:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    3046:3056:androidx.core.graphics.drawable.IconCompat asIconCompat(android.os.Parcelable) -> asIconCompat
+    2979:2981:androidx.core.app.NotificationCompat$BigPictureStyle bigLargeIcon(android.graphics.Bitmap) -> bigLargeIcon
+    2971:2972:androidx.core.app.NotificationCompat$BigPictureStyle bigPicture(android.graphics.Bitmap) -> bigPicture
+    3065:3068:void clearCompatExtraKeys(android.os.Bundle) -> clearCompatExtraKeys
+    2991:2991:java.lang.String getClassName() -> getClassName
+    3035:3042:void restoreFromCompatExtras(android.os.Bundle) -> restoreFromCompatExtras
+    2954:2955:androidx.core.app.NotificationCompat$BigPictureStyle setBigContentTitle(java.lang.CharSequence) -> setBigContentTitle
+    2962:2964:androidx.core.app.NotificationCompat$BigPictureStyle setSummaryText(java.lang.CharSequence) -> setSummaryText
+androidx.core.app.NotificationCompat$BigPictureStyle$Api16Impl -> androidx.core.app.NotificationCompat$BigPictureStyle$Api16Impl:
+    3077:3078:void <init>() -> <init>
+    3085:3086:void setBigLargeIcon(android.app.Notification$BigPictureStyle,android.graphics.Bitmap) -> setBigLargeIcon
+    3093:3094:void setSummaryText(android.app.Notification$BigPictureStyle,java.lang.CharSequence) -> setSummaryText
+androidx.core.app.NotificationCompat$BigPictureStyle$Api23Impl -> androidx.core.app.NotificationCompat$BigPictureStyle$Api23Impl:
+    3104:3105:void <init>() -> <init>
+    3112:3113:void setBigLargeIcon(android.app.Notification$BigPictureStyle,android.graphics.drawable.Icon) -> setBigLargeIcon
+androidx.core.app.NotificationCompat$BigTextStyle -> androidx.core.app.NotificationCompat$BigTextStyle:
+    3145:3146:void <init>() -> <init>
+    3148:3150:void <init>(androidx.core.app.NotificationCompat$Builder) -> <init>
+    3223:3231:void addCompatExtras(android.os.Bundle) -> addCompatExtras
+    3195:3204:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    3175:3176:androidx.core.app.NotificationCompat$BigTextStyle bigText(java.lang.CharSequence) -> bigText
+    3239:3241:void clearCompatExtraKeys(android.os.Bundle) -> clearCompatExtraKeys
+    3186:3186:java.lang.String getClassName() -> getClassName
+    3212:3215:void restoreFromCompatExtras(android.os.Bundle) -> restoreFromCompatExtras
+    3157:3158:androidx.core.app.NotificationCompat$BigTextStyle setBigContentTitle(java.lang.CharSequence) -> setBigContentTitle
+    3165:3167:androidx.core.app.NotificationCompat$BigTextStyle setSummaryText(java.lang.CharSequence) -> setSummaryText
+androidx.core.app.NotificationCompat$BubbleMetadata -> androidx.core.app.NotificationCompat$BubbleMetadata:
+    6582:6582:void <init>(android.app.PendingIntent,android.app.PendingIntent,androidx.core.graphics.drawable.IconCompat,int,int,int,java.lang.String,androidx.core.app.NotificationCompat$1) -> <init>
+    6627:6635:void <init>(android.app.PendingIntent,android.app.PendingIntent,androidx.core.graphics.drawable.IconCompat,int,int,int,java.lang.String) -> <init>
+    6750:6758:androidx.core.app.NotificationCompat$BubbleMetadata fromPlatform(android.app.Notification$BubbleMetadata) -> fromPlatform
+    6701:6701:boolean getAutoExpandBubble() -> getAutoExpandBubble
+    6662:6662:android.app.PendingIntent getDeleteIntent() -> getDeleteIntent
+    6682:6682:int getDesiredHeight() -> getDesiredHeight
+    6692:6692:int getDesiredHeightResId() -> getDesiredHeightResId
+    6672:6672:androidx.core.graphics.drawable.IconCompat getIcon() -> getIcon
+    6644:6644:android.app.PendingIntent getIntent() -> getIntent
+    6654:6654:java.lang.String getShortcutId() -> getShortcutId
+    6710:6710:boolean isNotificationSuppressed() -> isNotificationSuppressed
+    6716:6717:void setFlags(int) -> setFlags
+    6729:6737:android.app.Notification$BubbleMetadata toPlatform(androidx.core.app.NotificationCompat$BubbleMetadata) -> toPlatform
+androidx.core.app.NotificationCompat$BubbleMetadata$Api29Impl -> androidx.core.app.NotificationCompat$BubbleMetadata$Api29Impl:
+    6999:7000:void <init>() -> <init>
+    7052:7075:androidx.core.app.NotificationCompat$BubbleMetadata fromPlatform(android.app.Notification$BubbleMetadata) -> fromPlatform
+    7013:7038:android.app.Notification$BubbleMetadata toPlatform(androidx.core.app.NotificationCompat$BubbleMetadata) -> toPlatform
+androidx.core.app.NotificationCompat$BubbleMetadata$Api30Impl -> androidx.core.app.NotificationCompat$BubbleMetadata$Api30Impl:
+    7082:7083:void <init>() -> <init>
+    7137:7162:androidx.core.app.NotificationCompat$BubbleMetadata fromPlatform(android.app.Notification$BubbleMetadata) -> fromPlatform
+    7096:7123:android.app.Notification$BubbleMetadata toPlatform(androidx.core.app.NotificationCompat$BubbleMetadata) -> toPlatform
+androidx.core.app.NotificationCompat$BubbleMetadata$Builder -> androidx.core.app.NotificationCompat$BubbleMetadata$Builder:
+    6780:6781:void <init>() -> <init>
+    6805:6810:void <init>(java.lang.String) -> <init>
+    6826:6835:void <init>(android.app.PendingIntent,androidx.core.graphics.drawable.IconCompat) -> <init>
+    6971:6982:androidx.core.app.NotificationCompat$BubbleMetadata build() -> build
+    6932:6933:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setAutoExpandBubble(boolean) -> setAutoExpandBubble
+    6959:6960:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setDeleteIntent(android.app.PendingIntent) -> setDeleteIntent
+    6898:6900:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setDesiredHeight(int) -> setDesiredHeight
+    6914:6916:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setDesiredHeightResId(int) -> setDesiredHeightResId
+    6987:6992:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setFlag(int,boolean) -> setFlag
+    6875:6884:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setIcon(androidx.core.graphics.drawable.IconCompat) -> setIcon
+    6847:6856:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setIntent(android.app.PendingIntent) -> setIntent
+    6950:6951:androidx.core.app.NotificationCompat$BubbleMetadata$Builder setSuppressNotification(boolean) -> setSuppressNotification
+androidx.core.app.NotificationCompat$Builder -> androidx.core.app.NotificationCompat$Builder:
+    907:1010:void <init>(android.content.Context,android.app.Notification) -> <init>
+    835:1081:void <init>(android.content.Context,java.lang.String) -> <init>
+    1089:1090:void <init>(android.content.Context) -> <init>
+    1879:1880:androidx.core.app.NotificationCompat$Builder addAction(int,java.lang.CharSequence,android.app.PendingIntent) -> addAction
+    1898:1901:androidx.core.app.NotificationCompat$Builder addAction(androidx.core.app.NotificationCompat$Action) -> addAction
+    1817:1824:androidx.core.app.NotificationCompat$Builder addExtras(android.os.Bundle) -> addExtras
+    1926:1927:androidx.core.app.NotificationCompat$Builder addInvisibleAction(int,java.lang.CharSequence,android.app.PendingIntent) -> addInvisibleAction
+    1940:1943:androidx.core.app.NotificationCompat$Builder addInvisibleAction(androidx.core.app.NotificationCompat$Action) -> addInvisibleAction
+    1721:1724:androidx.core.app.NotificationCompat$Builder addPerson(java.lang.String) -> addPerson
+    1748:1751:androidx.core.app.NotificationCompat$Builder addPerson(androidx.core.app.Person) -> addPerson
+    2346:2346:android.app.Notification build() -> build
+    1908:1909:androidx.core.app.NotificationCompat$Builder clearActions() -> clearActions
+    1950:1959:androidx.core.app.NotificationCompat$Builder clearInvisibleActions() -> clearInvisibleActions
+    1759:1761:androidx.core.app.NotificationCompat$Builder clearPeople() -> clearPeople
+    2062:2083:android.widget.RemoteViews createBigContentView() -> createBigContentView
+    2032:2049:android.widget.RemoteViews createContentView() -> createContentView
+    2096:2118:android.widget.RemoteViews createHeadsUpContentView() -> createHeadsUpContentView
+    2320:2321:androidx.core.app.NotificationCompat$Builder extend(androidx.core.app.NotificationCompat$Extender) -> extend
+    2370:2370:android.widget.RemoteViews getBigContentView() -> getBigContentView
+    2419:2419:androidx.core.app.NotificationCompat$BubbleMetadata getBubbleMetadata() -> getBubbleMetadata
+    2409:2409:int getColor() -> getColor
+    2362:2362:android.widget.RemoteViews getContentView() -> getContentView
+    1855:1858:android.os.Bundle getExtras() -> getExtras
+    1017:1055:android.os.Bundle getExtrasWithoutDuplicateData(android.app.Notification,androidx.core.app.NotificationCompat$Style) -> getExtrasWithoutDuplicateData
+    2378:2378:android.widget.RemoteViews getHeadsUpContentView() -> getHeadsUpContentView
+    2338:2338:android.app.Notification getNotification() -> getNotification
+    2398:2398:int getPriority() -> getPriority
+    2388:2388:long getWhenIfShowing() -> getWhenIfShowing
+    2350:2354:java.lang.CharSequence limitCharSequenceLength(java.lang.CharSequence) -> limitCharSequenceLength
+    1424:1443:android.graphics.Bitmap reduceLargeIconSize(android.graphics.Bitmap) -> reduceLargeIconSize
+    2329:2330:androidx.core.app.NotificationCompat$Builder setAllowSystemGeneratedContextualActions(boolean) -> setAllowSystemGeneratedContextualActions
+    1606:1607:androidx.core.app.NotificationCompat$Builder setAutoCancel(boolean) -> setAutoCancel
+    2280:2281:androidx.core.app.NotificationCompat$Builder setBadgeIconType(int) -> setBadgeIconType
+    2311:2312:androidx.core.app.NotificationCompat$Builder setBubbleMetadata(androidx.core.app.NotificationCompat$BubbleMetadata) -> setBubbleMetadata
+    1629:1630:androidx.core.app.NotificationCompat$Builder setCategory(java.lang.String) -> setCategory
+    2168:2169:androidx.core.app.NotificationCompat$Builder setChannelId(java.lang.String) -> setChannelId
+    1155:1157:androidx.core.app.NotificationCompat$Builder setChronometerCountDown(boolean) -> setChronometerCountDown
+    1988:1989:androidx.core.app.NotificationCompat$Builder setColor(int) -> setColor
+    1585:1587:androidx.core.app.NotificationCompat$Builder setColorized(boolean) -> setColorized
+    1329:1330:androidx.core.app.NotificationCompat$Builder setContent(android.widget.RemoteViews) -> setContent
+    1310:1311:androidx.core.app.NotificationCompat$Builder setContentInfo(java.lang.CharSequence) -> setContentInfo
+    1342:1343:androidx.core.app.NotificationCompat$Builder setContentIntent(android.app.PendingIntent) -> setContentIntent
+    1222:1223:androidx.core.app.NotificationCompat$Builder setContentText(java.lang.CharSequence) -> setContentText
+    1214:1215:androidx.core.app.NotificationCompat$Builder setContentTitle(java.lang.CharSequence) -> setContentTitle
+    2145:2146:androidx.core.app.NotificationCompat$Builder setCustomBigContentView(android.widget.RemoteViews) -> setCustomBigContentView
+    2132:2133:androidx.core.app.NotificationCompat$Builder setCustomContentView(android.widget.RemoteViews) -> setCustomContentView
+    2158:2159:androidx.core.app.NotificationCompat$Builder setCustomHeadsUpContentView(android.widget.RemoteViews) -> setCustomHeadsUpContentView
+    1654:1658:androidx.core.app.NotificationCompat$Builder setDefaults(int) -> setDefaults
+    1354:1355:androidx.core.app.NotificationCompat$Builder setDeleteIntent(android.app.PendingIntent) -> setDeleteIntent
+    1840:1841:androidx.core.app.NotificationCompat$Builder setExtras(android.os.Bundle) -> setExtras
+    1662:1667:void setFlag(int,boolean) -> setFlag
+    1380:1382:androidx.core.app.NotificationCompat$Builder setFullScreenIntent(android.app.PendingIntent,boolean) -> setFullScreenIntent
+    1776:1777:androidx.core.app.NotificationCompat$Builder setGroup(java.lang.String) -> setGroup
+    2295:2296:androidx.core.app.NotificationCompat$Builder setGroupAlertBehavior(int) -> setGroupAlertBehavior
+    1788:1789:androidx.core.app.NotificationCompat$Builder setGroupSummary(boolean) -> setGroupSummary
+    1415:1416:androidx.core.app.NotificationCompat$Builder setLargeIcon(android.graphics.Bitmap) -> setLargeIcon
+    1540:1546:androidx.core.app.NotificationCompat$Builder setLights(int,int,int) -> setLights
+    1617:1618:androidx.core.app.NotificationCompat$Builder setLocalOnly(boolean) -> setLocalOnly
+    2266:2267:androidx.core.app.NotificationCompat$Builder setLocusId(androidx.core.content.LocusIdCompat) -> setLocusId
+    1196:1197:androidx.core.app.NotificationCompat$Builder setNotificationSilent() -> setNotificationSilent
+    1296:1297:androidx.core.app.NotificationCompat$Builder setNumber(int) -> setNumber
+    1562:1563:androidx.core.app.NotificationCompat$Builder setOngoing(boolean) -> setOngoing
+    1595:1596:androidx.core.app.NotificationCompat$Builder setOnlyAlertOnce(boolean) -> setOnlyAlertOnce
+    1692:1693:androidx.core.app.NotificationCompat$Builder setPriority(int) -> setPriority
+    1319:1322:androidx.core.app.NotificationCompat$Builder setProgress(int,int,boolean) -> setProgress
+    2013:2014:androidx.core.app.NotificationCompat$Builder setPublicVersion(android.app.Notification) -> setPublicVersion
+    1283:1284:androidx.core.app.NotificationCompat$Builder setRemoteInputHistory(java.lang.CharSequence[]) -> setRemoteInputHistory
+    1264:1265:androidx.core.app.NotificationCompat$Builder setSettingsText(java.lang.CharSequence) -> setSettingsText
+    2225:2226:androidx.core.app.NotificationCompat$Builder setShortcutId(java.lang.String) -> setShortcutId
+    2239:2254:androidx.core.app.NotificationCompat$Builder setShortcutInfo(androidx.core.content.pm.ShortcutInfoCompat) -> setShortcutInfo
+    1112:1113:androidx.core.app.NotificationCompat$Builder setShowWhen(boolean) -> setShowWhen
+    1206:1207:androidx.core.app.NotificationCompat$Builder setSilent(boolean) -> setSilent
+    1125:1126:androidx.core.app.NotificationCompat$Builder setSmallIcon(androidx.core.graphics.drawable.IconCompat) -> setSmallIcon
+    1168:1169:androidx.core.app.NotificationCompat$Builder setSmallIcon(int) -> setSmallIcon
+    1183:1185:androidx.core.app.NotificationCompat$Builder setSmallIcon(int,int) -> setSmallIcon
+    1805:1806:androidx.core.app.NotificationCompat$Builder setSortKey(java.lang.String) -> setSortKey
+    1463:1471:androidx.core.app.NotificationCompat$Builder setSound(android.net.Uri) -> setSound
+    1492:1500:androidx.core.app.NotificationCompat$Builder setSound(android.net.Uri,int) -> setSound
+    1971:1977:androidx.core.app.NotificationCompat$Builder setStyle(androidx.core.app.NotificationCompat$Style) -> setStyle
+    1245:1246:androidx.core.app.NotificationCompat$Builder setSubText(java.lang.CharSequence) -> setSubText
+    1391:1392:androidx.core.app.NotificationCompat$Builder setTicker(java.lang.CharSequence) -> setTicker
+    1406:1408:androidx.core.app.NotificationCompat$Builder setTicker(java.lang.CharSequence,android.widget.RemoteViews) -> setTicker
+    2179:2180:androidx.core.app.NotificationCompat$Builder setTimeoutAfter(long) -> setTimeoutAfter
+    1141:1142:androidx.core.app.NotificationCompat$Builder setUsesChronometer(boolean) -> setUsesChronometer
+    1522:1523:androidx.core.app.NotificationCompat$Builder setVibrate(long[]) -> setVibrate
+    2000:2001:androidx.core.app.NotificationCompat$Builder setVisibility(int) -> setVisibility
+    1100:1101:androidx.core.app.NotificationCompat$Builder setWhen(long) -> setWhen
+    2023:2023:boolean useExistingRemoteView() -> useExistingRemoteView
+androidx.core.app.NotificationCompat$CarExtender -> androidx.core.app.NotificationCompat$CarExtender:
+    6170:6176:void <init>() -> <init>
+    6170:6197:void <init>(android.app.Notification) -> <init>
+    6294:6313:androidx.core.app.NotificationCompat$Builder extend(androidx.core.app.NotificationCompat$Builder) -> extend
+    6255:6283:android.os.Bundle getBundleForUnreadConversation(androidx.core.app.NotificationCompat$CarExtender$UnreadConversation) -> getBundleForUnreadConversation
+    6336:6336:int getColor() -> getColor
+    6360:6360:android.graphics.Bitmap getLargeIcon() -> getLargeIcon
+    6388:6388:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation getUnreadConversation() -> getUnreadConversation
+    6201:6250:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation getUnreadConversationFromBundle(android.os.Bundle) -> getUnreadConversationFromBundle
+    6325:6326:androidx.core.app.NotificationCompat$CarExtender setColor(int) -> setColor
+    6349:6350:androidx.core.app.NotificationCompat$CarExtender setLargeIcon(android.graphics.Bitmap) -> setLargeIcon
+    6375:6376:androidx.core.app.NotificationCompat$CarExtender setUnreadConversation(androidx.core.app.NotificationCompat$CarExtender$UnreadConversation) -> setUnreadConversation
+androidx.core.app.NotificationCompat$CarExtender$UnreadConversation -> androidx.core.app.NotificationCompat$CarExtender$UnreadConversation:
+    6409:6416:void <init>(java.lang.String[],androidx.core.app.RemoteInput,android.app.PendingIntent,android.app.PendingIntent,java.lang.String[],long) -> <init>
+    6467:6467:long getLatestTimestamp() -> getLatestTimestamp
+    6422:6422:java.lang.String[] getMessages() -> getMessages
+    6460:6460:java.lang.String getParticipant() -> getParticipant
+    6453:6453:java.lang.String[] getParticipants() -> getParticipants
+    6446:6446:android.app.PendingIntent getReadPendingIntent() -> getReadPendingIntent
+    6430:6430:androidx.core.app.RemoteInput getRemoteInput() -> getRemoteInput
+    6438:6438:android.app.PendingIntent getReplyPendingIntent() -> getReplyPendingIntent
+androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder -> androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder:
+    6474:6488:void <init>(java.lang.String) -> <init>
+    6499:6502:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder addMessage(java.lang.String) -> addMessage
+    6559:6561:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation build() -> build
+    6549:6550:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder setLatestTimestamp(long) -> setLatestTimestamp
+    6533:6534:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder setReadPendingIntent(android.app.PendingIntent) -> setReadPendingIntent
+    6518:6521:androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder setReplyAction(android.app.PendingIntent,androidx.core.app.RemoteInput) -> setReplyAction
+androidx.core.app.NotificationCompat$DecoratedCustomViewStyle -> androidx.core.app.NotificationCompat$DecoratedCustomViewStyle:
+    4172:4173:void <init>() -> <init>
+    4200:4203:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    4263:4288:android.widget.RemoteViews createRemoteViews(android.widget.RemoteViews,boolean) -> createRemoteViews
+    4191:4191:boolean displayCustomViewInline() -> displayCustomViewInline
+    4304:4321:android.widget.RemoteViews generateActionButton(androidx.core.app.NotificationCompat$Action) -> generateActionButton
+    4182:4182:java.lang.String getClassName() -> getClassName
+    4293:4300:java.util.List getNonContextualActions(java.util.List) -> getNonContextualActions
+    4228:4230:android.widget.RemoteViews makeBigContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeBigContentView
+    4211:4213:android.widget.RemoteViews makeContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeContentView
+    4249:4251:android.widget.RemoteViews makeHeadsUpContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeHeadsUpContentView
+androidx.core.app.NotificationCompat$InboxStyle -> androidx.core.app.NotificationCompat$InboxStyle:
+    4046:4049:void <init>() -> <init>
+    4046:4053:void <init>(androidx.core.app.NotificationCompat$Builder) -> <init>
+    4077:4080:androidx.core.app.NotificationCompat$InboxStyle addLine(java.lang.CharSequence) -> addLine
+    4099:4110:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    4132:4134:void clearCompatExtraKeys(android.os.Bundle) -> clearCompatExtraKeys
+    4090:4090:java.lang.String getClassName() -> getClassName
+    4118:4124:void restoreFromCompatExtras(android.os.Bundle) -> restoreFromCompatExtras
+    4060:4061:androidx.core.app.NotificationCompat$InboxStyle setBigContentTitle(java.lang.CharSequence) -> setBigContentTitle
+    4068:4070:androidx.core.app.NotificationCompat$InboxStyle setSummaryText(java.lang.CharSequence) -> setSummaryText
+androidx.core.app.NotificationCompat$MessagingStyle -> androidx.core.app.NotificationCompat$MessagingStyle:
+    3287:3294:void <init>() -> <init>
+    3287:3306:void <init>(java.lang.CharSequence) -> <init>
+    3287:3321:void <init>(androidx.core.app.Person) -> <init>
+    3677:3696:void addCompatExtras(android.os.Bundle) -> addCompatExtras
+    3441:3447:androidx.core.app.NotificationCompat$MessagingStyle addHistoricMessage(androidx.core.app.NotificationCompat$MessagingStyle$Message) -> addHistoricMessage
+    3388:3393:androidx.core.app.NotificationCompat$MessagingStyle addMessage(java.lang.CharSequence,long,java.lang.CharSequence) -> addMessage
+    3406:3407:androidx.core.app.NotificationCompat$MessagingStyle addMessage(java.lang.CharSequence,long,androidx.core.app.Person) -> addMessage
+    3418:3424:androidx.core.app.NotificationCompat$MessagingStyle addMessage(androidx.core.app.NotificationCompat$MessagingStyle$Message) -> addMessage
+    3543:3617:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    3740:3748:void clearCompatExtraKeys(android.os.Bundle) -> clearCompatExtraKeys
+    3516:3520:androidx.core.app.NotificationCompat$MessagingStyle extractMessagingStyleFromNotification(android.app.Notification) -> extractMessagingStyleFromNotification
+    3621:3633:androidx.core.app.NotificationCompat$MessagingStyle$Message findLatestIncomingMessage() -> findLatestIncomingMessage
+    3530:3530:java.lang.String getClassName() -> getClassName
+    3363:3363:java.lang.CharSequence getConversationTitle() -> getConversationTitle
+    3461:3461:java.util.List getHistoricMessages() -> getHistoricMessages
+    3454:3454:java.util.List getMessages() -> getMessages
+    3336:3336:androidx.core.app.Person getUser() -> getUser
+    3331:3331:java.lang.CharSequence getUserDisplayName() -> getUserDisplayName
+    3637:3643:boolean hasMessagesWithoutSender() -> hasMessagesWithoutSender
+    3493:3501:boolean isGroupConversation() -> isGroupConversation
+    3672:3672:android.text.style.TextAppearanceSpan makeFontColorSpan(int) -> makeFontColorSpan
+    3647:3667:java.lang.CharSequence makeMessageLine(androidx.core.app.NotificationCompat$MessagingStyle$Message) -> makeMessageLine
+    3704:3732:void restoreFromCompatExtras(android.os.Bundle) -> restoreFromCompatExtras
+    3354:3355:androidx.core.app.NotificationCompat$MessagingStyle setConversationTitle(java.lang.CharSequence) -> setConversationTitle
+    3471:3472:androidx.core.app.NotificationCompat$MessagingStyle setGroupConversation(boolean) -> setGroupConversation
+androidx.core.app.NotificationCompat$MessagingStyle$Message -> androidx.core.app.NotificationCompat$MessagingStyle$Message:
+    3764:3783:void <init>(java.lang.CharSequence,long,androidx.core.app.Person) -> <init>
+    3801:3802:void <init>(java.lang.CharSequence,long,java.lang.CharSequence) -> <init>
+    3923:3928:android.os.Bundle[] getBundleArrayForMessages(java.util.List) -> getBundleArrayForMessages
+    3879:3879:java.lang.String getDataMimeType() -> getDataMimeType
+    3888:3888:android.net.Uri getDataUri() -> getDataUri
+    3856:3856:android.os.Bundle getExtras() -> getExtras
+    3948:3983:androidx.core.app.NotificationCompat$MessagingStyle$Message getMessageFromBundle(android.os.Bundle) -> getMessageFromBundle
+    3933:3942:java.util.List getMessagesFromBundleArray(android.os.Parcelable[]) -> getMessagesFromBundleArray
+    3873:3873:androidx.core.app.Person getPerson() -> getPerson
+    3867:3867:java.lang.CharSequence getSender() -> getSender
+    3845:3845:java.lang.CharSequence getText() -> getText
+    3850:3850:long getTimestamp() -> getTimestamp
+    3834:3836:androidx.core.app.NotificationCompat$MessagingStyle$Message setData(java.lang.String,android.net.Uri) -> setData
+    3997:4012:android.app.Notification$MessagingStyle$Message toAndroidMessage() -> toAndroidMessage
+    3892:3918:android.os.Bundle toBundle() -> toBundle
+androidx.core.app.NotificationCompat$Style -> androidx.core.app.NotificationCompat$Style:
+    2430:2438:void <init>() -> <init>
+    2530:2540:void addCompatExtras(android.os.Bundle) -> addCompatExtras
+    2482:2482:void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> apply
+    2671:2814:android.widget.RemoteViews applyStandardTemplate(boolean,int,boolean) -> applyStandardTemplate
+    2457:2461:android.app.Notification build() -> build
+    2878:2887:void buildIntoRemoteViews(android.widget.RemoteViews,android.widget.RemoteViews) -> buildIntoRemoteViews
+    2896:2905:int calculateTopPadding() -> calculateTopPadding
+    2559:2562:void clearCompatExtraKeys(android.os.Bundle) -> clearCompatExtraKeys
+    2909:2909:float constrain(float,float,float) -> constrain
+    2608:2622:androidx.core.app.NotificationCompat$Style constructCompatStyleByName(java.lang.String) -> constructCompatStyleByName
+    2580:2603:androidx.core.app.NotificationCompat$Style constructCompatStyleByPlatformName(java.lang.String) -> constructCompatStyleByPlatformName
+    2629:2647:androidx.core.app.NotificationCompat$Style constructCompatStyleForBundle(android.os.Bundle) -> constructCompatStyleForBundle
+    2652:2660:androidx.core.app.NotificationCompat$Style constructStyleForExtras(android.os.Bundle) -> constructStyleForExtras
+    2825:2825:android.graphics.Bitmap createColoredBitmap(int,int) -> createColoredBitmap
+    2833:2833:android.graphics.Bitmap createColoredBitmap(androidx.core.graphics.drawable.IconCompat,int) -> createColoredBitmap
+    2837:2837:android.graphics.Bitmap createColoredBitmap(int,int,int) -> createColoredBitmap
+    2842:2853:android.graphics.Bitmap createColoredBitmap(androidx.core.graphics.drawable.IconCompat,int,int) -> createColoredBitmap
+    2858:2867:android.graphics.Bitmap createIconWithBackground(int,int,int,int) -> createIconWithBackground
+    2490:2490:boolean displayCustomViewInline() -> displayCustomViewInline
+    2570:2574:androidx.core.app.NotificationCompat$Style extractStyleFromNotification(android.app.Notification) -> extractStyleFromNotification
+    2471:2471:java.lang.String getClassName() -> getClassName
+    2890:2893:void hideNormalContent(android.widget.RemoteViews) -> hideNormalContent
+    2506:2506:android.widget.RemoteViews makeBigContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeBigContentView
+    2498:2498:android.widget.RemoteViews makeContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeContentView
+    2514:2514:android.widget.RemoteViews makeHeadsUpContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor) -> makeHeadsUpContentView
+    2547:2552:void restoreFromCompatExtras(android.os.Bundle) -> restoreFromCompatExtras
+    2444:2450:void setBuilder(androidx.core.app.NotificationCompat$Builder) -> setBuilder
+androidx.core.app.NotificationCompat$WearableExtender -> androidx.core.app.NotificationCompat$WearableExtender:
+    5313:5334:void <init>() -> <init>
+    5313:5381:void <init>(android.app.Notification) -> <init>
+    5529:5530:androidx.core.app.NotificationCompat$WearableExtender addAction(androidx.core.app.NotificationCompat$Action) -> addAction
+    5546:5547:androidx.core.app.NotificationCompat$WearableExtender addActions(java.util.List) -> addActions
+    5628:5629:androidx.core.app.NotificationCompat$WearableExtender addPage(android.app.Notification) -> addPage
+    5645:5646:androidx.core.app.NotificationCompat$WearableExtender addPages(java.util.List) -> addPages
+    5556:5557:androidx.core.app.NotificationCompat$WearableExtender clearActions() -> clearActions
+    5657:5658:androidx.core.app.NotificationCompat$WearableExtender clearPages() -> clearPages
+    5188:5188:java.lang.Object clone() -> clone
+    5498:5513:androidx.core.app.NotificationCompat$WearableExtender clone() -> clone
+    5392:5453:androidx.core.app.NotificationCompat$Builder extend(androidx.core.app.NotificationCompat$Builder) -> extend
+    5459:5492:android.app.Notification$Action getActionFromActionCompat(androidx.core.app.NotificationCompat$Action) -> getActionFromActionCompat
+    5564:5564:java.util.List getActions() -> getActions
+    5701:5701:android.graphics.Bitmap getBackground() -> getBackground
+    6107:6107:java.lang.String getBridgeTag() -> getBridgeTag
+    5777:5777:int getContentAction() -> getContentAction
+    5722:5722:int getContentIcon() -> getContentIcon
+    5749:5749:int getContentIconGravity() -> getContentIconGravity
+    5905:5905:boolean getContentIntentAvailableOffline() -> getContentIntentAvailableOffline
+    5864:5864:int getCustomContentHeight() -> getCustomContentHeight
+    5836:5836:int getCustomSizePreset() -> getCustomSizePreset
+    6086:6086:java.lang.String getDismissalId() -> getDismissalId
+    5612:5612:android.app.PendingIntent getDisplayIntent() -> getDisplayIntent
+    5804:5804:int getGravity() -> getGravity
+    6041:6041:boolean getHintAmbientBigPicture() -> getHintAmbientBigPicture
+    5986:5986:boolean getHintAvoidBackgroundClipping() -> getHintAvoidBackgroundClipping
+    6064:6064:boolean getHintContentIntentLaunchesActivity() -> getHintContentIntentLaunchesActivity
+    5930:5930:boolean getHintHideIcon() -> getHintHideIcon
+    6014:6014:int getHintScreenTimeout() -> getHintScreenTimeout
+    5955:5955:boolean getHintShowBackgroundOnly() -> getHintShowBackgroundOnly
+    5671:5671:java.util.List getPages() -> getPages
+    5883:5883:boolean getStartScrollBottom() -> getStartScrollBottom
+    5686:5687:androidx.core.app.NotificationCompat$WearableExtender setBackground(android.graphics.Bitmap) -> setBackground
+    6098:6099:androidx.core.app.NotificationCompat$WearableExtender setBridgeTag(java.lang.String) -> setBridgeTag
+    5763:5764:androidx.core.app.NotificationCompat$WearableExtender setContentAction(int) -> setContentAction
+    5711:5712:androidx.core.app.NotificationCompat$WearableExtender setContentIcon(int) -> setContentIcon
+    5735:5736:androidx.core.app.NotificationCompat$WearableExtender setContentIconGravity(int) -> setContentIconGravity
+    5894:5895:androidx.core.app.NotificationCompat$WearableExtender setContentIntentAvailableOffline(boolean) -> setContentIntentAvailableOffline
+    5850:5851:androidx.core.app.NotificationCompat$WearableExtender setCustomContentHeight(int) -> setCustomContentHeight
+    5820:5821:androidx.core.app.NotificationCompat$WearableExtender setCustomSizePreset(int) -> setCustomSizePreset
+    6077:6078:androidx.core.app.NotificationCompat$WearableExtender setDismissalId(java.lang.String) -> setDismissalId
+    5600:5601:androidx.core.app.NotificationCompat$WearableExtender setDisplayIntent(android.app.PendingIntent) -> setDisplayIntent
+    6111:6116:void setFlag(int,boolean) -> setFlag
+    5790:5791:androidx.core.app.NotificationCompat$WearableExtender setGravity(int) -> setGravity
+    6027:6028:androidx.core.app.NotificationCompat$WearableExtender setHintAmbientBigPicture(boolean) -> setHintAmbientBigPicture
+    5971:5972:androidx.core.app.NotificationCompat$WearableExtender setHintAvoidBackgroundClipping(boolean) -> setHintAvoidBackgroundClipping
+    6053:6054:androidx.core.app.NotificationCompat$WearableExtender setHintContentIntentLaunchesActivity(boolean) -> setHintContentIntentLaunchesActivity
+    5917:5918:androidx.core.app.NotificationCompat$WearableExtender setHintHideIcon(boolean) -> setHintHideIcon
+    6000:6001:androidx.core.app.NotificationCompat$WearableExtender setHintScreenTimeout(int) -> setHintScreenTimeout
+    5942:5943:androidx.core.app.NotificationCompat$WearableExtender setHintShowBackgroundOnly(boolean) -> setHintShowBackgroundOnly
+    5873:5874:androidx.core.app.NotificationCompat$WearableExtender setStartScrollBottom(boolean) -> setStartScrollBottom
+androidx.core.app.NotificationCompatBuilder -> androidx.core.app.NotificationCompatBuilder:
+    59:271:void <init>(androidx.core.app.NotificationCompat$Builder) -> <init>
+    349:399:void addAction(androidx.core.app.NotificationCompat$Action) -> addAction
+    310:345:android.app.Notification build() -> build
+    403:423:android.app.Notification buildInternal() -> buildInternal
+    276:285:java.util.List combineLists(java.util.List,java.util.List) -> combineLists
+    302:302:android.app.Notification$Builder getBuilder() -> getBuilder
+    306:306:android.content.Context getContext() -> getContext
+    290:297:java.util.List getPeople(java.util.List) -> getPeople
+    527:531:void removeSoundAndVibration(android.app.Notification) -> removeSoundAndVibration
+androidx.core.app.NotificationCompatExtras -> androidx.core.app.NotificationCompatExtras:
+    66:66:void <init>() -> <init>
+androidx.core.app.NotificationCompatJellybean -> androidx.core.app.NotificationCompatJellybean:
+    59:63:void <clinit>() -> <clinit>
+    349:350:void <init>() -> <init>
+    72:82:android.util.SparseArray buildActionExtrasMap(java.util.List) -> buildActionExtrasMap
+    212:231:boolean ensureActionReflectionReadyLocked() -> ensureActionReflectionReadyLocked
+    276:288:androidx.core.app.RemoteInput fromBundle(android.os.Bundle) -> fromBundle
+    312:319:androidx.core.app.RemoteInput[] fromBundleArray(android.os.Bundle[]) -> fromBundleArray
+    168:192:androidx.core.app.NotificationCompat$Action getAction(android.app.Notification,int) -> getAction
+    161:164:int getActionCount(android.app.Notification) -> getActionCount
+    235:249:androidx.core.app.NotificationCompat$Action getActionFromBundle(android.os.Bundle) -> getActionFromBundle
+    196:207:java.lang.Object[] getActionObjectsLocked(android.app.Notification) -> getActionObjectsLocked
+    339:346:android.os.Bundle[] getBundleArrayFromBundle(android.os.Bundle,java.lang.String) -> getBundleArrayFromBundle
+    254:271:android.os.Bundle getBundleForAction(androidx.core.app.NotificationCompat$Action) -> getBundleForAction
+    90:118:android.os.Bundle getExtras(android.app.Notification) -> getExtras
+    123:134:androidx.core.app.NotificationCompat$Action readAction(int,java.lang.CharSequence,android.app.PendingIntent,android.os.Bundle) -> readAction
+    293:308:android.os.Bundle toBundle(androidx.core.app.RemoteInput) -> toBundle
+    323:330:android.os.Bundle[] toBundleArray(androidx.core.app.RemoteInput[]) -> toBundleArray
+    141:157:android.os.Bundle writeActionAndGetExtras(android.app.Notification$Builder,androidx.core.app.NotificationCompat$Action) -> writeActionAndGetExtras
+androidx.core.app.NotificationCompatSideChannelService -> androidx.core.app.NotificationCompatSideChannelService:
+    45:45:void <init>() -> <init>
+    114:119:void checkPermission(int,java.lang.String) -> checkPermission
+    48:52:android.os.IBinder onBind(android.content.Intent) -> onBind
+androidx.core.app.NotificationCompatSideChannelService$NotificationSideChannelStub -> androidx.core.app.NotificationCompatSideChannelService$NotificationSideChannelStub:
+    75:76:void <init>(androidx.core.app.NotificationCompatSideChannelService) -> <init>
+    92:99:void cancel(java.lang.String,int,java.lang.String) -> cancel
+    103:110:void cancelAll(java.lang.String) -> cancelAll
+    81:88:void notify(java.lang.String,int,java.lang.String,android.app.Notification) -> notify
+androidx.core.app.NotificationManagerCompat -> androidx.core.app.NotificationManagerCompat:
+    103:112:void <clinit>() -> <clinit>
+    162:166:void <init>(android.content.Context) -> <init>
+    231:232:boolean areNotificationsEnabled() -> areNotificationsEnabled
+    174:175:void cancel(int) -> cancel
+    184:188:void cancel(java.lang.String,int) -> cancel
+    192:196:void cancelAll() -> cancelAll
+    290:293:void createNotificationChannel(android.app.NotificationChannel) -> createNotificationChannel
+    316:317:void createNotificationChannel(androidx.core.app.NotificationChannelCompat) -> createNotificationChannel
+    329:332:void createNotificationChannelGroup(android.app.NotificationChannelGroup) -> createNotificationChannelGroup
+    344:345:void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat) -> createNotificationChannelGroup
+    389:392:void createNotificationChannelGroups(java.util.List) -> createNotificationChannelGroups
+    404:411:void createNotificationChannelGroupsCompat(java.util.List) -> createNotificationChannelGroupsCompat
+    356:359:void createNotificationChannels(java.util.List) -> createNotificationChannels
+    371:378:void createNotificationChannelsCompat(java.util.List) -> createNotificationChannelsCompat
+    423:426:void deleteNotificationChannel(java.lang.String) -> deleteNotificationChannel
+    435:438:void deleteNotificationChannelGroup(java.lang.String) -> deleteNotificationChannelGroup
+    450:462:void deleteUnlistedNotificationChannels(java.util.Collection) -> deleteUnlistedNotificationChannels
+    159:159:androidx.core.app.NotificationManagerCompat from(android.content.Context) -> from
+    650:669:java.util.Set getEnabledListenerPackages(android.content.Context) -> getEnabledListenerPackages
+    262:263:int getImportance() -> getImportance
+    471:474:android.app.NotificationChannel getNotificationChannel(java.lang.String) -> getNotificationChannel
+    504:507:android.app.NotificationChannel getNotificationChannel(java.lang.String,java.lang.String) -> getNotificationChannel
+    484:490:androidx.core.app.NotificationChannelCompat getNotificationChannelCompat(java.lang.String) -> getNotificationChannelCompat
+    521:527:androidx.core.app.NotificationChannelCompat getNotificationChannelCompat(java.lang.String,java.lang.String) -> getNotificationChannelCompat
+    537:547:android.app.NotificationChannelGroup getNotificationChannelGroup(java.lang.String) -> getNotificationChannelGroup
+    559:570:androidx.core.app.NotificationChannelGroupCompat getNotificationChannelGroupCompat(java.lang.String) -> getNotificationChannelGroupCompat
+    611:614:java.util.List getNotificationChannelGroups() -> getNotificationChannelGroups
+    624:642:java.util.List getNotificationChannelGroupsCompat() -> getNotificationChannelGroupsCompat
+    579:582:java.util.List getNotificationChannels() -> getNotificationChannels
+    592:602:java.util.List getNotificationChannelsCompat() -> getNotificationChannelsCompat
+    205:206:void notify(int,android.app.Notification) -> notify
+    217:225:void notify(java.lang.String,int,android.app.Notification) -> notify
+    684:690:void pushSideChannelQueue(androidx.core.app.NotificationManagerCompat$Task) -> pushSideChannelQueue
+    676:677:boolean useSideChannelForNotification(android.app.Notification) -> useSideChannelForNotification
+androidx.core.app.NotificationManagerCompat$CancelTask -> androidx.core.app.NotificationManagerCompat$CancelTask:
+    1014:1019:void <init>(java.lang.String) -> <init>
+    1021:1026:void <init>(java.lang.String,int,java.lang.String) -> <init>
+    1030:1035:void send(android.support.v4.app.INotificationSideChannel) -> send
+    1040:1046:java.lang.String toString() -> toString
+androidx.core.app.NotificationManagerCompat$NotifyTask -> androidx.core.app.NotificationManagerCompat$NotifyTask:
+    984:989:void <init>(java.lang.String,int,java.lang.String,android.app.Notification) -> <init>
+    993:994:void send(android.support.v4.app.INotificationSideChannel) -> send
+    999:1004:java.lang.String toString() -> toString
+androidx.core.app.NotificationManagerCompat$ServiceConnectedEvent -> androidx.core.app.NotificationManagerCompat$ServiceConnectedEvent:
+    968:971:void <init>(android.content.ComponentName,android.os.IBinder) -> <init>
+androidx.core.app.NotificationManagerCompat$SideChannelManager -> androidx.core.app.NotificationManagerCompat$SideChannelManager:
+    705:714:void <init>(android.content.Context) -> <init>
+    850:862:boolean ensureServiceBound(androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord) -> ensureServiceBound
+    869:874:void ensureServiceUnbound(androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord) -> ensureServiceUnbound
+    726:741:boolean handleMessage(android.os.Message) -> handleMessage
+    745:750:void handleQueueTask(androidx.core.app.NotificationManagerCompat$Task) -> handleQueueTask
+    769:773:void handleRetryListenerQueue(android.content.ComponentName) -> handleRetryListenerQueue
+    753:759:void handleServiceConnected(android.content.ComponentName,android.os.IBinder) -> handleServiceConnected
+    762:766:void handleServiceDisconnected(android.content.ComponentName) -> handleServiceDisconnected
+    777:783:void onServiceConnected(android.content.ComponentName,android.os.IBinder) -> onServiceConnected
+    787:791:void onServiceDisconnected(android.content.ComponentName) -> onServiceDisconnected
+    905:943:void processListenerQueue(androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord) -> processListenerQueue
+    721:722:void queueTask(androidx.core.app.NotificationManagerCompat$Task) -> queueTask
+    882:898:void scheduleListenerRetry(androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord) -> scheduleListenerRetry
+    798:842:void updateListenerMap() -> updateListenerMap
+androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord -> androidx.core.app.NotificationManagerCompat$SideChannelManager$ListenerRecord:
+    949:959:void <init>(android.content.ComponentName) -> <init>
+androidx.core.app.Person -> androidx.core.app.Person:
+    115:122:void <init>(androidx.core.app.Person$Builder) -> <init>
+    88:98:androidx.core.app.Person fromAndroidPerson(android.app.Person) -> fromAndroidPerson
+    48:56:androidx.core.app.Person fromBundle(android.os.Bundle) -> fromBundle
+    70:76:androidx.core.app.Person fromPersistableBundle(android.os.PersistableBundle) -> fromPersistableBundle
+    197:197:androidx.core.graphics.drawable.IconCompat getIcon() -> getIcon
+    224:224:java.lang.String getKey() -> getKey
+    191:191:java.lang.CharSequence getName() -> getName
+    215:215:java.lang.String getUri() -> getUri
+    232:232:boolean isBot() -> isBot
+    240:240:boolean isImportant() -> isImportant
+    250:256:java.lang.String resolveToLegacyUri() -> resolveToLegacyUri
+    175:182:android.app.Person toAndroidPerson() -> toAndroidPerson
+    163:163:androidx.core.app.Person$Builder toBuilder() -> toBuilder
+    130:137:android.os.Bundle toBundle() -> toBundle
+    151:157:android.os.PersistableBundle toPersistableBundle() -> toPersistableBundle
+androidx.core.app.Person$Builder -> androidx.core.app.Person$Builder:
+    269:269:void <init>() -> <init>
+    271:278:void <init>(androidx.core.app.Person) -> <init>
+    356:356:androidx.core.app.Person build() -> build
+    337:338:androidx.core.app.Person$Builder setBot(boolean) -> setBot
+    298:299:androidx.core.app.Person$Builder setIcon(androidx.core.graphics.drawable.IconCompat) -> setIcon
+    349:350:androidx.core.app.Person$Builder setImportant(boolean) -> setImportant
+    327:328:androidx.core.app.Person$Builder setKey(java.lang.String) -> setKey
+    286:287:androidx.core.app.Person$Builder setName(java.lang.CharSequence) -> setName
+    316:317:androidx.core.app.Person$Builder setUri(java.lang.String) -> setUri
+androidx.core.app.RemoteActionCompat -> androidx.core.app.RemoteActionCompat:
+    80:87:void <init>(androidx.core.graphics.drawable.IconCompat,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent) -> <init>
+    94:94:void <init>() -> <init>
+    99:107:void <init>(androidx.core.app.RemoteActionCompat) -> <init>
+    115:123:androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction) -> createFromRemoteAction
+    179:179:android.app.PendingIntent getActionIntent() -> getActionIntent
+    172:172:java.lang.CharSequence getContentDescription() -> getContentDescription
+    158:158:androidx.core.graphics.drawable.IconCompat getIcon() -> getIcon
+    165:165:java.lang.CharSequence getTitle() -> getTitle
+    137:137:boolean isEnabled() -> isEnabled
+    130:131:void setEnabled(boolean) -> setEnabled
+    144:145:void setShouldShowIcon(boolean) -> setShouldShowIcon
+    151:151:boolean shouldShowIcon() -> shouldShowIcon
+    190:196:android.app.RemoteAction toRemoteAction() -> toRemoteAction
+androidx.core.app.RemoteActionCompatParcelizer -> androidx.core.app.RemoteActionCompatParcelizer:
+    11:11:void <init>() -> <init>
+    14:21:androidx.core.app.RemoteActionCompat read(androidx.versionedparcelable.VersionedParcel) -> read
+    26:33:void write(androidx.core.app.RemoteActionCompat,androidx.versionedparcelable.VersionedParcel) -> write
+androidx.core.app.RemoteInput -> androidx.core.app.RemoteInput:
+    96:109:void <init>(java.lang.String,java.lang.CharSequence,java.lang.CharSequence[],boolean,int,android.os.Bundle,java.util.Set) -> <init>
+    466:489:void addDataResultToIntent(androidx.core.app.RemoteInput,android.content.Intent,java.util.Map) -> addDataResultToIntent
+    402:454:void addResultsToIntent(androidx.core.app.RemoteInput[],android.content.Intent,android.os.Bundle) -> addResultsToIntent
+    549:556:android.app.RemoteInput[] fromCompat(androidx.core.app.RemoteInput[]) -> fromCompat
+    561:570:android.app.RemoteInput fromCompat(androidx.core.app.RemoteInput) -> fromCompat
+    575:584:androidx.core.app.RemoteInput fromPlatform(android.app.RemoteInput) -> fromPlatform
+    156:156:boolean getAllowFreeFormInput() -> getAllowFreeFormInput
+    134:134:java.util.Set getAllowedDataTypes() -> getAllowedDataTypes
+    130:130:java.lang.CharSequence[] getChoices() -> getChoices
+    589:600:android.content.Intent getClipDataIntentFromIntent(android.content.Intent) -> getClipDataIntentFromIntent
+    338:361:java.util.Map getDataResultsFromIntent(android.content.Intent,java.lang.String) -> getDataResultsFromIntent
+    164:164:int getEditChoicesBeforeSending() -> getEditChoicesBeforeSending
+    544:544:java.lang.String getExtraResultsKeyForData(java.lang.String) -> getExtraResultsKeyForData
+    171:171:android.os.Bundle getExtras() -> getExtras
+    123:123:java.lang.CharSequence getLabel() -> getLabel
+    116:116:java.lang.String getResultKey() -> getResultKey
+    376:377:android.os.Bundle getResultsFromIntent(android.content.Intent) -> getResultsFromIntent
+    530:537:int getResultsSource(android.content.Intent) -> getResultsSource
+    143:146:boolean isDataOnly() -> isDataOnly
+    505:515:void setResultsSource(android.content.Intent,int) -> setResultsSource
+androidx.core.app.RemoteInput$Builder -> androidx.core.app.RemoteInput$Builder:
+    179:197:void <init>(java.lang.String) -> <init>
+    287:290:androidx.core.app.RemoteInput$Builder addExtras(android.os.Bundle) -> addExtras
+    309:309:androidx.core.app.RemoteInput build() -> build
+    300:300:android.os.Bundle getExtras() -> getExtras
+    241:246:androidx.core.app.RemoteInput$Builder setAllowDataType(java.lang.String,boolean) -> setAllowDataType
+    261:262:androidx.core.app.RemoteInput$Builder setAllowFreeFormInput(boolean) -> setAllowFreeFormInput
+    225:226:androidx.core.app.RemoteInput$Builder setChoices(java.lang.CharSequence[]) -> setChoices
+    274:275:androidx.core.app.RemoteInput$Builder setEditChoicesBeforeSending(int) -> setEditChoicesBeforeSending
+    207:208:androidx.core.app.RemoteInput$Builder setLabel(java.lang.CharSequence) -> setLabel
+androidx.core.app.ServiceCompat -> androidx.core.app.ServiceCompat:
+    37:39:void <init>() -> <init>
+    98:103:void stopForeground(android.app.Service,int) -> stopForeground
+androidx.core.app.ShareCompat -> androidx.core.app.ShareCompat:
+    118:118:void <init>() -> <init>
+    239:256:void configureMenuItem(android.view.MenuItem,androidx.core.app.ShareCompat$IntentBuilder) -> configureMenuItem
+    271:277:void configureMenuItem(android.view.Menu,int,androidx.core.app.ShareCompat$IntentBuilder) -> configureMenuItem
+    178:183:android.content.ComponentName getCallingActivity(android.app.Activity) -> getCallingActivity
+    201:205:android.content.ComponentName getCallingActivity(android.content.Intent) -> getCallingActivity
+    134:139:java.lang.String getCallingPackage(android.app.Activity) -> getCallingPackage
+    157:161:java.lang.String getCallingPackage(android.content.Intent) -> getCallingPackage
+androidx.core.app.ShareCompat$Api16Impl -> androidx.core.app.ShareCompat$Api16Impl:
+    1084:1084:void <init>() -> <init>
+    1088:1102:void migrateExtraStreamToClipData(android.content.Intent,java.util.ArrayList) -> migrateExtraStreamToClipData
+    1105:1107:void removeClipData(android.content.Intent) -> removeClipData
+androidx.core.app.ShareCompat$IntentBuilder -> androidx.core.app.ShareCompat$IntentBuilder:
+    317:339:void <init>(android.content.Context) -> <init>
+    659:663:androidx.core.app.ShareCompat$IntentBuilder addEmailBcc(java.lang.String) -> addEmailBcc
+    675:676:androidx.core.app.ShareCompat$IntentBuilder addEmailBcc(java.lang.String[]) -> addEmailBcc
+    616:620:androidx.core.app.ShareCompat$IntentBuilder addEmailCc(java.lang.String) -> addEmailCc
+    632:633:androidx.core.app.ShareCompat$IntentBuilder addEmailCc(java.lang.String[]) -> addEmailCc
+    573:577:androidx.core.app.ShareCompat$IntentBuilder addEmailTo(java.lang.String) -> addEmailTo
+    589:590:androidx.core.app.ShareCompat$IntentBuilder addEmailTo(java.lang.String[]) -> addEmailTo
+    540:544:androidx.core.app.ShareCompat$IntentBuilder addStream(android.net.Uri) -> addStream
+    397:405:void combineArrayExtra(java.lang.String,java.util.ArrayList) -> combineArrayExtra
+    409:416:void combineArrayExtra(java.lang.String,java.lang.String[]) -> combineArrayExtra
+    427:427:android.content.Intent createChooserIntent() -> createChooserIntent
+    305:305:androidx.core.app.ShareCompat$IntentBuilder from(android.app.Activity) -> from
+    393:393:android.content.Context getContext() -> getContext
+    352:388:android.content.Intent getIntent() -> getIntent
+    445:446:androidx.core.app.ShareCompat$IntentBuilder setChooserTitle(java.lang.CharSequence) -> setChooserTitle
+    457:457:androidx.core.app.ShareCompat$IntentBuilder setChooserTitle(int) -> setChooserTitle
+    646:647:androidx.core.app.ShareCompat$IntentBuilder setEmailBcc(java.lang.String[]) -> setEmailBcc
+    603:604:androidx.core.app.ShareCompat$IntentBuilder setEmailCc(java.lang.String[]) -> setEmailCc
+    557:561:androidx.core.app.ShareCompat$IntentBuilder setEmailTo(java.lang.String[]) -> setEmailTo
+    500:505:androidx.core.app.ShareCompat$IntentBuilder setHtmlText(java.lang.String) -> setHtmlText
+    520:524:androidx.core.app.ShareCompat$IntentBuilder setStream(android.net.Uri) -> setStream
+    688:689:androidx.core.app.ShareCompat$IntentBuilder setSubject(java.lang.String) -> setSubject
+    483:484:androidx.core.app.ShareCompat$IntentBuilder setText(java.lang.CharSequence) -> setText
+    469:470:androidx.core.app.ShareCompat$IntentBuilder setType(java.lang.String) -> setType
+    434:435:void startChooser() -> startChooser
+androidx.core.app.ShareCompat$IntentReader -> androidx.core.app.ShareCompat$IntentReader:
+    741:742:void <init>(android.app.Activity) -> <init>
+    751:756:void <init>(android.content.Context,android.content.Intent) -> <init>
+    731:731:androidx.core.app.ShareCompat$IntentReader from(android.app.Activity) -> from
+    1008:1008:android.content.ComponentName getCallingActivity() -> getCallingActivity
+    1023:1031:android.graphics.drawable.Drawable getCallingActivityIcon() -> getCallingActivityIcon
+    1046:1054:android.graphics.drawable.Drawable getCallingApplicationIcon() -> getCallingApplicationIcon
+    1069:1077:java.lang.CharSequence getCallingApplicationLabel() -> getCallingApplicationLabel
+    989:989:java.lang.String getCallingPackage() -> getCallingPackage
+    959:959:java.lang.String[] getEmailBcc() -> getEmailBcc
+    948:948:java.lang.String[] getEmailCc() -> getEmailCc
+    937:937:java.lang.String[] getEmailTo() -> getEmailTo
+    828:843:java.lang.String getHtmlText() -> getHtmlText
+    885:885:android.net.Uri getStream() -> getStream
+    899:908:android.net.Uri getStream(int) -> getStream
+    920:926:int getStreamCount() -> getStreamCount
+    970:970:java.lang.String getSubject() -> getSubject
+    813:813:java.lang.CharSequence getText() -> getText
+    802:802:java.lang.String getType() -> getType
+    791:791:boolean isMultipleShare() -> isMultipleShare
+    767:768:boolean isShareIntent() -> isShareIntent
+    780:780:boolean isSingleShare() -> isSingleShare
+    848:870:void withinStyle(java.lang.StringBuilder,java.lang.CharSequence,int,int) -> withinStyle
+androidx.core.app.SharedElementCallback -> androidx.core.app.SharedElementCallback:
+    42:42:void <init>() -> <init>
+    214:236:android.graphics.Bitmap createDrawableBitmap(android.graphics.drawable.Drawable) -> createDrawableBitmap
+    168:207:android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View,android.graphics.Matrix,android.graphics.RectF) -> onCaptureSharedElementSnapshot
+    257:280:android.view.View onCreateSnapshotView(android.content.Context,android.os.Parcelable) -> onCreateSnapshotView
+    144:144:void onMapSharedElements(java.util.List,java.util.Map) -> onMapSharedElements
+    133:133:void onRejectSharedElements(java.util.List) -> onRejectSharedElements
+    109:109:void onSharedElementEnd(java.util.List,java.util.List,java.util.List) -> onSharedElementEnd
+    78:78:void onSharedElementStart(java.util.List,java.util.List,java.util.List) -> onSharedElementStart
+    301:302:void onSharedElementsArrived(java.util.List,java.util.List,androidx.core.app.SharedElementCallback$OnSharedElementsReadyListener) -> onSharedElementsArrived
+androidx.core.app.TaskStackBuilder -> androidx.core.app.TaskStackBuilder:
+    79:84:void <init>(android.content.Context) -> <init>
+    121:122:androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent) -> addNextIntent
+    139:147:androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent) -> addNextIntentWithParentStack
+    159:177:androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity) -> addParentStack
+    189:189:androidx.core.app.TaskStackBuilder addParentStack(java.lang.Class) -> addParentStack
+    201:212:androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName) -> addParentStack
+    95:95:androidx.core.app.TaskStackBuilder create(android.content.Context) -> create
+    247:247:android.content.Intent editIntentAt(int) -> editIntentAt
+    109:109:androidx.core.app.TaskStackBuilder from(android.content.Context) -> from
+    234:234:android.content.Intent getIntent(int) -> getIntent
+    219:219:int getIntentCount() -> getIntentCount
+    357:365:android.content.Intent[] getIntents() -> getIntents
+    312:312:android.app.PendingIntent getPendingIntent(int,int) -> getPendingIntent
+    331:341:android.app.PendingIntent getPendingIntent(int,int,android.os.Bundle) -> getPendingIntent
+    256:256:java.util.Iterator iterator() -> iterator
+    268:269:void startActivities() -> startActivities
+    283:296:void startActivities(android.os.Bundle) -> startActivities
+androidx.core.content.ContentProviderCompat -> androidx.core.content.ContentProviderCompat:
+    29:31:void <init>() -> <init>
+    45:49:android.content.Context requireContext(android.content.ContentProvider) -> requireContext
+androidx.core.content.ContentResolverCompat -> androidx.core.content.ContentResolverCompat:
+    33:35:void <init>() -> <init>
+    74:90:android.database.Cursor query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,androidx.core.os.CancellationSignal) -> query
+androidx.core.content.ContextCompat -> androidx.core.content.ContextCompat:
+    153:153:void <clinit>() -> <clinit>
+    161:163:void <init>() -> <init>
+    534:538:int checkSelfPermission(android.content.Context,java.lang.String) -> checkSelfPermission
+    636:637:android.content.Context createDeviceProtectedStorageContext(android.content.Context) -> createDeviceProtectedStorageContext
+    589:600:java.io.File createFilesDir(java.io.File) -> createFilesDir
+    581:582:java.io.File getCodeCacheDir(android.content.Context) -> getCodeCacheDir
+    516:517:int getColor(android.content.Context,int) -> getColor
+    493:494:android.content.res.ColorStateList getColorStateList(android.content.Context,int) -> getColorStateList
+    274:275:java.io.File getDataDir(android.content.Context) -> getDataDir
+    454:455:android.graphics.drawable.Drawable getDrawable(android.content.Context,int) -> getDrawable
+    433:434:java.io.File[] getExternalCacheDirs(android.content.Context) -> getExternalCacheDirs
+    380:381:java.io.File[] getExternalFilesDirs(android.content.Context,java.lang.String) -> getExternalFilesDirs
+    663:666:java.util.concurrent.Executor getMainExecutor(android.content.Context) -> getMainExecutor
+    557:558:java.io.File getNoBackupFilesDir(android.content.Context) -> getNoBackupFilesDir
+    327:328:java.io.File[] getObbDirs(android.content.Context) -> getObbDirs
+    715:716:java.lang.Object getSystemService(android.content.Context,java.lang.Class) -> getSystemService
+    735:736:java.lang.String getSystemServiceName(android.content.Context,java.lang.Class) -> getSystemServiceName
+    650:651:boolean isDeviceProtectedStorage(android.content.Context) -> isDeviceProtectedStorage
+    191:191:boolean startActivities(android.content.Context,android.content.Intent[]) -> startActivities
+    223:228:boolean startActivities(android.content.Context,android.content.Intent[],android.os.Bundle) -> startActivities
+    250:255:void startActivity(android.content.Context,android.content.Intent,android.os.Bundle) -> startActivity
+    695:701:void startForegroundService(android.content.Context,android.content.Intent) -> startForegroundService
+androidx.core.content.ContextCompat$LegacyServiceMapHolder -> androidx.core.content.ContextCompat$LegacyServiceMapHolder:
+    743:809:void <clinit>() -> <clinit>
+    742:742:void <init>() -> <init>
+androidx.core.content.ContextCompat$MainHandlerExecutor -> androidx.core.content.ContextCompat$MainHandlerExecutor:
+    672:674:void <init>(android.os.Handler) -> <init>
+    678:681:void execute(java.lang.Runnable) -> execute
+androidx.core.content.FileProvider -> androidx.core.content.FileProvider:
+    361:383:void <clinit>() -> <clinit>
+    360:360:void <init>() -> <init>
+    406:417:void attachInfo(android.content.Context,android.content.pm.ProviderInfo) -> attachInfo
+    875:881:java.io.File buildPath(java.io.File,java.lang.String[]) -> buildPath
+    885:887:java.lang.String[] copyOf(java.lang.String[],int) -> copyOf
+    891:893:java.lang.Object[] copyOf(java.lang.Object[],int) -> copyOf
+    596:597:int delete(android.net.Uri,java.lang.String,java.lang.String[]) -> delete
+    631:646:androidx.core.content.FileProvider$PathStrategy getPathStrategy(android.content.Context,java.lang.String) -> getPathStrategy
+    548:559:java.lang.String getType(android.net.Uri) -> getType
+    441:442:android.net.Uri getUriForFile(android.content.Context,java.lang.String,java.io.File) -> getUriForFile
+    471:472:android.net.Uri getUriForFile(android.content.Context,java.lang.String,java.io.File,java.lang.String) -> getUriForFile
+    568:568:android.net.Uri insert(android.net.Uri,android.content.ContentValues) -> insert
+    851:871:int modeToMode(java.lang.String) -> modeToMode
+    393:393:boolean onCreate() -> onCreate
+    620:622:android.os.ParcelFileDescriptor openFile(android.net.Uri,java.lang.String) -> openFile
+    657:714:androidx.core.content.FileProvider$PathStrategy parsePathStrategy(android.content.Context,java.lang.String) -> parsePathStrategy
+    508:533:android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String) -> query
+    578:578:int update(android.net.Uri,android.content.ContentValues,java.lang.String,java.lang.String[]) -> update
+androidx.core.content.FileProvider$SimplePathStrategy -> androidx.core.content.FileProvider$SimplePathStrategy:
+    754:758:void <init>(java.lang.String) -> <init>
+    765:778:void addRoot(java.lang.String,java.io.File) -> addRoot
+    820:842:java.io.File getFileForUri(android.net.Uri) -> getFileForUri
+    784:815:android.net.Uri getUriForFile(java.io.File) -> getUriForFile
+androidx.core.content.IntentCompat -> androidx.core.content.IntentCompat:
+    29:31:void <init>() -> <init>
+    107:108:android.content.Intent makeMainSelectorActivity(java.lang.String,java.lang.String) -> makeMainSelectorActivity
+androidx.core.content.LocusIdCompat -> androidx.core.content.LocusIdCompat:
+    76:83:void <init>(java.lang.String) -> <init>
+    103:110:boolean equals(java.lang.Object) -> equals
+    90:90:java.lang.String getId() -> getId
+    142:143:java.lang.String getSanitizedId() -> getSanitizedId
+    95:98:int hashCode() -> hashCode
+    126:126:android.content.LocusId toLocusId() -> toLocusId
+    135:136:androidx.core.content.LocusIdCompat toLocusIdCompat(android.content.LocusId) -> toLocusIdCompat
+    117:117:java.lang.String toString() -> toString
+androidx.core.content.LocusIdCompat$Api29Impl -> androidx.core.content.LocusIdCompat$Api29Impl:
+    148:148:void <init>() -> <init>
+    155:155:android.content.LocusId create(java.lang.String) -> create
+    163:163:java.lang.String getId(android.content.LocusId) -> getId
+androidx.core.content.MimeTypeFilter -> androidx.core.content.MimeTypeFilter:
+    43:44:void <init>() -> <init>
+    76:83:boolean matches(java.lang.String,java.lang.String) -> matches
+    93:105:java.lang.String matches(java.lang.String,java.lang.String[]) -> matches
+    115:127:java.lang.String matches(java.lang.String[],java.lang.String) -> matches
+    137:150:java.lang.String[] matchesMany(java.lang.String[],java.lang.String) -> matchesMany
+    48:68:boolean mimeTypeAgainstFilter(java.lang.String[],java.lang.String[]) -> mimeTypeAgainstFilter
+androidx.core.content.PermissionChecker -> androidx.core.content.PermissionChecker:
+    77:79:void <init>() -> <init>
+    171:174:int checkCallingOrSelfPermission(android.content.Context,java.lang.String) -> checkCallingOrSelfPermission
+    152:156:int checkCallingPermission(android.content.Context,java.lang.String,java.lang.String) -> checkCallingPermission
+    97:119:int checkPermission(android.content.Context,java.lang.String,int,int,java.lang.String) -> checkPermission
+    134:135:int checkSelfPermission(android.content.Context,java.lang.String) -> checkSelfPermission
+androidx.core.content.SharedPreferencesCompat -> androidx.core.content.SharedPreferencesCompat:
+    84:84:void <init>() -> <init>
+androidx.core.content.SharedPreferencesCompat$EditorCompat -> androidx.core.content.SharedPreferencesCompat$EditorCompat:
+    57:59:void <init>() -> <init>
+    80:81:void apply(android.content.SharedPreferences$Editor) -> apply
+    66:69:androidx.core.content.SharedPreferencesCompat$EditorCompat getInstance() -> getInstance
+androidx.core.content.SharedPreferencesCompat$EditorCompat$Helper -> androidx.core.content.SharedPreferencesCompat$EditorCompat$Helper:
+    40:41:void <init>() -> <init>
+    45:52:void apply(android.content.SharedPreferences$Editor) -> apply
+androidx.core.content.pm.ActivityInfoCompat -> androidx.core.content.pm.ActivityInfoCompat:
+    27:29:void <init>() -> <init>
+androidx.core.content.pm.PackageInfoCompat -> androidx.core.content.pm.PackageInfoCompat:
+    261:262:void <init>() -> <init>
+    244:249:boolean byteArrayContains(byte[][],byte[]) -> byteArrayContains
+    254:257:byte[] computeSHA256Digest(byte[]) -> computeSHA256Digest
+    50:53:long getLongVersionCode(android.content.pm.PackageInfo) -> getLongVersionCode
+    86:107:java.util.List getSignatures(android.content.pm.PackageManager,java.lang.String) -> getSignatures
+    140:240:boolean hasSignatures(android.content.pm.PackageManager,java.lang.String,java.util.Map,boolean) -> hasSignatures
+androidx.core.content.pm.PackageInfoCompat$Api28Impl -> androidx.core.content.pm.PackageInfoCompat$Api28Impl:
+    266:267:void <init>() -> <init>
+    280:280:android.content.pm.Signature[] getApkContentsSigners(android.content.pm.SigningInfo) -> getApkContentsSigners
+    285:285:android.content.pm.Signature[] getSigningCertificateHistory(android.content.pm.SigningInfo) -> getSigningCertificateHistory
+    275:275:boolean hasMultipleSigners(android.content.pm.SigningInfo) -> hasMultipleSigners
+    271:271:boolean hasSigningCertificate(android.content.pm.PackageManager,java.lang.String,byte[],int) -> hasSigningCertificate
+androidx.core.content.pm.PermissionInfoCompat -> androidx.core.content.pm.PermissionInfoCompat:
+    34:35:void <init>() -> <init>
+    74:77:int getProtection(android.content.pm.PermissionInfo) -> getProtection
+    88:91:int getProtectionFlags(android.content.pm.PermissionInfo) -> getProtectionFlags
+androidx.core.content.pm.ShortcutInfoCompat -> androidx.core.content.pm.ShortcutInfoCompat:
+    90:94:void <init>() -> <init>
+    168:187:android.content.Intent addToIntent(android.content.Intent) -> addToIntent
+    150:164:android.os.PersistableBundle buildLegacyExtrasBundle() -> buildLegacyExtrasBundle
+    363:367:java.util.List fromShortcuts(android.content.Context,java.util.List) -> fromShortcuts
+    221:221:android.content.ComponentName getActivity() -> getActivity
+    290:290:java.util.Set getCategories() -> getCategories
+    252:252:java.lang.CharSequence getDisabledMessage() -> getDisabledMessage
+    259:259:int getDisabledReason() -> getDisabledReason
+    372:372:android.os.PersistableBundle getExtras() -> getExtras
+    319:319:androidx.core.graphics.drawable.IconCompat getIcon() -> getIcon
+    199:199:java.lang.String getId() -> getId
+    270:270:android.content.Intent getIntent() -> getIntent
+    280:280:android.content.Intent[] getIntents() -> getIntents
+    387:387:long getLastChangedTimestamp() -> getLastChangedTimestamp
+    302:302:androidx.core.content.LocusIdCompat getLocusId() -> getLocusId
+    466:470:androidx.core.content.LocusIdCompat getLocusId(android.content.pm.ShortcutInfo) -> getLocusId
+    481:483:androidx.core.content.LocusIdCompat getLocusIdFromExtra(android.os.PersistableBundle) -> getLocusIdFromExtra
+    241:241:java.lang.CharSequence getLongLabel() -> getLongLabel
+    350:353:boolean getLongLivedFromExtra(android.os.PersistableBundle) -> getLongLivedFromExtra
+    207:207:java.lang.String getPackage() -> getPackage
+    330:340:androidx.core.app.Person[] getPersonsFromExtra(android.os.PersistableBundle) -> getPersonsFromExtra
+    311:311:int getRank() -> getRank
+    231:231:java.lang.CharSequence getShortLabel() -> getShortLabel
+    380:380:android.os.UserHandle getUserHandle() -> getUserHandle
+    460:460:boolean hasKeyFieldsOnly() -> hasKeyFieldsOnly
+    392:392:boolean isCached() -> isCached
+    416:416:boolean isDeclaredInManifest() -> isDeclaredInManifest
+    397:397:boolean isDynamic() -> isDynamic
+    440:440:boolean isEnabled() -> isEnabled
+    432:432:boolean isImmutable() -> isImmutable
+    402:402:boolean isPinned() -> isPinned
+    101:141:android.content.pm.ShortcutInfo toShortcutInfo() -> toShortcutInfo
+androidx.core.content.pm.ShortcutInfoCompat$Builder -> androidx.core.content.pm.ShortcutInfoCompat$Builder:
+    494:498:void <init>(android.content.Context,java.lang.String) -> <init>
+    504:538:void <init>(androidx.core.content.pm.ShortcutInfoCompat) -> <init>
+    545:579:void <init>(android.content.Context,android.content.pm.ShortcutInfo) -> <init>
+    810:822:androidx.core.content.pm.ShortcutInfoCompat build() -> build
+    696:697:androidx.core.content.pm.ShortcutInfoCompat$Builder setActivity(android.content.ComponentName) -> setActivity
+    714:715:androidx.core.content.pm.ShortcutInfoCompat$Builder setAlwaysBadged() -> setAlwaysBadged
+    753:754:androidx.core.content.pm.ShortcutInfoCompat$Builder setCategories(java.util.Set) -> setCategories
+    618:619:androidx.core.content.pm.ShortcutInfoCompat$Builder setDisabledMessage(java.lang.CharSequence) -> setDisabledMessage
+    800:801:androidx.core.content.pm.ShortcutInfoCompat$Builder setExtras(android.os.PersistableBundle) -> setExtras
+    653:654:androidx.core.content.pm.ShortcutInfoCompat$Builder setIcon(androidx.core.graphics.drawable.IconCompat) -> setIcon
+    633:633:androidx.core.content.pm.ShortcutInfoCompat$Builder setIntent(android.content.Intent) -> setIntent
+    644:645:androidx.core.content.pm.ShortcutInfoCompat$Builder setIntents(android.content.Intent[]) -> setIntents
+    683:684:androidx.core.content.pm.ShortcutInfoCompat$Builder setIsConversation() -> setIsConversation
+    667:668:androidx.core.content.pm.ShortcutInfoCompat$Builder setLocusId(androidx.core.content.LocusIdCompat) -> setLocusId
+    606:607:androidx.core.content.pm.ShortcutInfoCompat$Builder setLongLabel(java.lang.CharSequence) -> setLongLabel
+    763:764:androidx.core.content.pm.ShortcutInfoCompat$Builder setLongLived() -> setLongLived
+    774:775:androidx.core.content.pm.ShortcutInfoCompat$Builder setLongLived(boolean) -> setLongLived
+    728:728:androidx.core.content.pm.ShortcutInfoCompat$Builder setPerson(androidx.core.app.Person) -> setPerson
+    736:737:androidx.core.content.pm.ShortcutInfoCompat$Builder setPersons(androidx.core.app.Person[]) -> setPersons
+    786:787:androidx.core.content.pm.ShortcutInfoCompat$Builder setRank(int) -> setRank
+    592:593:androidx.core.content.pm.ShortcutInfoCompat$Builder setShortLabel(java.lang.CharSequence) -> setShortLabel
+androidx.core.content.pm.ShortcutInfoCompatSaver -> androidx.core.content.pm.ShortcutInfoCompatSaver:
+    36:36:void <init>() -> <init>
+    48:48:java.util.List getShortcuts() -> getShortcuts
+androidx.core.content.pm.ShortcutInfoCompatSaver$NoopImpl -> androidx.core.content.pm.ShortcutInfoCompatSaver$NoopImpl:
+    57:57:void <init>() -> <init>
+    56:56:java.lang.Object addShortcuts(java.util.List) -> addShortcuts
+    60:60:java.lang.Void addShortcuts(java.util.List) -> addShortcuts
+    56:56:java.lang.Object removeAllShortcuts() -> removeAllShortcuts
+    70:70:java.lang.Void removeAllShortcuts() -> removeAllShortcuts
+    56:56:java.lang.Object removeShortcuts(java.util.List) -> removeShortcuts
+    65:65:java.lang.Void removeShortcuts(java.util.List) -> removeShortcuts
+androidx.core.content.pm.ShortcutManagerCompat -> androidx.core.content.pm.ShortcutManagerCompat:
+    125:125:void <clinit>() -> <clinit>
+    127:129:void <init>() -> <init>
+    299:313:boolean addDynamicShortcuts(android.content.Context,java.util.List) -> addDynamicShortcuts
+    502:520:boolean convertUriIconToBitmapIcon(android.content.Context,androidx.core.content.pm.ShortcutInfoCompat) -> convertUriIconToBitmapIcon
+    526:532:void convertUriIconsToBitmapIcons(android.content.Context,java.util.List) -> convertUriIconsToBitmapIcons
+    216:224:android.content.Intent createShortcutResultIntent(android.content.Context,androidx.core.content.pm.ShortcutInfoCompat) -> createShortcutResultIntent
+    553:559:void disableShortcuts(android.content.Context,java.util.List,java.lang.CharSequence) -> disableShortcuts
+    577:586:void enableShortcuts(android.content.Context,java.util.List) -> enableShortcuts
+    450:466:java.util.List getDynamicShortcuts(android.content.Context) -> getDynamicShortcuts
+    736:745:int getIconDimensionInternal(android.content.Context,boolean) -> getIconDimensionInternal
+    369:373:int getIconMaxHeight(android.content.Context) -> getIconMaxHeight
+    358:362:int getIconMaxWidth(android.content.Context) -> getIconMaxWidth
+    321:326:int getMaxShortcutCountPerActivity(android.content.Context) -> getMaxShortcutCountPerActivity
+    718:726:java.lang.String getShortcutInfoCompatWithLowestRank(java.util.List) -> getShortcutInfoCompatWithLowestRank
+    749:766:androidx.core.content.pm.ShortcutInfoCompatSaver getShortcutInfoSaverInstance(android.content.Context) -> getShortcutInfoSaverInstance
+    257:282:java.util.List getShortcuts(android.content.Context,int) -> getShortcuts
+    338:344:boolean isRateLimitingActive(android.content.Context) -> isRateLimitingActive
+    136:151:boolean isRequestPinShortcutSupported(android.content.Context) -> isRequestPinShortcutSupported
+    676:713:boolean pushDynamicShortcut(android.content.Context,androidx.core.content.pm.ShortcutInfoCompat) -> pushDynamicShortcut
+    612:617:void removeAllDynamicShortcuts(android.content.Context) -> removeAllDynamicShortcuts
+    597:602:void removeDynamicShortcuts(android.content.Context,java.util.List) -> removeDynamicShortcuts
+    632:639:void removeLongLivedShortcuts(android.content.Context,java.util.List) -> removeLongLivedShortcuts
+    395:400:void reportShortcutUsed(android.content.Context,java.lang.String) -> reportShortcutUsed
+    173:200:boolean requestPinShortcut(android.content.Context,androidx.core.content.pm.ShortcutInfoCompat,android.content.IntentSender) -> requestPinShortcut
+    425:438:boolean setDynamicShortcuts(android.content.Context,java.util.List) -> setDynamicShortcuts
+    731:732:void setShortcutInfoCompatSaver(androidx.core.content.pm.ShortcutInfoCompatSaver) -> setShortcutInfoCompatSaver
+    482:496:boolean updateShortcuts(android.content.Context,java.util.List) -> updateShortcuts
+androidx.core.content.pm.ShortcutManagerCompat$1 -> androidx.core.content.pm.ShortcutManagerCompat$1:
+    190:190:void <init>(android.content.IntentSender) -> <init>
+    194:198:void onReceive(android.content.Context,android.content.Intent) -> onReceive
+androidx.core.content.pm.ShortcutManagerCompat$Api25Impl -> androidx.core.content.pm.ShortcutManagerCompat$Api25Impl:
+    770:770:void <init>() -> <init>
+    772:780:java.lang.String getShortcutInfoWithLowestRank(java.util.List) -> getShortcutInfoWithLowestRank
+androidx.core.content.res.ColorStateListInflaterCompat -> androidx.core.content.res.ColorStateListInflaterCompat:
+    49:50:void <init>() -> <init>
+    86:98:android.content.res.ColorStateList createFromXml(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme) -> createFromXml
+    113:119:android.content.res.ColorStateList createFromXmlInner(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+    65:70:android.content.res.ColorStateList inflate(android.content.res.Resources,int,android.content.res.Resources$Theme) -> inflate
+    128:186:android.content.res.ColorStateList inflate(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    198:199:int modulateColorAlpha(int,float) -> modulateColorAlpha
+    191:192:android.content.res.TypedArray obtainAttributes(android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,int[]) -> obtainAttributes
+androidx.core.content.res.ComplexColorCompat -> androidx.core.content.res.ComplexColorCompat:
+    61:65:void <init>(android.graphics.Shader,android.content.res.ColorStateList,int) -> <init>
+    152:171:androidx.core.content.res.ComplexColorCompat createFromXml(android.content.res.Resources,int,android.content.res.Resources$Theme) -> createFromXml
+    68:68:androidx.core.content.res.ComplexColorCompat from(android.graphics.Shader) -> from
+    72:72:androidx.core.content.res.ComplexColorCompat from(android.content.res.ColorStateList) -> from
+    76:76:androidx.core.content.res.ComplexColorCompat from(int) -> from
+    86:86:int getColor() -> getColor
+    81:81:android.graphics.Shader getShader() -> getShader
+    140:144:androidx.core.content.res.ComplexColorCompat inflate(android.content.res.Resources,int,android.content.res.Resources$Theme) -> inflate
+    94:94:boolean isGradient() -> isGradient
+    98:98:boolean isStateful() -> isStateful
+    108:117:boolean onStateChanged(int[]) -> onStateChanged
+    90:91:void setColor(int) -> setColor
+    124:124:boolean willDraw() -> willDraw
+androidx.core.content.res.ConfigurationHelper -> androidx.core.content.res.ConfigurationHelper:
+    31:32:void <init>() -> <init>
+    41:42:int getDensityDpi(android.content.res.Resources) -> getDensityDpi
+androidx.core.content.res.FontResourcesParserCompat -> androidx.core.content.res.FontResourcesParserCompat:
+    355:356:void <init>() -> <init>
+    253:254:int getType(android.content.res.TypedArray,int) -> getType
+    184:192:androidx.core.content.res.FontResourcesParserCompat$FamilyResourceEntry parse(org.xmlpull.v1.XmlPullParser,android.content.res.Resources) -> parse
+    270:295:java.util.List readCerts(android.content.res.Resources,int) -> readCerts
+    197:203:androidx.core.content.res.FontResourcesParserCompat$FamilyResourceEntry readFamilies(org.xmlpull.v1.XmlPullParser,android.content.res.Resources) -> readFamilies
+    209:249:androidx.core.content.res.FontResourcesParserCompat$FamilyResourceEntry readFamily(org.xmlpull.v1.XmlPullParser,android.content.res.Resources) -> readFamily
+    309:337:androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry readFont(org.xmlpull.v1.XmlPullParser,android.content.res.Resources) -> readFont
+    342:353:void skip(org.xmlpull.v1.XmlPullParser) -> skip
+    300:304:java.util.List toByteArrayList(java.lang.String[]) -> toByteArrayList
+androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry -> androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry:
+    169:171:void <init>(androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry[]) -> <init>
+    174:174:androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry[] getEntries() -> getEntries
+androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry -> androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry:
+    129:136:void <init>(java.lang.String,int,boolean,java.lang.String,int,int) -> <init>
+    139:139:java.lang.String getFileName() -> getFileName
+    159:159:int getResourceId() -> getResourceId
+    155:155:int getTtcIndex() -> getTtcIndex
+    151:151:java.lang.String getVariationSettings() -> getVariationSettings
+    143:143:int getWeight() -> getWeight
+    147:147:boolean isItalic() -> isItalic
+androidx.core.content.res.FontResourcesParserCompat$ProviderResourceEntry -> androidx.core.content.res.FontResourcesParserCompat$ProviderResourceEntry:
+    86:91:void <init>(androidx.core.provider.FontRequest,int,int,java.lang.String) -> <init>
+    95:96:void <init>(androidx.core.provider.FontRequest,int,int) -> <init>
+    103:103:int getFetchStrategy() -> getFetchStrategy
+    99:99:androidx.core.provider.FontRequest getRequest() -> getRequest
+    113:113:java.lang.String getSystemFontFamilyName() -> getSystemFontFamilyName
+    107:107:int getTimeout() -> getTimeout
+androidx.core.content.res.GradientColorInflaterCompat -> androidx.core.content.res.GradientColorInflaterCompat:
+    66:67:void <init>() -> <init>
+    192:197:androidx.core.content.res.GradientColorInflaterCompat$ColorStops checkColors(androidx.core.content.res.GradientColorInflaterCompat$ColorStops,int,int,boolean,int) -> checkColors
+    71:83:android.graphics.Shader createFromXml(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme) -> createFromXml
+    90:142:android.graphics.Shader createFromXmlInner(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+    150:186:androidx.core.content.res.GradientColorInflaterCompat$ColorStops inflateChildElements(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflateChildElements
+    202:209:android.graphics.Shader$TileMode parseTileMode(int) -> parseTileMode
+androidx.core.content.res.GradientColorInflaterCompat$ColorStops -> androidx.core.content.res.GradientColorInflaterCompat$ColorStops:
+    217:225:void <init>(java.util.List,java.util.List) -> <init>
+    227:230:void <init>(int,int) -> <init>
+    232:235:void <init>(int,int,int) -> <init>
+androidx.core.content.res.GrowingArrayUtils -> androidx.core.content.res.GrowingArrayUtils:
+    179:179:void <init>() -> <init>
+    42:49:java.lang.Object[] append(java.lang.Object[],int,java.lang.Object) -> append
+    56:62:int[] append(int[],int,int) -> append
+    69:75:long[] append(long[],int,long) -> append
+    82:88:boolean[] append(boolean[],int,boolean) -> append
+    175:175:int growSize(int) -> growSize
+    104:115:java.lang.Object[] insert(java.lang.Object[],int,int,java.lang.Object) -> insert
+    122:132:int[] insert(int[],int,int,int) -> insert
+    139:149:long[] insert(long[],int,int,long) -> insert
+    156:166:boolean[] insert(boolean[],int,int,boolean) -> insert
+androidx.core.content.res.ResourcesCompat -> androidx.core.content.res.ResourcesCompat:
+    495:495:void <init>() -> <init>
+    268:271:android.graphics.Typeface getCachedFont(android.content.Context,int) -> getCachedFont
+    157:158:int getColor(android.content.res.Resources,int,android.content.res.Resources$Theme) -> getColor
+    187:188:android.content.res.ColorStateList getColorStateList(android.content.res.Resources,int,android.content.res.Resources$Theme) -> getColorStateList
+    94:95:android.graphics.drawable.Drawable getDrawable(android.content.res.Resources,int,android.content.res.Resources$Theme) -> getDrawable
+    127:128:android.graphics.drawable.Drawable getDrawableForDensity(android.content.res.Resources,int,int,android.content.res.Resources$Theme) -> getDrawableForDensity
+    207:213:float getFloat(android.content.res.Resources,int) -> getFloat
+    239:242:android.graphics.Typeface getFont(android.content.Context,int) -> getFont
+    360:368:void getFont(android.content.Context,int,androidx.core.content.res.ResourcesCompat$FontCallback,android.os.Handler) -> getFont
+    378:381:android.graphics.Typeface getFont(android.content.Context,int,android.util.TypedValue,int,androidx.core.content.res.ResourcesCompat$FontCallback) -> getFont
+    401:409:android.graphics.Typeface loadFont(android.content.Context,int,android.util.TypedValue,int,androidx.core.content.res.ResourcesCompat$FontCallback,android.os.Handler,boolean,boolean) -> loadFont
+    431:492:android.graphics.Typeface loadFont(android.content.Context,android.content.res.Resources,android.util.TypedValue,int,int,androidx.core.content.res.ResourcesCompat$FontCallback,android.os.Handler,boolean,boolean) -> loadFont
+androidx.core.content.res.ResourcesCompat$FontCallback -> androidx.core.content.res.ResourcesCompat$FontCallback:
+    278:278:void <init>() -> <init>
+    324:330:void callbackFailAsync(int,android.os.Handler) -> callbackFailAsync
+    308:314:void callbackSuccessAsync(android.graphics.Typeface,android.os.Handler) -> callbackSuccessAsync
+    336:336:android.os.Handler getHandler(android.os.Handler) -> getHandler
+androidx.core.content.res.ResourcesCompat$FontCallback$1 -> androidx.core.content.res.ResourcesCompat$FontCallback$1:
+    308:308:void <init>(androidx.core.content.res.ResourcesCompat$FontCallback,android.graphics.Typeface) -> <init>
+    311:312:void run() -> run
+androidx.core.content.res.ResourcesCompat$FontCallback$2 -> androidx.core.content.res.ResourcesCompat$FontCallback$2:
+    324:324:void <init>(androidx.core.content.res.ResourcesCompat$FontCallback,int) -> <init>
+    327:328:void run() -> run
+androidx.core.content.res.ResourcesCompat$ThemeCompat -> androidx.core.content.res.ResourcesCompat$ThemeCompat:
+    501:501:void <init>() -> <init>
+    517:522:void rebase(android.content.res.Resources$Theme) -> rebase
+androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi23 -> androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi23:
+    535:535:void <clinit>() -> <clinit>
+    534:534:void <init>() -> <init>
+    541:560:void rebase(android.content.res.Resources$Theme) -> rebase
+androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi29 -> androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi29:
+    526:526:void <init>() -> <init>
+    528:529:void rebase(android.content.res.Resources$Theme) -> rebase
+androidx.core.content.res.TypedArrayUtils -> androidx.core.content.res.TypedArrayUtils:
+    362:363:void <init>() -> <init>
+    354:359:int getAttr(android.content.Context,int,int) -> getAttr
+    264:265:boolean getBoolean(android.content.res.TypedArray,int,int,boolean) -> getBoolean
+    275:279:android.graphics.drawable.Drawable getDrawable(android.content.res.TypedArray,int,int) -> getDrawable
+    288:289:int getInt(android.content.res.TypedArray,int,int,int) -> getInt
+    87:91:boolean getNamedBoolean(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int,boolean) -> getNamedBoolean
+    122:126:int getNamedColor(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int,int) -> getNamedColor
+    168:182:android.content.res.ColorStateList getNamedColorStateList(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme,java.lang.String,int) -> getNamedColorStateList
+    190:190:android.content.res.ColorStateList getNamedColorStateListFromInt(android.util.TypedValue) -> getNamedColorStateListFromInt
+    140:154:androidx.core.content.res.ComplexColorCompat getNamedComplexColor(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme,java.lang.String,int,int) -> getNamedComplexColor
+    70:74:float getNamedFloat(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int,float) -> getNamedFloat
+    104:108:int getNamedInt(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int,int) -> getNamedInt
+    203:207:int getNamedResourceId(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int,int) -> getNamedResourceId
+    221:225:java.lang.String getNamedString(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int) -> getNamedString
+    299:300:int getResourceId(android.content.res.TypedArray,int,int,int) -> getResourceId
+    310:314:java.lang.String getString(android.content.res.TypedArray,int,int) -> getString
+    326:330:java.lang.CharSequence getText(android.content.res.TypedArray,int,int) -> getText
+    342:346:java.lang.CharSequence[] getTextArray(android.content.res.TypedArray,int,int) -> getTextArray
+    58:58:boolean hasAttribute(org.xmlpull.v1.XmlPullParser,java.lang.String) -> hasAttribute
+    252:255:android.content.res.TypedArray obtainAttributes(android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,int[]) -> obtainAttributes
+    237:241:android.util.TypedValue peekNamedValue(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,java.lang.String,int) -> peekNamedValue
+androidx.core.database.CursorWindowCompat -> androidx.core.database.CursorWindowCompat:
+    30:32:void <init>() -> <init>
+    42:45:android.database.CursorWindow create(java.lang.String,long) -> create
+androidx.core.database.DatabaseUtilsCompat -> androidx.core.database.DatabaseUtilsCompat:
+    29:31:void <init>() -> <init>
+    60:66:java.lang.String[] appendSelectionArgs(java.lang.String[],java.lang.String[]) -> appendSelectionArgs
+    41:48:java.lang.String concatenateWhere(java.lang.String,java.lang.String) -> concatenateWhere
+androidx.core.database.sqlite.SQLiteCursorCompat -> androidx.core.database.sqlite.SQLiteCursorCompat:
+    29:31:void <init>() -> <init>
+    45:48:void setFillWindowForwardOnly(android.database.sqlite.SQLiteCursor,boolean) -> setFillWindowForwardOnly
+androidx.core.graphics.BitmapCompat -> androidx.core.graphics.BitmapCompat:
+    54:54:void <init>() -> <init>
+    48:49:int getAllocationByteCount(android.graphics.Bitmap) -> getAllocationByteCount
+    28:29:boolean hasMipMap(android.graphics.Bitmap) -> hasMipMap
+    35:38:void setHasMipMap(android.graphics.Bitmap,boolean) -> setHasMipMap
+androidx.core.graphics.BlendModeColorFilterCompat -> androidx.core.graphics.BlendModeColorFilterCompat:
+    54:54:void <init>() -> <init>
+    42:50:android.graphics.ColorFilter createBlendModeColorFilterCompat(int,androidx.core.graphics.BlendModeCompat) -> createBlendModeColorFilterCompat
+androidx.core.graphics.BlendModeCompat -> androidx.core.graphics.BlendModeCompat:
+    27:419:void <clinit>() -> <clinit>
+    27:27:void <init>(java.lang.String,int) -> <init>
+    27:27:androidx.core.graphics.BlendModeCompat valueOf(java.lang.String) -> valueOf
+    27:27:androidx.core.graphics.BlendModeCompat[] values() -> values
+androidx.core.graphics.BlendModeUtils -> androidx.core.graphics.BlendModeUtils:
+    148:148:void <init>() -> <init>
+    35:95:android.graphics.BlendMode obtainBlendModeFromCompat(androidx.core.graphics.BlendModeCompat) -> obtainBlendModeFromCompat
+    101:144:android.graphics.PorterDuff$Mode obtainPorterDuffFromCompat(androidx.core.graphics.BlendModeCompat) -> obtainPorterDuffFromCompat
+androidx.core.graphics.BlendModeUtils$1 -> androidx.core.graphics.BlendModeUtils$1:
+    35:35:void <clinit>() -> <clinit>
+androidx.core.graphics.ColorUtils -> androidx.core.graphics.ColorUtils:
+    45:45:void <clinit>() -> <clinit>
+    47:47:void <init>() -> <init>
+    306:356:int HSLToColor(float[]) -> HSLToColor
+    570:572:int LABToColor(double,double,double) -> LABToColor
+    513:527:void LABToXYZ(double,double,double,double[]) -> LABToXYZ
+    241:275:void RGBToHSL(int,int,int,float[]) -> RGBToHSL
+    399:403:void RGBToLAB(int,int,int,double[]) -> RGBToLAB
+    444:458:void RGBToXYZ(int,int,int,double[]) -> RGBToXYZ
+    544:555:int XYZToColor(double,double,double) -> XYZToColor
+    481:490:void XYZToLAB(double,double,double,double[]) -> XYZToLAB
+    611:616:int blendARGB(int,int,float) -> blendARGB
+    633:641:void blendHSL(float[],float[],float,float[]) -> blendHSL
+    656:663:void blendLAB(double[],double[],double,double[]) -> blendLAB
+    159:172:double calculateContrast(int,int) -> calculateContrast
+    145:148:double calculateLuminance(int) -> calculateLuminance
+    187:222:int calculateMinimumAlpha(int,int,float) -> calculateMinimumAlpha
+    667:674:float circularInterpolate(float,float,float) -> circularInterpolate
+    289:290:void colorToHSL(int,float[]) -> colorToHSL
+    378:379:void colorToLAB(int,double[]) -> colorToLAB
+    421:422:void colorToXYZ(int,double[]) -> colorToXYZ
+    131:131:int compositeAlpha(int,int) -> compositeAlpha
+    53:64:int compositeColors(int,int) -> compositeColors
+    92:127:android.graphics.Color compositeColors(android.graphics.Color,android.graphics.Color) -> compositeColors
+    135:136:int compositeComponent(int,int,int,int,int) -> compositeComponent
+    585:585:float constrain(float,float,float) -> constrain
+    589:589:int constrain(int,int,int) -> constrain
+    579:581:double distanceEuclidean(double[],double[]) -> distanceEuclidean
+    678:683:double[] getTempDouble3Array() -> getTempDouble3Array
+    593:595:double pivotXyzComponent(double) -> pivotXyzComponent
+    365:368:int setAlphaComponent(int,int) -> setAlphaComponent
+androidx.core.graphics.Insets -> androidx.core.graphics.Insets:
+    36:36:void <clinit>() -> <clinit>
+    43:48:void <init>(int,int,int,int) -> <init>
+    89:89:androidx.core.graphics.Insets add(androidx.core.graphics.Insets,androidx.core.graphics.Insets) -> add
+    141:151:boolean equals(java.lang.Object) -> equals
+    156:160:int hashCode() -> hashCode
+    114:115:androidx.core.graphics.Insets max(androidx.core.graphics.Insets,androidx.core.graphics.Insets) -> max
+    128:129:androidx.core.graphics.Insets min(androidx.core.graphics.Insets,androidx.core.graphics.Insets) -> min
+    63:66:androidx.core.graphics.Insets of(int,int,int,int) -> of
+    77:77:androidx.core.graphics.Insets of(android.graphics.Rect) -> of
+    101:101:androidx.core.graphics.Insets subtract(androidx.core.graphics.Insets,androidx.core.graphics.Insets) -> subtract
+    188:188:androidx.core.graphics.Insets toCompatInsets(android.graphics.Insets) -> toCompatInsets
+    198:198:android.graphics.Insets toPlatformInsets() -> toPlatformInsets
+    165:165:java.lang.String toString() -> toString
+    178:178:androidx.core.graphics.Insets wrap(android.graphics.Insets) -> wrap
+androidx.core.graphics.PaintCompat -> androidx.core.graphics.PaintCompat:
+    40:40:void <clinit>() -> <clinit>
+    156:156:void <init>() -> <init>
+    51:52:boolean hasGlyph(android.graphics.Paint,java.lang.String) -> hasGlyph
+    145:153:androidx.core.util.Pair obtainEmptyRects() -> obtainEmptyRects
+    126:140:boolean setBlendMode(android.graphics.Paint,androidx.core.graphics.BlendModeCompat) -> setBlendMode
+androidx.core.graphics.PathParser -> androidx.core.graphics.PathParser:
+    795:796:void <init>() -> <init>
+    190:191:void addNode(java.util.ArrayList,char,float[]) -> addNode
+    137:151:boolean canMorph(androidx.core.graphics.PathParser$PathDataNode[],androidx.core.graphics.PathParser$PathDataNode[]) -> canMorph
+    54:65:float[] copyOfRange(float[],int,int) -> copyOfRange
+    91:112:androidx.core.graphics.PathParser$PathDataNode[] createNodesFromPathData(java.lang.String) -> createNodesFromPathData
+    73:83:android.graphics.Path createPathFromPathData(java.lang.String) -> createPathFromPathData
+    120:127:androidx.core.graphics.PathParser$PathDataNode[] deepCopyNodes(androidx.core.graphics.PathParser$PathDataNode[]) -> deepCopyNodes
+    258:300:void extract(java.lang.String,int,androidx.core.graphics.PathParser$ExtractFloatResult) -> extract
+    211:244:float[] getFloats(java.lang.String) -> getFloats
+    315:332:boolean interpolatePathDataNodes(androidx.core.graphics.PathParser$PathDataNode[],androidx.core.graphics.PathParser$PathDataNode[],androidx.core.graphics.PathParser$PathDataNode[],float) -> interpolatePathDataNodes
+    174:186:int nextStart(java.lang.String,int) -> nextStart
+    163:169:void updateNodes(androidx.core.graphics.PathParser$PathDataNode[],androidx.core.graphics.PathParser$PathDataNode[]) -> updateNodes
+androidx.core.graphics.PathParser$ExtractFloatResult -> androidx.core.graphics.PathParser$ExtractFloatResult:
+    199:200:void <init>() -> <init>
+androidx.core.graphics.PathParser$PathDataNode -> androidx.core.graphics.PathParser$PathDataNode:
+    352:355:void <init>(char,float[]) -> <init>
+    357:360:void <init>(androidx.core.graphics.PathParser$PathDataNode) -> <init>
+    398:643:void addCommand(android.graphics.Path,float[],char,char,float[]) -> addCommand
+    750:792:void arcToBezier(android.graphics.Path,double,double,double,double,double,double,double,double,double) -> arcToBezier
+    657:720:void drawArc(android.graphics.Path,float,float,float,float,float,float,float,boolean,boolean) -> drawArc
+    388:393:void interpolatePathDataNode(androidx.core.graphics.PathParser$PathDataNode,androidx.core.graphics.PathParser$PathDataNode,float) -> interpolatePathDataNode
+    369:375:void nodesToPath(androidx.core.graphics.PathParser$PathDataNode[],android.graphics.Path) -> nodesToPath
+androidx.core.graphics.PathSegment -> androidx.core.graphics.PathSegment:
+    37:42:void <init>(android.graphics.PointF,float,android.graphics.PointF,float) -> <init>
+    72:78:boolean equals(java.lang.Object) -> equals
+    60:60:android.graphics.PointF getEnd() -> getEnd
+    67:67:float getEndFraction() -> getEndFraction
+    47:47:android.graphics.PointF getStart() -> getStart
+    54:54:float getStartFraction() -> getStartFraction
+    83:87:int hashCode() -> hashCode
+    92:92:java.lang.String toString() -> toString
+androidx.core.graphics.PathUtils -> androidx.core.graphics.PathUtils:
+    82:83:void <init>() -> <init>
+    43:43:java.util.Collection flatten(android.graphics.Path) -> flatten
+    60:79:java.util.Collection flatten(android.graphics.Path,float) -> flatten
+androidx.core.graphics.TypefaceCompat -> androidx.core.graphics.TypefaceCompat:
+    50:69:void <clinit>() -> <clinit>
+    71:71:void <init>() -> <init>
+    244:245:void clearCache() -> clearCache
+    223:235:android.graphics.Typeface create(android.content.Context,android.graphics.Typeface,int) -> create
+    193:193:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    125:164:android.graphics.Typeface createFromResourcesFamilyXml(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FamilyResourceEntry,android.content.res.Resources,int,int,androidx.core.content.res.ResourcesCompat$FontCallback,android.os.Handler,boolean) -> createFromResourcesFamilyXml
+    176:182:android.graphics.Typeface createFromResourcesFontFile(android.content.Context,android.content.res.Resources,int,java.lang.String,int) -> createFromResourcesFontFile
+    94:94:java.lang.String createResourceUid(android.content.res.Resources,int,int) -> createResourceUid
+    82:82:android.graphics.Typeface findFromCache(android.content.res.Resources,int,int) -> findFromCache
+    202:208:android.graphics.Typeface getBestFontFromFamily(android.content.Context,android.graphics.Typeface,int) -> getBestFontFromFamily
+    105:108:android.graphics.Typeface getSystemFontFamily(java.lang.String) -> getSystemFontFamily
+androidx.core.graphics.TypefaceCompat$ResourcesCallbackAdapter -> androidx.core.graphics.TypefaceCompat$ResourcesCallbackAdapter:
+    261:263:void <init>(androidx.core.content.res.ResourcesCompat$FontCallback) -> <init>
+    274:277:void onTypefaceRequestFailed(int) -> onTypefaceRequestFailed
+    267:270:void onTypefaceRetrieved(android.graphics.Typeface) -> onTypefaceRetrieved
+androidx.core.graphics.TypefaceCompatApi21Impl -> androidx.core.graphics.TypefaceCompatApi21Impl:
+    65:65:void <clinit>() -> <clinit>
+    54:54:void <init>() -> <init>
+    136:142:boolean addFontWeightStyle(java.lang.Object,java.lang.String,int,boolean) -> addFontWeightStyle
+    123:130:android.graphics.Typeface createFromFamiliesWithDefault(java.lang.Object) -> createFromFamiliesWithDefault
+    176:199:android.graphics.Typeface createFromFontFamilyFilesResourceEntry(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,android.content.res.Resources,int) -> createFromFontFamilyFilesResourceEntry
+    149:169:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    101:109:java.io.File getFile(android.os.ParcelFileDescriptor) -> getFile
+    68:97:void init() -> init
+    114:118:java.lang.Object newFamily() -> newFamily
+androidx.core.graphics.TypefaceCompatApi24Impl -> androidx.core.graphics.TypefaceCompatApi24Impl:
+    69:88:void <clinit>() -> <clinit>
+    51:51:void <init>() -> <init>
+    112:116:boolean addFontWeightStyle(java.lang.Object,java.nio.ByteBuffer,int,int,boolean) -> addFontWeightStyle
+    122:127:android.graphics.Typeface createFromFamiliesWithDefault(java.lang.Object) -> createFromFamiliesWithDefault
+    167:181:android.graphics.Typeface createFromFontFamilyFilesResourceEntry(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,android.content.res.Resources,int) -> createFromFontFamilyFilesResourceEntry
+    135:160:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    94:98:boolean isUsable() -> isUsable
+    103:105:java.lang.Object newFamily() -> newFamily
+androidx.core.graphics.TypefaceCompatApi26Impl -> androidx.core.graphics.TypefaceCompatApi26Impl:
+    74:108:void <init>() -> <init>
+    194:196:void abortCreation(java.lang.Object) -> abortCreation
+    140:144:boolean addFontFromAssetManager(android.content.Context,java.lang.Object,java.lang.String,int,int,int,android.graphics.fonts.FontVariationAxis[]) -> addFontFromAssetManager
+    155:158:boolean addFontFromBuffer(java.lang.Object,java.nio.ByteBuffer,int,int,int) -> addFontFromBuffer
+    169:174:android.graphics.Typeface createFromFamiliesWithDefault(java.lang.Object) -> createFromFamiliesWithDefault
+    203:221:android.graphics.Typeface createFromFontFamilyFilesResourceEntry(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,android.content.res.Resources,int) -> createFromFontFamilyFilesResourceEntry
+    229:281:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    291:307:android.graphics.Typeface createFromResourcesFontFile(android.content.Context,android.content.res.Resources,int,java.lang.String,int) -> createFromResourcesFontFile
+    183:185:boolean freeze(java.lang.Object) -> freeze
+    114:118:boolean isFontFamilyPrivateAPIAvailable() -> isFontFamilyPrivateAPIAvailable
+    127:129:java.lang.Object newFamily() -> newFamily
+    343:343:java.lang.reflect.Method obtainAbortCreationMethod(java.lang.Class) -> obtainAbortCreationMethod
+    326:326:java.lang.reflect.Method obtainAddFontFromAssetManagerMethod(java.lang.Class) -> obtainAddFontFromAssetManagerMethod
+    333:333:java.lang.reflect.Method obtainAddFontFromBufferMethod(java.lang.Class) -> obtainAddFontFromBufferMethod
+    348:352:java.lang.reflect.Method obtainCreateFromFamiliesWithDefaultMethod(java.lang.Class) -> obtainCreateFromFamiliesWithDefaultMethod
+    316:316:java.lang.Class obtainFontFamily() -> obtainFontFamily
+    321:321:java.lang.reflect.Constructor obtainFontFamilyCtor(java.lang.Class) -> obtainFontFamilyCtor
+    339:339:java.lang.reflect.Method obtainFreezeMethod(java.lang.Class) -> obtainFreezeMethod
+androidx.core.graphics.TypefaceCompatApi28Impl -> androidx.core.graphics.TypefaceCompatApi28Impl:
+    36:36:void <init>() -> <init>
+    49:54:android.graphics.Typeface createFromFamiliesWithDefault(java.lang.Object) -> createFromFamiliesWithDefault
+    61:65:java.lang.reflect.Method obtainCreateFromFamiliesWithDefaultMethod(java.lang.Class) -> obtainCreateFromFamiliesWithDefaultMethod
+androidx.core.graphics.TypefaceCompatApi29Impl -> androidx.core.graphics.TypefaceCompatApi29Impl:
+    44:44:void <init>() -> <init>
+    109:141:android.graphics.Typeface createFromFontFamilyFilesResourceEntry(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,android.content.res.Resources,int) -> createFromFontFamilyFilesResourceEntry
+    62:99:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    54:54:android.graphics.Typeface createFromInputStream(android.content.Context,java.io.InputStream) -> createFromInputStream
+    152:162:android.graphics.Typeface createFromResourcesFontFile(android.content.Context,android.content.res.Resources,int,java.lang.String,int) -> createFromResourcesFontFile
+    48:48:androidx.core.provider.FontsContractCompat$FontInfo findBestInfo(androidx.core.provider.FontsContractCompat$FontInfo[],int) -> findBestInfo
+androidx.core.graphics.TypefaceCompatBaseImpl -> androidx.core.graphics.TypefaceCompatBaseImpl:
+    45:52:void <init>() -> <init>
+    220:224:void addFontFamily(android.graphics.Typeface,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry) -> addFontFamily
+    170:179:android.graphics.Typeface createFromFontFamilyFilesResourceEntry(android.content.Context,androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,android.content.res.Resources,int) -> createFromFontFamilyFilesResourceEntry
+    138:150:android.graphics.Typeface createFromFontInfo(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[],int) -> createFromFontInfo
+    115:131:android.graphics.Typeface createFromInputStream(android.content.Context,java.io.InputStream) -> createFromInputStream
+    188:204:android.graphics.Typeface createFromResourcesFontFile(android.content.Context,android.content.res.Resources,int,java.lang.String,int) -> createFromResourcesFontFile
+    154:154:androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry findBestEntry(androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry,int) -> findBestEntry
+    62:77:java.lang.Object findBestFont(java.lang.Object[],int,androidx.core.graphics.TypefaceCompatBaseImpl$StyleExtractor) -> findBestFont
+    100:100:androidx.core.provider.FontsContractCompat$FontInfo findBestInfo(androidx.core.provider.FontsContractCompat$FontInfo[],int) -> findBestInfo
+    212:216:androidx.core.content.res.FontResourcesParserCompat$FontFamilyFilesResourceEntry getFontFamily(android.graphics.Typeface) -> getFontFamily
+    81:95:long getUniqueKey(android.graphics.Typeface) -> getUniqueKey
+androidx.core.graphics.TypefaceCompatBaseImpl$1 -> androidx.core.graphics.TypefaceCompatBaseImpl$1:
+    100:100:void <init>(androidx.core.graphics.TypefaceCompatBaseImpl) -> <init>
+    100:100:int getWeight(java.lang.Object) -> getWeight
+    103:103:int getWeight(androidx.core.provider.FontsContractCompat$FontInfo) -> getWeight
+    100:100:boolean isItalic(java.lang.Object) -> isItalic
+    108:108:boolean isItalic(androidx.core.provider.FontsContractCompat$FontInfo) -> isItalic
+androidx.core.graphics.TypefaceCompatBaseImpl$2 -> androidx.core.graphics.TypefaceCompatBaseImpl$2:
+    154:154:void <init>(androidx.core.graphics.TypefaceCompatBaseImpl) -> <init>
+    154:154:int getWeight(java.lang.Object) -> getWeight
+    157:157:int getWeight(androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry) -> getWeight
+    154:154:boolean isItalic(java.lang.Object) -> isItalic
+    162:162:boolean isItalic(androidx.core.content.res.FontResourcesParserCompat$FontFileResourceEntry) -> isItalic
+androidx.core.graphics.TypefaceCompatUtil -> androidx.core.graphics.TypefaceCompatUtil:
+    58:58:void <init>() -> <init>
+    181:187:void closeQuietly(java.io.Closeable) -> closeQuietly
+    130:141:java.nio.ByteBuffer copyToDirectBuffer(android.content.Context,android.content.res.Resources,int) -> copyToDirectBuffer
+    148:164:boolean copyToFile(java.io.File,java.io.InputStream) -> copyToFile
+    171:177:boolean copyToFile(java.io.File,android.content.res.Resources,int) -> copyToFile
+    69:85:java.io.File getTempFile(android.content.Context) -> getTempFile
+    94:99:java.nio.ByteBuffer mmap(java.io.File) -> mmap
+    109:120:java.nio.ByteBuffer mmap(android.content.Context,android.os.CancellationSignal,android.net.Uri) -> mmap
+    208:223:java.util.Map readFontInfoIntoByteBuffer(android.content.Context,androidx.core.provider.FontsContractCompat$FontInfo[],android.os.CancellationSignal) -> readFontInfoIntoByteBuffer
+androidx.core.graphics.drawable.DrawableCompat -> androidx.core.graphics.drawable.DrawableCompat:
+    419:419:void <init>() -> <init>
+    188:191:void applyTheme(android.graphics.drawable.Drawable,android.content.res.Resources$Theme) -> applyTheme
+    197:198:boolean canApplyTheme(android.graphics.drawable.Drawable) -> canApplyTheme
+    221:252:void clearColorFilter(android.graphics.drawable.Drawable) -> clearColorFilter
+    177:178:int getAlpha(android.graphics.drawable.Drawable) -> getAlpha
+    210:211:android.graphics.ColorFilter getColorFilter(android.graphics.drawable.Drawable) -> getColorFilter
+    391:392:int getLayoutDirection(android.graphics.drawable.Drawable) -> getLayoutDirection
+    268:273:void inflate(android.graphics.drawable.Drawable,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    95:96:boolean isAutoMirrored(android.graphics.drawable.Drawable) -> isAutoMirrored
+    62:63:void jumpToCurrentState(android.graphics.drawable.Drawable) -> jumpToCurrentState
+    78:81:void setAutoMirrored(android.graphics.drawable.Drawable,boolean) -> setAutoMirrored
+    110:113:void setHotspot(android.graphics.drawable.Drawable,float,float) -> setHotspot
+    123:126:void setHotspotBounds(android.graphics.drawable.Drawable,int,int,int,int) -> setHotspotBounds
+    354:355:boolean setLayoutDirection(android.graphics.drawable.Drawable,int) -> setLayoutDirection
+    135:140:void setTint(android.graphics.drawable.Drawable,int) -> setTint
+    149:154:void setTintList(android.graphics.drawable.Drawable,android.content.res.ColorStateList) -> setTintList
+    163:168:void setTintMode(android.graphics.drawable.Drawable,android.graphics.PorterDuff$Mode) -> setTintMode
+    334:337:android.graphics.drawable.Drawable unwrap(android.graphics.drawable.Drawable) -> unwrap
+    307:308:android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable) -> wrap
+androidx.core.graphics.drawable.IconCompat -> androidx.core.graphics.drawable.IconCompat:
+    208:208:void <clinit>() -> <clinit>
+    155:380:void <init>() -> <init>
+    155:384:void <init>(int) -> <init>
+    764:813:void addToShortcutIntent(android.content.Intent,android.graphics.drawable.Drawable,android.content.Context) -> addToShortcutIntent
+    603:627:void checkResource(android.content.Context) -> checkResource
+    994:1024:androidx.core.graphics.drawable.IconCompat createFromBundle(android.os.Bundle) -> createFromBundle
+    1033:1050:androidx.core.graphics.drawable.IconCompat createFromIcon(android.content.Context,android.graphics.drawable.Icon) -> createFromIcon
+    1061:1072:androidx.core.graphics.drawable.IconCompat createFromIcon(android.graphics.drawable.Icon) -> createFromIcon
+    1084:1087:androidx.core.graphics.drawable.IconCompat createFromIconOrNullIfZeroResId(android.graphics.drawable.Icon) -> createFromIconOrNullIfZeroResId
+    1211:1246:android.graphics.Bitmap createLegacyIconFromAdaptiveIcon(android.graphics.Bitmap,boolean) -> createLegacyIconFromAdaptiveIcon
+    286:291:androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap) -> createWithAdaptiveBitmap
+    351:356:androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(java.lang.String) -> createWithAdaptiveBitmapContentUri
+    368:371:androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(android.net.Uri) -> createWithAdaptiveBitmapContentUri
+    271:276:androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap) -> createWithBitmap
+    321:326:androidx.core.graphics.drawable.IconCompat createWithContentUri(java.lang.String) -> createWithContentUri
+    336:339:androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri) -> createWithContentUri
+    304:311:androidx.core.graphics.drawable.IconCompat createWithData(byte[],int,int) -> createWithData
+    233:236:androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context,int) -> createWithResource
+    244:262:androidx.core.graphics.drawable.IconCompat createWithResource(android.content.res.Resources,java.lang.String,int) -> createWithResource
+    457:468:android.graphics.Bitmap getBitmap() -> getBitmap
+    436:442:int getResId() -> getResId
+    1157:1170:int getResId(android.graphics.drawable.Icon) -> getResId
+    410:424:java.lang.String getResPackage() -> getResPackage
+    1128:1141:java.lang.String getResPackage(android.graphics.drawable.Icon) -> getResPackage
+    736:751:android.content.res.Resources getResources(android.content.Context,java.lang.String) -> getResources
+    395:398:int getType() -> getType
+    1100:1113:int getType(android.graphics.drawable.Icon) -> getType
+    481:487:android.net.Uri getUri() -> getUri
+    1185:1198:android.net.Uri getUri(android.graphics.drawable.Icon) -> getUri
+    716:732:java.io.InputStream getUriInputStream(android.content.Context) -> getUriInputStream
+    639:641:android.graphics.drawable.Drawable loadDrawable(android.content.Context) -> loadDrawable
+    656:705:android.graphics.drawable.Drawable loadDrawableInner(android.content.Context) -> loadDrawableInner
+    937:976:void onPostParceling() -> onPostParceling
+    900:933:void onPreParceling(boolean) -> onPreParceling
+    497:497:androidx.core.graphics.drawable.IconCompat setTint(int) -> setTint
+    507:508:androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList) -> setTintList
+    518:519:androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    821:852:android.os.Bundle toBundle() -> toBundle
+    529:529:android.graphics.drawable.Icon toIcon() -> toIcon
+    541:595:android.graphics.drawable.Icon toIcon(android.content.Context) -> toIcon
+    858:895:java.lang.String toString() -> toString
+    979:986:java.lang.String typeToString(int) -> typeToString
+androidx.core.graphics.drawable.IconCompatParcelizer -> androidx.core.graphics.drawable.IconCompatParcelizer:
+    11:11:void <init>() -> <init>
+    14:24:androidx.core.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel) -> read
+    29:55:void write(androidx.core.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel) -> write
+androidx.core.graphics.drawable.RoundedBitmapDrawable -> androidx.core.graphics.drawable.RoundedBitmapDrawable:
+    50:395:void <init>(android.content.res.Resources,android.graphics.Bitmap) -> <init>
+    84:86:void computeBitmapSize() -> computeBitmapSize
+    260:271:void draw(android.graphics.Canvas) -> draw
+    284:284:int getAlpha() -> getAlpha
+    80:80:android.graphics.Bitmap getBitmap() -> getBitmap
+    295:295:android.graphics.ColorFilter getColorFilter() -> getColorFilter
+    356:356:float getCornerRadius() -> getCornerRadius
+    140:140:int getGravity() -> getGravity
+    366:366:int getIntrinsicHeight() -> getIntrinsicHeight
+    361:361:int getIntrinsicWidth() -> getIntrinsicWidth
+    371:379:int getOpacity() -> getOpacity
+    72:72:android.graphics.Paint getPaint() -> getPaint
+    223:223:void gravityCompatApply(int,int,int,android.graphics.Rect,android.graphics.Rect) -> gravityCompatApply
+    206:206:boolean hasAntiAlias() -> hasAntiAlias
+    182:182:boolean hasMipMap() -> hasMipMap
+    323:323:boolean isCircular() -> isCircular
+    398:398:boolean isGreaterThanZero(float) -> isGreaterThanZero
+    345:350:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    275:280:void setAlpha(int) -> setAlpha
+    194:196:void setAntiAlias(boolean) -> setAntiAlias
+    303:312:void setCircular(boolean) -> setCircular
+    289:291:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    330:341:void setCornerRadius(float) -> setCornerRadius
+    217:219:void setDither(boolean) -> setDither
+    211:213:void setFilterBitmap(boolean) -> setFilterBitmap
+    151:156:void setGravity(int) -> setGravity
+    170:170:void setMipMap(boolean) -> setMipMap
+    99:100:void setTargetDensity(android.graphics.Canvas) -> setTargetDensity
+    111:112:void setTargetDensity(android.util.DisplayMetrics) -> setTargetDensity
+    123:130:void setTargetDensity(int) -> setTargetDensity
+    315:317:void updateCircularCornerRadius() -> updateCircularCornerRadius
+    227:256:void updateDstRect() -> updateDstRect
+androidx.core.graphics.drawable.RoundedBitmapDrawable21 -> androidx.core.graphics.drawable.RoundedBitmapDrawable21:
+    32:33:void <init>(android.content.res.Resources,android.graphics.Bitmap) -> <init>
+    37:39:void getOutline(android.graphics.Outline) -> getOutline
+    57:59:void gravityCompatApply(int,int,int,android.graphics.Rect,android.graphics.Rect) -> gravityCompatApply
+    51:51:boolean hasMipMap() -> hasMipMap
+    43:47:void setMipMap(boolean) -> setMipMap
+androidx.core.graphics.drawable.RoundedBitmapDrawableFactory -> androidx.core.graphics.drawable.RoundedBitmapDrawableFactory:
+    104:104:void <init>() -> <init>
+    73:74:androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources,android.graphics.Bitmap) -> create
+    84:88:androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources,java.lang.String) -> create
+    97:101:androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources,java.io.InputStream) -> create
+androidx.core.graphics.drawable.RoundedBitmapDrawableFactory$DefaultRoundedBitmapDrawable -> androidx.core.graphics.drawable.RoundedBitmapDrawableFactory$DefaultRoundedBitmapDrawable:
+    43:44:void <init>(android.content.res.Resources,android.graphics.Bitmap) -> <init>
+    62:64:void gravityCompatApply(int,int,int,android.graphics.Rect,android.graphics.Rect) -> gravityCompatApply
+    56:56:boolean hasMipMap() -> hasMipMap
+    48:52:void setMipMap(boolean) -> setMipMap
+androidx.core.graphics.drawable.WrappedDrawableApi14 -> androidx.core.graphics.drawable.WrappedDrawableApi14:
+    41:41:void <clinit>() -> <clinit>
+    52:55:void <init>(androidx.core.graphics.drawable.WrappedDrawableState,android.content.res.Resources) -> <init>
+    62:66:void <init>(android.graphics.drawable.Drawable) -> <init>
+    86:87:void draw(android.graphics.Canvas) -> draw
+    103:105:int getChangingConfigurations() -> getChangingConfigurations
+    222:226:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    152:152:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    177:177:int getIntrinsicHeight() -> getIntrinsicHeight
+    172:172:int getIntrinsicWidth() -> getIntrinsicWidth
+    216:216:int getLayoutDirection() -> getLayoutDirection
+    187:187:int getMinimumHeight() -> getMinimumHeight
+    182:182:int getMinimumWidth() -> getMinimumWidth
+    162:162:int getOpacity() -> getOpacity
+    192:192:boolean getPadding(android.graphics.Rect) -> getPadding
+    146:146:int[] getState() -> getState
+    167:167:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    334:334:android.graphics.drawable.Drawable getWrappedDrawable() -> getWrappedDrawable
+    263:264:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    204:204:boolean isAutoMirrored() -> isAutoMirrored
+    365:365:boolean isCompatTintEnabled() -> isCompatTintEnabled
+    130:133:boolean isStateful() -> isStateful
+    81:82:void jumpToCurrentState() -> jumpToCurrentState
+    232:242:android.graphics.drawable.Drawable mutate() -> mutate
+    255:255:androidx.core.graphics.drawable.WrappedDrawableState mutateConstantState() -> mutateConstantState
+    91:94:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    210:210:boolean onLayoutDirectionChanged(int) -> onLayoutDirectionChanged
+    284:284:boolean onLevelChange(int) -> onLevelChange
+    271:272:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    120:121:void setAlpha(int) -> setAlpha
+    198:199:void setAutoMirrored(boolean) -> setAutoMirrored
+    98:99:void setChangingConfigurations(int) -> setChangingConfigurations
+    125:126:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    110:111:void setDither(boolean) -> setDither
+    115:116:void setFilterBitmap(boolean) -> setFilterBitmap
+    138:140:boolean setState(int[]) -> setState
+    289:290:void setTint(int) -> setTint
+    294:296:void setTintList(android.content.res.ColorStateList) -> setTintList
+    300:302:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    157:157:boolean setVisible(boolean,boolean) -> setVisible
+    342:361:void setWrappedDrawable(android.graphics.drawable.Drawable) -> setWrappedDrawable
+    279:280:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+    74:77:void updateLocalState(android.content.res.Resources) -> updateLocalState
+    305:326:boolean updateTint(int[]) -> updateTint
+androidx.core.graphics.drawable.WrappedDrawableApi21 -> androidx.core.graphics.drawable.WrappedDrawableApi21:
+    43:45:void <init>(android.graphics.drawable.Drawable) -> <init>
+    48:50:void <init>(androidx.core.graphics.drawable.WrappedDrawableState,android.content.res.Resources) -> <init>
+    141:148:void findAndCacheIsProjectedDrawableMethod() -> findAndCacheIsProjectedDrawableMethod
+    70:70:android.graphics.Rect getDirtyBounds() -> getDirtyBounds
+    64:65:void getOutline(android.graphics.Outline) -> getOutline
+    113:120:boolean isCompatTintEnabled() -> isCompatTintEnabled
+    129:137:boolean isProjected() -> isProjected
+    54:55:void setHotspot(float,float) -> setHotspot
+    59:60:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    102:108:boolean setState(int[]) -> setState
+    84:89:void setTint(int) -> setTint
+    75:80:void setTintList(android.content.res.ColorStateList) -> setTintList
+    93:98:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+androidx.core.graphics.drawable.WrappedDrawableState -> androidx.core.graphics.drawable.WrappedDrawableState:
+    32:42:void <init>(androidx.core.graphics.drawable.WrappedDrawableState) -> <init>
+    66:66:boolean canConstantState() -> canConstantState
+    61:62:int getChangingConfigurations() -> getChangingConfigurations
+    47:47:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    53:54:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+androidx.core.hardware.display.DisplayManagerCompat -> androidx.core.hardware.display.DisplayManagerCompat:
+    34:34:void <clinit>() -> <clinit>
+    53:55:void <init>(android.content.Context) -> <init>
+    84:86:android.view.Display getDisplay(int) -> getDisplay
+    104:106:android.view.Display[] getDisplays() -> getDisplays
+    133:135:android.view.Display[] getDisplays(java.lang.String) -> getDisplays
+    62:69:androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context) -> getInstance
+androidx.core.hardware.fingerprint.FingerprintManagerCompat -> androidx.core.hardware.fingerprint.FingerprintManagerCompat:
+    55:57:void <init>(android.content.Context) -> <init>
+    107:121:void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject,int,androidx.core.os.CancellationSignal,androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationCallback,android.os.Handler) -> authenticate
+    52:52:androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context) -> from
+    126:132:android.hardware.fingerprint.FingerprintManager getFingerprintManagerOrNull(android.content.Context) -> getFingerprintManagerOrNull
+    66:68:boolean hasEnrolledFingerprints() -> hasEnrolledFingerprints
+    81:83:boolean isHardwareDetected() -> isHardwareDetected
+    153:162:androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject unwrapCryptoObject(android.hardware.fingerprint.FingerprintManager$CryptoObject) -> unwrapCryptoObject
+    169:169:android.hardware.fingerprint.FingerprintManager$AuthenticationCallback wrapCallback(androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationCallback) -> wrapCallback
+    138:147:android.hardware.fingerprint.FingerprintManager$CryptoObject wrapCryptoObject(androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject) -> wrapCryptoObject
+androidx.core.hardware.fingerprint.FingerprintManagerCompat$1 -> androidx.core.hardware.fingerprint.FingerprintManagerCompat$1:
+    169:169:void <init>(androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationCallback) -> <init>
+    172:173:void onAuthenticationError(int,java.lang.CharSequence) -> onAuthenticationError
+    188:189:void onAuthenticationFailed() -> onAuthenticationFailed
+    177:178:void onAuthenticationHelp(int,java.lang.CharSequence) -> onAuthenticationHelp
+    182:184:void onAuthenticationSucceeded(android.hardware.fingerprint.FingerprintManager$AuthenticationResult) -> onAuthenticationSucceeded
+androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationCallback -> androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationCallback:
+    270:270:void <init>() -> <init>
+    277:277:void onAuthenticationError(int,java.lang.CharSequence) -> onAuthenticationError
+    297:297:void onAuthenticationFailed() -> onAuthenticationFailed
+    286:286:void onAuthenticationHelp(int,java.lang.CharSequence) -> onAuthenticationHelp
+    292:292:void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationResult) -> onAuthenticationSucceeded
+androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationResult -> androidx.core.hardware.fingerprint.FingerprintManagerCompat$AuthenticationResult:
+    251:253:void <init>(androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject) -> <init>
+    260:260:androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject getCryptoObject() -> getCryptoObject
+androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject -> androidx.core.hardware.fingerprint.FingerprintManagerCompat$CryptoObject:
+    203:208:void <init>(java.security.Signature) -> <init>
+    210:214:void <init>(javax.crypto.Cipher) -> <init>
+    216:220:void <init>(javax.crypto.Mac) -> <init>
+    234:234:javax.crypto.Cipher getCipher() -> getCipher
+    241:241:javax.crypto.Mac getMac() -> getMac
+    227:227:java.security.Signature getSignature() -> getSignature
+androidx.core.location.GnssStatusCompat -> androidx.core.location.GnssStatusCompat:
+    130:130:void <init>() -> <init>
+    117:117:androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus) -> wrap
+    126:126:androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus) -> wrap
+androidx.core.location.GnssStatusCompat$Callback -> androidx.core.location.GnssStatusCompat$Callback:
+    88:88:void <init>() -> <init>
+    103:103:void onFirstFix(int) -> onFirstFix
+    108:108:void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat) -> onSatelliteStatusChanged
+    93:93:void onStarted() -> onStarted
+    98:98:void onStopped() -> onStopped
+androidx.core.location.GnssStatusWrapper -> androidx.core.location.GnssStatusWrapper:
+    37:39:void <init>(android.location.GnssStatus) -> <init>
+    124:131:boolean equals(java.lang.Object) -> equals
+    68:68:float getAzimuthDegrees(int) -> getAzimuthDegrees
+    115:118:float getBasebandCn0DbHz(int) -> getBasebandCn0DbHz
+    97:100:float getCarrierFrequencyHz(int) -> getCarrierFrequencyHz
+    58:58:float getCn0DbHz(int) -> getCn0DbHz
+    48:48:int getConstellationType(int) -> getConstellationType
+    63:63:float getElevationDegrees(int) -> getElevationDegrees
+    43:43:int getSatelliteCount() -> getSatelliteCount
+    53:53:int getSvid(int) -> getSvid
+    78:78:boolean hasAlmanacData(int) -> hasAlmanacData
+    106:109:boolean hasBasebandCn0DbHz(int) -> hasBasebandCn0DbHz
+    88:91:boolean hasCarrierFrequencyHz(int) -> hasCarrierFrequencyHz
+    73:73:boolean hasEphemerisData(int) -> hasEphemerisData
+    136:136:int hashCode() -> hashCode
+    83:83:boolean usedInFix(int) -> usedInFix
+androidx.core.location.GpsStatusWrapper -> androidx.core.location.GpsStatusWrapper:
+    60:66:void <init>(android.location.GpsStatus) -> <init>
+    173:180:boolean equals(java.lang.Object) -> equals
+    112:112:float getAzimuthDegrees(int) -> getAzimuthDegrees
+    147:147:float getBasebandCn0DbHz(int) -> getBasebandCn0DbHz
+    137:137:float getCarrierFrequencyHz(int) -> getCarrierFrequencyHz
+    102:102:float getCn0DbHz(int) -> getCn0DbHz
+    189:200:int getConstellationFromPrn(int) -> getConstellationFromPrn
+    84:87:int getConstellationType(int) -> getConstellationType
+    107:107:float getElevationDegrees(int) -> getElevationDegrees
+    152:168:android.location.GpsSatellite getSatellite(int) -> getSatellite
+    70:79:int getSatelliteCount() -> getSatelliteCount
+    93:96:int getSvid(int) -> getSvid
+    205:216:int getSvidFromPrn(int) -> getSvidFromPrn
+    122:122:boolean hasAlmanacData(int) -> hasAlmanacData
+    142:142:boolean hasBasebandCn0DbHz(int) -> hasBasebandCn0DbHz
+    132:132:boolean hasCarrierFrequencyHz(int) -> hasCarrierFrequencyHz
+    117:117:boolean hasEphemerisData(int) -> hasEphemerisData
+    185:185:int hashCode() -> hashCode
+    127:127:boolean usedInFix(int) -> usedInFix
+androidx.core.location.LocationManagerCompat -> androidx.core.location.LocationManagerCompat:
+    112:112:void <clinit>() -> <clinit>
+    305:305:void <init>() -> <init>
+    76:108:boolean isLocationEnabled(android.location.LocationManager) -> isLocationEnabled
+    125:129:boolean registerGnssStatusCallback(android.location.LocationManager,androidx.core.location.GnssStatusCompat$Callback,android.os.Handler) -> registerGnssStatusCallback
+    155:162:boolean registerGnssStatusCallback(android.location.LocationManager,java.util.concurrent.Executor,androidx.core.location.GnssStatusCompat$Callback) -> registerGnssStatusCallback
+    170:202:boolean registerGnssStatusCallback(android.location.LocationManager,android.os.Handler,java.util.concurrent.Executor,androidx.core.location.GnssStatusCompat$Callback) -> registerGnssStatusCallback
+    276:303:void unregisterGnssStatusCallback(android.location.LocationManager,androidx.core.location.GnssStatusCompat$Callback) -> unregisterGnssStatusCallback
+androidx.core.location.LocationManagerCompat$1 -> androidx.core.location.LocationManagerCompat$1:
+    216:216:void <init>(android.location.LocationManager,androidx.core.location.LocationManagerCompat$GpsStatusTransport) -> <init>
+    216:216:java.lang.Object call() -> call
+    220:220:java.lang.Boolean call() -> call
+androidx.core.location.LocationManagerCompat$Api28Impl -> androidx.core.location.LocationManagerCompat$Api28Impl:
+    544:546:void <init>() -> <init>
+    549:549:boolean isLocationEnabled(android.location.LocationManager) -> isLocationEnabled
+androidx.core.location.LocationManagerCompat$GnssStatusTransport -> androidx.core.location.LocationManagerCompat$GnssStatusTransport:
+    312:315:void <init>(androidx.core.location.GnssStatusCompat$Callback) -> <init>
+    329:330:void onFirstFix(int) -> onFirstFix
+    334:335:void onSatelliteStatusChanged(android.location.GnssStatus) -> onSatelliteStatusChanged
+    319:320:void onStarted() -> onStarted
+    324:325:void onStopped() -> onStopped
+androidx.core.location.LocationManagerCompat$GpsStatusTransport -> androidx.core.location.LocationManagerCompat$GpsStatusTransport:
+    441:445:void <init>(android.location.LocationManager,androidx.core.location.GnssStatusCompat$Callback) -> <init>
+    459:520:void onGpsStatusChanged(int) -> onGpsStatusChanged
+    448:450:void register(java.util.concurrent.Executor) -> register
+    453:454:void unregister() -> unregister
+androidx.core.location.LocationManagerCompat$GpsStatusTransport$1 -> androidx.core.location.LocationManagerCompat$GpsStatusTransport$1:
+    468:468:void <init>(androidx.core.location.LocationManagerCompat$GpsStatusTransport,java.util.concurrent.Executor) -> <init>
+    471:475:void run() -> run
+androidx.core.location.LocationManagerCompat$GpsStatusTransport$2 -> androidx.core.location.LocationManagerCompat$GpsStatusTransport$2:
+    479:479:void <init>(androidx.core.location.LocationManagerCompat$GpsStatusTransport,java.util.concurrent.Executor) -> <init>
+    482:486:void run() -> run
+androidx.core.location.LocationManagerCompat$GpsStatusTransport$3 -> androidx.core.location.LocationManagerCompat$GpsStatusTransport$3:
+    493:493:void <init>(androidx.core.location.LocationManagerCompat$GpsStatusTransport,java.util.concurrent.Executor,int) -> <init>
+    496:500:void run() -> run
+androidx.core.location.LocationManagerCompat$GpsStatusTransport$4 -> androidx.core.location.LocationManagerCompat$GpsStatusTransport$4:
+    508:508:void <init>(androidx.core.location.LocationManagerCompat$GpsStatusTransport,java.util.concurrent.Executor,androidx.core.location.GnssStatusCompat) -> <init>
+    511:515:void run() -> run
+androidx.core.location.LocationManagerCompat$InlineHandlerExecutor -> androidx.core.location.LocationManagerCompat$InlineHandlerExecutor:
+    528:530:void <init>(android.os.Handler) -> <init>
+    534:539:void execute(java.lang.Runnable) -> execute
+androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport -> androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport:
+    345:348:void <init>(androidx.core.location.GnssStatusCompat$Callback) -> <init>
+    398:412:void onFirstFix(int) -> onFirstFix
+    416:430:void onSatelliteStatusChanged(android.location.GnssStatus) -> onSatelliteStatusChanged
+    362:376:void onStarted() -> onStarted
+    380:394:void onStopped() -> onStopped
+    351:354:void register(java.util.concurrent.Executor) -> register
+    357:358:void unregister() -> unregister
+androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$1 -> androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$1:
+    367:367:void <init>(androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport,java.util.concurrent.Executor) -> <init>
+    370:374:void run() -> run
+androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$2 -> androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$2:
+    385:385:void <init>(androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport,java.util.concurrent.Executor) -> <init>
+    388:392:void run() -> run
+androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$3 -> androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$3:
+    403:403:void <init>(androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport,java.util.concurrent.Executor,int) -> <init>
+    406:410:void run() -> run
+androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$4 -> androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport$4:
+    421:421:void <init>(androidx.core.location.LocationManagerCompat$PreRGnssStatusTransport,java.util.concurrent.Executor,android.location.GnssStatus) -> <init>
+    424:428:void run() -> run
+androidx.core.math.MathUtils -> androidx.core.math.MathUtils:
+    24:24:void <init>() -> <init>
+    39:44:float clamp(float,float,float) -> clamp
+    60:65:double clamp(double,double,double) -> clamp
+    81:86:int clamp(int,int,int) -> clamp
+    102:107:long clamp(long,long,long) -> clamp
+androidx.core.net.ConnectivityManagerCompat -> androidx.core.net.ConnectivityManagerCompat:
+    166:166:void <init>() -> <init>
+    141:145:android.net.NetworkInfo getNetworkInfoFromBroadcast(android.net.ConnectivityManager,android.content.Intent) -> getNetworkInfoFromBroadcast
+    159:160:int getRestrictBackgroundStatus(android.net.ConnectivityManager) -> getRestrictBackgroundStatus
+    100:101:boolean isActiveNetworkMetered(android.net.ConnectivityManager) -> isActiveNetworkMetered
+androidx.core.net.DatagramSocketWrapper -> androidx.core.net.DatagramSocketWrapper:
+    32:33:void <init>(java.net.DatagramSocket,java.io.FileDescriptor) -> <init>
+androidx.core.net.DatagramSocketWrapper$DatagramSocketImplWrapper -> androidx.core.net.DatagramSocketWrapper$DatagramSocketImplWrapper:
+    40:43:void <init>(java.net.DatagramSocket,java.io.FileDescriptor) -> <init>
+    47:47:void accept(java.net.SocketImpl) -> accept
+    52:52:int available() -> available
+    57:57:void bind(java.net.InetAddress,int) -> bind
+    62:62:void close() -> close
+    67:67:void connect(java.lang.String,int) -> connect
+    72:72:void connect(java.net.InetAddress,int) -> connect
+    97:97:void connect(java.net.SocketAddress,int) -> connect
+    77:77:void create(boolean) -> create
+    82:82:java.io.InputStream getInputStream() -> getInputStream
+    107:107:java.lang.Object getOption(int) -> getOption
+    87:87:java.io.OutputStream getOutputStream() -> getOutputStream
+    92:92:void listen(int) -> listen
+    102:102:void sendUrgentData(int) -> sendUrgentData
+    112:112:void setOption(int,java.lang.Object) -> setOption
+androidx.core.net.MailTo -> androidx.core.net.MailTo:
+    58:60:void <init>() -> <init>
+    211:211:java.lang.String getBcc() -> getBcc
+    231:231:java.lang.String getBody() -> getBody
+    200:200:java.lang.String getCc() -> getCc
+    240:240:java.util.Map getHeaders() -> getHeaders
+    221:221:java.lang.String getSubject() -> getSubject
+    189:189:java.lang.String getTo() -> getTo
+    74:74:boolean isMailTo(java.lang.String) -> isMailTo
+    89:89:boolean isMailTo(android.net.Uri) -> isMailTo
+    107:160:androidx.core.net.MailTo parse(java.lang.String) -> parse
+    178:178:androidx.core.net.MailTo parse(android.net.Uri) -> parse
+    246:254:java.lang.String toString() -> toString
+androidx.core.net.ParseException -> androidx.core.net.ParseException:
+    29:31:void <init>(java.lang.String) -> <init>
+androidx.core.net.TrafficStatsCompat -> androidx.core.net.TrafficStatsCompat:
+    167:167:void <init>() -> <init>
+    41:42:void clearThreadStatsTag() -> clearThreadStatsTag
+    53:53:int getThreadStatsTag() -> getThreadStatsTag
+    67:68:void incrementOperationCount(int) -> incrementOperationCount
+    81:82:void incrementOperationCount(int,int) -> incrementOperationCount
+    99:100:void setThreadStatsTag(int) -> setThreadStatsTag
+    137:148:void tagDatagramSocket(java.net.DatagramSocket) -> tagDatagramSocket
+    114:115:void tagSocket(java.net.Socket) -> tagSocket
+    154:165:void untagDatagramSocket(java.net.DatagramSocket) -> untagDatagramSocket
+    124:125:void untagSocket(java.net.Socket) -> untagSocket
+androidx.core.net.UriCompat -> androidx.core.net.UriCompat:
+    28:28:void <init>() -> <init>
+    40:78:java.lang.String toSafeString(android.net.Uri) -> toSafeString
+androidx.core.os.BuildCompat -> androidx.core.os.BuildCompat:
+    29:30:void <init>() -> <init>
+    43:43:boolean isAtLeastN() -> isAtLeastN
+    57:57:boolean isAtLeastNMR1() -> isAtLeastNMR1
+    71:71:boolean isAtLeastO() -> isAtLeastO
+    85:85:boolean isAtLeastOMR1() -> isAtLeastOMR1
+    99:99:boolean isAtLeastP() -> isAtLeastP
+    113:113:boolean isAtLeastQ() -> isAtLeastQ
+    127:127:boolean isAtLeastR() -> isAtLeastR
+    142:142:boolean isAtLeastS() -> isAtLeastS
+androidx.core.os.CancellationSignal -> androidx.core.os.CancellationSignal:
+    37:38:void <init>() -> <init>
+    69:92:void cancel() -> cancel
+    138:149:java.lang.Object getCancellationSignalObject() -> getCancellationSignalObject
+    46:48:boolean isCanceled() -> isCanceled
+    111:123:void setOnCancelListener(androidx.core.os.CancellationSignal$OnCancelListener) -> setOnCancelListener
+    57:60:void throwIfCanceled() -> throwIfCanceled
+    153:159:void waitForCancelFinishedLocked() -> waitForCancelFinishedLocked
+androidx.core.os.ConfigurationCompat -> androidx.core.os.ConfigurationCompat:
+    30:31:void <init>() -> <init>
+    41:42:androidx.core.os.LocaleListCompat getLocales(android.content.res.Configuration) -> getLocales
+androidx.core.os.EnvironmentCompat -> androidx.core.os.EnvironmentCompat:
+    81:81:void <init>() -> <init>
+    59:60:java.lang.String getStorageState(java.io.File) -> getStorageState
+androidx.core.os.ExecutorCompat -> androidx.core.os.ExecutorCompat:
+    39:40:void <init>() -> <init>
+    36:36:java.util.concurrent.Executor create(android.os.Handler) -> create
+androidx.core.os.ExecutorCompat$HandlerExecutor -> androidx.core.os.ExecutorCompat$HandlerExecutor:
+    45:47:void <init>(android.os.Handler) -> <init>
+    51:54:void execute(java.lang.Runnable) -> execute
+androidx.core.os.HandlerCompat -> androidx.core.os.HandlerCompat:
+    152:153:void <init>() -> <init>
+    51:74:android.os.Handler createAsync(android.os.Looper) -> createAsync
+    92:115:android.os.Handler createAsync(android.os.Looper,android.os.Handler$Callback) -> createAsync
+    143:149:boolean postDelayed(android.os.Handler,java.lang.Runnable,java.lang.Object,long) -> postDelayed
+androidx.core.os.LocaleListCompat -> androidx.core.os.LocaleListCompat:
+    34:34:void <clinit>() -> <clinit>
+    38:40:void <init>(androidx.core.os.LocaleListInterface) -> <init>
+    73:74:androidx.core.os.LocaleListCompat create(java.util.Locale[]) -> create
+    234:234:boolean equals(java.lang.Object) -> equals
+    174:196:java.util.Locale forLanguageTagCompat(java.lang.String) -> forLanguageTagCompat
+    158:168:androidx.core.os.LocaleListCompat forLanguageTags(java.lang.String) -> forLanguageTags
+    86:86:java.util.Locale get(int) -> get
+    205:206:androidx.core.os.LocaleListCompat getAdjustedDefault() -> getAdjustedDefault
+    225:226:androidx.core.os.LocaleListCompat getDefault() -> getDefault
+    145:145:androidx.core.os.LocaleListCompat getEmptyLocaleList() -> getEmptyLocaleList
+    137:137:java.util.Locale getFirstMatch(java.lang.String[]) -> getFirstMatch
+    239:239:int hashCode() -> hashCode
+    117:117:int indexOf(java.util.Locale) -> indexOf
+    96:96:boolean isEmpty() -> isEmpty
+    104:104:int size() -> size
+    125:125:java.lang.String toLanguageTags() -> toLanguageTags
+    244:244:java.lang.String toString() -> toString
+    65:65:java.lang.Object unwrap() -> unwrap
+    46:46:androidx.core.os.LocaleListCompat wrap(java.lang.Object) -> wrap
+    55:55:androidx.core.os.LocaleListCompat wrap(android.os.LocaleList) -> wrap
+androidx.core.os.LocaleListCompatWrapper -> androidx.core.os.LocaleListCompatWrapper:
+    41:219:void <clinit>() -> <clinit>
+    122:149:void <init>(java.util.Locale[]) -> <init>
+    261:262:java.util.Locale computeFirstMatch(java.util.Collection,boolean) -> computeFirstMatch
+    223:255:int computeFirstMatchIndex(java.util.Collection,boolean) -> computeFirstMatchIndex
+    76:91:boolean equals(java.lang.Object) -> equals
+    210:216:int findFirstMatchIndex(java.util.Locale) -> findFirstMatchIndex
+    51:51:java.util.Locale get(int) -> get
+    267:267:java.util.Locale getFirstMatch(java.lang.String[]) -> getFirstMatch
+    162:167:java.lang.String getLikelyScript(java.util.Locale) -> getLikelyScript
+    46:46:java.lang.Object getLocaleList() -> getLocaleList
+    96:100:int hashCode() -> hashCode
+    66:71:int indexOf(java.util.Locale) -> indexOf
+    56:56:boolean isEmpty() -> isEmpty
+    177:177:boolean isPseudoLocale(java.util.Locale) -> isPseudoLocale
+    182:206:int matchScore(java.util.Locale,java.util.Locale) -> matchScore
+    61:61:int size() -> size
+    153:159:void toLanguageTag(java.lang.StringBuilder,java.util.Locale) -> toLanguageTag
+    119:119:java.lang.String toLanguageTags() -> toLanguageTags
+    105:114:java.lang.String toString() -> toString
+androidx.core.os.LocaleListPlatformWrapper -> androidx.core.os.LocaleListPlatformWrapper:
+    31:33:void <init>(android.os.LocaleList) -> <init>
+    62:62:boolean equals(java.lang.Object) -> equals
+    42:42:java.util.Locale get(int) -> get
+    83:83:java.util.Locale getFirstMatch(java.lang.String[]) -> getFirstMatch
+    37:37:java.lang.Object getLocaleList() -> getLocaleList
+    67:67:int hashCode() -> hashCode
+    57:57:int indexOf(java.util.Locale) -> indexOf
+    47:47:boolean isEmpty() -> isEmpty
+    52:52:int size() -> size
+    77:77:java.lang.String toLanguageTags() -> toLanguageTags
+    72:72:java.lang.String toString() -> toString
+androidx.core.os.MessageCompat -> androidx.core.os.MessageCompat:
+    34:39:void <clinit>() -> <clinit>
+    112:113:void <init>() -> <init>
+    97:98:boolean isAsynchronous(android.os.Message) -> isAsynchronous
+    71:73:void setAsynchronous(android.os.Message,boolean) -> setAsynchronous
+androidx.core.os.OperationCanceledException -> androidx.core.os.OperationCanceledException:
+    28:29:void <init>() -> <init>
+    33:34:void <init>(java.lang.String) -> <init>
+androidx.core.os.ParcelCompat -> androidx.core.os.ParcelCompat:
+    46:46:void <init>() -> <init>
+    32:32:boolean readBoolean(android.os.Parcel) -> readBoolean
+    43:44:void writeBoolean(android.os.Parcel,boolean) -> writeBoolean
+androidx.core.os.ParcelableCompat -> androidx.core.os.ParcelableCompat:
+    68:68:void <init>() -> <init>
+    41:41:android.os.Parcelable$Creator newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks) -> newCreator
+androidx.core.os.ParcelableCompat$ParcelableCompatCreatorHoneycombMR2 -> androidx.core.os.ParcelableCompat$ParcelableCompatCreatorHoneycombMR2:
+    48:50:void <init>(androidx.core.os.ParcelableCompatCreatorCallbacks) -> <init>
+    54:54:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    59:59:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    64:64:java.lang.Object[] newArray(int) -> newArray
+androidx.core.os.ProcessCompat -> androidx.core.os.ProcessCompat:
+    32:34:void <init>() -> <init>
+    55:56:boolean isApplicationUid(int) -> isApplicationUid
+androidx.core.os.ProcessCompat$Api16Impl -> androidx.core.os.ProcessCompat$Api16Impl:
+    119:119:void <clinit>() -> <clinit>
+    124:126:void <init>() -> <init>
+    134:152:boolean isApplicationUid(int) -> isApplicationUid
+androidx.core.os.ProcessCompat$Api17Impl -> androidx.core.os.ProcessCompat$Api17Impl:
+    81:81:void <clinit>() -> <clinit>
+    86:88:void <init>() -> <init>
+    96:113:boolean isApplicationUid(int) -> isApplicationUid
+androidx.core.os.ProcessCompat$Api24Impl -> androidx.core.os.ProcessCompat$Api24Impl:
+    69:71:void <init>() -> <init>
+    75:75:boolean isApplicationUid(int) -> isApplicationUid
+androidx.core.os.TraceCompat -> androidx.core.os.TraceCompat:
+    50:66:void <clinit>() -> <clinit>
+    183:183:void <init>() -> <init>
+    133:142:void beginAsyncSection(java.lang.String,int) -> beginAsyncSection
+    104:107:void beginSection(java.lang.String) -> beginSection
+    153:162:void endAsyncSection(java.lang.String,int) -> endAsyncSection
+    117:120:void endSection() -> endSection
+    78:89:boolean isEnabled() -> isEnabled
+    172:181:void setCounter(java.lang.String,int) -> setCounter
+androidx.core.os.UserManagerCompat -> androidx.core.os.UserManagerCompat:
+    31:32:void <init>() -> <init>
+    41:42:boolean isUserUnlocked(android.content.Context) -> isUserUnlocked
+androidx.core.provider.CallbackWithHandler -> androidx.core.provider.CallbackWithHandler:
+    40:43:void <init>(androidx.core.provider.FontsContractCompat$FontRequestCallback,android.os.Handler) -> <init>
+    45:48:void <init>(androidx.core.provider.FontsContractCompat$FontRequestCallback) -> <init>
+    67:74:void onTypefaceRequestFailed(int) -> onTypefaceRequestFailed
+    80:85:void onTypefaceResult(androidx.core.provider.FontRequestWorker$TypefaceResult) -> onTypefaceResult
+    54:61:void onTypefaceRetrieved(android.graphics.Typeface) -> onTypefaceRetrieved
+androidx.core.provider.CallbackWithHandler$1 -> androidx.core.provider.CallbackWithHandler$1:
+    55:55:void <init>(androidx.core.provider.CallbackWithHandler,androidx.core.provider.FontsContractCompat$FontRequestCallback,android.graphics.Typeface) -> <init>
+    58:59:void run() -> run
+androidx.core.provider.CallbackWithHandler$2 -> androidx.core.provider.CallbackWithHandler$2:
+    68:68:void <init>(androidx.core.provider.CallbackWithHandler,androidx.core.provider.FontsContractCompat$FontRequestCallback,int) -> <init>
+    71:72:void run() -> run
+androidx.core.provider.CalleeHandler -> androidx.core.provider.CalleeHandler:
+    26:26:void <init>() -> <init>
+    36:41:android.os.Handler create() -> create
+androidx.core.provider.FontProvider -> androidx.core.provider.FontProvider:
+    197:197:void <clinit>() -> <clinit>
+    47:47:void <init>() -> <init>
+    226:230:java.util.List convertToByteArrayList(android.content.pm.Signature[]) -> convertToByteArrayList
+    214:222:boolean equalsByteArrayList(java.util.List,java.util.List) -> equalsByteArrayList
+    190:194:java.util.List getCertificates(androidx.core.provider.FontRequest,android.content.res.Resources) -> getCertificates
+    53:61:androidx.core.provider.FontsContractCompat$FontFamilyResult getFontFamilyResult(android.content.Context,androidx.core.provider.FontRequest,android.os.CancellationSignal) -> getFontFamilyResult
+    76:105:android.content.pm.ProviderInfo getProvider(android.content.pm.PackageManager,androidx.core.provider.FontRequest,android.content.res.Resources) -> getProvider
+    121:186:androidx.core.provider.FontsContractCompat$FontInfo[] query(android.content.Context,androidx.core.provider.FontRequest,java.lang.String,android.os.CancellationSignal) -> query
+androidx.core.provider.FontProvider$1 -> androidx.core.provider.FontProvider$1:
+    197:197:void <init>() -> <init>
+    197:197:int compare(java.lang.Object,java.lang.Object) -> compare
+    200:208:int compare(byte[],byte[]) -> compare
+androidx.core.provider.FontRequest -> androidx.core.provider.FontRequest:
+    57:64:void <init>(java.lang.String,java.lang.String,java.lang.String,java.util.List) -> <init>
+    78:86:void <init>(java.lang.String,java.lang.String,java.lang.String,int) -> <init>
+    93:94:java.lang.String createIdentifier(java.lang.String,java.lang.String,java.lang.String) -> createIdentifier
+    133:133:java.util.List getCertificates() -> getCertificates
+    145:145:int getCertificatesArrayResId() -> getCertificatesArrayResId
+    164:164:java.lang.String getId() -> getId
+    157:157:java.lang.String getIdentifier() -> getIdentifier
+    103:103:java.lang.String getProviderAuthority() -> getProviderAuthority
+    112:112:java.lang.String getProviderPackage() -> getProviderPackage
+    121:121:java.lang.String getQuery() -> getQuery
+    169:188:java.lang.String toString() -> toString
+androidx.core.provider.FontRequestWorker -> androidx.core.provider.FontRequestWorker:
+    58:72:void <clinit>() -> <clinit>
+    56:56:void <init>() -> <init>
+    221:221:java.lang.String createCacheId(androidx.core.provider.FontRequest,int) -> createCacheId
+    263:287:int getFontFamilyResultStatus(androidx.core.provider.FontsContractCompat$FontFamilyResult) -> getFontFamilyResultStatus
+    232:256:androidx.core.provider.FontRequestWorker$TypefaceResult getFontSync(java.lang.String,android.content.Context,androidx.core.provider.FontRequest,int) -> getFontSync
+    164:217:android.graphics.Typeface requestFontAsync(android.content.Context,androidx.core.provider.FontRequest,int,java.util.concurrent.Executor,androidx.core.provider.CallbackWithHandler) -> requestFontAsync
+    102:134:android.graphics.Typeface requestFontSync(android.content.Context,androidx.core.provider.FontRequest,androidx.core.provider.CallbackWithHandler,int,int) -> requestFontSync
+    76:77:void resetTypefaceCache() -> resetTypefaceCache
+androidx.core.provider.FontRequestWorker$1 -> androidx.core.provider.FontRequestWorker$1:
+    117:117:void <init>(java.lang.String,android.content.Context,androidx.core.provider.FontRequest,int) -> <init>
+    117:117:java.lang.Object call() -> call
+    120:120:androidx.core.provider.FontRequestWorker$TypefaceResult call() -> call
+androidx.core.provider.FontRequestWorker$2 -> androidx.core.provider.FontRequestWorker$2:
+    171:171:void <init>(androidx.core.provider.CallbackWithHandler) -> <init>
+    171:171:void accept(java.lang.Object) -> accept
+    174:175:void accept(androidx.core.provider.FontRequestWorker$TypefaceResult) -> accept
+androidx.core.provider.FontRequestWorker$3 -> androidx.core.provider.FontRequestWorker$3:
+    191:191:void <init>(java.lang.String,android.content.Context,androidx.core.provider.FontRequest,int) -> <init>
+    191:191:java.lang.Object call() -> call
+    194:195:androidx.core.provider.FontRequestWorker$TypefaceResult call() -> call
+androidx.core.provider.FontRequestWorker$4 -> androidx.core.provider.FontRequestWorker$4:
+    200:200:void <init>(java.lang.String) -> <init>
+    200:200:void accept(java.lang.Object) -> accept
+    204:214:void accept(androidx.core.provider.FontRequestWorker$TypefaceResult) -> accept
+androidx.core.provider.FontRequestWorker$TypefaceResult -> androidx.core.provider.FontRequestWorker$TypefaceResult:
+    295:298:void <init>(int) -> <init>
+    301:304:void <init>(android.graphics.Typeface) -> <init>
+    308:308:boolean isSuccess() -> isSuccess
+androidx.core.provider.FontsContractCompat -> androidx.core.provider.FontsContractCompat:
+    56:56:void <init>() -> <init>
+    76:76:android.graphics.Typeface buildTypeface(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontsContractCompat$FontInfo[]) -> buildTypeface
+    102:102:androidx.core.provider.FontsContractCompat$FontFamilyResult fetchFonts(android.content.Context,android.os.CancellationSignal,androidx.core.provider.FontRequest) -> fetchFonts
+    552:554:android.graphics.Typeface getFontSync(android.content.Context,androidx.core.provider.FontRequest,androidx.core.content.res.ResourcesCompat$FontCallback,android.os.Handler,boolean,int,int) -> getFontSync
+    610:610:android.content.pm.ProviderInfo getProvider(android.content.pm.PackageManager,androidx.core.provider.FontRequest,android.content.res.Resources) -> getProvider
+    593:593:java.util.Map prepareFontData(android.content.Context,androidx.core.provider.FontsContractCompat$FontInfo[],android.os.CancellationSignal) -> prepareFontData
+    122:126:void requestFont(android.content.Context,androidx.core.provider.FontRequest,androidx.core.provider.FontsContractCompat$FontRequestCallback,android.os.Handler) -> requestFont
+    163:169:android.graphics.Typeface requestFont(android.content.Context,androidx.core.provider.FontRequest,int,boolean,int,android.os.Handler,androidx.core.provider.FontsContractCompat$FontRequestCallback) -> requestFont
+    567:568:void resetCache() -> resetCache
+    178:179:void resetTypefaceCache() -> resetTypefaceCache
+androidx.core.provider.FontsContractCompat$Columns -> androidx.core.provider.FontsContractCompat$Columns:
+    188:188:void <init>() -> <init>
+androidx.core.provider.FontsContractCompat$FontFamilyResult -> androidx.core.provider.FontsContractCompat$FontFamilyResult:
+    390:393:void <init>(int,androidx.core.provider.FontsContractCompat$FontInfo[]) -> <init>
+    407:407:androidx.core.provider.FontsContractCompat$FontFamilyResult create(int,androidx.core.provider.FontsContractCompat$FontInfo[]) -> create
+    400:400:androidx.core.provider.FontsContractCompat$FontInfo[] getFonts() -> getFonts
+    396:396:int getStatusCode() -> getStatusCode
+androidx.core.provider.FontsContractCompat$FontInfo -> androidx.core.provider.FontsContractCompat$FontInfo:
+    292:298:void <init>(android.net.Uri,int,int,boolean,int) -> <init>
+    308:308:androidx.core.provider.FontsContractCompat$FontInfo create(android.net.Uri,int,int,boolean,int) -> create
+    345:345:int getResultCode() -> getResultCode
+    322:322:int getTtcIndex() -> getTtcIndex
+    315:315:android.net.Uri getUri() -> getUri
+    329:329:int getWeight() -> getWeight
+    336:336:boolean isItalic() -> isItalic
+androidx.core.provider.FontsContractCompat$FontRequestCallback -> androidx.core.provider.FontsContractCompat$FontRequestCallback:
+    478:478:void <init>() -> <init>
+    499:499:void onTypefaceRequestFailed(int) -> onTypefaceRequestFailed
+    486:486:void onTypefaceRetrieved(android.graphics.Typeface) -> onTypefaceRetrieved
+androidx.core.provider.RequestExecutor -> androidx.core.provider.RequestExecutor:
+    44:44:void <init>() -> <init>
+    82:94:java.util.concurrent.ThreadPoolExecutor createDefaultExecutor(java.lang.String,int,int) -> createDefaultExecutor
+    98:98:java.util.concurrent.Executor createHandlerExecutor(android.os.Handler) -> createHandlerExecutor
+    56:58:void execute(java.util.concurrent.Executor,java.util.concurrent.Callable,androidx.core.util.Consumer) -> execute
+    65:73:java.lang.Object submit(java.util.concurrent.ExecutorService,java.util.concurrent.Callable,int) -> submit
+androidx.core.provider.RequestExecutor$DefaultThreadFactory -> androidx.core.provider.RequestExecutor$DefaultThreadFactory:
+    164:167:void <init>(java.lang.String,int) -> <init>
+    171:171:java.lang.Thread newThread(java.lang.Runnable) -> newThread
+androidx.core.provider.RequestExecutor$DefaultThreadFactory$ProcessPriorityThread -> androidx.core.provider.RequestExecutor$DefaultThreadFactory$ProcessPriorityThread:
+    178:180:void <init>(java.lang.Runnable,java.lang.String,int) -> <init>
+    184:186:void run() -> run
+androidx.core.provider.RequestExecutor$HandlerExecutor -> androidx.core.provider.RequestExecutor$HandlerExecutor:
+    110:112:void <init>(android.os.Handler) -> <init>
+    116:119:void execute(java.lang.Runnable) -> execute
+androidx.core.provider.RequestExecutor$ReplyRunnable -> androidx.core.provider.RequestExecutor$ReplyRunnable:
+    135:139:void <init>(android.os.Handler,java.util.concurrent.Callable,androidx.core.util.Consumer) -> <init>
+    145:157:void run() -> run
+androidx.core.provider.RequestExecutor$ReplyRunnable$1 -> androidx.core.provider.RequestExecutor$ReplyRunnable$1:
+    151:151:void <init>(androidx.core.provider.RequestExecutor$ReplyRunnable,androidx.core.util.Consumer,java.lang.Object) -> <init>
+    154:155:void run() -> run
+androidx.core.provider.SelfDestructiveThread -> androidx.core.provider.SelfDestructiveThread:
+    48:88:void <init>(java.lang.String,int,int) -> <init>
+    105:107:int getGeneration() -> getGeneration
+    95:97:boolean isRunning() -> isRunning
+    228:238:void onDestruction() -> onDestruction
+    219:225:void onInvokeRunnable(java.lang.Runnable) -> onInvokeRunnable
+    111:121:void post(java.lang.Runnable) -> post
+    141:160:void postAndReply(java.util.concurrent.Callable,androidx.core.provider.SelfDestructiveThread$ReplyCallback) -> postAndReply
+    171:215:java.lang.Object postAndWait(java.util.concurrent.Callable,int) -> postAndWait
+androidx.core.provider.SelfDestructiveThread$1 -> androidx.core.provider.SelfDestructiveThread$1:
+    62:62:void <init>(androidx.core.provider.SelfDestructiveThread) -> <init>
+    65:73:boolean handleMessage(android.os.Message) -> handleMessage
+androidx.core.provider.SelfDestructiveThread$2 -> androidx.core.provider.SelfDestructiveThread$2:
+    142:142:void <init>(androidx.core.provider.SelfDestructiveThread,java.util.concurrent.Callable,android.os.Handler,androidx.core.provider.SelfDestructiveThread$ReplyCallback) -> <init>
+    147:158:void run() -> run
+androidx.core.provider.SelfDestructiveThread$2$1 -> androidx.core.provider.SelfDestructiveThread$2$1:
+    152:152:void <init>(androidx.core.provider.SelfDestructiveThread$2,java.lang.Object) -> <init>
+    155:156:void run() -> run
+androidx.core.provider.SelfDestructiveThread$3 -> androidx.core.provider.SelfDestructiveThread$3:
+    176:176:void <init>(androidx.core.provider.SelfDestructiveThread,java.util.concurrent.atomic.AtomicReference,java.util.concurrent.Callable,java.util.concurrent.locks.ReentrantLock,java.util.concurrent.atomic.AtomicBoolean,java.util.concurrent.locks.Condition) -> <init>
+    180:191:void run() -> run
+androidx.core.telephony.mbms.MbmsHelper -> androidx.core.telephony.mbms.MbmsHelper:
+    36:36:void <init>() -> <init>
+    57:75:java.lang.CharSequence getBestNameForService(android.content.Context,android.telephony.mbms.ServiceInfo) -> getBestNameForService
+androidx.core.text.BidiFormatter -> androidx.core.text.BidiFormatter:
+    85:222:void <clinit>() -> <clinit>
+    262:266:void <init>(boolean,int,androidx.core.text.TextDirectionHeuristicCompat) -> <init>
+    558:558:int getEntryDir(java.lang.CharSequence) -> getEntryDir
+    541:541:int getExitDir(java.lang.CharSequence) -> getExitDir
+    236:236:androidx.core.text.BidiFormatter getInstance() -> getInstance
+    245:245:androidx.core.text.BidiFormatter getInstance(boolean) -> getInstance
+    254:254:androidx.core.text.BidiFormatter getInstance(java.util.Locale) -> getInstance
+    280:280:boolean getStereoReset() -> getStereoReset
+    347:347:boolean isRtl(java.lang.String) -> isRtl
+    358:358:boolean isRtl(java.lang.CharSequence) -> isRtl
+    272:272:boolean isRtlContext() -> isRtlContext
+    516:516:boolean isRtlLocale(java.util.Locale) -> isRtlLocale
+    300:308:java.lang.String markAfter(java.lang.CharSequence,androidx.core.text.TextDirectionHeuristicCompat) -> markAfter
+    328:336:java.lang.String markBefore(java.lang.CharSequence,androidx.core.text.TextDirectionHeuristicCompat) -> markBefore
+    391:392:java.lang.String unicodeWrap(java.lang.String,androidx.core.text.TextDirectionHeuristicCompat,boolean) -> unicodeWrap
+    411:429:java.lang.CharSequence unicodeWrap(java.lang.CharSequence,androidx.core.text.TextDirectionHeuristicCompat,boolean) -> unicodeWrap
+    441:441:java.lang.String unicodeWrap(java.lang.String,androidx.core.text.TextDirectionHeuristicCompat) -> unicodeWrap
+    456:456:java.lang.CharSequence unicodeWrap(java.lang.CharSequence,androidx.core.text.TextDirectionHeuristicCompat) -> unicodeWrap
+    469:469:java.lang.String unicodeWrap(java.lang.String,boolean) -> unicodeWrap
+    483:483:java.lang.CharSequence unicodeWrap(java.lang.CharSequence,boolean) -> unicodeWrap
+    494:494:java.lang.String unicodeWrap(java.lang.String) -> unicodeWrap
+    506:506:java.lang.CharSequence unicodeWrap(java.lang.CharSequence) -> unicodeWrap
+androidx.core.text.BidiFormatter$Builder -> androidx.core.text.BidiFormatter$Builder:
+    139:141:void <init>() -> <init>
+    148:150:void <init>(boolean) -> <init>
+    157:159:void <init>(java.util.Locale) -> <init>
+    205:209:androidx.core.text.BidiFormatter build() -> build
+    198:198:androidx.core.text.BidiFormatter getDefaultInstanceFromContext(boolean) -> getDefaultInstanceFromContext
+    167:170:void initialize(boolean) -> initialize
+    193:194:androidx.core.text.BidiFormatter$Builder setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat) -> setTextDirectionHeuristic
+    177:182:androidx.core.text.BidiFormatter$Builder stereoReset(boolean) -> stereoReset
+androidx.core.text.BidiFormatter$DirectionalityEstimator -> androidx.core.text.BidiFormatter$DirectionalityEstimator:
+    584:588:void <clinit>() -> <clinit>
+    628:632:void <init>(java.lang.CharSequence,boolean) -> <init>
+    846:862:byte dirTypeBackward() -> dirTypeBackward
+    816:832:byte dirTypeForward() -> dirTypeForward
+    803:803:byte getCachedDirectionality(char) -> getCachedDirectionality
+    646:728:int getEntryDir() -> getEntryDir
+    744:792:int getExitDir() -> getExitDir
+    944:956:byte skipEntityBackward() -> skipEntityBackward
+    929:930:byte skipEntityForward() -> skipEntityForward
+    901:920:byte skipTagBackward() -> skipTagBackward
+    872:888:byte skipTagForward() -> skipTagForward
+androidx.core.text.HtmlCompat -> androidx.core.text.HtmlCompat:
+    181:182:void <init>() -> <init>
+    147:148:android.text.Spanned fromHtml(java.lang.String,int) -> fromHtml
+    162:163:android.text.Spanned fromHtml(java.lang.String,int,android.text.Html$ImageGetter,android.text.Html$TagHandler) -> fromHtml
+    175:176:java.lang.String toHtml(android.text.Spanned,int) -> toHtml
+androidx.core.text.ICUCompat -> androidx.core.text.ICUCompat:
+    36:62:void <clinit>() -> <clinit>
+    146:146:void <init>() -> <init>
+    129:143:java.lang.String addLikelySubtags(java.util.Locale) -> addLikelySubtags
+    114:125:java.lang.String getScript(java.lang.String) -> getScript
+    89:91:java.lang.String maximizeAndGetScript(java.util.Locale) -> maximizeAndGetScript
+androidx.core.text.PrecomputedTextCompat -> androidx.core.text.PrecomputedTextCompat:
+    73:74:void <clinit>() -> <clinit>
+    490:495:void <init>(java.lang.CharSequence,androidx.core.text.PrecomputedTextCompat$Params,int[]) -> <init>
+    498:503:void <init>(android.text.PrecomputedText,androidx.core.text.PrecomputedTextCompat$Params) -> <init>
+    754:754:char charAt(int) -> charAt
+    432:485:androidx.core.text.PrecomputedTextCompat create(java.lang.CharSequence,androidx.core.text.PrecomputedTextCompat$Params) -> create
+    531:534:int getParagraphCount() -> getParagraphCount
+    556:560:int getParagraphEnd(int) -> getParagraphEnd
+    543:547:int getParagraphStart(int) -> getParagraphStart
+    523:523:androidx.core.text.PrecomputedTextCompat$Params getParams() -> getParams
+    512:515:android.text.PrecomputedText getPrecomputedText() -> getPrecomputedText
+    729:729:int getSpanEnd(java.lang.Object) -> getSpanEnd
+    734:734:int getSpanFlags(java.lang.Object) -> getSpanFlags
+    724:724:int getSpanStart(java.lang.Object) -> getSpanStart
+    714:717:java.lang.Object[] getSpans(int,int,java.lang.Class) -> getSpans
+    653:663:java.util.concurrent.Future getTextFuture(java.lang.CharSequence,androidx.core.text.PrecomputedTextCompat$Params,java.util.concurrent.Executor) -> getTextFuture
+    749:749:int length() -> length
+    739:739:int nextSpanTransition(int,int,java.lang.Class) -> nextSpanTransition
+    695:704:void removeSpan(java.lang.Object) -> removeSpan
+    678:687:void setSpan(java.lang.Object,int,int,int) -> setSpan
+    759:759:java.lang.CharSequence subSequence(int,int) -> subSequence
+    765:765:java.lang.String toString() -> toString
+androidx.core.text.PrecomputedTextCompat$Params -> androidx.core.text.PrecomputedTextCompat$Params:
+    197:211:void <init>(android.text.TextPaint,android.text.TextDirectionHeuristic,int,int) -> <init>
+    214:220:void <init>(android.text.PrecomputedText$Params) -> <init>
+    332:347:boolean equals(java.lang.Object) -> equals
+    275:322:boolean equalsWithoutTextDirection(androidx.core.text.PrecomputedTextCompat$Params) -> equalsWithoutTextDirection
+    253:253:int getBreakStrategy() -> getBreakStrategy
+    265:265:int getHyphenationFrequency() -> getHyphenationFrequency
+    241:241:android.text.TextDirectionHeuristic getTextDirection() -> getTextDirection
+    228:228:android.text.TextPaint getTextPaint() -> getTextPaint
+    352:356:int hashCode() -> hashCode
+    379:400:java.lang.String toString() -> toString
+androidx.core.text.PrecomputedTextCompat$Params$Builder -> androidx.core.text.PrecomputedTextCompat$Params$Builder:
+    116:129:void <init>(android.text.TextPaint) -> <init>
+    191:191:androidx.core.text.PrecomputedTextCompat$Params build() -> build
+    145:146:androidx.core.text.PrecomputedTextCompat$Params$Builder setBreakStrategy(int) -> setBreakStrategy
+    163:164:androidx.core.text.PrecomputedTextCompat$Params$Builder setHyphenationFrequency(int) -> setHyphenationFrequency
+    181:182:androidx.core.text.PrecomputedTextCompat$Params$Builder setTextDirection(android.text.TextDirectionHeuristic) -> setTextDirection
+androidx.core.text.PrecomputedTextCompat$PrecomputedTextFutureTask -> androidx.core.text.PrecomputedTextCompat$PrecomputedTextFutureTask:
+    586:587:void <init>(androidx.core.text.PrecomputedTextCompat$Params,java.lang.CharSequence) -> <init>
+androidx.core.text.PrecomputedTextCompat$PrecomputedTextFutureTask$PrecomputedTextCallback -> androidx.core.text.PrecomputedTextCompat$PrecomputedTextFutureTask$PrecomputedTextCallback:
+    573:576:void <init>(androidx.core.text.PrecomputedTextCompat$Params,java.lang.CharSequence) -> <init>
+    568:568:java.lang.Object call() -> call
+    580:580:androidx.core.text.PrecomputedTextCompat call() -> call
+androidx.core.text.TextDirectionHeuristicsCompat -> androidx.core.text.TextDirectionHeuristicsCompat:
+    33:68:void <clinit>() -> <clinit>
+    257:257:void <init>() -> <init>
+    79:86:int isRtlText(int) -> isRtlText
+    91:102:int isRtlTextOrFormat(int) -> isRtlTextOrFormat
+androidx.core.text.TextDirectionHeuristicsCompat$AnyStrong -> androidx.core.text.TextDirectionHeuristicsCompat$AnyStrong:
+    235:235:void <clinit>() -> <clinit>
+    231:233:void <init>(boolean) -> <init>
+    206:228:int checkRtl(java.lang.CharSequence,int,int) -> checkRtl
+androidx.core.text.TextDirectionHeuristicsCompat$FirstStrong -> androidx.core.text.TextDirectionHeuristicsCompat$FirstStrong:
+    193:193:void <clinit>() -> <clinit>
+    190:191:void <init>() -> <init>
+    183:187:int checkRtl(java.lang.CharSequence,int,int) -> checkRtl
+androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicImpl -> androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicImpl:
+    114:116:void <init>(androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionAlgorithm) -> <init>
+    140:146:boolean doCheck(java.lang.CharSequence,int,int) -> doCheck
+    125:125:boolean isRtl(char[],int,int) -> isRtl
+    130:136:boolean isRtl(java.lang.CharSequence,int,int) -> isRtl
+androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicInternal -> androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicInternal:
+    156:158:void <init>(androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionAlgorithm,boolean) -> <init>
+    162:162:boolean defaultIsRtl() -> defaultIsRtl
+androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicLocale -> androidx.core.text.TextDirectionHeuristicsCompat$TextDirectionHeuristicLocale:
+    253:253:void <clinit>() -> <clinit>
+    244:245:void <init>() -> <init>
+    249:250:boolean defaultIsRtl() -> defaultIsRtl
+androidx.core.text.TextUtilsCompat -> androidx.core.text.TextUtilsCompat:
+    33:33:void <clinit>() -> <clinit>
+    130:130:void <init>() -> <init>
+    119:126:int getLayoutDirectionFromFirstChar(java.util.Locale) -> getLayoutDirectionFromFirstChar
+    90:91:int getLayoutDirectionFromLocale(java.util.Locale) -> getLayoutDirectionFromLocale
+    45:46:java.lang.String htmlEncode(java.lang.String) -> htmlEncode
+androidx.core.text.util.FindAddress -> androidx.core.text.util.FindAddress:
+    72:268:void <clinit>() -> <clinit>
+    517:518:void <init>() -> <init>
+    401:490:int attemptMatch(java.lang.String,java.util.regex.MatchResult) -> attemptMatch
+    272:297:boolean checkHouseNumber(java.lang.String) -> checkHouseNumber
+    500:514:java.lang.String findAddress(java.lang.String) -> findAddress
+    388:388:boolean isValidLocationName(java.lang.String) -> isValidLocationName
+    345:352:boolean isValidZipCode(java.lang.String,java.util.regex.MatchResult) -> isValidZipCode
+    366:366:boolean isValidZipCode(java.lang.String,java.lang.String) -> isValidZipCode
+    377:377:boolean isValidZipCode(java.lang.String) -> isValidZipCode
+    310:316:java.util.regex.MatchResult matchHouseNumber(java.lang.String,int) -> matchHouseNumber
+    330:332:java.util.regex.MatchResult matchState(java.lang.String,int) -> matchState
+androidx.core.text.util.FindAddress$ZipRange -> androidx.core.text.util.FindAddress$ZipRange:
+    43:48:void <init>(int,int,int,int) -> <init>
+    51:52:boolean matches(java.lang.String) -> matches
+androidx.core.text.util.LinkifyCompat -> androidx.core.text.util.LinkifyCompat:
+    57:59:void <clinit>() -> <clinit>
+    542:542:void <init>() -> <init>
+    380:387:void addLinkMovementMethod(android.widget.TextView) -> addLinkMovementMethod
+    102:149:boolean addLinks(android.text.Spannable,int) -> addLinks
+    164:190:boolean addLinks(android.widget.TextView,int) -> addLinks
+    207:212:void addLinks(android.widget.TextView,java.util.regex.Pattern,java.lang.String) -> addLinks
+    231:236:void addLinks(android.widget.TextView,java.util.regex.Pattern,java.lang.String,android.text.util.Linkify$MatchFilter,android.text.util.Linkify$TransformFilter) -> addLinks
+    259:271:void addLinks(android.widget.TextView,java.util.regex.Pattern,java.lang.String,java.lang.String[],android.text.util.Linkify$MatchFilter,android.text.util.Linkify$TransformFilter) -> addLinks
+    284:287:boolean addLinks(android.text.Spannable,java.util.regex.Pattern,java.lang.String) -> addLinks
+    308:311:boolean addLinks(android.text.Spannable,java.util.regex.Pattern,java.lang.String,android.text.util.Linkify$MatchFilter,android.text.util.Linkify$TransformFilter) -> addLinks
+    335:372:boolean addLinks(android.text.Spannable,java.util.regex.Pattern,java.lang.String,java.lang.String[],android.text.util.Linkify$MatchFilter,android.text.util.Linkify$TransformFilter) -> addLinks
+    440:443:void applyLink(java.lang.String,int,int,android.text.Spannable) -> applyLink
+    487:490:java.lang.String findAddress(java.lang.String) -> findAddress
+    420:437:void gatherLinks(java.util.ArrayList,android.text.Spannable,java.util.regex.Pattern,java.lang.String[],android.text.util.Linkify$MatchFilter,android.text.util.Linkify$TransformFilter) -> gatherLinks
+    446:484:void gatherMapLinks(java.util.ArrayList,android.text.Spannable) -> gatherMapLinks
+    391:414:java.lang.String makeUrl(java.lang.String,java.lang.String[],java.util.regex.Matcher,android.text.util.Linkify$TransformFilter) -> makeUrl
+    495:537:void pruneOverlaps(java.util.ArrayList,android.text.Spannable) -> pruneOverlaps
+    376:376:boolean shouldAddLinksFallbackToFramework() -> shouldAddLinksFallbackToFramework
+androidx.core.text.util.LinkifyCompat$1 -> androidx.core.text.util.LinkifyCompat$1:
+    59:59:void <init>() -> <init>
+    59:59:int compare(java.lang.Object,java.lang.Object) -> compare
+    62:78:int compare(androidx.core.text.util.LinkifyCompat$LinkSpec,androidx.core.text.util.LinkifyCompat$LinkSpec) -> compare
+androidx.core.text.util.LinkifyCompat$LinkSpec -> androidx.core.text.util.LinkifyCompat$LinkSpec:
+    550:551:void <init>() -> <init>
+androidx.core.util.AtomicFile -> androidx.core.util.AtomicFile:
+    56:60:void <init>(java.io.File) -> <init>
+    75:78:void delete() -> delete
+    142:156:void failWrite(java.io.FileOutputStream) -> failWrite
+    122:134:void finishWrite(java.io.FileOutputStream) -> finishWrite
+    68:68:java.io.File getBaseFile() -> getBaseFile
+    166:182:java.io.FileInputStream openRead() -> openRead
+    191:215:byte[] readFully() -> readFully
+    234:242:void rename(java.io.File,java.io.File) -> rename
+    96:110:java.io.FileOutputStream startWrite() -> startWrite
+    220:224:boolean sync(java.io.FileOutputStream) -> sync
+androidx.core.util.DebugUtils -> androidx.core.util.DebugUtils:
+    49:50:void <init>() -> <init>
+    32:47:void buildShortClassTag(java.lang.Object,java.lang.StringBuilder) -> buildShortClassTag
+androidx.core.util.LogWriter -> androidx.core.util.LogWriter:
+    35:45:void <init>(java.lang.String) -> <init>
+    48:49:void close() -> close
+    52:53:void flush() -> flush
+    68:72:void flushBuilder() -> flushBuilder
+    56:65:void write(char[],int,int) -> write
+androidx.core.util.ObjectsCompat -> androidx.core.util.ObjectsCompat:
+    29:31:void <init>() -> <init>
+    50:51:boolean equals(java.lang.Object,java.lang.Object) -> equals
+    92:93:int hash(java.lang.Object[]) -> hash
+    65:65:int hashCode(java.lang.Object) -> hashCode
+    110:110:java.lang.String toString(java.lang.Object,java.lang.String) -> toString
+androidx.core.util.Pair -> androidx.core.util.Pair:
+    37:40:void <init>(java.lang.Object,java.lang.Object) -> <init>
+    84:84:androidx.core.util.Pair create(java.lang.Object,java.lang.Object) -> create
+    52:56:boolean equals(java.lang.Object) -> equals
+    66:66:int hashCode() -> hashCode
+    72:72:java.lang.String toString() -> toString
+androidx.core.util.PatternsCompat -> androidx.core.util.PatternsCompat:
+    153:338:void <clinit>() -> <clinit>
+    351:351:void <init>() -> <init>
+androidx.core.util.Pools -> androidx.core.util.Pools:
+    73:75:void <init>() -> <init>
+androidx.core.util.Pools$SimplePool -> androidx.core.util.Pools$SimplePool:
+    94:99:void <init>(int) -> <init>
+    104:111:java.lang.Object acquire() -> acquire
+    128:133:boolean isInPool(java.lang.Object) -> isInPool
+    116:124:boolean release(java.lang.Object) -> release
+androidx.core.util.Pools$SynchronizedPool -> androidx.core.util.Pools$SynchronizedPool:
+    143:154:void <init>(int) -> <init>
+    158:160:java.lang.Object acquire() -> acquire
+    165:167:boolean release(java.lang.Object) -> release
+androidx.core.util.Preconditions -> androidx.core.util.Preconditions:
+    240:241:void <init>() -> <init>
+    37:40:void checkArgument(boolean) -> checkArgument
+    51:54:void checkArgument(boolean,java.lang.Object) -> checkArgument
+    227:237:int checkArgumentInRange(int,int,int,java.lang.String) -> checkArgumentInRange
+    190:194:int checkArgumentNonnegative(int,java.lang.String) -> checkArgumentNonnegative
+    206:210:int checkArgumentNonnegative(int) -> checkArgumentNonnegative
+    172:177:int checkFlagsArgument(int,int) -> checkFlagsArgument
+    118:121:java.lang.Object checkNotNull(java.lang.Object) -> checkNotNull
+    135:138:java.lang.Object checkNotNull(java.lang.Object,java.lang.Object) -> checkNotNull
+    150:153:void checkState(boolean,java.lang.String) -> checkState
+    163:164:void checkState(boolean) -> checkState
+    66:69:java.lang.CharSequence checkStringNotEmpty(java.lang.CharSequence) -> checkStringNotEmpty
+    84:87:java.lang.CharSequence checkStringNotEmpty(java.lang.CharSequence,java.lang.Object) -> checkStringNotEmpty
+    103:106:java.lang.CharSequence checkStringNotEmpty(java.lang.CharSequence,java.lang.String,java.lang.Object[]) -> checkStringNotEmpty
+androidx.core.util.TimeUtils -> androidx.core.util.TimeUtils:
+    40:41:void <clinit>() -> <clinit>
+    185:185:void <init>() -> <init>
+    44:53:int accumField(int,int,boolean,int) -> accumField
+    154:158:void formatDuration(long,java.lang.StringBuilder) -> formatDuration
+    163:167:void formatDuration(long,java.io.PrintWriter,int) -> formatDuration
+    172:173:void formatDuration(long,java.io.PrintWriter) -> formatDuration
+    178:183:void formatDuration(long,long,java.io.PrintWriter) -> formatDuration
+    81:148:int formatDurationLocked(long,int) -> formatDurationLocked
+    58:77:int printField(char[],int,char,int,boolean,int) -> printField
+androidx.core.view.AccessibilityDelegateCompat -> androidx.core.view.AccessibilityDelegateCompat:
+    131:131:void <clinit>() -> <clinit>
+    140:141:void <init>() -> <init>
+    147:150:void <init>(android.view.View$AccessibilityDelegate) -> <init>
+    217:217:boolean dispatchPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    319:325:androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View) -> getAccessibilityNodeProvider
+    397:399:java.util.List getActionList(android.view.View) -> getActionList
+    156:156:android.view.View$AccessibilityDelegate getBridge() -> getBridge
+    383:392:boolean isSpanStillValid(android.text.style.ClickableSpan,android.view.View) -> isSpanStillValid
+    257:258:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    276:278:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    237:238:void onPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+    301:301:boolean onRequestSendAccessibilityEvent(android.view.ViewGroup,android.view.View,android.view.accessibility.AccessibilityEvent) -> onRequestSendAccessibilityEvent
+    345:361:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+    366:379:boolean performClickableSpanAction(int,android.view.View) -> performClickableSpanAction
+    174:175:void sendAccessibilityEvent(android.view.View,int) -> sendAccessibilityEvent
+    196:197:void sendAccessibilityEventUnchecked(android.view.View,android.view.accessibility.AccessibilityEvent) -> sendAccessibilityEventUnchecked
+androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter -> androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter:
+    64:66:void <init>(androidx.core.view.AccessibilityDelegateCompat) -> <init>
+    71:71:boolean dispatchPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    119:122:android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider(android.view.View) -> getAccessibilityNodeProvider
+    76:77:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    82:93:void onInitializeAccessibilityNodeInfo(android.view.View,android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    97:98:void onPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+    103:103:boolean onRequestSendAccessibilityEvent(android.view.ViewGroup,android.view.View,android.view.accessibility.AccessibilityEvent) -> onRequestSendAccessibilityEvent
+    127:127:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+    108:109:void sendAccessibilityEvent(android.view.View,int) -> sendAccessibilityEvent
+    113:114:void sendAccessibilityEventUnchecked(android.view.View,android.view.accessibility.AccessibilityEvent) -> sendAccessibilityEventUnchecked
+androidx.core.view.ActionProvider -> androidx.core.view.ActionProvider:
+    133:135:void <init>(android.content.Context) -> <init>
+    141:141:android.content.Context getContext() -> getContext
+    250:250:boolean hasSubMenu() -> hasSubMenu
+    190:190:boolean isVisible() -> isVisible
+    164:164:android.view.View onCreateActionView(android.view.MenuItem) -> onCreateActionView
+    237:237:boolean onPerformDefaultAction() -> onPerformDefaultAction
+    263:263:void onPrepareSubMenu(android.view.SubMenu) -> onPrepareSubMenu
+    176:176:boolean overridesItemVisibility() -> overridesItemVisibility
+    200:203:void refreshVisibility() -> refreshVisibility
+    306:308:void reset() -> reset
+    283:284:void setSubUiVisibilityListener(androidx.core.view.ActionProvider$SubUiVisibilityListener) -> setSubUiVisibilityListener
+    293:299:void setVisibilityListener(androidx.core.view.ActionProvider$VisibilityListener) -> setVisibilityListener
+    273:276:void subUiVisibilityChanged(boolean) -> subUiVisibilityChanged
+androidx.core.view.ContentInfoCompat -> androidx.core.view.ContentInfoCompat:
+    137:144:void <init>(androidx.core.view.ContentInfoCompat$Builder) -> <init>
+    254:258:android.content.ClipData buildClipData(android.content.ClipDescription,java.util.List) -> buildClipData
+    120:123:java.lang.String flagsToString(int) -> flagsToString
+    163:163:android.content.ClipData getClip() -> getClip
+    201:201:android.os.Bundle getExtras() -> getExtras
+    180:180:int getFlags() -> getFlags
+    191:191:android.net.Uri getLinkUri() -> getLinkUri
+    172:172:int getSource() -> getSource
+    223:249:android.util.Pair partition(androidx.core.util.Predicate) -> partition
+    87:93:java.lang.String sourceToString(int) -> sourceToString
+    149:152:java.lang.String toString() -> toString
+androidx.core.view.ContentInfoCompat$Builder -> androidx.core.view.ContentInfoCompat$Builder:
+    279:285:void <init>(androidx.core.view.ContentInfoCompat) -> <init>
+    293:296:void <init>(android.content.ClipData,int) -> <init>
+    365:365:androidx.core.view.ContentInfoCompat build() -> build
+    306:307:androidx.core.view.ContentInfoCompat$Builder setClip(android.content.ClipData) -> setClip
+    356:357:androidx.core.view.ContentInfoCompat$Builder setExtras(android.os.Bundle) -> setExtras
+    331:332:androidx.core.view.ContentInfoCompat$Builder setFlags(int) -> setFlags
+    344:345:androidx.core.view.ContentInfoCompat$Builder setLinkUri(android.net.Uri) -> setLinkUri
+    318:319:androidx.core.view.ContentInfoCompat$Builder setSource(int) -> setSource
+androidx.core.view.DisplayCompat -> androidx.core.view.DisplayCompat:
+    51:53:void <init>() -> <init>
+    193:207:android.graphics.Point getCurrentDisplaySizeFromWorkarounds(android.content.Context,android.view.Display) -> getCurrentDisplaySizeFromWorkarounds
+    73:84:android.graphics.Point getDisplaySize(android.content.Context,android.view.Display) -> getDisplaySize
+    62:63:androidx.core.view.DisplayCompat$ModeCompat getMode(android.content.Context,android.view.Display) -> getMode
+    95:96:androidx.core.view.DisplayCompat$ModeCompat[] getSupportedModes(android.content.Context,android.view.Display) -> getSupportedModes
+    135:139:java.lang.String getSystemProperty(java.lang.String) -> getSystemProperty
+    225:226:boolean isCurrentModeTheLargestMode(android.view.Display) -> isCurrentModeTheLargestMode
+    214:217:boolean isSonyBravia4kTv(android.content.Context) -> isSonyBravia4kTv
+    148:150:boolean isTv(android.content.Context) -> isTv
+    114:122:android.graphics.Point parseDisplaySize(java.lang.String) -> parseDisplaySize
+    166:180:android.graphics.Point parsePhysicalDisplaySizeFromSystemProperties(java.lang.String,android.view.Display) -> parsePhysicalDisplaySizeFromSystemProperties
+androidx.core.view.DisplayCompat$Api17Impl -> androidx.core.view.DisplayCompat$Api17Impl:
+    310:310:void <init>() -> <init>
+    313:314:void getRealSize(android.view.Display,android.graphics.Point) -> getRealSize
+androidx.core.view.DisplayCompat$Api23Impl -> androidx.core.view.DisplayCompat$Api23Impl:
+    235:235:void <init>() -> <init>
+    239:245:androidx.core.view.DisplayCompat$ModeCompat getMode(android.content.Context,android.view.Display) -> getMode
+    252:274:androidx.core.view.DisplayCompat$ModeCompat[] getSupportedModes(android.content.Context,android.view.Display) -> getSupportedModes
+    278:286:boolean isCurrentModeTheLargestMode(android.view.Display) -> isCurrentModeTheLargestMode
+    294:295:boolean physicalSizeEquals(android.view.Display$Mode,android.graphics.Point) -> physicalSizeEquals
+    303:304:boolean physicalSizeEquals(android.view.Display$Mode,android.view.Display$Mode) -> physicalSizeEquals
+androidx.core.view.DisplayCompat$ModeCompat -> androidx.core.view.DisplayCompat$ModeCompat:
+    332:337:void <init>(android.graphics.Point) -> <init>
+    345:351:void <init>(android.view.Display$Mode,boolean) -> <init>
+    362:368:void <init>(android.view.Display$Mode,android.graphics.Point) -> <init>
+    381:381:int getPhysicalHeight() -> getPhysicalHeight
+    374:374:int getPhysicalWidth() -> getPhysicalWidth
+    392:392:boolean isNative() -> isNative
+    401:401:android.view.Display$Mode toMode() -> toMode
+androidx.core.view.DisplayCutoutCompat -> androidx.core.view.DisplayCutoutCompat:
+    56:57:void <init>(android.graphics.Rect,java.util.List) -> <init>
+    77:79:void <init>(androidx.core.graphics.Insets,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect,androidx.core.graphics.Insets) -> <init>
+    112:114:void <init>(java.lang.Object) -> <init>
+    84:108:android.view.DisplayCutout constructDisplayCutout(androidx.core.graphics.Insets,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect,androidx.core.graphics.Insets) -> constructDisplayCutout
+    191:198:boolean equals(java.lang.Object) -> equals
+    163:166:java.util.List getBoundingRects() -> getBoundingRects
+    127:130:int getSafeInsetBottom() -> getSafeInsetBottom
+    136:139:int getSafeInsetLeft() -> getSafeInsetLeft
+    145:148:int getSafeInsetRight() -> getSafeInsetRight
+    118:121:int getSafeInsetTop() -> getSafeInsetTop
+    182:185:androidx.core.graphics.Insets getWaterfallInsets() -> getWaterfallInsets
+    203:203:int hashCode() -> hashCode
+    208:208:java.lang.String toString() -> toString
+    217:217:android.view.DisplayCutout unwrap() -> unwrap
+    212:212:androidx.core.view.DisplayCutoutCompat wrap(java.lang.Object) -> wrap
+androidx.core.view.DragAndDropPermissionsCompat -> androidx.core.view.DragAndDropPermissionsCompat:
+    42:44:void <init>(java.lang.Object) -> <init>
+    64:67:void release() -> release
+    50:57:androidx.core.view.DragAndDropPermissionsCompat request(android.app.Activity,android.view.DragEvent) -> request
+androidx.core.view.DragStartHelper -> androidx.core.view.DragStartHelper:
+    96:188:void <init>(android.view.View,androidx.core.view.DragStartHelper$OnDragStartListener) -> <init>
+    107:109:void attach() -> attach
+    117:119:void detach() -> detach
+    178:179:void getTouchPosition(android.graphics.Point) -> getTouchPosition
+    170:170:boolean onLongClick(android.view.View) -> onLongClick
+    129:161:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+androidx.core.view.DragStartHelper$1 -> androidx.core.view.DragStartHelper$1:
+    181:181:void <init>(androidx.core.view.DragStartHelper) -> <init>
+    184:184:boolean onLongClick(android.view.View) -> onLongClick
+androidx.core.view.DragStartHelper$2 -> androidx.core.view.DragStartHelper$2:
+    188:188:void <init>(androidx.core.view.DragStartHelper) -> <init>
+    191:191:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+androidx.core.view.GestureDetectorCompat -> androidx.core.view.GestureDetectorCompat:
+    507:508:void <init>(android.content.Context,android.view.GestureDetector$OnGestureListener) -> <init>
+    520:526:void <init>(android.content.Context,android.view.GestureDetector$OnGestureListener,android.os.Handler) -> <init>
+    532:532:boolean isLongpressEnabled() -> isLongpressEnabled
+    544:544:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    557:558:void setIsLongpressEnabled(boolean) -> setIsLongpressEnabled
+    568:569:void setOnDoubleTapListener(android.view.GestureDetector$OnDoubleTapListener) -> setOnDoubleTapListener
+androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase -> androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase:
+    62:64:void <clinit>() -> <clinit>
+    153:164:void <init>(android.content.Context,android.view.GestureDetector$OnGestureListener,android.os.Handler) -> <init>
+    415:428:void cancel() -> cancel
+    431:441:void cancelTaps() -> cancelTaps
+    459:463:void dispatchLongPress() -> dispatchLongPress
+    167:183:void init(android.content.Context) -> init
+    445:455:boolean isConsideredDoubleTap(android.view.MotionEvent,android.view.MotionEvent,android.view.MotionEvent) -> isConsideredDoubleTap
+    216:216:boolean isLongpressEnabled() -> isLongpressEnabled
+    229:411:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    208:209:void setIsLongpressEnabled(boolean) -> setIsLongpressEnabled
+    194:195:void setOnDoubleTapListener(android.view.GestureDetector$OnDoubleTapListener) -> setOnDoubleTapListener
+androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase$GestureHandler -> androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase$GestureHandler:
+    104:106:void <init>(androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase) -> <init>
+    108:110:void <init>(androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase,android.os.Handler) -> <init>
+    114:137:void handleMessage(android.os.Message) -> handleMessage
+androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2 -> androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2:
+    470:472:void <init>(android.content.Context,android.view.GestureDetector$OnGestureListener,android.os.Handler) -> <init>
+    476:476:boolean isLongpressEnabled() -> isLongpressEnabled
+    481:481:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    486:487:void setIsLongpressEnabled(boolean) -> setIsLongpressEnabled
+    491:492:void setOnDoubleTapListener(android.view.GestureDetector$OnDoubleTapListener) -> setOnDoubleTapListener
+androidx.core.view.GravityCompat -> androidx.core.view.GravityCompat:
+    153:153:void <init>() -> <init>
+    64:69:void apply(int,int,int,android.graphics.Rect,android.graphics.Rect,int) -> apply
+    98:103:void apply(int,int,int,android.graphics.Rect,int,int,android.graphics.Rect,int) -> apply
+    126:131:void applyDisplay(int,android.graphics.Rect,android.graphics.Rect,int) -> applyDisplay
+    145:146:int getAbsoluteGravity(int,int) -> getAbsoluteGravity
+androidx.core.view.InputDeviceCompat -> androidx.core.view.InputDeviceCompat:
+    220:220:void <init>() -> <init>
+androidx.core.view.KeyEventDispatcher -> androidx.core.view.KeyEventDispatcher:
+    46:49:void <clinit>() -> <clinit>
+    51:53:void <init>() -> <init>
+    96:111:boolean actionBarOnMenuKeyEventPre28(android.app.ActionBar,android.view.KeyEvent) -> actionBarOnMenuKeyEventPre28
+    115:138:boolean activitySuperDispatchKeyEventPre28(android.app.Activity,android.view.KeyEvent) -> activitySuperDispatchKeyEventPre28
+    161:174:boolean dialogSuperDispatchKeyEventPre28(android.app.Dialog,android.view.KeyEvent) -> dialogSuperDispatchKeyEventPre28
+    63:63:boolean dispatchBeforeHierarchy(android.view.View,android.view.KeyEvent) -> dispatchBeforeHierarchy
+    80:92:boolean dispatchKeyEvent(androidx.core.view.KeyEventDispatcher$Component,android.view.View,android.view.Window$Callback,android.view.KeyEvent) -> dispatchKeyEvent
+    142:157:android.content.DialogInterface$OnKeyListener getDialogKeyListenerPre28(android.app.Dialog) -> getDialogKeyListenerPre28
+androidx.core.view.LayoutInflaterCompat -> androidx.core.view.LayoutInflaterCompat:
+    96:97:void <init>() -> <init>
+    72:91:void forceSetFactory2(android.view.LayoutInflater,android.view.LayoutInflater$Factory2) -> forceSetFactory2
+    170:174:androidx.core.view.LayoutInflaterFactory getFactory(android.view.LayoutInflater) -> getFactory
+    112:129:void setFactory(android.view.LayoutInflater,androidx.core.view.LayoutInflaterFactory) -> setFactory
+    140:153:void setFactory2(android.view.LayoutInflater,android.view.LayoutInflater$Factory2) -> setFactory2
+androidx.core.view.LayoutInflaterCompat$Factory2Wrapper -> androidx.core.view.LayoutInflaterCompat$Factory2Wrapper:
+    43:45:void <init>(androidx.core.view.LayoutInflaterFactory) -> <init>
+    49:49:android.view.View onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    55:55:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    61:61:java.lang.String toString() -> toString
+androidx.core.view.MarginLayoutParamsCompat -> androidx.core.view.MarginLayoutParamsCompat:
+    166:166:void <init>() -> <init>
+    127:139:int getLayoutDirection(android.view.ViewGroup$MarginLayoutParams) -> getLayoutDirection
+    61:62:int getMarginEnd(android.view.ViewGroup$MarginLayoutParams) -> getMarginEnd
+    42:43:int getMarginStart(android.view.ViewGroup$MarginLayoutParams) -> getMarginStart
+    112:113:boolean isMarginRelative(android.view.ViewGroup$MarginLayoutParams) -> isMarginRelative
+    161:164:void resolveLayoutDirection(android.view.ViewGroup$MarginLayoutParams,int) -> resolveLayoutDirection
+    150:153:void setLayoutDirection(android.view.ViewGroup$MarginLayoutParams,int) -> setLayoutDirection
+    99:104:void setMarginEnd(android.view.ViewGroup$MarginLayoutParams,int) -> setMarginEnd
+    80:85:void setMarginStart(android.view.ViewGroup$MarginLayoutParams,int) -> setMarginStart
+androidx.core.view.MenuCompat -> androidx.core.view.MenuCompat:
+    55:55:void <init>() -> <init>
+    48:53:void setGroupDividerEnabled(android.view.Menu,boolean) -> setGroupDividerEnabled
+    37:38:void setShowAsAction(android.view.MenuItem,int) -> setShowAsAction
+androidx.core.view.MenuItemCompat -> androidx.core.view.MenuItemCompat:
+    557:557:void <init>() -> <init>
+    268:268:boolean collapseActionView(android.view.MenuItem) -> collapseActionView
+    249:249:boolean expandActionView(android.view.MenuItem) -> expandActionView
+    224:230:androidx.core.view.ActionProvider getActionProvider(android.view.MenuItem) -> getActionProvider
+    188:188:android.view.View getActionView(android.view.MenuItem) -> getActionView
+    481:487:int getAlphabeticModifiers(android.view.MenuItem) -> getAlphabeticModifiers
+    335:341:java.lang.CharSequence getContentDescription(android.view.MenuItem) -> getContentDescription
+    515:521:android.content.res.ColorStateList getIconTintList(android.view.MenuItem) -> getIconTintList
+    548:554:android.graphics.PorterDuff$Mode getIconTintMode(android.view.MenuItem) -> getIconTintMode
+    436:442:int getNumericModifiers(android.view.MenuItem) -> getNumericModifiers
+    364:370:java.lang.CharSequence getTooltipText(android.view.MenuItem) -> getTooltipText
+    284:284:boolean isActionViewExpanded(android.view.MenuItem) -> isActionViewExpanded
+    207:212:android.view.MenuItem setActionProvider(android.view.MenuItem,androidx.core.view.ActionProvider) -> setActionProvider
+    153:153:android.view.MenuItem setActionView(android.view.MenuItem,android.view.View) -> setActionView
+    175:175:android.view.MenuItem setActionView(android.view.MenuItem,int) -> setActionView
+    463:468:void setAlphabeticShortcut(android.view.MenuItem,char,int) -> setAlphabeticShortcut
+    322:327:void setContentDescription(android.view.MenuItem,java.lang.CharSequence) -> setContentDescription
+    503:508:void setIconTintList(android.view.MenuItem,android.content.res.ColorStateList) -> setIconTintList
+    534:539:void setIconTintMode(android.view.MenuItem,android.graphics.PorterDuff$Mode) -> setIconTintMode
+    418:423:void setNumericShortcut(android.view.MenuItem,char,int) -> setNumericShortcut
+    302:302:android.view.MenuItem setOnActionExpandListener(android.view.MenuItem,androidx.core.view.MenuItemCompat$OnActionExpandListener) -> setOnActionExpandListener
+    397:403:void setShortcut(android.view.MenuItem,char,char,int,int) -> setShortcut
+    135:136:void setShowAsAction(android.view.MenuItem,int) -> setShowAsAction
+    351:356:void setTooltipText(android.view.MenuItem,java.lang.CharSequence) -> setTooltipText
+androidx.core.view.MenuItemCompat$1 -> androidx.core.view.MenuItemCompat$1:
+    302:302:void <init>(androidx.core.view.MenuItemCompat$OnActionExpandListener) -> <init>
+    310:310:boolean onMenuItemActionCollapse(android.view.MenuItem) -> onMenuItemActionCollapse
+    305:305:boolean onMenuItemActionExpand(android.view.MenuItem) -> onMenuItemActionExpand
+androidx.core.view.MotionEventCompat -> androidx.core.view.MotionEventCompat:
+    602:602:void <init>() -> <init>
+    488:488:int findPointerIndex(android.view.MotionEvent,int) -> findPointerIndex
+    477:477:int getActionIndex(android.view.MotionEvent) -> getActionIndex
+    465:465:int getActionMasked(android.view.MotionEvent) -> getActionMasked
+    570:570:float getAxisValue(android.view.MotionEvent,int) -> getAxisValue
+    590:590:float getAxisValue(android.view.MotionEvent,int,int) -> getAxisValue
+    599:599:int getButtonState(android.view.MotionEvent) -> getButtonState
+    532:532:int getPointerCount(android.view.MotionEvent) -> getPointerCount
+    499:499:int getPointerId(android.view.MotionEvent,int) -> getPointerId
+    544:544:int getSource(android.view.MotionEvent) -> getSource
+    510:510:float getX(android.view.MotionEvent,int) -> getX
+    521:521:float getY(android.view.MotionEvent,int) -> getY
+    553:553:boolean isFromSource(android.view.MotionEvent,int) -> isFromSource
+androidx.core.view.NestedScrollingChildHelper -> androidx.core.view.NestedScrollingChildHelper:
+    56:58:void <init>(android.view.View) -> <init>
+    348:355:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    368:375:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    288:288:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    302:335:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    204:204:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    218:218:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    231:233:void dispatchNestedScroll(int,int,int,int,int[],int,int[]) -> dispatchNestedScroll
+    238:274:boolean dispatchNestedScrollInternal(int,int,int,int,int[],int,int[]) -> dispatchNestedScrollInternal
+    404:410:android.view.ViewParent getNestedScrollingParentForType(int) -> getNestedScrollingParentForType
+    425:428:int[] getTempNestedScrollConsumed() -> getTempNestedScrollConsumed
+    100:100:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    114:114:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    86:86:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    387:388:void onDetachedFromWindow() -> onDetachedFromWindow
+    400:401:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    70:74:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    414:422:void setNestedScrollingParentForType(int,android.view.ViewParent) -> setNestedScrollingParentForType
+    129:129:boolean startNestedScroll(int) -> startNestedScroll
+    145:164:boolean startNestedScroll(int,int) -> startNestedScroll
+    175:176:void stopNestedScroll() -> stopNestedScroll
+    186:191:void stopNestedScroll(int) -> stopNestedScroll
+androidx.core.view.NestedScrollingParentHelper -> androidx.core.view.NestedScrollingParentHelper:
+    50:51:void <init>(android.view.ViewGroup) -> <init>
+    92:92:int getNestedScrollAxes() -> getNestedScrollAxes
+    63:64:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    76:81:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    103:104:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    114:119:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+androidx.core.view.OneShotPreDrawListener -> androidx.core.view.OneShotPreDrawListener:
+    43:47:void <init>(android.view.View,java.lang.Runnable) -> <init>
+    59:65:androidx.core.view.OneShotPreDrawListener add(android.view.View,java.lang.Runnable) -> add
+    70:72:boolean onPreDraw() -> onPreDraw
+    90:91:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    95:96:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+    80:86:void removeListener() -> removeListener
+androidx.core.view.PointerIconCompat -> androidx.core.view.PointerIconCompat:
+    107:109:void <init>(java.lang.Object) -> <init>
+    151:152:androidx.core.view.PointerIconCompat create(android.graphics.Bitmap,float,float) -> create
+    116:116:java.lang.Object getPointerIcon() -> getPointerIcon
+    130:131:androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context,int) -> getSystemIcon
+    180:181:androidx.core.view.PointerIconCompat load(android.content.res.Resources,int) -> load
+androidx.core.view.ScaleGestureDetectorCompat -> androidx.core.view.ScaleGestureDetectorCompat:
+    26:26:void <init>() -> <init>
+    68:68:boolean isQuickScaleEnabled(java.lang.Object) -> isQuickScaleEnabled
+    78:79:boolean isQuickScaleEnabled(android.view.ScaleGestureDetector) -> isQuickScaleEnabled
+    40:42:void setQuickScaleEnabled(java.lang.Object,boolean) -> setQuickScaleEnabled
+    53:56:void setQuickScaleEnabled(android.view.ScaleGestureDetector,boolean) -> setQuickScaleEnabled
+androidx.core.view.VelocityTrackerCompat -> androidx.core.view.VelocityTrackerCompat:
+    52:52:void <init>() -> <init>
+    37:37:float getXVelocity(android.view.VelocityTracker,int) -> getXVelocity
+    49:49:float getYVelocity(android.view.VelocityTracker,int) -> getYVelocity
+androidx.core.view.ViewCompat -> androidx.core.view.ViewCompat:
+    470:4467:void <clinit>() -> <clinit>
+    4087:4088:void <init>() -> <init>
+    4316:4316:androidx.core.view.ViewCompat$AccessibilityViewProperty accessibilityHeadingProperty() -> accessibilityHeadingProperty
+    1227:1233:int addAccessibilityAction(android.view.View,java.lang.CharSequence,androidx.core.view.accessibility.AccessibilityViewCommand) -> addAccessibilityAction
+    1314:1321:void addAccessibilityAction(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat) -> addAccessibilityAction
+    3923:3926:void addKeyboardNavigationClusters(android.view.View,java.util.Collection,int) -> addKeyboardNavigationClusters
+    4041:4056:void addOnUnhandledKeyEventListener(android.view.View,androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerCompat) -> addOnUnhandledKeyEventListener
+    2061:2069:androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View) -> animate
+    1879:1887:void bindTempDetach() -> bindTempDetach
+    539:539:boolean canScrollHorizontally(android.view.View,int) -> canScrollHorizontally
+    553:553:boolean canScrollVertically(android.view.View,int) -> canScrollVertically
+    3794:3797:void cancelDragAndDrop(android.view.View) -> cancelDragAndDrop
+    1769:1769:int combineMeasuredStates(int,int) -> combineMeasuredStates
+    3587:3596:void compatOffsetLeftAndRight(android.view.View,int) -> compatOffsetLeftAndRight
+    3539:3548:void compatOffsetTopAndBottom(android.view.View,int) -> compatOffsetTopAndBottom
+    2637:2638:androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,android.graphics.Rect) -> computeSystemWindowInsets
+    2558:2568:androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> dispatchApplyWindowInsets
+    1916:1933:void dispatchFinishTemporaryDetach(android.view.View) -> dispatchFinishTemporaryDetach
+    3371:3372:boolean dispatchNestedFling(android.view.View,float,float,boolean) -> dispatchNestedFling
+    3414:3415:boolean dispatchNestedPreFling(android.view.View,float,float) -> dispatchNestedPreFling
+    3147:3148:boolean dispatchNestedPreScroll(android.view.View,int,int,int[],int[]) -> dispatchNestedPreScroll
+    3341:3347:boolean dispatchNestedPreScroll(android.view.View,int,int,int[],int[],int) -> dispatchNestedPreScroll
+    3116:3117:boolean dispatchNestedScroll(android.view.View,int,int,int,int,int[]) -> dispatchNestedScroll
+    3273:3280:void dispatchNestedScroll(android.view.View,int,int,int,int,int[],int,int[]) -> dispatchNestedScroll
+    3309:3316:boolean dispatchNestedScroll(android.view.View,int,int,int,int,int[],int) -> dispatchNestedScroll
+    1893:1910:void dispatchStartTemporaryDetach(android.view.View) -> dispatchStartTemporaryDetach
+    4116:4119:boolean dispatchUnhandledKeyEventBeforeCallback(android.view.View,android.view.KeyEvent) -> dispatchUnhandledKeyEventBeforeCallback
+    4108:4111:boolean dispatchUnhandledKeyEventBeforeHierarchy(android.view.View,android.view.KeyEvent) -> dispatchUnhandledKeyEventBeforeHierarchy
+    1407:1410:void enableAccessibleClickableSpanSupport(android.view.View) -> enableAccessibleClickableSpanSupport
+    3972:3973:int generateViewId() -> generateViewId
+    922:929:androidx.core.view.AccessibilityDelegateCompat getAccessibilityDelegate(android.view.View) -> getAccessibilityDelegate
+    945:948:android.view.View$AccessibilityDelegate getAccessibilityDelegateInternal(android.view.View) -> getAccessibilityDelegateInternal
+    954:975:android.view.View$AccessibilityDelegate getAccessibilityDelegateThroughReflection(android.view.View) -> getAccessibilityDelegateThroughReflection
+    1782:1783:int getAccessibilityLiveRegion(android.view.View) -> getAccessibilityLiveRegion
+    1436:1442:androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View) -> getAccessibilityNodeProvider
+    4232:4232:java.lang.CharSequence getAccessibilityPaneTitle(android.view.View) -> getAccessibilityPaneTitle
+    1350:1356:java.util.List getActionList(android.view.View) -> getActionList
+    1456:1456:float getAlpha(android.view.View) -> getAlpha
+    1271:1284:int getAvailableActionIdFromResources(android.view.View) -> getAvailableActionIdFromResources
+    2905:2906:android.content.res.ColorStateList getBackgroundTintList(android.view.View) -> getBackgroundTintList
+    2950:2951:android.graphics.PorterDuff$Mode getBackgroundTintMode(android.view.View) -> getBackgroundTintMode
+    3631:3632:android.graphics.Rect getClipBounds(android.view.View) -> getClipBounds
+    3753:3754:android.view.Display getDisplay(android.view.View) -> getDisplay
+    2345:2346:float getElevation(android.view.View) -> getElevation
+    491:500:android.graphics.Rect getEmptyTempRect() -> getEmptyTempRect
+    2806:2809:androidx.core.view.OnReceiveContentViewBehavior getFallback(android.view.View) -> getFallback
+    2471:2472:boolean getFitsSystemWindows(android.view.View) -> getFitsSystemWindows
+    1101:1102:int getImportantForAccessibility(android.view.View) -> getImportantForAccessibility
+    782:785:int getImportantForAutofill(android.view.View) -> getImportantForAutofill
+    1531:1532:int getLabelFor(android.view.View) -> getLabelFor
+    1520:1520:int getLayerType(android.view.View) -> getLayerType
+    1604:1605:int getLayoutDirection(android.view.View) -> getLayoutDirection
+    1982:1982:android.graphics.Matrix getMatrix(android.view.View) -> getMatrix
+    1740:1740:int getMeasuredHeightAndState(android.view.View) -> getMeasuredHeightAndState
+    1754:1754:int getMeasuredState(android.view.View) -> getMeasuredState
+    1723:1723:int getMeasuredWidthAndState(android.view.View) -> getMeasuredWidthAndState
+    2027:2028:int getMinimumHeight(android.view.View) -> getMinimumHeight
+    1993:1994:int getMinimumWidth(android.view.View) -> getMinimumWidth
+    3815:3818:int getNextClusterForwardId(android.view.View) -> getNextClusterForwardId
+    2769:2769:java.lang.String[] getOnReceiveContentMimeTypes(android.view.View) -> getOnReceiveContentMimeTypes
+    934:939:androidx.core.view.AccessibilityDelegateCompat getOrCreateAccessibilityDelegateCompat(android.view.View) -> getOrCreateAccessibilityDelegateCompat
+    571:571:int getOverScrollMode(android.view.View) -> getOverScrollMode
+    1849:1850:int getPaddingEnd(android.view.View) -> getPaddingEnd
+    1833:1834:int getPaddingStart(android.view.View) -> getPaddingStart
+    1642:1643:android.view.ViewParent getParentForAccessibility(android.view.View) -> getParentForAccessibility
+    2226:2226:float getPivotX(android.view.View) -> getPivotX
+    2255:2255:float getPivotY(android.view.View) -> getPivotY
+    2615:2616:androidx.core.view.WindowInsetsCompat getRootWindowInsets(android.view.View) -> getRootWindowInsets
+    2279:2279:float getRotation(android.view.View) -> getRotation
+    2287:2287:float getRotationX(android.view.View) -> getRotationX
+    2295:2295:float getRotationY(android.view.View) -> getRotationY
+    2303:2303:float getScaleX(android.view.View) -> getScaleX
+    2311:2311:float getScaleY(android.view.View) -> getScaleY
+    3723:3724:int getScrollIndicators(android.view.View) -> getScrollIndicators
+    1392:1392:java.lang.CharSequence getStateDescription(android.view.View) -> getStateDescription
+    2599:2602:java.util.List getSystemGestureExclusionRects(android.view.View) -> getSystemGestureExclusionRects
+    2402:2403:java.lang.String getTransitionName(android.view.View) -> getTransitionName
+    1946:1946:float getTranslationX(android.view.View) -> getTranslationX
+    1960:1960:float getTranslationY(android.view.View) -> getTranslationY
+    2366:2367:float getTranslationZ(android.view.View) -> getTranslationZ
+    2652:2663:androidx.core.view.WindowInsetsControllerCompat getWindowInsetsController(android.view.View) -> getWindowInsetsController
+    2415:2416:int getWindowSystemUiVisibility(android.view.View) -> getWindowSystemUiVisibility
+    2319:2319:float getX(android.view.View) -> getX
+    2327:2327:float getY(android.view.View) -> getY
+    3478:3479:float getZ(android.view.View) -> getZ
+    908:908:boolean hasAccessibilityDelegate(android.view.View) -> hasAccessibilityDelegate
+    3959:3962:boolean hasExplicitFocusable(android.view.View) -> hasExplicitFocusable
+    3087:3088:boolean hasNestedScrollingParent(android.view.View) -> hasNestedScrollingParent
+    3232:3237:boolean hasNestedScrollingParent(android.view.View,int) -> hasNestedScrollingParent
+    3653:3654:boolean hasOnClickListeners(android.view.View) -> hasOnClickListeners
+    2865:2866:boolean hasOverlappingRendering(android.view.View) -> hasOverlappingRendering
+    988:989:boolean hasTransientState(android.view.View) -> hasTransientState
+    4295:4296:boolean isAccessibilityHeading(android.view.View) -> isAccessibilityHeading
+    3641:3642:boolean isAttachedToWindow(android.view.View) -> isAttachedToWindow
+    3870:3873:boolean isFocusedByDefault(android.view.View) -> isFocusedByDefault
+    1179:1180:boolean isImportantForAccessibility(android.view.View) -> isImportantForAccessibility
+    895:898:boolean isImportantForAutofill(android.view.View) -> isImportantForAutofill
+    3436:3437:boolean isInLayout(android.view.View) -> isInLayout
+    3841:3844:boolean isKeyboardNavigationCluster(android.view.View) -> isKeyboardNavigationCluster
+    3447:3448:boolean isLaidOut(android.view.View) -> isLaidOut
+    3464:3465:boolean isLayoutDirectionResolved(android.view.View) -> isLayoutDirectionResolved
+    3029:3030:boolean isNestedScrollingEnabled(android.view.View) -> isNestedScrollingEnabled
+    1686:1686:boolean isOpaque(android.view.View) -> isOpaque
+    2878:2879:boolean isPaddingRelative(android.view.View) -> isPaddingRelative
+    4159:4160:boolean isScreenReaderFocusable(android.view.View) -> isScreenReaderFocusable
+    2501:2502:void jumpDrawablesToCurrentState(android.view.View) -> jumpDrawablesToCurrentState
+    3907:3910:android.view.View keyboardNavigationClusterSearch(android.view.View,android.view.View,int) -> keyboardNavigationClusterSearch
+    4408:4446:void notifyViewAccessibilityStateChangedIfNeeded(android.view.View,int) -> notifyViewAccessibilityStateChangedIfNeeded
+    3556:3584:void offsetLeftAndRight(android.view.View,int) -> offsetLeftAndRight
+    3508:3536:void offsetTopAndBottom(android.view.View,int) -> offsetTopAndBottom
+    2530:2540:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+    662:663:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    694:695:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    630:631:void onPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+    4236:4236:androidx.core.view.ViewCompat$AccessibilityViewProperty paneTitleProperty() -> paneTitleProperty
+    1201:1202:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+    2792:2802:androidx.core.view.ContentInfoCompat performReceiveContent(android.view.View,androidx.core.view.ContentInfoCompat) -> performReceiveContent
+    1017:1022:void postInvalidateOnAnimation(android.view.View) -> postInvalidateOnAnimation
+    1039:1044:void postInvalidateOnAnimation(android.view.View,int,int,int,int) -> postInvalidateOnAnimation
+    1057:1062:void postOnAnimation(android.view.View,java.lang.Runnable) -> postOnAnimation
+    1079:1084:void postOnAnimationDelayed(android.view.View,java.lang.Runnable,long) -> postOnAnimationDelayed
+    1331:1336:void removeAccessibilityAction(android.view.View,int) -> removeAccessibilityAction
+    1339:1346:void removeActionWithId(int,android.view.View) -> removeActionWithId
+    4068:4081:void removeOnUnhandledKeyEventListener(android.view.View,androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerCompat) -> removeOnUnhandledKeyEventListener
+    1305:1310:void replaceAccessibilityAction(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat,java.lang.CharSequence,androidx.core.view.accessibility.AccessibilityViewCommand) -> replaceAccessibilityAction
+    2426:2431:void requestApplyInsets(android.view.View) -> requestApplyInsets
+    1665:1673:android.view.View requireViewById(android.view.View,int) -> requireViewById
+    1706:1706:int resolveSizeAndState(int,int,int) -> resolveSizeAndState
+    3937:3940:boolean restoreDefaultFocus(android.view.View) -> restoreDefaultFocus
+    522:526:void saveAttributeDataForStyleable(android.view.View,android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int) -> saveAttributeDataForStyleable
+    4164:4164:androidx.core.view.ViewCompat$AccessibilityViewProperty screenReaderFocusableProperty() -> screenReaderFocusableProperty
+    724:729:void setAccessibilityDelegate(android.view.View,androidx.core.view.AccessibilityDelegateCompat) -> setAccessibilityDelegate
+    4312:4313:void setAccessibilityHeading(android.view.View,boolean) -> setAccessibilityHeading
+    1818:1821:void setAccessibilityLiveRegion(android.view.View,int) -> setAccessibilityLiveRegion
+    4206:4214:void setAccessibilityPaneTitle(android.view.View,java.lang.CharSequence) -> setAccessibilityPaneTitle
+    2847:2848:void setActivated(android.view.View,boolean) -> setActivated
+    2118:2119:void setAlpha(android.view.View,float) -> setAlpha
+    761:764:void setAutofillHints(android.view.View,java.lang.String[]) -> setAutofillHints
+    2891:2896:void setBackground(android.view.View,android.graphics.drawable.Drawable) -> setBackground
+    2921:2940:void setBackgroundTintList(android.view.View,android.content.res.ColorStateList) -> setBackgroundTintList
+    2968:2987:void setBackgroundTintMode(android.view.View,android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    2446:2464:void setChildrenDrawingOrderEnabled(android.view.ViewGroup,boolean) -> setChildrenDrawingOrderEnabled
+    3616:3619:void setClipBounds(android.view.View,android.graphics.Rect) -> setClipBounds
+    2334:2337:void setElevation(android.view.View,float) -> setElevation
+    2487:2488:void setFitsSystemWindows(android.view.View,boolean) -> setFitsSystemWindows
+    3889:3892:void setFocusedByDefault(android.view.View,boolean) -> setFocusedByDefault
+    1002:1005:void setHasTransientState(android.view.View,boolean) -> setHasTransientState
+    1128:1140:void setImportantForAccessibility(android.view.View,int) -> setImportantForAccessibility
+    826:829:void setImportantForAutofill(android.view.View,int) -> setImportantForAutofill
+    3855:3858:void setKeyboardNavigationCluster(android.view.View,boolean) -> setKeyboardNavigationCluster
+    1545:1548:void setLabelFor(android.view.View,int) -> setLabelFor
+    1581:1590:void setLayerPaint(android.view.View,android.graphics.Paint) -> setLayerPaint
+    1495:1496:void setLayerType(android.view.View,int,android.graphics.Paint) -> setLayerType
+    1628:1631:void setLayoutDirection(android.view.View,int) -> setLayoutDirection
+    3006:3013:void setNestedScrollingEnabled(android.view.View,boolean) -> setNestedScrollingEnabled
+    3829:3832:void setNextClusterForwardId(android.view.View,int) -> setNextClusterForwardId
+    2510:2513:void setOnApplyWindowInsetsListener(android.view.View,androidx.core.view.OnApplyWindowInsetsListener) -> setOnApplyWindowInsetsListener
+    2724:2742:void setOnReceiveContentListener(android.view.View,java.lang.String[],androidx.core.view.OnReceiveContentListener) -> setOnReceiveContentListener
+    590:591:void setOverScrollMode(android.view.View,int) -> setOverScrollMode
+    1870:1875:void setPaddingRelative(android.view.View,int,int,int,int) -> setPaddingRelative
+    2242:2243:void setPivotX(android.view.View,float) -> setPivotX
+    2271:2272:void setPivotY(android.view.View,float) -> setPivotY
+    3734:3738:void setPointerIcon(android.view.View,androidx.core.view.PointerIconCompat) -> setPointerIcon
+    2161:2162:void setRotation(android.view.View,float) -> setRotation
+    2175:2176:void setRotationX(android.view.View,float) -> setRotationX
+    2189:2190:void setRotationY(android.view.View,float) -> setRotationY
+    2831:2832:void setSaveFromParentEnabled(android.view.View,boolean) -> setSaveFromParentEnabled
+    2202:2203:void setScaleX(android.view.View,float) -> setScaleX
+    2215:2216:void setScaleY(android.view.View,float) -> setScaleY
+    4140:4141:void setScreenReaderFocusable(android.view.View,boolean) -> setScreenReaderFocusable
+    3671:3674:void setScrollIndicators(android.view.View,int) -> setScrollIndicators
+    3705:3708:void setScrollIndicators(android.view.View,int,int) -> setScrollIndicators
+    1374:1377:void setStateDescription(android.view.View,java.lang.CharSequence) -> setStateDescription
+    2584:2587:void setSystemGestureExclusionRects(android.view.View,java.util.List) -> setSystemGestureExclusionRects
+    3773:3776:void setTooltipText(android.view.View,java.lang.CharSequence) -> setTooltipText
+    2380:2388:void setTransitionName(android.view.View,java.lang.String) -> setTransitionName
+    2084:2085:void setTranslationX(android.view.View,float) -> setTranslationX
+    2101:2102:void setTranslationY(android.view.View,float) -> setTranslationY
+    2355:2358:void setTranslationZ(android.view.View,float) -> setTranslationZ
+    4449:4465:void setViewImportanceForAccessibilityIfNeeded(android.view.View) -> setViewImportanceForAccessibilityIfNeeded
+    2690:2691:void setWindowInsetsAnimationCallback(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> setWindowInsetsAnimationCallback
+    2133:2134:void setX(android.view.View,float) -> setX
+    2148:2149:void setY(android.view.View,float) -> setY
+    3497:3500:void setZ(android.view.View,float) -> setZ
+    3783:3784:boolean startDragAndDrop(android.view.View,android.content.ClipData,android.view.View$DragShadowBuilder,java.lang.Object,int) -> startDragAndDrop
+    3051:3052:boolean startNestedScroll(android.view.View,int) -> startNestedScroll
+    3198:3203:boolean startNestedScroll(android.view.View,int,int) -> startNestedScroll
+    4259:4259:androidx.core.view.ViewCompat$AccessibilityViewProperty stateDescriptionProperty() -> stateDescriptionProperty
+    3070:3075:void stopNestedScroll(android.view.View) -> stopNestedScroll
+    3215:3220:void stopNestedScroll(android.view.View,int) -> stopNestedScroll
+    3599:3602:void tickleInvalidationFlag(android.view.View) -> tickleInvalidationFlag
+    3803:3806:void updateDragShadow(android.view.View,android.view.View$DragShadowBuilder) -> updateDragShadow
+androidx.core.view.ViewCompat$1 -> androidx.core.view.ViewCompat$1:
+    2813:2813:void <init>() -> <init>
+    2816:2816:androidx.core.view.ContentInfoCompat onReceiveContent(androidx.core.view.ContentInfoCompat) -> onReceiveContent
+androidx.core.view.ViewCompat$2 -> androidx.core.view.ViewCompat$2:
+    4165:4165:void <init>(int,java.lang.Class,int) -> <init>
+    4165:4165:java.lang.Object frameworkGet(android.view.View) -> frameworkGet
+    4170:4170:java.lang.Boolean frameworkGet(android.view.View) -> frameworkGet
+    4165:4165:void frameworkSet(android.view.View,java.lang.Object) -> frameworkSet
+    4176:4177:void frameworkSet(android.view.View,java.lang.Boolean) -> frameworkSet
+    4165:4165:boolean shouldUpdate(java.lang.Object,java.lang.Object) -> shouldUpdate
+    4181:4181:boolean shouldUpdate(java.lang.Boolean,java.lang.Boolean) -> shouldUpdate
+androidx.core.view.ViewCompat$3 -> androidx.core.view.ViewCompat$3:
+    4237:4237:void <init>(int,java.lang.Class,int,int) -> <init>
+    4237:4237:java.lang.Object frameworkGet(android.view.View) -> frameworkGet
+    4242:4242:java.lang.CharSequence frameworkGet(android.view.View) -> frameworkGet
+    4237:4237:void frameworkSet(android.view.View,java.lang.Object) -> frameworkSet
+    4248:4249:void frameworkSet(android.view.View,java.lang.CharSequence) -> frameworkSet
+    4237:4237:boolean shouldUpdate(java.lang.Object,java.lang.Object) -> shouldUpdate
+    4253:4253:boolean shouldUpdate(java.lang.CharSequence,java.lang.CharSequence) -> shouldUpdate
+androidx.core.view.ViewCompat$4 -> androidx.core.view.ViewCompat$4:
+    4260:4260:void <init>(int,java.lang.Class,int,int) -> <init>
+    4260:4260:java.lang.Object frameworkGet(android.view.View) -> frameworkGet
+    4265:4265:java.lang.CharSequence frameworkGet(android.view.View) -> frameworkGet
+    4260:4260:void frameworkSet(android.view.View,java.lang.Object) -> frameworkSet
+    4271:4272:void frameworkSet(android.view.View,java.lang.CharSequence) -> frameworkSet
+    4260:4260:boolean shouldUpdate(java.lang.Object,java.lang.Object) -> shouldUpdate
+    4276:4276:boolean shouldUpdate(java.lang.CharSequence,java.lang.CharSequence) -> shouldUpdate
+androidx.core.view.ViewCompat$5 -> androidx.core.view.ViewCompat$5:
+    4317:4317:void <init>(int,java.lang.Class,int) -> <init>
+    4317:4317:java.lang.Object frameworkGet(android.view.View) -> frameworkGet
+    4322:4322:java.lang.Boolean frameworkGet(android.view.View) -> frameworkGet
+    4317:4317:void frameworkSet(android.view.View,java.lang.Object) -> frameworkSet
+    4328:4329:void frameworkSet(android.view.View,java.lang.Boolean) -> frameworkSet
+    4317:4317:boolean shouldUpdate(java.lang.Object,java.lang.Object) -> shouldUpdate
+    4333:4333:boolean shouldUpdate(java.lang.Boolean,java.lang.Boolean) -> shouldUpdate
+androidx.core.view.ViewCompat$AccessibilityPaneVisibilityManager -> androidx.core.view.ViewCompat$AccessibilityPaneVisibilityManager:
+    4470:4472:void <init>() -> <init>
+    4498:4503:void addAccessibilityPane(android.view.View) -> addAccessibilityPane
+    4514:4522:void checkPaneVisibility(android.view.View,boolean) -> checkPaneVisibility
+    4477:4482:void onGlobalLayout() -> onGlobalLayout
+    4488:4489:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    4494:4494:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+    4526:4527:void registerForLayoutCallback(android.view.View) -> registerForLayoutCallback
+    4507:4510:void removeAccessibilityPane(android.view.View) -> removeAccessibilityPane
+    4531:4532:void unregisterForLayoutCallback(android.view.View) -> unregisterForLayoutCallback
+androidx.core.view.ViewCompat$AccessibilityViewProperty -> androidx.core.view.ViewCompat$AccessibilityViewProperty:
+    4346:4348:void <init>(int,java.lang.Class,int) -> <init>
+    4351:4357:void <init>(int,java.lang.Class,int,int) -> <init>
+    4400:4402:boolean booleanNullToFalseEquals(java.lang.Boolean,java.lang.Boolean) -> booleanNullToFalseEquals
+    4389:4389:boolean extrasAvailable() -> extrasAvailable
+    4385:4385:boolean frameworkAvailable() -> frameworkAvailable
+    4374:4382:java.lang.Object get(android.view.View) -> get
+    4360:4370:void set(android.view.View,java.lang.Object) -> set
+    4393:4393:boolean shouldUpdate(java.lang.Object,java.lang.Object) -> shouldUpdate
+androidx.core.view.ViewCompat$Api21Impl -> androidx.core.view.ViewCompat$Api21Impl:
+    4722:4724:void <init>() -> <init>
+    4806:4812:void callCompatInsetAnimationCallback(android.view.WindowInsets,android.view.View) -> callCompatInsetAnimationCallback
+    4733:4739:androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,android.graphics.Rect) -> computeSystemWindowInsets
+    4728:4728:androidx.core.view.WindowInsetsCompat getRootWindowInsets(android.view.View) -> getRootWindowInsets
+    4747:4796:void setOnApplyWindowInsetsListener(android.view.View,androidx.core.view.OnApplyWindowInsetsListener) -> setOnApplyWindowInsetsListener
+androidx.core.view.ViewCompat$Api21Impl$1 -> androidx.core.view.ViewCompat$Api21Impl$1:
+    4761:4762:void <init>(android.view.View,androidx.core.view.OnApplyWindowInsetsListener) -> <init>
+    4767:4793:android.view.WindowInsets onApplyWindowInsets(android.view.View,android.view.WindowInsets) -> onApplyWindowInsets
+androidx.core.view.ViewCompat$Api23Impl -> androidx.core.view.ViewCompat$Api23Impl:
+    4817:4819:void <init>() -> <init>
+    4823:4831:androidx.core.view.WindowInsetsCompat getRootWindowInsets(android.view.View) -> getRootWindowInsets
+androidx.core.view.ViewCompat$Api29Impl -> androidx.core.view.ViewCompat$Api29Impl:
+    4837:4839:void <init>() -> <init>
+    4844:4846:void saveAttributeDataForStyleable(android.view.View,android.content.Context,int[],android.util.AttributeSet,android.content.res.TypedArray,int,int) -> saveAttributeDataForStyleable
+androidx.core.view.ViewCompat$Api30Impl -> androidx.core.view.ViewCompat$Api30Impl:
+    4851:4853:void <init>() -> <init>
+    4857:4860:androidx.core.view.WindowInsetsControllerCompat getWindowInsetsController(android.view.View) -> getWindowInsetsController
+androidx.core.view.ViewCompat$CompatImplApi28 -> androidx.core.view.ViewCompat$CompatImplApi28:
+    3988:3989:void <init>() -> <init>
+    3995:4012:void addOnUnhandledKeyEventListener(android.view.View,androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerCompat) -> addOnUnhandledKeyEventListener
+    4018:4028:void removeOnUnhandledKeyEventListener(android.view.View,androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerCompat) -> removeOnUnhandledKeyEventListener
+androidx.core.view.ViewCompat$CompatImplApi28$1 -> androidx.core.view.ViewCompat$CompatImplApi28$1:
+    4003:4003:void <init>(androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerCompat) -> <init>
+    4006:4006:boolean onUnhandledKeyEvent(android.view.View,android.view.KeyEvent) -> onUnhandledKeyEvent
+androidx.core.view.ViewCompat$UnhandledKeyEventManager -> androidx.core.view.ViewCompat$UnhandledKeyEventManager:
+    4539:4539:void <clinit>() -> <clinit>
+    4535:4554:void <init>() -> <init>
+    4564:4570:androidx.core.view.ViewCompat$UnhandledKeyEventManager at(android.view.View) -> at
+    4574:4588:boolean dispatch(android.view.View,android.view.KeyEvent) -> dispatch
+    4593:4610:android.view.View dispatchInOrder(android.view.View,android.view.KeyEvent) -> dispatchInOrder
+    4557:4560:android.util.SparseArray getCapturedKeys() -> getCapturedKeys
+    4652:4662:boolean onUnhandledKeyEvent(android.view.View,android.view.KeyEvent) -> onUnhandledKeyEvent
+    4619:4647:boolean preDispatch(android.view.KeyEvent) -> preDispatch
+    4692:4717:void recalcViewsWithUnhandled() -> recalcViewsWithUnhandled
+    4670:4678:void registerListeningView(android.view.View) -> registerListeningView
+    4681:4689:void unregisterListeningView(android.view.View) -> unregisterListeningView
+androidx.core.view.ViewConfigurationCompat -> androidx.core.view.ViewConfigurationCompat:
+    39:47:void <clinit>() -> <clinit>
+    150:150:void <init>() -> <init>
+    106:119:float getLegacyScrollFactor(android.view.ViewConfiguration,android.content.Context) -> getLegacyScrollFactor
+    81:84:float getScaledHorizontalScrollFactor(android.view.ViewConfiguration,android.content.Context) -> getScaledHorizontalScrollFactor
+    128:131:int getScaledHoverSlop(android.view.ViewConfiguration) -> getScaledHoverSlop
+    57:57:int getScaledPagingTouchSlop(android.view.ViewConfiguration) -> getScaledPagingTouchSlop
+    98:101:float getScaledVerticalScrollFactor(android.view.ViewConfiguration,android.content.Context) -> getScaledVerticalScrollFactor
+    68:68:boolean hasPermanentMenuKey(android.view.ViewConfiguration) -> hasPermanentMenuKey
+    141:147:boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration,android.content.Context) -> shouldShowMenuShortcutsWhenKeyboardPresent
+androidx.core.view.ViewGroupCompat -> androidx.core.view.ViewGroupCompat:
+    52:52:void <init>() -> <init>
+    114:115:int getLayoutMode(android.view.ViewGroup) -> getLayoutMode
+    181:182:int getNestedScrollAxes(android.view.ViewGroup) -> getNestedScrollAxes
+    157:158:boolean isTransitionGroup(android.view.ViewGroup) -> isTransitionGroup
+    75:75:boolean onRequestSendAccessibilityEvent(android.view.ViewGroup,android.view.View,android.view.accessibility.AccessibilityEvent) -> onRequestSendAccessibilityEvent
+    130:133:void setLayoutMode(android.view.ViewGroup,int) -> setLayoutMode
+    98:99:void setMotionEventSplittingEnabled(android.view.ViewGroup,boolean) -> setMotionEventSplittingEnabled
+    144:149:void setTransitionGroup(android.view.ViewGroup,boolean) -> setTransitionGroup
+androidx.core.view.ViewParentCompat -> androidx.core.view.ViewParentCompat:
+    41:41:void <init>() -> <init>
+    498:504:int[] getTempNestedScrollConsumed() -> getTempNestedScrollConsumed
+    492:495:void notifySubtreeAccessibilityStateChanged(android.view.ViewParent,android.view.View,android.view.View,int) -> notifySubtreeAccessibilityStateChanged
+    424:435:boolean onNestedFling(android.view.ViewParent,android.view.View,float,float,boolean) -> onNestedFling
+    461:472:boolean onNestedPreFling(android.view.ViewParent,android.view.View,float,float) -> onNestedPreFling
+    178:179:void onNestedPreScroll(android.view.ViewParent,android.view.View,int,int,int[]) -> onNestedPreScroll
+    384:400:void onNestedPreScroll(android.view.ViewParent,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    132:134:void onNestedScroll(android.view.ViewParent,android.view.View,int,int,int,int) -> onNestedScroll
+    160:162:void onNestedScroll(android.view.ViewParent,android.view.View,int,int,int,int,int) -> onNestedScroll
+    329:358:void onNestedScroll(android.view.ViewParent,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    102:103:void onNestedScrollAccepted(android.view.ViewParent,android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    248:266:void onNestedScrollAccepted(android.view.ViewParent,android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    85:85:boolean onStartNestedScroll(android.view.ViewParent,android.view.View,android.view.View,int) -> onStartNestedScroll
+    207:225:boolean onStartNestedScroll(android.view.ViewParent,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    114:115:void onStopNestedScroll(android.view.ViewParent,android.view.View) -> onStopNestedScroll
+    282:298:void onStopNestedScroll(android.view.ViewParent,android.view.View,int) -> onStopNestedScroll
+    66:66:boolean requestSendAccessibilityEvent(android.view.ViewParent,android.view.View,android.view.accessibility.AccessibilityEvent) -> requestSendAccessibilityEvent
+androidx.core.view.ViewPropertyAnimatorCompat -> androidx.core.view.ViewPropertyAnimatorCompat:
+    30:39:void <init>(android.view.View) -> <init>
+    138:141:androidx.core.view.ViewPropertyAnimatorCompat alpha(float) -> alpha
+    153:156:androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float) -> alphaBy
+    464:467:void cancel() -> cancel
+    237:240:long getDuration() -> getDuration
+    267:272:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    302:305:long getStartDelay() -> getStartDelay
+    318:321:androidx.core.view.ViewPropertyAnimatorCompat rotation(float) -> rotation
+    333:336:androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float) -> rotationBy
+    348:351:androidx.core.view.ViewPropertyAnimatorCompat rotationX(float) -> rotationX
+    363:366:androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float) -> rotationXBy
+    378:381:androidx.core.view.ViewPropertyAnimatorCompat rotationY(float) -> rotationY
+    393:396:androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float) -> rotationYBy
+    408:411:androidx.core.view.ViewPropertyAnimatorCompat scaleX(float) -> scaleX
+    423:426:androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float) -> scaleXBy
+    438:441:androidx.core.view.ViewPropertyAnimatorCompat scaleY(float) -> scaleY
+    453:456:androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float) -> scaleYBy
+    123:126:androidx.core.view.ViewPropertyAnimatorCompat setDuration(long) -> setDuration
+    254:257:androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator) -> setInterpolator
+    729:737:androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener) -> setListener
+    741:761:void setListenerInternal(android.view.View,androidx.core.view.ViewPropertyAnimatorListener) -> setListenerInternal
+    286:289:androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long) -> setStartDelay
+    776:790:androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener) -> setUpdateListener
+    644:647:void start() -> start
+    168:171:androidx.core.view.ViewPropertyAnimatorCompat translationX(float) -> translationX
+    538:541:androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float) -> translationXBy
+    183:186:androidx.core.view.ViewPropertyAnimatorCompat translationY(float) -> translationY
+    553:556:androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float) -> translationYBy
+    589:594:androidx.core.view.ViewPropertyAnimatorCompat translationZ(float) -> translationZ
+    570:575:androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float) -> translationZBy
+    216:224:androidx.core.view.ViewPropertyAnimatorCompat withEndAction(java.lang.Runnable) -> withEndAction
+    680:688:androidx.core.view.ViewPropertyAnimatorCompat withLayer() -> withLayer
+    708:716:androidx.core.view.ViewPropertyAnimatorCompat withStartAction(java.lang.Runnable) -> withStartAction
+    478:481:androidx.core.view.ViewPropertyAnimatorCompat x(float) -> x
+    493:496:androidx.core.view.ViewPropertyAnimatorCompat xBy(float) -> xBy
+    508:511:androidx.core.view.ViewPropertyAnimatorCompat y(float) -> y
+    523:526:androidx.core.view.ViewPropertyAnimatorCompat yBy(float) -> yBy
+    608:613:androidx.core.view.ViewPropertyAnimatorCompat z(float) -> z
+    627:632:androidx.core.view.ViewPropertyAnimatorCompat zBy(float) -> zBy
+androidx.core.view.ViewPropertyAnimatorCompat$1 -> androidx.core.view.ViewPropertyAnimatorCompat$1:
+    742:742:void <init>(androidx.core.view.ViewPropertyAnimatorCompat,androidx.core.view.ViewPropertyAnimatorListener,android.view.View) -> <init>
+    745:746:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    750:751:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    755:756:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.core.view.ViewPropertyAnimatorCompat$2 -> androidx.core.view.ViewPropertyAnimatorCompat$2:
+    780:780:void <init>(androidx.core.view.ViewPropertyAnimatorCompat,androidx.core.view.ViewPropertyAnimatorUpdateListener,android.view.View) -> <init>
+    783:784:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+androidx.core.view.ViewPropertyAnimatorCompat$ViewPropertyAnimatorListenerApi14 -> androidx.core.view.ViewPropertyAnimatorCompat$ViewPropertyAnimatorListenerApi14:
+    45:47:void <init>(androidx.core.view.ViewPropertyAnimatorCompat) -> <init>
+    101:109:void onAnimationCancel(android.view.View) -> onAnimationCancel
+    75:97:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    52:70:void onAnimationStart(android.view.View) -> onAnimationStart
+androidx.core.view.ViewPropertyAnimatorListenerAdapter -> androidx.core.view.ViewPropertyAnimatorListenerAdapter:
+    27:27:void <init>() -> <init>
+    48:48:void onAnimationCancel(android.view.View) -> onAnimationCancel
+    41:41:void onAnimationEnd(android.view.View) -> onAnimationEnd
+    34:34:void onAnimationStart(android.view.View) -> onAnimationStart
+androidx.core.view.WindowCompat -> androidx.core.view.WindowCompat:
+    68:68:void <init>() -> <init>
+    135:138:androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window,android.view.View) -> getInsetsController
+    88:96:android.view.View requireViewById(android.view.Window,int) -> requireViewById
+    117:122:void setDecorFitsSystemWindows(android.view.Window,boolean) -> setDecorFitsSystemWindows
+androidx.core.view.WindowCompat$Impl16 -> androidx.core.view.WindowCompat$Impl16:
+    143:143:void <init>() -> <init>
+    146:155:void setDecorFitsSystemWindows(android.view.Window,boolean) -> setDecorFitsSystemWindows
+androidx.core.view.WindowCompat$Impl30 -> androidx.core.view.WindowCompat$Impl30:
+    159:159:void <init>() -> <init>
+    166:171:androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window) -> getInsetsController
+    162:163:void setDecorFitsSystemWindows(android.view.Window,boolean) -> setDecorFitsSystemWindows
+androidx.core.view.WindowInsetsAnimationCompat -> androidx.core.view.WindowInsetsAnimationCompat:
+    74:82:void <init>(int,android.view.animation.Interpolator,long) -> <init>
+    86:90:void <init>(android.view.WindowInsetsAnimation) -> <init>
+    194:194:float getAlpha() -> getAlpha
+    168:168:long getDurationMillis() -> getDurationMillis
+    121:121:float getFraction() -> getFraction
+    148:148:float getInterpolatedFraction() -> getInterpolatedFraction
+    160:160:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    97:97:int getTypeMask() -> getTypeMask
+    209:210:void setAlpha(float) -> setAlpha
+    524:530:void setCallback(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> setCallback
+    184:185:void setFraction(float) -> setFraction
+    329:329:androidx.core.view.WindowInsetsAnimationCompat toWindowInsetsAnimationCompat(android.view.WindowInsetsAnimation) -> toWindowInsetsAnimationCompat
+androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat -> androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat:
+    220:223:void <init>(androidx.core.graphics.Insets,androidx.core.graphics.Insets) -> <init>
+    226:229:void <init>(android.view.WindowInsetsAnimation$Bounds) -> <init>
+    252:252:androidx.core.graphics.Insets getLowerBound() -> getLowerBound
+    276:276:androidx.core.graphics.Insets getUpperBound() -> getUpperBound
+    292:297:androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat inset(androidx.core.graphics.Insets) -> inset
+    312:312:android.view.WindowInsetsAnimation$Bounds toBounds() -> toBounds
+    322:322:androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat toBoundsCompat(android.view.WindowInsetsAnimation$Bounds) -> toBoundsCompat
+    303:303:java.lang.String toString() -> toString
+androidx.core.view.WindowInsetsAnimationCompat$Callback -> androidx.core.view.WindowInsetsAnimationCompat$Callback:
+    371:373:void <init>(int) -> <init>
+    396:396:int getDispatchMode() -> getDispatchMode
+    520:520:void onEnd(androidx.core.view.WindowInsetsAnimationCompat) -> onEnd
+    441:441:void onPrepare(androidx.core.view.WindowInsetsAnimationCompat) -> onPrepare
+    488:488:androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat onStart(androidx.core.view.WindowInsetsAnimationCompat,androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat) -> onStart
+androidx.core.view.WindowInsetsAnimationCompat$Impl -> androidx.core.view.WindowInsetsAnimationCompat$Impl:
+    541:545:void <init>(int,android.view.animation.Interpolator,long) -> <init>
+    572:572:float getAlpha() -> getAlpha
+    568:568:long getDurationMillis() -> getDurationMillis
+    552:552:float getFraction() -> getFraction
+    556:559:float getInterpolatedFraction() -> getInterpolatedFraction
+    564:564:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    548:548:int getTypeMask() -> getTypeMask
+    580:581:void setAlpha(float) -> setAlpha
+    576:577:void setFraction(float) -> setFraction
+androidx.core.view.WindowInsetsAnimationCompat$Impl21 -> androidx.core.view.WindowInsetsAnimationCompat$Impl21:
+    589:590:void <init>(int,android.view.animation.Interpolator,long) -> <init>
+    648:655:int buildAnimationMask(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat) -> buildAnimationMask
+    628:642:androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat computeAnimationBounds(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat,int) -> computeAnimationBounds
+    621:621:android.view.View$OnApplyWindowInsetsListener createProxyListener(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> createProxyListener
+    888:902:void dispatchOnEnd(android.view.View,androidx.core.view.WindowInsetsAnimationCompat) -> dispatchOnEnd
+    827:845:void dispatchOnPrepare(android.view.View,androidx.core.view.WindowInsetsAnimationCompat,android.view.WindowInsets,boolean) -> dispatchOnPrepare
+    869:884:void dispatchOnProgress(android.view.View,androidx.core.view.WindowInsetsCompat,java.util.List) -> dispatchOnProgress
+    850:864:void dispatchOnStart(android.view.View,androidx.core.view.WindowInsetsAnimationCompat,androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat) -> dispatchOnStart
+    819:822:android.view.WindowInsets forwardToViewIfNeeded(android.view.View,android.view.WindowInsets) -> forwardToViewIfNeeded
+    906:912:androidx.core.view.WindowInsetsAnimationCompat$Callback getCallback(android.view.View) -> getCallback
+    662:682:androidx.core.view.WindowInsetsCompat interpolateInsets(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat,float,int) -> interpolateInsets
+    595:616:void setCallback(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> setCallback
+androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener -> androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener:
+    699:707:void <init>(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> <init>
+    712:807:android.view.WindowInsets onApplyWindowInsets(android.view.View,android.view.WindowInsets) -> onApplyWindowInsets
+androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$1 -> androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$1:
+    772:772:void <init>(androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener,androidx.core.view.WindowInsetsAnimationCompat,androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat,int,android.view.View) -> <init>
+    775:783:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$2 -> androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$2:
+    786:786:void <init>(androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener,androidx.core.view.WindowInsetsAnimationCompat,android.view.View) -> <init>
+    790:792:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$3 -> androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener$3:
+    798:798:void <init>(androidx.core.view.WindowInsetsAnimationCompat$Impl21$Impl21OnApplyWindowInsetsListener,android.view.View,androidx.core.view.WindowInsetsAnimationCompat,androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat,android.animation.ValueAnimator) -> <init>
+    801:803:void run() -> run
+androidx.core.view.WindowInsetsAnimationCompat$Impl30 -> androidx.core.view.WindowInsetsAnimationCompat$Impl30:
+    923:925:void <init>(android.view.WindowInsetsAnimation) -> <init>
+    928:929:void <init>(int,android.view.animation.Interpolator,long) -> <init>
+    1043:1044:android.view.WindowInsetsAnimation$Bounds createPlatformBounds(androidx.core.view.WindowInsetsAnimationCompat$BoundsCompat) -> createPlatformBounds
+    944:944:long getDurationMillis() -> getDurationMillis
+    949:949:float getFraction() -> getFraction
+    1054:1054:androidx.core.graphics.Insets getHigherBounds(android.view.WindowInsetsAnimation$Bounds) -> getHigherBounds
+    959:959:float getInterpolatedFraction() -> getInterpolatedFraction
+    939:939:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    1049:1049:androidx.core.graphics.Insets getLowerBounds(android.view.WindowInsetsAnimation$Bounds) -> getLowerBounds
+    933:933:int getTypeMask() -> getTypeMask
+    1036:1038:void setCallback(android.view.View,androidx.core.view.WindowInsetsAnimationCompat$Callback) -> setCallback
+    954:955:void setFraction(float) -> setFraction
+androidx.core.view.WindowInsetsAnimationCompat$Impl30$ProxyCallback -> androidx.core.view.WindowInsetsAnimationCompat$Impl30$ProxyCallback:
+    968:974:void <init>(androidx.core.view.WindowInsetsAnimationCompat$Callback) -> <init>
+    980:986:androidx.core.view.WindowInsetsAnimationCompat getWindowInsetsAnimationCompat(android.view.WindowInsetsAnimation) -> getWindowInsetsAnimationCompat
+    1029:1031:void onEnd(android.view.WindowInsetsAnimation) -> onEnd
+    991:992:void onPrepare(android.view.WindowInsetsAnimation) -> onPrepare
+    1008:1024:android.view.WindowInsets onProgress(android.view.WindowInsets,java.util.List) -> onProgress
+    999:1001:android.view.WindowInsetsAnimation$Bounds onStart(android.view.WindowInsetsAnimation,android.view.WindowInsetsAnimation$Bounds) -> onStart
+androidx.core.view.WindowInsetsAnimationControllerCompat -> androidx.core.view.WindowInsetsAnimationControllerCompat:
+    46:53:void <init>() -> <init>
+    57:59:void <init>(android.view.WindowInsetsAnimationController) -> <init>
+    199:200:void finish(boolean) -> finish
+    134:134:float getCurrentAlpha() -> getCurrentAlpha
+    125:125:float getCurrentFraction() -> getCurrentFraction
+    110:110:androidx.core.graphics.Insets getCurrentInsets() -> getCurrentInsets
+    76:76:androidx.core.graphics.Insets getHiddenStateInsets() -> getHiddenStateInsets
+    95:95:androidx.core.graphics.Insets getShownStateInsets() -> getShownStateInsets
+    142:142:int getTypes() -> getTypes
+    235:235:boolean isCancelled() -> isCancelled
+    223:223:boolean isFinished() -> isFinished
+    213:213:boolean isReady() -> isReady
+    184:185:void setInsetsAndAlpha(androidx.core.graphics.Insets,float,float) -> setInsetsAndAlpha
+androidx.core.view.WindowInsetsAnimationControllerCompat$Impl -> androidx.core.view.WindowInsetsAnimationControllerCompat$Impl:
+    239:241:void <init>() -> <init>
+    278:278:void finish(boolean) -> finish
+    264:264:float getCurrentAlpha() -> getCurrentAlpha
+    260:260:float getCurrentFraction() -> getCurrentFraction
+    255:255:androidx.core.graphics.Insets getCurrentInsets() -> getCurrentInsets
+    245:245:androidx.core.graphics.Insets getHiddenStateInsets() -> getHiddenStateInsets
+    250:250:androidx.core.graphics.Insets getShownStateInsets() -> getShownStateInsets
+    269:269:int getTypes() -> getTypes
+    289:289:boolean isCancelled() -> isCancelled
+    285:285:boolean isFinished() -> isFinished
+    281:281:boolean isReady() -> isReady
+    275:275:void setInsetsAndAlpha(androidx.core.graphics.Insets,float,float) -> setInsetsAndAlpha
+androidx.core.view.WindowInsetsAnimationControllerCompat$Impl30 -> androidx.core.view.WindowInsetsAnimationControllerCompat$Impl30:
+    298:300:void <init>(android.view.WindowInsetsAnimationController) -> <init>
+    345:346:void finish(boolean) -> finish
+    327:327:float getCurrentAlpha() -> getCurrentAlpha
+    322:322:float getCurrentFraction() -> getCurrentFraction
+    317:317:androidx.core.graphics.Insets getCurrentInsets() -> getCurrentInsets
+    305:305:androidx.core.graphics.Insets getHiddenStateInsets() -> getHiddenStateInsets
+    311:311:androidx.core.graphics.Insets getShownStateInsets() -> getShownStateInsets
+    332:332:int getTypes() -> getTypes
+    360:360:boolean isCancelled() -> isCancelled
+    355:355:boolean isFinished() -> isFinished
+    350:350:boolean isReady() -> isReady
+    337:341:void setInsetsAndAlpha(androidx.core.graphics.Insets,float,float) -> setInsetsAndAlpha
+androidx.core.view.WindowInsetsCompat -> androidx.core.view.WindowInsetsCompat:
+    78:83:void <clinit>() -> <clinit>
+    88:102:void <init>(android.view.WindowInsets) -> <init>
+    109:131:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    506:506:androidx.core.view.WindowInsetsCompat consumeDisplayCutout() -> consumeDisplayCutout
+    477:477:androidx.core.view.WindowInsetsCompat consumeStableInsets() -> consumeStableInsets
+    319:319:androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets() -> consumeSystemWindowInsets
+    2104:2105:void copyRootViewBounds(android.view.View) -> copyRootViewBounds
+    718:725:boolean equals(java.lang.Object) -> equals
+    490:490:androidx.core.view.DisplayCutoutCompat getDisplayCutout() -> getDisplayCutout
+    668:668:androidx.core.graphics.Insets getInsets(int) -> getInsets
+    696:696:androidx.core.graphics.Insets getInsetsIgnoringVisibility(int) -> getInsetsIgnoringVisibility
+    566:566:androidx.core.graphics.Insets getMandatorySystemGestureInsets() -> getMandatorySystemGestureInsets
+    441:441:int getStableInsetBottom() -> getStableInsetBottom
+    401:401:int getStableInsetLeft() -> getStableInsetLeft
+    421:421:int getStableInsetRight() -> getStableInsetRight
+    381:381:int getStableInsetTop() -> getStableInsetTop
+    549:549:androidx.core.graphics.Insets getStableInsets() -> getStableInsets
+    606:606:androidx.core.graphics.Insets getSystemGestureInsets() -> getSystemGestureInsets
+    239:239:int getSystemWindowInsetBottom() -> getSystemWindowInsetBottom
+    191:191:int getSystemWindowInsetLeft() -> getSystemWindowInsetLeft
+    223:223:int getSystemWindowInsetRight() -> getSystemWindowInsetRight
+    207:207:int getSystemWindowInsetTop() -> getSystemWindowInsetTop
+    526:526:androidx.core.graphics.Insets getSystemWindowInsets() -> getSystemWindowInsets
+    585:585:androidx.core.graphics.Insets getTappableElementInsets() -> getTappableElementInsets
+    267:269:boolean hasInsets() -> hasInsets
+    461:461:boolean hasStableInsets() -> hasStableInsets
+    256:256:boolean hasSystemWindowInsets() -> hasSystemWindowInsets
+    730:730:int hashCode() -> hashCode
+    626:626:androidx.core.view.WindowInsetsCompat inset(androidx.core.graphics.Insets) -> inset
+    651:651:androidx.core.view.WindowInsetsCompat inset(int,int,int,int) -> inset
+    1334:1341:androidx.core.graphics.Insets insetInsets(androidx.core.graphics.Insets,int,int,int,int) -> insetInsets
+    286:286:boolean isConsumed() -> isConsumed
+    302:302:boolean isRound() -> isRound
+    713:713:boolean isVisible(int) -> isVisible
+    340:342:androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int,int,int,int) -> replaceSystemWindowInsets
+    360:362:androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect) -> replaceSystemWindowInsets
+    1699:1700:void setOverriddenInsets(androidx.core.graphics.Insets[]) -> setOverriddenInsets
+    2100:2101:void setRootViewData(androidx.core.graphics.Insets) -> setRootViewData
+    2096:2097:void setRootWindowInsets(androidx.core.view.WindowInsetsCompat) -> setRootWindowInsets
+    1796:1797:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+    741:741:android.view.WindowInsets toWindowInsets() -> toWindowInsets
+    148:148:androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets) -> toWindowInsetsCompat
+    168:175:androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets,android.view.View) -> toWindowInsetsCompat
+androidx.core.view.WindowInsetsCompat$Api21ReflectionHolder -> androidx.core.view.WindowInsetsCompat$Api21ReflectionHolder:
+    2121:2132:void <clinit>() -> <clinit>
+    2110:2112:void <init>() -> <init>
+    2137:2163:androidx.core.view.WindowInsetsCompat getRootWindowInsets(android.view.View) -> getRootWindowInsets
+androidx.core.view.WindowInsetsCompat$Builder -> androidx.core.view.WindowInsetsCompat$Builder:
+    1396:1406:void <init>() -> <init>
+    1413:1423:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    1610:1610:androidx.core.view.WindowInsetsCompat build() -> build
+    1599:1600:androidx.core.view.WindowInsetsCompat$Builder setDisplayCutout(androidx.core.view.DisplayCutoutCompat) -> setDisplayCutout
+    1521:1522:androidx.core.view.WindowInsetsCompat$Builder setInsets(int,androidx.core.graphics.Insets) -> setInsets
+    1547:1548:androidx.core.view.WindowInsetsCompat$Builder setInsetsIgnoringVisibility(int,androidx.core.graphics.Insets) -> setInsetsIgnoringVisibility
+    1484:1485:androidx.core.view.WindowInsetsCompat$Builder setMandatorySystemGestureInsets(androidx.core.graphics.Insets) -> setMandatorySystemGestureInsets
+    1584:1585:androidx.core.view.WindowInsetsCompat$Builder setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+    1459:1460:androidx.core.view.WindowInsetsCompat$Builder setSystemGestureInsets(androidx.core.graphics.Insets) -> setSystemGestureInsets
+    1439:1440:androidx.core.view.WindowInsetsCompat$Builder setSystemWindowInsets(androidx.core.graphics.Insets) -> setSystemWindowInsets
+    1503:1504:androidx.core.view.WindowInsetsCompat$Builder setTappableElementInsets(androidx.core.graphics.Insets) -> setTappableElementInsets
+    1561:1562:androidx.core.view.WindowInsetsCompat$Builder setVisible(int,boolean) -> setVisible
+androidx.core.view.WindowInsetsCompat$BuilderImpl -> androidx.core.view.WindowInsetsCompat$BuilderImpl:
+    1620:1621:void <init>() -> <init>
+    1623:1625:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    1669:1689:void applyInsetTypes() -> applyInsetTypes
+    1693:1694:androidx.core.view.WindowInsetsCompat build() -> build
+    1637:1637:void setDisplayCutout(androidx.core.view.DisplayCutoutCompat) -> setDisplayCutout
+    1641:1650:void setInsets(int,androidx.core.graphics.Insets) -> setInsets
+    1653:1659:void setInsetsIgnoringVisibility(int,androidx.core.graphics.Insets) -> setInsetsIgnoringVisibility
+    1631:1631:void setMandatorySystemGestureInsets(androidx.core.graphics.Insets) -> setMandatorySystemGestureInsets
+    1635:1635:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+    1629:1629:void setSystemGestureInsets(androidx.core.graphics.Insets) -> setSystemGestureInsets
+    1627:1627:void setSystemWindowInsets(androidx.core.graphics.Insets) -> setSystemWindowInsets
+    1633:1633:void setTappableElementInsets(androidx.core.graphics.Insets) -> setTappableElementInsets
+    1661:1661:void setVisible(int,boolean) -> setVisible
+androidx.core.view.WindowInsetsCompat$BuilderImpl20 -> androidx.core.view.WindowInsetsCompat$BuilderImpl20:
+    1705:1708:void <clinit>() -> <clinit>
+    1713:1715:void <init>() -> <init>
+    1717:1719:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    1737:1742:androidx.core.view.WindowInsetsCompat build() -> build
+    1753:1791:android.view.WindowInsets createWindowInsetsInstance() -> createWindowInsetsInstance
+    1731:1732:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+    1723:1727:void setSystemWindowInsets(androidx.core.graphics.Insets) -> setSystemWindowInsets
+androidx.core.view.WindowInsetsCompat$BuilderImpl29 -> androidx.core.view.WindowInsetsCompat$BuilderImpl29:
+    1803:1805:void <init>() -> <init>
+    1807:1812:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    1847:1851:androidx.core.view.WindowInsetsCompat build() -> build
+    1841:1842:void setDisplayCutout(androidx.core.view.DisplayCutoutCompat) -> setDisplayCutout
+    1826:1827:void setMandatorySystemGestureInsets(androidx.core.graphics.Insets) -> setMandatorySystemGestureInsets
+    1836:1837:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+    1821:1822:void setSystemGestureInsets(androidx.core.graphics.Insets) -> setSystemGestureInsets
+    1816:1817:void setSystemWindowInsets(androidx.core.graphics.Insets) -> setSystemWindowInsets
+    1831:1832:void setTappableElementInsets(androidx.core.graphics.Insets) -> setTappableElementInsets
+androidx.core.view.WindowInsetsCompat$BuilderImpl30 -> androidx.core.view.WindowInsetsCompat$BuilderImpl30:
+    1858:1859:void <init>() -> <init>
+    1862:1863:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    1867:1871:void setInsets(int,androidx.core.graphics.Insets) -> setInsets
+    1875:1879:void setInsetsIgnoringVisibility(int,androidx.core.graphics.Insets) -> setInsetsIgnoringVisibility
+    1883:1884:void setVisible(int,boolean) -> setVisible
+androidx.core.view.WindowInsetsCompat$Impl -> androidx.core.view.WindowInsetsCompat$Impl:
+    746:750:void <clinit>() -> <clinit>
+    754:756:void <init>(androidx.core.view.WindowInsetsCompat) -> <init>
+    783:783:androidx.core.view.WindowInsetsCompat consumeDisplayCutout() -> consumeDisplayCutout
+    773:773:androidx.core.view.WindowInsetsCompat consumeStableInsets() -> consumeStableInsets
+    768:768:androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets() -> consumeSystemWindowInsets
+    863:863:void copyRootViewBounds(android.view.View) -> copyRootViewBounds
+    866:866:void copyWindowDataInto(androidx.core.view.WindowInsetsCompat) -> copyWindowDataInto
+    839:846:boolean equals(java.lang.Object) -> equals
+    778:778:androidx.core.view.DisplayCutoutCompat getDisplayCutout() -> getDisplayCutout
+    821:821:androidx.core.graphics.Insets getInsets(int) -> getInsets
+    826:829:androidx.core.graphics.Insets getInsetsIgnoringVisibility(int) -> getInsetsIgnoringVisibility
+    805:805:androidx.core.graphics.Insets getMandatorySystemGestureInsets() -> getMandatorySystemGestureInsets
+    793:793:androidx.core.graphics.Insets getStableInsets() -> getStableInsets
+    799:799:androidx.core.graphics.Insets getSystemGestureInsets() -> getSystemGestureInsets
+    788:788:androidx.core.graphics.Insets getSystemWindowInsets() -> getSystemWindowInsets
+    811:811:androidx.core.graphics.Insets getTappableElementInsets() -> getTappableElementInsets
+    852:853:int hashCode() -> hashCode
+    816:816:androidx.core.view.WindowInsetsCompat inset(int,int,int,int) -> inset
+    763:763:boolean isConsumed() -> isConsumed
+    759:759:boolean isRound() -> isRound
+    833:833:boolean isVisible(int) -> isVisible
+    869:869:void setOverriddenInsets(androidx.core.graphics.Insets[]) -> setOverriddenInsets
+    860:860:void setRootViewData(androidx.core.graphics.Insets) -> setRootViewData
+    857:857:void setRootWindowInsets(androidx.core.view.WindowInsetsCompat) -> setRootWindowInsets
+    872:872:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+androidx.core.view.WindowInsetsCompat$Impl20 -> androidx.core.view.WindowInsetsCompat$Impl20:
+    878:878:void <clinit>() -> <clinit>
+    892:900:void <init>(androidx.core.view.WindowInsetsCompat,android.view.WindowInsets) -> <init>
+    903:904:void <init>(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat$Impl20) -> <init>
+    1110:1115:void copyRootViewBounds(android.view.View) -> copyRootViewBounds
+    1085:1087:void copyWindowDataInto(androidx.core.view.WindowInsetsCompat) -> copyWindowDataInto
+    1184:1186:boolean equals(java.lang.Object) -> equals
+    914:914:androidx.core.graphics.Insets getInsets(int) -> getInsets
+    940:947:androidx.core.graphics.Insets getInsets(int,boolean) -> getInsets
+    952:1041:androidx.core.graphics.Insets getInsetsForType(int,boolean) -> getInsetsForType
+    920:920:androidx.core.graphics.Insets getInsetsIgnoringVisibility(int) -> getInsetsIgnoringVisibility
+    1101:1104:androidx.core.graphics.Insets getRootStableInsets() -> getRootStableInsets
+    1063:1070:androidx.core.graphics.Insets getSystemWindowInsets() -> getSystemWindowInsets
+    1125:1157:androidx.core.graphics.Insets getVisibleInsets(android.view.View) -> getVisibleInsets
+    1077:1080:androidx.core.view.WindowInsetsCompat inset(int,int,int,int) -> inset
+    908:908:boolean isRound() -> isRound
+    1046:1056:boolean isTypeVisible(int) -> isTypeVisible
+    926:934:boolean isVisible(int) -> isVisible
+    1168:1180:void loadReflectionField() -> loadReflectionField
+    1162:1163:void setOverriddenInsets(androidx.core.graphics.Insets[]) -> setOverriddenInsets
+    1096:1097:void setRootViewData(androidx.core.graphics.Insets) -> setRootViewData
+    1091:1092:void setRootWindowInsets(androidx.core.view.WindowInsetsCompat) -> setRootWindowInsets
+androidx.core.view.WindowInsetsCompat$Impl21 -> androidx.core.view.WindowInsetsCompat$Impl21:
+    1192:1196:void <init>(androidx.core.view.WindowInsetsCompat,android.view.WindowInsets) -> <init>
+    1192:1201:void <init>(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat$Impl21) -> <init>
+    1211:1211:androidx.core.view.WindowInsetsCompat consumeStableInsets() -> consumeStableInsets
+    1217:1217:androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets() -> consumeSystemWindowInsets
+    1223:1230:androidx.core.graphics.Insets getStableInsets() -> getStableInsets
+    1205:1205:boolean isConsumed() -> isConsumed
+    1235:1236:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+androidx.core.view.WindowInsetsCompat$Impl28 -> androidx.core.view.WindowInsetsCompat$Impl28:
+    1243:1244:void <init>(androidx.core.view.WindowInsetsCompat,android.view.WindowInsets) -> <init>
+    1247:1248:void <init>(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat$Impl28) -> <init>
+    1259:1259:androidx.core.view.WindowInsetsCompat consumeDisplayCutout() -> consumeDisplayCutout
+    1264:1269:boolean equals(java.lang.Object) -> equals
+    1253:1253:androidx.core.view.DisplayCutoutCompat getDisplayCutout() -> getDisplayCutout
+    1274:1274:int hashCode() -> hashCode
+androidx.core.view.WindowInsetsCompat$Impl29 -> androidx.core.view.WindowInsetsCompat$Impl29:
+    1281:1287:void <init>(androidx.core.view.WindowInsetsCompat,android.view.WindowInsets) -> <init>
+    1281:1291:void <init>(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat$Impl29) -> <init>
+    1305:1309:androidx.core.graphics.Insets getMandatorySystemGestureInsets() -> getMandatorySystemGestureInsets
+    1296:1299:androidx.core.graphics.Insets getSystemGestureInsets() -> getSystemGestureInsets
+    1315:1318:androidx.core.graphics.Insets getTappableElementInsets() -> getTappableElementInsets
+    1324:1324:androidx.core.view.WindowInsetsCompat inset(int,int,int,int) -> inset
+    1330:1330:void setStableInsets(androidx.core.graphics.Insets) -> setStableInsets
+androidx.core.view.WindowInsetsCompat$Impl30 -> androidx.core.view.WindowInsetsCompat$Impl30:
+    1347:1347:void <clinit>() -> <clinit>
+    1350:1351:void <init>(androidx.core.view.WindowInsetsCompat,android.view.WindowInsets) -> <init>
+    1354:1355:void <init>(androidx.core.view.WindowInsetsCompat,androidx.core.view.WindowInsetsCompat$Impl30) -> <init>
+    1384:1384:void copyRootViewBounds(android.view.View) -> copyRootViewBounds
+    1360:1361:androidx.core.graphics.Insets getInsets(int) -> getInsets
+    1368:1369:androidx.core.graphics.Insets getInsetsIgnoringVisibility(int) -> getInsetsIgnoringVisibility
+    1375:1375:boolean isVisible(int) -> isVisible
+androidx.core.view.WindowInsetsCompat$Type -> androidx.core.view.WindowInsetsCompat$Type:
+    1908:1908:void <init>() -> <init>
+    2012:2012:int all() -> all
+    1931:1931:int captionBar() -> captionBar
+    1992:1992:int displayCutout() -> displayCutout
+    1939:1939:int ime() -> ime
+    2016:2036:int indexOf(int) -> indexOf
+    1969:1969:int mandatorySystemGestures() -> mandatorySystemGestures
+    1923:1923:int navigationBars() -> navigationBars
+    1915:1915:int statusBars() -> statusBars
+    2001:2001:int systemBars() -> systemBars
+    1961:1961:int systemGestures() -> systemGestures
+    1977:1977:int tappableElement() -> tappableElement
+androidx.core.view.WindowInsetsCompat$TypeImpl30 -> androidx.core.view.WindowInsetsCompat$TypeImpl30:
+    2052:2052:void <init>() -> <init>
+    2060:2091:int toPlatformType(int) -> toPlatformType
+androidx.core.view.WindowInsetsControllerCompat -> androidx.core.view.WindowInsetsControllerCompat:
+    88:94:void <init>(android.view.WindowInsetsController) -> <init>
+    96:108:void <init>(android.view.Window,android.view.View) -> <init>
+    289:290:void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> addOnControllableInsetsChangedListener
+    250:255:void controlWindowInsetsAnimation(int,long,android.view.animation.Interpolator,android.os.CancellationSignal,androidx.core.view.WindowInsetsAnimationControlListenerCompat) -> controlWindowInsetsAnimation
+    275:275:int getSystemBarsBehavior() -> getSystemBarsBehavior
+    162:163:void hide(int) -> hide
+    199:199:boolean isAppearanceLightNavigationBars() -> isAppearanceLightNavigationBars
+    175:175:boolean isAppearanceLightStatusBars() -> isAppearanceLightStatusBars
+    304:305:void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> removeOnControllableInsetsChangedListener
+    211:212:void setAppearanceLightNavigationBars(boolean) -> setAppearanceLightNavigationBars
+    187:188:void setAppearanceLightStatusBars(boolean) -> setAppearanceLightStatusBars
+    264:265:void setSystemBarsBehavior(int) -> setSystemBarsBehavior
+    148:149:void show(int) -> show
+    122:122:androidx.core.view.WindowInsetsControllerCompat toWindowInsetsControllerCompat(android.view.WindowInsetsController) -> toWindowInsetsControllerCompat
+androidx.core.view.WindowInsetsControllerCompat$Impl -> androidx.core.view.WindowInsetsControllerCompat$Impl:
+    341:343:void <init>() -> <init>
+    379:379:void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> addOnControllableInsetsChangedListener
+    354:354:void controlWindowInsetsAnimation(int,long,android.view.animation.Interpolator,android.os.CancellationSignal,androidx.core.view.WindowInsetsAnimationControlListenerCompat) -> controlWindowInsetsAnimation
+    360:360:int getSystemBarsBehavior() -> getSystemBarsBehavior
+    349:349:void hide(int) -> hide
+    371:371:boolean isAppearanceLightNavigationBars() -> isAppearanceLightNavigationBars
+    364:364:boolean isAppearanceLightStatusBars() -> isAppearanceLightStatusBars
+    384:384:void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> removeOnControllableInsetsChangedListener
+    375:375:void setAppearanceLightNavigationBars(boolean) -> setAppearanceLightNavigationBars
+    368:368:void setAppearanceLightStatusBars(boolean) -> setAppearanceLightStatusBars
+    357:357:void setSystemBarsBehavior(int) -> setSystemBarsBehavior
+    346:346:void show(int) -> show
+androidx.core.view.WindowInsetsControllerCompat$Impl20 -> androidx.core.view.WindowInsetsControllerCompat$Impl20:
+    396:399:void <init>(android.view.Window,android.view.View) -> <init>
+    537:537:void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> addOnControllableInsetsChangedListener
+    509:509:void controlWindowInsetsAnimation(int,long,android.view.animation.Interpolator,android.os.CancellationSignal,androidx.core.view.WindowInsetsAnimationControlListenerCompat) -> controlWindowInsetsAnimation
+    531:531:int getSystemBarsBehavior() -> getSystemBarsBehavior
+    458:465:void hide(int) -> hide
+    468:481:void hideForType(int) -> hideForType
+    543:543:void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> removeOnControllableInsetsChangedListener
+    513:527:void setSystemBarsBehavior(int) -> setSystemBarsBehavior
+    484:488:void setSystemUiFlag(int) -> setSystemUiFlag
+    498:499:void setWindowFlag(int) -> setWindowFlag
+    403:410:void show(int) -> show
+    413:454:void showForType(int) -> showForType
+    491:495:void unsetSystemUiFlag(int) -> unsetSystemUiFlag
+    502:503:void unsetWindowFlag(int) -> unsetWindowFlag
+androidx.core.view.WindowInsetsControllerCompat$Impl20$1 -> androidx.core.view.WindowInsetsControllerCompat$Impl20$1:
+    442:442:void <init>(androidx.core.view.WindowInsetsControllerCompat$Impl20,android.view.View) -> <init>
+    445:450:void run() -> run
+androidx.core.view.WindowInsetsControllerCompat$Impl23 -> androidx.core.view.WindowInsetsControllerCompat$Impl23:
+    550:551:void <init>(android.view.Window,android.view.View) -> <init>
+    555:555:boolean isAppearanceLightStatusBars() -> isAppearanceLightStatusBars
+    561:568:void setAppearanceLightStatusBars(boolean) -> setAppearanceLightStatusBars
+androidx.core.view.WindowInsetsControllerCompat$Impl26 -> androidx.core.view.WindowInsetsControllerCompat$Impl26:
+    575:576:void <init>(android.view.Window,android.view.View) -> <init>
+    580:580:boolean isAppearanceLightNavigationBars() -> isAppearanceLightNavigationBars
+    586:593:void setAppearanceLightNavigationBars(boolean) -> setAppearanceLightNavigationBars
+androidx.core.view.WindowInsetsControllerCompat$Impl30 -> androidx.core.view.WindowInsetsControllerCompat$Impl30:
+    607:608:void <init>(android.view.Window,androidx.core.view.WindowInsetsControllerCompat) -> <init>
+    601:614:void <init>(android.view.WindowInsetsController,androidx.core.view.WindowInsetsControllerCompat) -> <init>
+    731:751:void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> addOnControllableInsetsChangedListener
+    670:701:void controlWindowInsetsAnimation(int,long,android.view.animation.Interpolator,android.os.CancellationSignal,androidx.core.view.WindowInsetsAnimationControlListenerCompat) -> controlWindowInsetsAnimation
+    723:723:int getSystemBarsBehavior() -> getSystemBarsBehavior
+    623:624:void hide(int) -> hide
+    647:647:boolean isAppearanceLightNavigationBars() -> isAppearanceLightNavigationBars
+    628:628:boolean isAppearanceLightStatusBars() -> isAppearanceLightStatusBars
+    758:762:void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> removeOnControllableInsetsChangedListener
+    653:662:void setAppearanceLightNavigationBars(boolean) -> setAppearanceLightNavigationBars
+    634:643:void setAppearanceLightStatusBars(boolean) -> setAppearanceLightStatusBars
+    711:712:void setSystemBarsBehavior(int) -> setSystemBarsBehavior
+    618:619:void show(int) -> show
+androidx.core.view.WindowInsetsControllerCompat$Impl30$1 -> androidx.core.view.WindowInsetsControllerCompat$Impl30$1:
+    671:673:void <init>(androidx.core.view.WindowInsetsControllerCompat$Impl30,androidx.core.view.WindowInsetsAnimationControlListenerCompat) -> <init>
+    692:693:void onCancelled(android.view.WindowInsetsAnimationController) -> onCancelled
+    686:687:void onFinished(android.view.WindowInsetsAnimationController) -> onFinished
+    678:681:void onReady(android.view.WindowInsetsAnimationController,int) -> onReady
+androidx.core.view.WindowInsetsControllerCompat$Impl30$2 -> androidx.core.view.WindowInsetsControllerCompat$Impl30$2:
+    737:737:void <init>(androidx.core.view.WindowInsetsControllerCompat$Impl30,androidx.core.view.WindowInsetsControllerCompat$OnControllableInsetsChangedListener) -> <init>
+    743:747:void onControllableInsetsChanged(android.view.WindowInsetsController,int) -> onControllableInsetsChanged
+androidx.core.view.accessibility.AccessibilityClickableSpanCompat -> androidx.core.view.accessibility.AccessibilityClickableSpanCompat:
+    55:59:void <init>(int,androidx.core.view.accessibility.AccessibilityNodeInfoCompat,int) -> <init>
+    69:72:void onClick(android.view.View) -> onClick
+androidx.core.view.accessibility.AccessibilityEventCompat -> androidx.core.view.accessibility.AccessibilityEventCompat:
+    245:247:void <init>() -> <init>
+    274:275:void appendRecord(android.view.accessibility.AccessibilityEvent,androidx.core.view.accessibility.AccessibilityRecordCompat) -> appendRecord
+    309:309:androidx.core.view.accessibility.AccessibilityRecordCompat asRecord(android.view.accessibility.AccessibilityEvent) -> asRecord
+    405:406:int getAction(android.view.accessibility.AccessibilityEvent) -> getAction
+    343:344:int getContentChangeTypes(android.view.accessibility.AccessibilityEvent) -> getContentChangeTypes
+    369:370:int getMovementGranularity(android.view.accessibility.AccessibilityEvent) -> getMovementGranularity
+    288:288:androidx.core.view.accessibility.AccessibilityRecordCompat getRecord(android.view.accessibility.AccessibilityEvent,int) -> getRecord
+    258:258:int getRecordCount(android.view.accessibility.AccessibilityEvent) -> getRecordCount
+    394:397:void setAction(android.view.accessibility.AccessibilityEvent,int) -> setAction
+    322:325:void setContentChangeTypes(android.view.accessibility.AccessibilityEvent,int) -> setContentChangeTypes
+    358:361:void setMovementGranularity(android.view.accessibility.AccessibilityEvent,int) -> setMovementGranularity
+androidx.core.view.accessibility.AccessibilityManagerCompat -> androidx.core.view.accessibility.AccessibilityManagerCompat:
+    278:278:void <init>() -> <init>
+    47:50:boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager,androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListener) -> addAccessibilityStateChangeListener
+    168:172:boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager,androidx.core.view.accessibility.AccessibilityManagerCompat$TouchExplorationStateChangeListener) -> addTouchExplorationStateChangeListener
+    143:143:java.util.List getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager,int) -> getEnabledAccessibilityServiceList
+    120:120:java.util.List getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager) -> getInstalledAccessibilityServiceList
+    156:156:boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager) -> isTouchExplorationEnabled
+    68:71:boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager,androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListener) -> removeAccessibilityStateChangeListener
+    187:191:boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager,androidx.core.view.accessibility.AccessibilityManagerCompat$TouchExplorationStateChangeListener) -> removeTouchExplorationStateChangeListener
+androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListenerCompat -> androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListenerCompat:
+    240:240:void <init>() -> <init>
+androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListenerWrapper -> androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListenerWrapper:
+    81:83:void <init>(androidx.core.view.accessibility.AccessibilityManagerCompat$AccessibilityStateChangeListener) -> <init>
+    92:100:boolean equals(java.lang.Object) -> equals
+    87:87:int hashCode() -> hashCode
+    105:106:void onAccessibilityStateChanged(boolean) -> onAccessibilityStateChanged
+androidx.core.view.accessibility.AccessibilityManagerCompat$TouchExplorationStateChangeListenerWrapper -> androidx.core.view.accessibility.AccessibilityManagerCompat$TouchExplorationStateChangeListenerWrapper:
+    204:206:void <init>(androidx.core.view.accessibility.AccessibilityManagerCompat$TouchExplorationStateChangeListener) -> <init>
+    215:223:boolean equals(java.lang.Object) -> equals
+    210:210:int hashCode() -> hashCode
+    228:229:void onTouchExplorationStateChanged(boolean) -> onTouchExplorationStateChanged
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat:
+    1671:1671:void <clinit>() -> <clinit>
+    1250:1698:void <init>(java.lang.Object) -> <init>
+    1250:1702:void <init>(android.view.accessibility.AccessibilityNodeInfo) -> <init>
+    1997:1998:void addAction(int) -> addAction
+    2030:2033:void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat) -> addAction
+    1909:1910:void addChild(android.view.View) -> addChild
+    1927:1930:void addChild(android.view.View,int) -> addChild
+    2775:2779:void addSpanLocationToExtras(android.text.style.ClickableSpan,android.text.Spanned,int) -> addSpanLocationToExtras
+    2704:2719:void addSpansToExtras(java.lang.CharSequence,android.view.View) -> addSpansToExtras
+    3332:3333:boolean canOpenPopup() -> canOpenPopup
+    2766:2772:void clearExtrasSpans() -> clearExtrasSpans
+    4082:4105:boolean equals(java.lang.Object) -> equals
+    2001:2010:java.util.List extrasIntList(java.lang.String) -> extrasIntList
+    2144:2151:java.util.List findAccessibilityNodeInfosByText(java.lang.String) -> findAccessibilityNodeInfosByText
+    3379:3385:java.util.List findAccessibilityNodeInfosByViewId(java.lang.String) -> findAccessibilityNodeInfosByViewId
+    1833:1834:androidx.core.view.accessibility.AccessibilityNodeInfoCompat findFocus(int) -> findFocus
+    1855:1856:androidx.core.view.accessibility.AccessibilityNodeInfoCompat focusSearch(int) -> focusSearch
+    3074:3087:java.util.List getActionList() -> getActionList
+    4186:4264:java.lang.String getActionSymbolicName(int) -> getActionSymbolicName
+    1982:1982:int getActions() -> getActions
+    4180:4182:boolean getBooleanProperty(int) -> getBooleanProperty
+    2227:2228:void getBoundsInParent(android.graphics.Rect) -> getBoundsInParent
+    2259:2260:void getBoundsInScreen(android.graphics.Rect) -> getBoundsInScreen
+    1894:1894:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getChild(int) -> getChild
+    1877:1877:int getChildCount() -> getChildCount
+    2642:2642:java.lang.CharSequence getClassName() -> getClassName
+    2741:2745:android.text.style.ClickableSpan[] getClickableSpans(java.lang.CharSequence) -> getClickableSpans
+    2989:2995:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionInfoCompat getCollectionInfo() -> getCollectionInfo
+    3022:3028:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionItemInfoCompat getCollectionItemInfo() -> getCollectionItemInfo
+    2802:2802:java.lang.CharSequence getContentDescription() -> getContentDescription
+    2958:2959:int getDrawingOrder() -> getDrawingOrder
+    3212:3213:java.lang.CharSequence getError() -> getError
+    3405:3406:android.os.Bundle getExtras() -> getExtras
+    3158:3161:java.lang.CharSequence getHintText() -> getHintText
+    1728:1728:java.lang.Object getInfo() -> getInfo
+    3418:3419:int getInputType() -> getInputType
+    3263:3264:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getLabelFor() -> getLabelFor
+    3319:3320:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getLabeledBy() -> getLabeledBy
+    2921:2922:int getLiveRegion() -> getLiveRegion
+    3472:3473:int getMaxTextLength() -> getMaxTextLength
+    2123:2124:int getMovementGranularities() -> getMovementGranularities
+    2722:2727:android.util.SparseArray getOrCreateSpansFromViewTags(android.view.View) -> getOrCreateSpansFromViewTags
+    2618:2618:java.lang.CharSequence getPackageName() -> getPackageName
+    3819:3822:java.lang.CharSequence getPaneTitle() -> getPaneTitle
+    2165:2165:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getParent() -> getParent
+    3037:3043:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$RangeInfoCompat getRangeInfo() -> getRangeInfo
+    3989:3990:java.lang.CharSequence getRoleDescription() -> getRoleDescription
+    2732:2732:android.util.SparseArray getSpansFromViewTags(android.view.View) -> getSpansFromViewTags
+    2812:2815:java.lang.CharSequence getStateDescription() -> getStateDescription
+    2666:2680:java.lang.CharSequence getText() -> getText
+    3517:3518:int getTextSelectionEnd() -> getTextSelectionEnd
+    3504:3505:int getTextSelectionStart() -> getTextSelectionStart
+    3763:3766:java.lang.CharSequence getTooltipText() -> getTooltipText
+    4043:4049:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$TouchDelegateInfoCompat getTouchDelegateInfo() -> getTouchDelegateInfo
+    3599:3600:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getTraversalAfter() -> getTraversalAfter
+    3534:3535:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getTraversalBefore() -> getTraversalBefore
+    2895:2896:java.lang.String getViewIdResourceName() -> getViewIdResourceName
+    3660:3661:androidx.core.view.accessibility.AccessibilityWindowInfoCompat getWindow() -> getWindow
+    1868:1868:int getWindowId() -> getWindowId
+    2762:2762:boolean hasSpans() -> hasSpans
+    4077:4077:int hashCode() -> hashCode
+    2750:2758:int idForClickableSpan(android.text.style.ClickableSpan,android.util.SparseArray) -> idForClickableSpan
+    2410:2411:boolean isAccessibilityFocused() -> isAccessibilityFocused
+    2283:2283:boolean isCheckable() -> isCheckable
+    2307:2307:boolean isChecked() -> isChecked
+    2465:2465:boolean isClickable() -> isClickable
+    3115:3116:boolean isContentInvalid() -> isContentInvalid
+    3128:3129:boolean isContextClickable() -> isContextClickable
+    3673:3674:boolean isDismissable() -> isDismissable
+    3702:3703:boolean isEditable() -> isEditable
+    2513:2513:boolean isEnabled() -> isEnabled
+    2331:2331:boolean isFocusable() -> isFocusable
+    2355:2355:boolean isFocused() -> isFocused
+    3909:3914:boolean isHeading() -> isHeading
+    2588:2589:boolean isImportantForAccessibility() -> isImportantForAccessibility
+    2489:2489:boolean isLongClickable() -> isLongClickable
+    3733:3734:boolean isMultiLine() -> isMultiLine
+    2537:2537:boolean isPassword() -> isPassword
+    3838:3841:boolean isScreenReaderFocusable() -> isScreenReaderFocusable
+    2561:2561:boolean isScrollable() -> isScrollable
+    2441:2441:boolean isSelected() -> isSelected
+    3872:3875:boolean isShowingHintText() -> isShowingHintText
+    3942:3945:boolean isTextEntryKey() -> isTextEntryKey
+    2379:2380:boolean isVisibleToUser() -> isVisibleToUser
+    1739:1739:androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View) -> obtain
+    1753:1755:androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(android.view.View,int) -> obtain
+    1767:1767:androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain() -> obtain
+    1778:1778:androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> obtain
+    2075:2075:boolean performAction(int) -> performAction
+    2092:2093:boolean performAction(int,android.os.Bundle) -> performAction
+    2862:2863:void recycle() -> recycle
+    3977:3978:boolean refresh() -> refresh
+    2055:2056:boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat) -> removeAction
+    1947:1948:boolean removeChild(android.view.View) -> removeChild
+    1965:1966:boolean removeChild(android.view.View,int) -> removeChild
+    2782:2794:void removeCollectedSpans(android.view.View) -> removeCollectedSpans
+    2430:2433:void setAccessibilityFocused(boolean) -> setAccessibilityFocused
+    4170:4177:void setBooleanProperty(int,boolean) -> setBooleanProperty
+    2250:2251:void setBoundsInParent(android.graphics.Rect) -> setBoundsInParent
+    2274:2275:void setBoundsInScreen(android.graphics.Rect) -> setBoundsInScreen
+    3350:3353:void setCanOpenPopup(boolean) -> setCanOpenPopup
+    2298:2299:void setCheckable(boolean) -> setCheckable
+    2322:2323:void setChecked(boolean) -> setChecked
+    2657:2658:void setClassName(java.lang.CharSequence) -> setClassName
+    2480:2481:void setClickable(boolean) -> setClickable
+    2999:3005:void setCollectionInfo(java.lang.Object) -> setCollectionInfo
+    3008:3013:void setCollectionItemInfo(java.lang.Object) -> setCollectionItemInfo
+    2832:2833:void setContentDescription(java.lang.CharSequence) -> setContentDescription
+    3103:3106:void setContentInvalid(boolean) -> setContentInvalid
+    3147:3150:void setContextClickable(boolean) -> setContextClickable
+    3691:3694:void setDismissable(boolean) -> setDismissable
+    2977:2980:void setDrawingOrder(int) -> setDrawingOrder
+    3722:3725:void setEditable(boolean) -> setEditable
+    2528:2529:void setEnabled(boolean) -> setEnabled
+    3201:3204:void setError(java.lang.CharSequence) -> setError
+    2346:2347:void setFocusable(boolean) -> setFocusable
+    2370:2371:void setFocused(boolean) -> setFocused
+    3929:3934:void setHeading(boolean) -> setHeading
+    3180:3185:void setHintText(java.lang.CharSequence) -> setHintText
+    2607:2610:void setImportantForAccessibility(boolean) -> setImportantForAccessibility
+    3439:3442:void setInputType(int) -> setInputType
+    3226:3229:void setLabelFor(android.view.View) -> setLabelFor
+    3246:3249:void setLabelFor(android.view.View,int) -> setLabelFor
+    3277:3280:void setLabeledBy(android.view.View) -> setLabeledBy
+    3302:3305:void setLabeledBy(android.view.View,int) -> setLabeledBy
+    2941:2944:void setLiveRegion(int) -> setLiveRegion
+    2504:2505:void setLongClickable(boolean) -> setLongClickable
+    3460:3463:void setMaxTextLength(int) -> setMaxTextLength
+    2112:2115:void setMovementGranularities(int) -> setMovementGranularities
+    3751:3754:void setMultiLine(boolean) -> setMultiLine
+    2633:2634:void setPackageName(java.lang.CharSequence) -> setPackageName
+    3805:3810:void setPaneTitle(java.lang.CharSequence) -> setPaneTitle
+    2180:2183:void setParent(android.view.View) -> setParent
+    2207:2212:void setParent(android.view.View,int) -> setParent
+    2552:2553:void setPassword(boolean) -> setPassword
+    3057:3060:void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat$RangeInfoCompat) -> setRangeInfo
+    4021:4024:void setRoleDescription(java.lang.CharSequence) -> setRoleDescription
+    3857:3862:void setScreenReaderFocusable(boolean) -> setScreenReaderFocusable
+    2576:2577:void setScrollable(boolean) -> setScrollable
+    2456:2457:void setSelected(boolean) -> setSelected
+    3892:3897:void setShowingHintText(boolean) -> setShowingHintText
+    1787:1790:void setSource(android.view.View) -> setSource
+    1814:1819:void setSource(android.view.View,int) -> setSource
+    2847:2852:void setStateDescription(java.lang.CharSequence) -> setStateDescription
+    2696:2697:void setText(java.lang.CharSequence) -> setText
+    3960:3965:void setTextEntryKey(boolean) -> setTextEntryKey
+    3493:3496:void setTextSelection(int,int) -> setTextSelection
+    3785:3790:void setTooltipText(java.lang.CharSequence) -> setTooltipText
+    4070:4073:void setTouchDelegateInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat$TouchDelegateInfoCompat) -> setTouchDelegateInfo
+    3621:3624:void setTraversalAfter(android.view.View) -> setTraversalAfter
+    3647:3650:void setTraversalAfter(android.view.View,int) -> setTraversalAfter
+    3556:3559:void setTraversalBefore(android.view.View) -> setTraversalBefore
+    3583:3586:void setTraversalBefore(android.view.View,int) -> setTraversalBefore
+    2877:2880:void setViewIdResourceName(java.lang.String) -> setViewIdResourceName
+    2399:2402:void setVisibleToUser(boolean) -> setVisibleToUser
+    4112:4166:java.lang.String toString() -> toString
+    1718:1718:android.view.accessibility.AccessibilityNodeInfo unwrap() -> unwrap
+    1711:1711:androidx.core.view.accessibility.AccessibilityNodeInfoCompat wrap(android.view.accessibility.AccessibilityNodeInfo) -> wrap
+    1681:1684:androidx.core.view.accessibility.AccessibilityNodeInfoCompat wrapNonNullInstance(java.lang.Object) -> wrapNonNullInstance
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat:
+    105:589:void <clinit>() -> <clinit>
+    609:610:void <init>(int,java.lang.CharSequence) -> <init>
+    623:624:void <init>(int,java.lang.CharSequence,androidx.core.view.accessibility.AccessibilityViewCommand) -> <init>
+    627:628:void <init>(java.lang.Object) -> <init>
+    632:633:void <init>(int,java.lang.CharSequence,java.lang.Class) -> <init>
+    637:646:void <init>(java.lang.Object,int,java.lang.CharSequence,androidx.core.view.accessibility.AccessibilityViewCommand,java.lang.Class) -> <init>
+    709:709:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat createReplacementAction(java.lang.CharSequence,androidx.core.view.accessibility.AccessibilityViewCommand) -> createReplacementAction
+    720:735:boolean equals(java.lang.Object) -> equals
+    654:655:int getId() -> getId
+    668:669:java.lang.CharSequence getLabel() -> getLabel
+    715:715:int hashCode() -> hashCode
+    684:700:boolean perform(android.view.View,android.os.Bundle) -> perform
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionInfoCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionInfoCompat:
+    809:811:void <init>(java.lang.Object) -> <init>
+    819:820:int getColumnCount() -> getColumnCount
+    832:833:int getRowCount() -> getRowCount
+    863:864:int getSelectionMode() -> getSelectionMode
+    845:846:boolean isHierarchical() -> isHierarchical
+    779:780:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionInfoCompat obtain(int,int,boolean,int) -> obtain
+    801:802:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionInfoCompat obtain(int,int,boolean) -> obtain
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionItemInfoCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionItemInfoCompat:
+    933:935:void <init>(java.lang.Object) -> <init>
+    943:944:int getColumnIndex() -> getColumnIndex
+    956:957:int getColumnSpan() -> getColumnSpan
+    969:970:int getRowIndex() -> getRowIndex
+    982:983:int getRowSpan() -> getRowSpan
+    999:1000:boolean isHeading() -> isHeading
+    1012:1013:boolean isSelected() -> isSelected
+    900:901:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionItemInfoCompat obtain(int,int,int,int,boolean,boolean) -> obtain
+    925:926:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$CollectionItemInfoCompat obtain(int,int,int,int,boolean) -> obtain
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat$RangeInfoCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat$RangeInfoCompat:
+    1051:1053:void <init>(java.lang.Object) -> <init>
+    1061:1062:float getCurrent() -> getCurrent
+    1074:1075:float getMax() -> getMax
+    1087:1088:float getMin() -> getMin
+    1104:1105:int getType() -> getType
+    1041:1043:androidx.core.view.accessibility.AccessibilityNodeInfoCompat$RangeInfoCompat obtain(int,float,float,float) -> obtain
+androidx.core.view.accessibility.AccessibilityNodeInfoCompat$TouchDelegateInfoCompat -> androidx.core.view.accessibility.AccessibilityNodeInfoCompat$TouchDelegateInfoCompat:
+    1123:1129:void <init>(java.util.Map) -> <init>
+    1131:1133:void <init>(android.view.accessibility.AccessibilityNodeInfo$TouchDelegateInfo) -> <init>
+    1165:1168:android.graphics.Region getRegionAt(int) -> getRegionAt
+    1146:1149:int getRegionCount() -> getRegionCount
+    1193:1199:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getTargetForRegion(android.graphics.Region) -> getTargetForRegion
+androidx.core.view.accessibility.AccessibilityNodeProviderCompat -> androidx.core.view.accessibility.AccessibilityNodeProviderCompat:
+    119:129:void <init>() -> <init>
+    137:139:void <init>(java.lang.Object) -> <init>
+    248:248:void addExtraDataToAccessibilityNodeInfo(int,androidx.core.view.accessibility.AccessibilityNodeInfoCompat,java.lang.String,android.os.Bundle) -> addExtraDataToAccessibilityNodeInfo
+    172:172:androidx.core.view.accessibility.AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int) -> createAccessibilityNodeInfo
+    209:209:java.util.List findAccessibilityNodeInfosByText(java.lang.String,int) -> findAccessibilityNodeInfosByText
+    225:225:androidx.core.view.accessibility.AccessibilityNodeInfoCompat findFocus(int) -> findFocus
+    145:145:java.lang.Object getProvider() -> getProvider
+    189:189:boolean performAction(int,int,android.os.Bundle) -> performAction
+androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16 -> androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16:
+    39:41:void <init>(androidx.core.view.accessibility.AccessibilityNodeProviderCompat) -> <init>
+    45:50:android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int) -> createAccessibilityNodeInfo
+    57:68:java.util.List findAccessibilityNodeInfosByText(java.lang.String,int) -> findAccessibilityNodeInfosByText
+    74:74:boolean performAction(int,int,android.os.Bundle) -> performAction
+androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi19 -> androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi19:
+    81:82:void <init>(androidx.core.view.accessibility.AccessibilityNodeProviderCompat) -> <init>
+    86:90:android.view.accessibility.AccessibilityNodeInfo findFocus(int) -> findFocus
+androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi26 -> androidx.core.view.accessibility.AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi26:
+    98:99:void <init>(androidx.core.view.accessibility.AccessibilityNodeProviderCompat) -> <init>
+    104:106:void addExtraDataToAccessibilityNodeInfo(int,android.view.accessibility.AccessibilityNodeInfo,java.lang.String,android.os.Bundle) -> addExtraDataToAccessibilityNodeInfo
+androidx.core.view.accessibility.AccessibilityRecordCompat -> androidx.core.view.accessibility.AccessibilityRecordCompat:
+    43:45:void <init>(java.lang.Object) -> <init>
+    763:777:boolean equals(java.lang.Object) -> equals
+    572:572:int getAddedCount() -> getAddedCount
+    663:663:java.lang.CharSequence getBeforeText() -> getBeforeText
+    624:624:java.lang.CharSequence getClassName() -> getClassName
+    689:689:java.lang.CharSequence getContentDescription() -> getContentDescription
+    340:340:int getCurrentItemIndex() -> getCurrentItemIndex
+    369:369:int getFromIndex() -> getFromIndex
+    55:55:java.lang.Object getImpl() -> getImpl
+    314:314:int getItemCount() -> getItemCount
+    472:472:int getMaxScrollX() -> getMaxScrollX
+    482:483:int getMaxScrollX(android.view.accessibility.AccessibilityRecord) -> getMaxScrollX
+    522:522:int getMaxScrollY() -> getMaxScrollY
+    532:533:int getMaxScrollY(android.view.accessibility.AccessibilityRecord) -> getMaxScrollY
+    715:715:android.os.Parcelable getParcelableData() -> getParcelableData
+    598:598:int getRemovedCount() -> getRemovedCount
+    424:424:int getScrollX() -> getScrollX
+    448:448:int getScrollY() -> getScrollY
+    160:160:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getSource() -> getSource
+    651:651:java.util.List getText() -> getText
+    399:399:int getToIndex() -> getToIndex
+    172:172:int getWindowId() -> getWindowId
+    754:754:int hashCode() -> hashCode
+    184:184:boolean isChecked() -> isChecked
+    210:210:boolean isEnabled() -> isEnabled
+    262:262:boolean isFullScreen() -> isFullScreen
+    236:236:boolean isPassword() -> isPassword
+    288:288:boolean isScrollable() -> isScrollable
+    70:70:androidx.core.view.accessibility.AccessibilityRecordCompat obtain(androidx.core.view.accessibility.AccessibilityRecordCompat) -> obtain
+    84:84:androidx.core.view.accessibility.AccessibilityRecordCompat obtain() -> obtain
+    745:746:void recycle() -> recycle
+    586:587:void setAddedCount(int) -> setAddedCount
+    677:678:void setBeforeText(java.lang.CharSequence) -> setBeforeText
+    198:199:void setChecked(boolean) -> setChecked
+    638:639:void setClassName(java.lang.CharSequence) -> setClassName
+    703:704:void setContentDescription(java.lang.CharSequence) -> setContentDescription
+    354:355:void setCurrentItemIndex(int) -> setCurrentItemIndex
+    224:225:void setEnabled(boolean) -> setEnabled
+    386:387:void setFromIndex(int) -> setFromIndex
+    276:277:void setFullScreen(boolean) -> setFullScreen
+    328:329:void setItemCount(int) -> setItemCount
+    498:499:void setMaxScrollX(int) -> setMaxScrollX
+    508:511:void setMaxScrollX(android.view.accessibility.AccessibilityRecord,int) -> setMaxScrollX
+    548:549:void setMaxScrollY(int) -> setMaxScrollY
+    558:561:void setMaxScrollY(android.view.accessibility.AccessibilityRecord,int) -> setMaxScrollY
+    729:730:void setParcelableData(android.os.Parcelable) -> setParcelableData
+    250:251:void setPassword(boolean) -> setPassword
+    612:613:void setRemovedCount(int) -> setRemovedCount
+    436:437:void setScrollX(int) -> setScrollX
+    460:461:void setScrollY(int) -> setScrollY
+    302:303:void setScrollable(boolean) -> setScrollable
+    98:99:void setSource(android.view.View) -> setSource
+    119:120:void setSource(android.view.View,int) -> setSource
+    139:142:void setSource(android.view.accessibility.AccessibilityRecord,android.view.View,int) -> setSource
+    412:413:void setToIndex(int) -> setToIndex
+androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments:
+    46:46:void <init>() -> <init>
+    54:55:void setBundle(android.os.Bundle) -> setBundle
+androidx.core.view.accessibility.AccessibilityViewCommand$MoveAtGranularityArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$MoveAtGranularityArguments:
+    64:64:void <init>() -> <init>
+    88:88:boolean getExtendSelection() -> getExtendSelection
+    80:80:int getGranularity() -> getGranularity
+androidx.core.view.accessibility.AccessibilityViewCommand$MoveHtmlArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$MoveHtmlArguments:
+    98:98:void <init>() -> <init>
+    104:104:java.lang.String getHTMLElement() -> getHTMLElement
+androidx.core.view.accessibility.AccessibilityViewCommand$MoveWindowArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$MoveWindowArguments:
+    183:183:void <init>() -> <init>
+    189:189:int getX() -> getX
+    196:196:int getY() -> getY
+androidx.core.view.accessibility.AccessibilityViewCommand$ScrollToPositionArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$ScrollToPositionArguments:
+    148:148:void <init>() -> <init>
+    161:161:int getColumn() -> getColumn
+    154:154:int getRow() -> getRow
+androidx.core.view.accessibility.AccessibilityViewCommand$SetProgressArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$SetProgressArguments:
+    169:169:void <init>() -> <init>
+    175:175:float getProgress() -> getProgress
+androidx.core.view.accessibility.AccessibilityViewCommand$SetSelectionArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$SetSelectionArguments:
+    113:113:void <init>() -> <init>
+    126:126:int getEnd() -> getEnd
+    119:119:int getStart() -> getStart
+androidx.core.view.accessibility.AccessibilityViewCommand$SetTextArguments -> androidx.core.view.accessibility.AccessibilityViewCommand$SetTextArguments:
+    133:133:void <init>() -> <init>
+    139:139:java.lang.CharSequence getText() -> getText
+androidx.core.view.accessibility.AccessibilityWindowInfoCompat -> androidx.core.view.accessibility.AccessibilityWindowInfoCompat:
+    84:86:void <init>(java.lang.Object) -> <init>
+    321:338:boolean equals(java.lang.Object) -> equals
+    259:261:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getAnchor() -> getAnchor
+    166:169:void getBoundsInScreen(android.graphics.Rect) -> getBoundsInScreen
+    232:233:androidx.core.view.accessibility.AccessibilityWindowInfoCompat getChild(int) -> getChild
+    218:219:int getChildCount() -> getChildCount
+    153:154:int getId() -> getId
+    113:114:int getLayer() -> getLayer
+    140:141:androidx.core.view.accessibility.AccessibilityWindowInfoCompat getParent() -> getParent
+    126:128:androidx.core.view.accessibility.AccessibilityNodeInfoCompat getRoot() -> getRoot
+    246:247:java.lang.CharSequence getTitle() -> getTitle
+    99:100:int getType() -> getType
+    316:316:int hashCode() -> hashCode
+    205:206:boolean isAccessibilityFocused() -> isAccessibilityFocused
+    179:180:boolean isActive() -> isActive
+    192:193:boolean isFocused() -> isFocused
+    274:275:androidx.core.view.accessibility.AccessibilityWindowInfoCompat obtain() -> obtain
+    290:294:androidx.core.view.accessibility.AccessibilityWindowInfoCompat obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat) -> obtain
+    309:312:void recycle() -> recycle
+    344:357:java.lang.String toString() -> toString
+    361:375:java.lang.String typeToString(int) -> typeToString
+    78:81:androidx.core.view.accessibility.AccessibilityWindowInfoCompat wrapNonNullInstance(java.lang.Object) -> wrapNonNullInstance
+androidx.core.view.animation.PathInterpolatorApi14 -> androidx.core.view.animation.PathInterpolatorApi14:
+    36:53:void <init>(android.graphics.Path) -> <init>
+    56:57:void <init>(float,float) -> <init>
+    61:62:void <init>(float,float,float,float) -> <init>
+    107:110:android.graphics.Path createCubic(float,float,float,float) -> createCubic
+    99:102:android.graphics.Path createQuad(float,float) -> createQuad
+    66:95:float getInterpolation(float) -> getInterpolation
+androidx.core.view.animation.PathInterpolatorCompat -> androidx.core.view.animation.PathInterpolatorCompat:
+    31:33:void <init>() -> <init>
+    48:49:android.view.animation.Interpolator create(android.graphics.Path) -> create
+    63:64:android.view.animation.Interpolator create(float,float) -> create
+    81:82:android.view.animation.Interpolator create(float,float,float,float) -> create
+androidx.core.view.inputmethod.EditorInfoCompat -> androidx.core.view.inputmethod.EditorInfoCompat:
+    91:91:void <clinit>() -> <clinit>
+    527:528:void <init>() -> <init>
+    181:192:java.lang.String[] getContentMimeTypes(android.view.inputmethod.EditorInfo) -> getContentMimeTypes
+    391:420:java.lang.CharSequence getInitialSelectedText(android.view.inputmethod.EditorInfo,int) -> getInitialSelectedText
+    437:455:java.lang.CharSequence getInitialTextAfterCursor(android.view.inputmethod.EditorInfo,int,int) -> getInitialTextAfterCursor
+    356:375:java.lang.CharSequence getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo,int,int) -> getInitialTextBeforeCursor
+    504:521:int getProtocol(android.view.inputmethod.EditorInfo) -> getProtocol
+    460:466:boolean isCutOnSurrogate(java.lang.CharSequence,int,int) -> isCutOnSurrogate
+    471:473:boolean isPasswordInputType(int) -> isPasswordInputType
+    158:167:void setContentMimeTypes(android.view.inputmethod.EditorInfo,java.lang.String[]) -> setContentMimeTypes
+    235:268:void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo,java.lang.CharSequence,int) -> setInitialSurroundingSubText
+    212:217:void setInitialSurroundingText(android.view.inputmethod.EditorInfo,java.lang.CharSequence) -> setInitialSurroundingText
+    484:493:void setSurroundingText(android.view.inputmethod.EditorInfo,java.lang.CharSequence,int,int) -> setSurroundingText
+    289:340:void trimLongSurroundingText(android.view.inputmethod.EditorInfo,java.lang.CharSequence,int,int) -> trimLongSurroundingText
+androidx.core.view.inputmethod.EditorInfoCompat$Impl30 -> androidx.core.view.inputmethod.EditorInfoCompat$Impl30:
+    532:532:void <init>() -> <init>
+    545:545:java.lang.CharSequence getInitialSelectedText(android.view.inputmethod.EditorInfo,int) -> getInitialSelectedText
+    550:550:java.lang.CharSequence getInitialTextAfterCursor(android.view.inputmethod.EditorInfo,int,int) -> getInitialTextAfterCursor
+    541:541:java.lang.CharSequence getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo,int,int) -> getInitialTextBeforeCursor
+    536:537:void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo,java.lang.CharSequence,int) -> setInitialSurroundingSubText
+androidx.core.view.inputmethod.InputConnectionCompat -> androidx.core.view.inputmethod.InputConnectionCompat:
+    303:304:void <init>() -> <init>
+    132:187:boolean commitContent(android.view.inputmethod.InputConnection,android.view.inputmethod.EditorInfo,androidx.core.view.inputmethod.InputContentInfoCompat,int,android.os.Bundle) -> commitContent
+    260:288:android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection,android.view.inputmethod.EditorInfo,androidx.core.view.inputmethod.InputConnectionCompat$OnCommitContentListener) -> createWrapper
+    72:115:boolean handlePerformPrivateCommand(java.lang.String,android.os.Bundle,androidx.core.view.inputmethod.InputConnectionCompat$OnCommitContentListener) -> handlePerformPrivateCommand
+androidx.core.view.inputmethod.InputConnectionCompat$1 -> androidx.core.view.inputmethod.InputConnectionCompat$1:
+    271:271:void <init>(android.view.inputmethod.InputConnection,boolean,androidx.core.view.inputmethod.InputConnectionCompat$OnCommitContentListener) -> <init>
+    275:279:boolean commitContent(android.view.inputmethod.InputContentInfo,int,android.os.Bundle) -> commitContent
+androidx.core.view.inputmethod.InputConnectionCompat$2 -> androidx.core.view.inputmethod.InputConnectionCompat$2:
+    288:288:void <init>(android.view.inputmethod.InputConnection,boolean,androidx.core.view.inputmethod.InputConnectionCompat$OnCommitContentListener) -> <init>
+    291:294:boolean performPrivateCommand(java.lang.String,android.os.Bundle) -> performPrivateCommand
+androidx.core.view.inputmethod.InputContentInfoCompat -> androidx.core.view.inputmethod.InputContentInfoCompat:
+    169:175:void <init>(android.net.Uri,android.content.ClipDescription,android.net.Uri) -> <init>
+    177:179:void <init>(androidx.core.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatImpl) -> <init>
+    186:186:android.net.Uri getContentUri() -> getContentUri
+    196:196:android.content.ClipDescription getDescription() -> getDescription
+    204:204:android.net.Uri getLinkUri() -> getLinkUri
+    256:257:void releasePermission() -> releasePermission
+    247:248:void requestPermission() -> requestPermission
+    238:238:java.lang.Object unwrap() -> unwrap
+    219:225:androidx.core.view.inputmethod.InputContentInfoCompat wrap(java.lang.Object) -> wrap
+androidx.core.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatApi25Impl -> androidx.core.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatApi25Impl:
+    109:111:void <init>(java.lang.Object) -> <init>
+    114:116:void <init>(android.net.Uri,android.content.ClipDescription,android.net.Uri) -> <init>
+    121:121:android.net.Uri getContentUri() -> getContentUri
+    127:127:android.content.ClipDescription getDescription() -> getDescription
+    139:139:java.lang.Object getInputContentInfo() -> getInputContentInfo
+    133:133:android.net.Uri getLinkUri() -> getLinkUri
+    149:150:void releasePermission() -> releasePermission
+    144:145:void requestPermission() -> requestPermission
+androidx.core.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatBaseImpl -> androidx.core.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatBaseImpl:
+    62:66:void <init>(android.net.Uri,android.content.ClipDescription,android.net.Uri) -> <init>
+    71:71:android.net.Uri getContentUri() -> getContentUri
+    77:77:android.content.ClipDescription getDescription() -> getDescription
+    89:89:java.lang.Object getInputContentInfo() -> getInputContentInfo
+    83:83:android.net.Uri getLinkUri() -> getLinkUri
+    99:99:void releasePermission() -> releasePermission
+    94:94:void requestPermission() -> requestPermission
+androidx.core.widget.AutoScrollHelper -> androidx.core.widget.AutoScrollHelper:
+    195:195:void <clinit>() -> <clinit>
+    138:226:void <init>(android.view.View) -> <init>
+    687:692:void cancelTargetTouch() -> cancelTargetTouch
+    549:568:float computeTargetVelocity(int,float,float,float) -> computeTargetVelocity
+    663:668:int constrain(int,int,int) -> constrain
+    673:678:float constrain(float,float,float) -> constrain
+    634:659:float constrainEdgeValue(float,float) -> constrainEdgeValue
+    617:630:float getEdgeValue(float,float,float,float) -> getEdgeValue
+    248:248:boolean isEnabled() -> isEnabled
+    277:277:boolean isExclusive() -> isExclusive
+    466:495:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+    538:545:void requestStop() -> requestStop
+    420:421:androidx.core.widget.AutoScrollHelper setActivationDelay(int) -> setActivationDelay
+    359:360:androidx.core.widget.AutoScrollHelper setEdgeType(int) -> setEdgeType
+    236:241:androidx.core.widget.AutoScrollHelper setEnabled(boolean) -> setEnabled
+    264:265:androidx.core.widget.AutoScrollHelper setExclusive(boolean) -> setExclusive
+    402:404:androidx.core.widget.AutoScrollHelper setMaximumEdges(float,float) -> setMaximumEdges
+    296:298:androidx.core.widget.AutoScrollHelper setMaximumVelocity(float,float) -> setMaximumVelocity
+    315:317:androidx.core.widget.AutoScrollHelper setMinimumVelocity(float,float) -> setMinimumVelocity
+    452:453:androidx.core.widget.AutoScrollHelper setRampDownDuration(int) -> setRampDownDuration
+    436:437:androidx.core.widget.AutoScrollHelper setRampUpDuration(int) -> setRampUpDuration
+    379:381:androidx.core.widget.AutoScrollHelper setRelativeEdges(float,float) -> setRelativeEdges
+    337:339:androidx.core.widget.AutoScrollHelper setRelativeVelocity(float,float) -> setRelativeVelocity
+    502:507:boolean shouldAnimate() -> shouldAnimate
+    514:530:void startAnimating() -> startAnimating
+androidx.core.widget.AutoScrollHelper$ClampedScroller -> androidx.core.widget.AutoScrollHelper$ClampedScroller:
+    756:762:void <init>() -> <init>
+    831:843:void computeScrollDelta() -> computeScrollDelta
+    869:869:int getDeltaX() -> getDeltaX
+    877:877:int getDeltaY() -> getDeltaY
+    857:857:int getHorizontalDirection() -> getHorizontalDirection
+    800:808:float getValueAt(long) -> getValueAt
+    861:861:int getVerticalDirection() -> getVerticalDirection
+    820:820:float interpolateValue(float) -> interpolateValue
+    795:796:boolean isFinished() -> isFinished
+    788:792:void requestStop() -> requestStop
+    769:770:void setRampDownDuration(int) -> setRampDownDuration
+    765:766:void setRampUpDuration(int) -> setRampUpDuration
+    852:854:void setTargetVelocity(float,float) -> setTargetVelocity
+    776:782:void start() -> start
+androidx.core.widget.AutoScrollHelper$ScrollAnimationRunnable -> androidx.core.widget.AutoScrollHelper$ScrollAnimationRunnable:
+    695:696:void <init>(androidx.core.widget.AutoScrollHelper) -> <init>
+    700:728:void run() -> run
+androidx.core.widget.AutoSizeableTextView -> androidx.core.widget.AutoSizeableTextView:
+    39:39:void <clinit>() -> <clinit>
+androidx.core.widget.CompoundButtonCompat -> androidx.core.widget.CompoundButtonCompat:
+    41:41:void <init>() -> <init>
+    123:124:android.graphics.drawable.Drawable getButtonDrawable(android.widget.CompoundButton) -> getButtonDrawable
+    71:72:android.content.res.ColorStateList getButtonTintList(android.widget.CompoundButton) -> getButtonTintList
+    107:108:android.graphics.PorterDuff$Mode getButtonTintMode(android.widget.CompoundButton) -> getButtonTintMode
+    57:62:void setButtonTintList(android.widget.CompoundButton,android.content.res.ColorStateList) -> setButtonTintList
+    93:98:void setButtonTintMode(android.widget.CompoundButton,android.graphics.PorterDuff$Mode) -> setButtonTintMode
+androidx.core.widget.ContentLoadingProgressBar -> androidx.core.widget.ContentLoadingProgressBar:
+    68:69:void <init>(android.content.Context) -> <init>
+    37:73:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    97:116:void hide() -> hide
+    77:79:void onAttachedToWindow() -> onAttachedToWindow
+    83:85:void onDetachedFromWindow() -> onDetachedFromWindow
+    88:90:void removeCallbacks() -> removeCallbacks
+    123:132:void show() -> show
+androidx.core.widget.ContentLoadingProgressBar$1 -> androidx.core.widget.ContentLoadingProgressBar$1:
+    45:45:void <init>(androidx.core.widget.ContentLoadingProgressBar) -> <init>
+    49:52:void run() -> run
+androidx.core.widget.ContentLoadingProgressBar$2 -> androidx.core.widget.ContentLoadingProgressBar$2:
+    55:55:void <init>(androidx.core.widget.ContentLoadingProgressBar) -> <init>
+    59:64:void run() -> run
+androidx.core.widget.EdgeEffectCompat -> androidx.core.widget.EdgeEffectCompat:
+    47:49:void <init>(android.content.Context) -> <init>
+    208:208:boolean draw(android.graphics.Canvas) -> draw
+    86:87:void finish() -> finish
+    75:75:boolean isFinished() -> isFinished
+    190:191:boolean onAbsorb(int) -> onAbsorb
+    104:105:boolean onPull(float) -> onPull
+    129:130:boolean onPull(float,float) -> onPull
+    152:157:void onPull(android.widget.EdgeEffect,float,float) -> onPull
+    171:172:boolean onRelease() -> onRelease
+    61:62:void setSize(int,int) -> setSize
+androidx.core.widget.ImageViewCompat -> androidx.core.widget.ImageViewCompat:
+    107:107:void <init>() -> <init>
+    37:38:android.content.res.ColorStateList getImageTintList(android.widget.ImageView) -> getImageTintList
+    74:75:android.graphics.PorterDuff$Mode getImageTintMode(android.widget.ImageView) -> getImageTintMode
+    50:67:void setImageTintList(android.widget.ImageView,android.content.res.ColorStateList) -> setImageTintList
+    88:105:void setImageTintMode(android.widget.ImageView,android.graphics.PorterDuff$Mode) -> setImageTintMode
+androidx.core.widget.ListPopupWindowCompat -> androidx.core.widget.ListPopupWindowCompat:
+    31:33:void <init>() -> <init>
+    65:65:android.view.View$OnTouchListener createDragToOpenListener(java.lang.Object,android.view.View) -> createDragToOpenListener
+    97:98:android.view.View$OnTouchListener createDragToOpenListener(android.widget.ListPopupWindow,android.view.View) -> createDragToOpenListener
+androidx.core.widget.ListViewAutoScrollHelper -> androidx.core.widget.ListViewAutoScrollHelper:
+    33:36:void <init>(android.widget.ListView) -> <init>
+    46:46:boolean canTargetScrollHorizontally(int) -> canTargetScrollHorizontally
+    51:83:boolean canTargetScrollVertically(int) -> canTargetScrollVertically
+    40:41:void scrollTargetBy(int,int) -> scrollTargetBy
+androidx.core.widget.ListViewCompat -> androidx.core.widget.ListViewCompat:
+    90:90:void <init>() -> <init>
+    67:69:boolean canScrollList(android.widget.ListView,int) -> canScrollList
+    37:55:void scrollListBy(android.widget.ListView,int) -> scrollListBy
+androidx.core.widget.NestedScrollView -> androidx.core.widget.NestedScrollView:
+    176:178:void <clinit>() -> <clinit>
+    190:191:void <init>(android.content.Context) -> <init>
+    194:195:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    102:216:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1673:1675:void abortAnimatedScroll() -> abortAnimatedScroll
+    472:477:void addView(android.view.View) -> addView
+    481:486:void addView(android.view.View,int) -> addView
+    490:495:void addView(android.view.View,android.view.ViewGroup$LayoutParams) -> addView
+    499:504:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    1325:1371:boolean arrowScroll(int) -> arrowScroll
+    523:530:boolean canScroll() -> canScroll
+    2048:2074:int clamp(int,int,int) -> clamp
+    1569:1569:int computeHorizontalScrollExtent() -> computeHorizontalScrollExtent
+    1562:1562:int computeHorizontalScrollOffset() -> computeHorizontalScrollOffset
+    1555:1555:int computeHorizontalScrollRange() -> computeHorizontalScrollRange
+    1605:1660:void computeScroll() -> computeScroll
+    1725:1786:int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect) -> computeScrollDeltaToGetChildRectOnScreen
+    1548:1548:int computeVerticalScrollExtent() -> computeVerticalScrollExtent
+    1541:1541:int computeVerticalScrollOffset() -> computeVerticalScrollOffset
+    1517:1534:int computeVerticalScrollRange() -> computeVerticalScrollRange
+    621:621:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    298:298:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    303:303:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    254:254:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    293:293:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    223:225:void dispatchNestedScroll(int,int,int,int,int[],int,int[]) -> dispatchNestedScroll
+    247:247:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    287:287:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    1400:1407:void doScrollY(int) -> doScrollY
+    1998:2045:void draw(android.graphics.Canvas) -> draw
+    1949:1958:void endDrag() -> endDrag
+    1984:1994:void ensureGlows() -> ensureGlows
+    633:671:boolean executeKeyEvent(android.view.KeyEvent) -> executeKeyEvent
+    1146:1207:android.view.View findFocusableViewInBounds(boolean,int,int) -> findFocusableViewInBounds
+    1937:1946:void fling(int) -> fling
+    1261:1277:boolean fullScroll(int) -> fullScroll
+    435:448:float getBottomFadingEdgeStrength() -> getBottomFadingEdgeStrength
+    456:456:int getMaxScrollAmount() -> getMaxScrollAmount
+    408:408:int getNestedScrollAxes() -> getNestedScrollAxes
+    1118:1126:int getScrollRange() -> getScrollRange
+    420:430:float getTopFadingEdgeStrength() -> getTopFadingEdgeStrength
+    1039:1050:float getVerticalScrollFactorCompat() -> getVerticalScrollFactorCompat
+    241:241:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    281:281:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    675:683:boolean inChild(int,int) -> inChild
+    687:692:void initOrResetVelocityTracker() -> initOrResetVelocityTracker
+    460:468:void initScrollView() -> initScrollView
+    695:698:void initVelocityTrackerIfNotExists() -> initVelocityTrackerIfNotExists
+    541:541:boolean isFillViewport() -> isFillViewport
+    266:266:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    1379:1379:boolean isOffScreen(android.view.View) -> isOffScreen
+    563:563:boolean isSmoothScrollingEnabled() -> isSmoothScrollingEnabled
+    1921:1926:boolean isViewDescendantOf(android.view.View,android.view.View) -> isViewDescendantOf
+    1387:1391:boolean isWithinDeltaOfScreen(android.view.View,int,int) -> isWithinDeltaOfScreen
+    1575:1586:void measureChild(android.view.View,int,int) -> measureChild
+    1591:1600:void measureChildWithMargins(android.view.View,int,int,int,int) -> measureChildWithMargins
+    1892:1895:void onAttachedToWindow() -> onAttachedToWindow
+    1011:1035:boolean onGenericMotionEvent(android.view.MotionEvent) -> onGenericMotionEvent
+    728:823:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    1854:1888:void onLayout(boolean,int,int,int,int) -> onLayout
+    585:616:void onMeasure(int,int) -> onMeasure
+    393:398:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    403:403:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    357:358:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    387:388:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    311:312:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    351:352:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    382:383:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    338:340:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    371:372:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    315:325:void onNestedScrollInternal(int,int,int[]) -> onNestedScrollInternal
+    1056:1057:void onOverScrolled(int,int,boolean,boolean) -> onOverScrolled
+    1814:1833:boolean onRequestFocusInDescendants(int,android.graphics.Rect) -> onRequestFocusInDescendants
+    2079:2088:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    2092:2095:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    576:581:void onScrollChanged(int,int,int,int) -> onScrollChanged
+    994:1007:void onSecondaryPointerUp(android.view.MotionEvent) -> onSecondaryPointerUp
+    1899:1915:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    332:332:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    365:365:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    344:346:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    376:377:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    828:990:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    1064:1114:boolean overScrollByCompat(int,int,int,int,int,int,int,int,boolean) -> overScrollByCompat
+    1223:1245:boolean pageScroll(int) -> pageScroll
+    701:705:void recycleVelocityTracker() -> recycleVelocityTracker
+    1791:1798:void requestChildFocus(android.view.View,android.view.View) -> requestChildFocus
+    1840:1843:boolean requestChildRectangleOnScreen(android.view.View,android.graphics.Rect,boolean) -> requestChildRectangleOnScreen
+    709:713:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    1848:1850:void requestLayout() -> requestLayout
+    1663:1670:void runAnimatedScroll(boolean) -> runAnimatedScroll
+    1293:1314:boolean scrollAndFocus(int,int,int) -> scrollAndFocus
+    1968:1981:void scrollTo(int,int) -> scrollTo
+    1683:1693:void scrollToChild(android.view.View) -> scrollToChild
+    1704:1713:boolean scrollToChildRect(android.graphics.Rect,boolean) -> scrollToChildRect
+    553:557:void setFillViewport(boolean) -> setFillViewport
+    261:262:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    516:517:void setOnScrollChangeListener(androidx.core.widget.NestedScrollView$OnScrollChangeListener) -> setOnScrollChangeListener
+    571:572:void setSmoothScrollingEnabled(boolean) -> setSmoothScrollingEnabled
+    415:415:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+    1416:1417:void smoothScrollBy(int,int) -> smoothScrollBy
+    1427:1428:void smoothScrollBy(int,int,int) -> smoothScrollBy
+    1439:1461:void smoothScrollBy(int,int,int,boolean) -> smoothScrollBy
+    1470:1471:void smoothScrollTo(int,int) -> smoothScrollTo
+    1481:1482:void smoothScrollTo(int,int,int) -> smoothScrollTo
+    1493:1494:void smoothScrollTo(int,int,boolean) -> smoothScrollTo
+    1506:1507:void smoothScrollTo(int,int,int,boolean) -> smoothScrollTo
+    231:231:boolean startNestedScroll(int,int) -> startNestedScroll
+    271:271:boolean startNestedScroll(int) -> startNestedScroll
+    236:237:void stopNestedScroll(int) -> stopNestedScroll
+    276:277:void stopNestedScroll() -> stopNestedScroll
+androidx.core.widget.NestedScrollView$AccessibilityDelegate -> androidx.core.widget.NestedScrollView$AccessibilityDelegate:
+    2138:2138:void <init>() -> <init>
+    2203:2212:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    2178:2199:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    2141:2173:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+androidx.core.widget.NestedScrollView$SavedState -> androidx.core.widget.NestedScrollView$SavedState:
+    2124:2124:void <clinit>() -> <clinit>
+    2102:2103:void <init>(android.os.Parcelable) -> <init>
+    2106:2108:void <init>(android.os.Parcel) -> <init>
+    2119:2120:java.lang.String toString() -> toString
+    2112:2114:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.core.widget.NestedScrollView$SavedState$1 -> androidx.core.widget.NestedScrollView$SavedState$1:
+    2125:2125:void <init>() -> <init>
+    2125:2125:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2128:2128:androidx.core.widget.NestedScrollView$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    2125:2125:java.lang.Object[] newArray(int) -> newArray
+    2133:2133:androidx.core.widget.NestedScrollView$SavedState[] newArray(int) -> newArray
+androidx.core.widget.PopupMenuCompat -> androidx.core.widget.PopupMenuCompat:
+    30:32:void <init>() -> <init>
+    55:56:android.view.View$OnTouchListener getDragToOpenListener(java.lang.Object) -> getDragToOpenListener
+androidx.core.widget.PopupWindowCompat -> androidx.core.widget.PopupWindowCompat:
+    46:48:void <init>() -> <init>
+    119:120:boolean getOverlapAnchor(android.widget.PopupWindow) -> getOverlapAnchor
+    183:184:int getWindowLayoutType(android.widget.PopupWindow) -> getWindowLayoutType
+    90:110:void setOverlapAnchor(android.widget.PopupWindow,boolean) -> setOverlapAnchor
+    153:155:void setWindowLayoutType(android.widget.PopupWindow,int) -> setWindowLayoutType
+    68:81:void showAsDropDown(android.widget.PopupWindow,android.view.View,int,int,int) -> showAsDropDown
+androidx.core.widget.ScrollerCompat -> androidx.core.widget.ScrollerCompat:
+    56:59:void <init>(android.content.Context,android.view.animation.Interpolator) -> <init>
+    273:274:void abortAnimation() -> abortAnimation
+    142:142:boolean computeScrollOffset() -> computeScrollOffset
+    41:41:androidx.core.widget.ScrollerCompat create(android.content.Context) -> create
+    49:49:androidx.core.widget.ScrollerCompat create(android.content.Context,android.view.animation.Interpolator) -> create
+    210:211:void fling(int,int,int,int,int,int,int,int) -> fling
+    242:244:void fling(int,int,int,int,int,int,int,int,int,int) -> fling
+    130:130:float getCurrVelocity() -> getCurrVelocity
+    82:82:int getCurrX() -> getCurrX
+    94:94:int getCurrY() -> getCurrY
+    104:104:int getFinalX() -> getFinalX
+    114:114:int getFinalY() -> getFinalY
+    70:70:boolean isFinished() -> isFinished
+    334:334:boolean isOverScrolled() -> isOverScrolled
+    294:295:void notifyHorizontalEdgeReached(int,int,int) -> notifyHorizontalEdgeReached
+    314:315:void notifyVerticalEdgeReached(int,int,int) -> notifyVerticalEdgeReached
+    262:262:boolean springBack(int,int,int,int,int,int) -> springBack
+    163:164:void startScroll(int,int,int,int) -> startScroll
+    183:184:void startScroll(int,int,int,int,int) -> startScroll
+androidx.core.widget.TextViewCompat -> androidx.core.widget.TextViewCompat:
+    111:111:void <init>() -> <init>
+    456:462:int getAutoSizeMaxTextSize(android.widget.TextView) -> getAutoSizeMaxTextSize
+    439:445:int getAutoSizeMinTextSize(android.widget.TextView) -> getAutoSizeMinTextSize
+    422:428:int getAutoSizeStepGranularity(android.widget.TextView) -> getAutoSizeStepGranularity
+    473:479:int[] getAutoSizeTextAvailableSizes(android.widget.TextView) -> getAutoSizeTextAvailableSizes
+    406:412:int getAutoSizeTextType(android.widget.TextView) -> getAutoSizeTextType
+    1009:1011:android.content.res.ColorStateList getCompoundDrawableTintList(android.widget.TextView) -> getCompoundDrawableTintList
+    1044:1046:android.graphics.PorterDuff$Mode getCompoundDrawableTintMode(android.widget.TextView) -> getCompoundDrawableTintMode
+    295:296:android.graphics.drawable.Drawable[] getCompoundDrawablesRelative(android.widget.TextView) -> getCompoundDrawablesRelative
+    768:768:int getFirstBaselineToTopHeight(android.widget.TextView) -> getFirstBaselineToTopHeight
+    778:778:int getLastBaselineToBottomHeight(android.widget.TextView) -> getLastBaselineToBottomHeight
+    226:227:int getMaxLines(android.widget.TextView) -> getMaxLines
+    252:253:int getMinLines(android.widget.TextView) -> getMinLines
+    963:980:int getTextDirection(android.text.TextDirectionHeuristic) -> getTextDirection
+    907:954:android.text.TextDirectionHeuristic getTextDirectionHeuristic(android.widget.TextView) -> getTextDirectionHeuristic
+    815:827:androidx.core.text.PrecomputedTextCompat$Params getTextMetricsParams(android.widget.TextView) -> getTextMetricsParams
+    114:121:java.lang.reflect.Field retrieveField(java.lang.String) -> retrieveField
+    126:130:int retrieveIntFromField(java.lang.reflect.Field,android.widget.TextView) -> retrieveIntFromField
+    361:368:void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView,int,int,int,int) -> setAutoSizeTextTypeUniformWithConfiguration
+    387:393:void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView,int[],int) -> setAutoSizeTextTypeUniformWithPresetSizes
+    326:331:void setAutoSizeTextTypeWithDefaults(android.widget.TextView,int) -> setAutoSizeTextTypeWithDefaults
+    993:999:void setCompoundDrawableTintList(android.widget.TextView,android.content.res.ColorStateList) -> setCompoundDrawableTintList
+    1027:1034:void setCompoundDrawableTintMode(android.widget.TextView,android.graphics.PorterDuff$Mode) -> setCompoundDrawableTintMode
+    151:159:void setCompoundDrawablesRelative(android.widget.TextView,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelative
+    178:187:void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    210:219:void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView,int,int,int,int) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    506:508:void setCustomSelectionActionModeCallback(android.widget.TextView,android.view.ActionMode$Callback) -> setCustomSelectionActionModeCallback
+    693:718:void setFirstBaselineToTopHeight(android.widget.TextView,int) -> setFirstBaselineToTopHeight
+    738:759:void setLastBaselineToBottomHeight(android.widget.TextView,int) -> setLastBaselineToBottomHeight
+    796:804:void setLineHeight(android.widget.TextView,int) -> setLineHeight
+    884:895:void setPrecomputedText(android.widget.TextView,androidx.core.text.PrecomputedTextCompat) -> setPrecomputedText
+    283:288:void setTextAppearance(android.widget.TextView,int) -> setTextAppearance
+    842:869:void setTextMetricsParams(android.widget.TextView,androidx.core.text.PrecomputedTextCompat$Params) -> setTextMetricsParams
+    519:529:android.view.ActionMode$Callback wrapCustomSelectionActionModeCallback(android.widget.TextView,android.view.ActionMode$Callback) -> wrapCustomSelectionActionModeCallback
+androidx.core.widget.TextViewCompat$OreoCallback -> androidx.core.widget.TextViewCompat$OreoCallback:
+    549:553:void <init>(android.view.ActionMode$Callback,android.widget.TextView) -> <init>
+    671:671:android.content.Intent createProcessTextIntent() -> createProcessTextIntent
+    659:661:android.content.Intent createProcessTextIntentForResolveInfo(android.content.pm.ResolveInfo,android.widget.TextView) -> createProcessTextIntentForResolveInfo
+    630:642:java.util.List getSupportedActivities(android.content.Context,android.content.pm.PackageManager) -> getSupportedActivities
+    665:667:boolean isEditable(android.widget.TextView) -> isEditable
+    646:653:boolean isSupportedActivity(android.content.pm.ResolveInfo,android.content.Context) -> isSupportedActivity
+    568:568:boolean onActionItemClicked(android.view.ActionMode,android.view.MenuItem) -> onActionItemClicked
+    557:557:boolean onCreateActionMode(android.view.ActionMode,android.view.Menu) -> onCreateActionMode
+    573:574:void onDestroyActionMode(android.view.ActionMode) -> onDestroyActionMode
+    562:563:boolean onPrepareActionMode(android.view.ActionMode,android.view.Menu) -> onPrepareActionMode
+    577:626:void recomputeProcessTextMenuItems(android.view.Menu) -> recomputeProcessTextMenuItems
+androidx.core.widget.TextViewOnReceiveContentListener -> androidx.core.widget.TextViewOnReceiveContentListener:
+    51:51:void <init>() -> <init>
+    108:115:java.lang.CharSequence coerceToText(android.content.ClipData,android.content.Context,int) -> coerceToText
+    120:121:java.lang.CharSequence coerceToText(android.content.Context,android.content.ClipData$Item,int) -> coerceToText
+    58:95:androidx.core.view.ContentInfoCompat onReceiveContent(android.view.View,androidx.core.view.ContentInfoCompat) -> onReceiveContent
+    100:103:void onReceiveForDragAndDrop(android.widget.TextView,androidx.core.view.ContentInfoCompat) -> onReceiveForDragAndDrop
+    129:135:void replaceSelection(android.text.Editable,java.lang.CharSequence) -> replaceSelection
+androidx.core.widget.TextViewOnReceiveContentListener$Api16Impl -> androidx.core.widget.TextViewOnReceiveContentListener$Api16Impl:
+    139:139:void <init>() -> <init>
+    143:147:java.lang.CharSequence coerce(android.content.Context,android.content.ClipData$Item,int) -> coerce
+androidx.core.widget.TextViewOnReceiveContentListener$ApiImpl -> androidx.core.widget.TextViewOnReceiveContentListener$ApiImpl:
+    153:153:void <init>() -> <init>
+    157:161:java.lang.CharSequence coerce(android.content.Context,android.content.ClipData$Item,int) -> coerce
+androidx.cursoradapter.widget.CursorAdapter -> androidx.cursoradapter.widget.CursorAdapter:
+    134:136:void <init>(android.content.Context,android.database.Cursor) -> <init>
+    150:152:void <init>(android.content.Context,android.database.Cursor,boolean) -> <init>
+    163:165:void <init>(android.content.Context,android.database.Cursor,int) -> <init>
+    334:338:void changeCursor(android.database.Cursor) -> changeCursor
+    387:387:java.lang.CharSequence convertToString(android.database.Cursor) -> convertToString
+    216:219:int getCount() -> getCount
+    208:208:android.database.Cursor getCursor() -> getCursor
+    280:291:android.view.View getDropDownView(int,android.view.View,android.view.ViewGroup) -> getDropDownView
+    426:429:android.widget.Filter getFilter() -> getFilter
+    442:442:android.widget.FilterQueryProvider getFilterQueryProvider() -> getFilterQueryProvider
+    228:232:java.lang.Object getItem(int) -> getItem
+    241:248:long getItemId(int) -> getItemId
+    262:275:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    254:254:boolean hasStableIds() -> hasStableIds
+    173:174:void init(android.content.Context,android.database.Cursor,boolean) -> init
+    177:200:void init(android.content.Context,android.database.Cursor,int) -> init
+    314:314:android.view.View newDropDownView(android.content.Context,android.database.Cursor,android.view.ViewGroup) -> newDropDownView
+    469:473:void onContentChanged() -> onContentChanged
+    417:421:android.database.Cursor runQueryOnBackgroundThread(java.lang.CharSequence) -> runQueryOnBackgroundThread
+    458:459:void setFilterQueryProvider(android.widget.FilterQueryProvider) -> setFilterQueryProvider
+    351:373:android.database.Cursor swapCursor(android.database.Cursor) -> swapCursor
+androidx.cursoradapter.widget.CursorAdapter$ChangeObserver -> androidx.cursoradapter.widget.CursorAdapter$ChangeObserver:
+    476:478:void <init>(androidx.cursoradapter.widget.CursorAdapter) -> <init>
+    482:482:boolean deliverSelfNotifications() -> deliverSelfNotifications
+    487:488:void onChange(boolean) -> onChange
+androidx.cursoradapter.widget.CursorAdapter$MyDataSetObserver -> androidx.cursoradapter.widget.CursorAdapter$MyDataSetObserver:
+    492:493:void <init>(androidx.cursoradapter.widget.CursorAdapter) -> <init>
+    497:499:void onChanged() -> onChanged
+    503:505:void onInvalidated() -> onInvalidated
+androidx.cursoradapter.widget.CursorFilter -> androidx.cursoradapter.widget.CursorFilter:
+    39:41:void <init>(androidx.cursoradapter.widget.CursorFilter$CursorFilterClient) -> <init>
+    45:45:java.lang.CharSequence convertResultToString(java.lang.Object) -> convertResultToString
+    50:60:android.widget.Filter$FilterResults performFiltering(java.lang.CharSequence) -> performFiltering
+    65:70:void publishResults(java.lang.CharSequence,android.widget.Filter$FilterResults) -> publishResults
+androidx.cursoradapter.widget.ResourceCursorAdapter -> androidx.cursoradapter.widget.ResourceCursorAdapter:
+    54:57:void <init>(android.content.Context,int,android.database.Cursor) -> <init>
+    82:85:void <init>(android.content.Context,int,android.database.Cursor,boolean) -> <init>
+    99:102:void <init>(android.content.Context,int,android.database.Cursor,int) -> <init>
+    117:117:android.view.View newDropDownView(android.content.Context,android.database.Cursor,android.view.ViewGroup) -> newDropDownView
+    112:112:android.view.View newView(android.content.Context,android.database.Cursor,android.view.ViewGroup) -> newView
+    135:136:void setDropDownViewResource(int) -> setDropDownViewResource
+    126:127:void setViewResource(int) -> setViewResource
+androidx.cursoradapter.widget.SimpleCursorAdapter -> androidx.cursoradapter.widget.SimpleCursorAdapter:
+    53:73:void <init>(android.content.Context,int,android.database.Cursor,java.lang.String[],int[]) -> <init>
+    53:99:void <init>(android.content.Context,int,android.database.Cursor,java.lang.String[],int[],int) -> <init>
+    126:156:void bindView(android.view.View,android.content.Context,android.database.Cursor) -> bindView
+    351:358:void changeCursorAndColumns(android.database.Cursor,java.lang.String[],int[]) -> changeCursorAndColumns
+    299:305:java.lang.CharSequence convertToString(android.database.Cursor) -> convertToString
+    316:328:void findColumns(android.database.Cursor,java.lang.String[]) -> findColumns
+    267:267:androidx.cursoradapter.widget.SimpleCursorAdapter$CursorToStringConverter getCursorToStringConverter() -> getCursorToStringConverter
+    233:233:int getStringConversionColumn() -> getStringConversionColumn
+    167:167:androidx.cursoradapter.widget.SimpleCursorAdapter$ViewBinder getViewBinder() -> getViewBinder
+    283:284:void setCursorToStringConverter(androidx.cursoradapter.widget.SimpleCursorAdapter$CursorToStringConverter) -> setCursorToStringConverter
+    251:252:void setStringConversionColumn(int) -> setStringConversionColumn
+    180:181:void setViewBinder(androidx.cursoradapter.widget.SimpleCursorAdapter$ViewBinder) -> setViewBinder
+    200:204:void setViewImage(android.widget.ImageView,java.lang.String) -> setViewImage
+    218:219:void setViewText(android.widget.TextView,java.lang.String) -> setViewText
+    335:336:android.database.Cursor swapCursor(android.database.Cursor) -> swapCursor
+androidx.customview.view.AbsSavedState -> androidx.customview.view.AbsSavedState:
+    30:88:void <clinit>() -> <clinit>
+    29:29:void <init>(androidx.customview.view.AbsSavedState$1) -> <init>
+    37:39:void <init>() -> <init>
+    46:51:void <init>(android.os.Parcelable) -> <init>
+    59:60:void <init>(android.os.Parcel) -> <init>
+    68:71:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    80:80:int describeContents() -> describeContents
+    75:75:android.os.Parcelable getSuperState() -> getSuperState
+    85:86:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.customview.view.AbsSavedState$1 -> androidx.customview.view.AbsSavedState$1:
+    30:30:void <init>() -> <init>
+androidx.customview.view.AbsSavedState$2 -> androidx.customview.view.AbsSavedState$2:
+    88:88:void <init>() -> <init>
+    88:88:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    88:88:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    91:95:androidx.customview.view.AbsSavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    100:100:androidx.customview.view.AbsSavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    88:88:java.lang.Object[] newArray(int) -> newArray
+    105:105:androidx.customview.view.AbsSavedState[] newArray(int) -> newArray
+androidx.customview.widget.ExploreByTouchHelper -> androidx.customview.widget.ExploreByTouchHelper:
+    100:347:void <clinit>() -> <clinit>
+    104:153:void <init>(android.view.View) -> <init>
+    998:1005:boolean clearAccessibilityFocus(int) -> clearAccessibilityFocus
+    1046:1056:boolean clearKeyboardFocusForVirtualView(int) -> clearKeyboardFocusForVirtualView
+    481:481:boolean clickKeyboardFocusedVirtualView() -> clickKeyboardFocusedVirtualView
+    637:641:android.view.accessibility.AccessibilityEvent createEvent(int,int) -> createEvent
+    677:702:android.view.accessibility.AccessibilityEvent createEventForChild(int,int) -> createEventForChild
+    653:655:android.view.accessibility.AccessibilityEvent createEventForHost(int) -> createEventForHost
+    791:891:androidx.core.view.accessibility.AccessibilityNodeInfoCompat createNodeForChild(int) -> createNodeForChild
+    734:750:androidx.core.view.accessibility.AccessibilityNodeInfoCompat createNodeForHost() -> createNodeForHost
+    182:199:boolean dispatchHoverEvent(android.view.MotionEvent) -> dispatchHoverEvent
+    216:257:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    290:290:int getAccessibilityFocusedVirtualViewId() -> getAccessibilityFocusedVirtualViewId
+    157:160:androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View) -> getAccessibilityNodeProvider
+    427:436:androidx.collection.SparseArrayCompat getAllNodes() -> getAllNodes
+    328:330:void getBoundsInParent(int,android.graphics.Rect) -> getBoundsInParent
+    589:589:int getFocusedVirtualView() -> getFocusedVirtualView
+    298:298:int getKeyboardFocusedVirtualViewId() -> getKeyboardFocusedVirtualViewId
+    450:471:android.graphics.Rect guessPreviouslyFocusedRect(android.view.View,int,android.graphics.Rect) -> guessPreviouslyFocusedRect
+    526:527:void invalidateRoot() -> invalidateRoot
+    542:544:void invalidateVirtualView(int) -> invalidateVirtualView
+    566:576:void invalidateVirtualView(int,int) -> invalidateVirtualView
+    932:952:boolean isVisibleToUser(android.graphics.Rect) -> isVisibleToUser
+    309:317:int keyToDirection(int) -> keyToDirection
+    372:423:boolean moveFocus(int,android.graphics.Rect) -> moveFocus
+    719:723:androidx.core.view.accessibility.AccessibilityNodeInfoCompat obtainAccessibilityNodeInfo(int) -> obtainAccessibilityNodeInfo
+    275:282:void onFocusChanged(boolean,int,android.graphics.Rect) -> onFocusChanged
+    660:664:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    755:759:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    1128:1128:void onPopulateEventForHost(android.view.accessibility.AccessibilityEvent) -> onPopulateEventForHost
+    1116:1116:void onPopulateEventForVirtualView(int,android.view.accessibility.AccessibilityEvent) -> onPopulateEventForVirtualView
+    1206:1206:void onPopulateNodeForHost(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onPopulateNodeForHost
+    601:601:void onVirtualViewKeyboardFocusChanged(int,boolean) -> onVirtualViewKeyboardFocusChanged
+    895:899:boolean performAction(int,int,android.os.Bundle) -> performAction
+    908:918:boolean performActionForChild(int,int,android.os.Bundle) -> performActionForChild
+    904:904:boolean performActionForHost(int,android.os.Bundle) -> performActionForHost
+    968:987:boolean requestAccessibilityFocus(int) -> requestAccessibilityFocus
+    1016:1035:boolean requestKeyboardFocusForVirtualView(int) -> requestKeyboardFocusForVirtualView
+    505:515:boolean sendEventForVirtualView(int,int) -> sendEventForVirtualView
+    612:624:void updateHoveredVirtualView(int) -> updateHoveredVirtualView
+androidx.customview.widget.ExploreByTouchHelper$1 -> androidx.customview.widget.ExploreByTouchHelper$1:
+    336:336:void <init>() -> <init>
+    336:336:void obtainBounds(java.lang.Object,android.graphics.Rect) -> obtainBounds
+    339:340:void obtainBounds(androidx.core.view.accessibility.AccessibilityNodeInfoCompat,android.graphics.Rect) -> obtainBounds
+androidx.customview.widget.ExploreByTouchHelper$2 -> androidx.customview.widget.ExploreByTouchHelper$2:
+    349:349:void <init>() -> <init>
+    349:349:java.lang.Object get(java.lang.Object,int) -> get
+    353:353:androidx.core.view.accessibility.AccessibilityNodeInfoCompat get(androidx.collection.SparseArrayCompat,int) -> get
+    349:349:int size(java.lang.Object) -> size
+    358:358:int size(androidx.collection.SparseArrayCompat) -> size
+androidx.customview.widget.ExploreByTouchHelper$MyNodeProvider -> androidx.customview.widget.ExploreByTouchHelper$MyNodeProvider:
+    1238:1239:void <init>(androidx.customview.widget.ExploreByTouchHelper) -> <init>
+    1245:1247:androidx.core.view.accessibility.AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int) -> createAccessibilityNodeInfo
+    1257:1262:androidx.core.view.accessibility.AccessibilityNodeInfoCompat findFocus(int) -> findFocus
+    1252:1252:boolean performAction(int,int,android.os.Bundle) -> performAction
+androidx.customview.widget.FocusStrategy -> androidx.customview.widget.FocusStrategy:
+    454:455:void <init>() -> <init>
+    243:272:boolean beamBeats(int,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect) -> beamBeats
+    326:334:boolean beamsOverlap(int,android.graphics.Rect,android.graphics.Rect) -> beamsOverlap
+    145:183:java.lang.Object findNextFocusInAbsoluteDirection(java.lang.Object,androidx.customview.widget.FocusStrategy$CollectionAdapter,androidx.customview.widget.FocusStrategy$BoundsAdapter,java.lang.Object,android.graphics.Rect,int) -> findNextFocusInAbsoluteDirection
+    40:55:java.lang.Object findNextFocusInRelativeDirection(java.lang.Object,androidx.customview.widget.FocusStrategy$CollectionAdapter,androidx.customview.widget.FocusStrategy$BoundsAdapter,java.lang.Object,int,boolean,boolean) -> findNextFocusInRelativeDirection
+    61:71:java.lang.Object getNextFocusable(java.lang.Object,java.util.ArrayList,boolean) -> getNextFocusable
+    76:86:java.lang.Object getPreviousFocusable(java.lang.Object,java.util.ArrayList,boolean) -> getPreviousFocusable
+    283:283:int getWeightedDistanceFor(int,int) -> getWeightedDistanceFor
+    203:231:boolean isBetterCandidate(int,android.graphics.Rect,android.graphics.Rect,android.graphics.Rect) -> isBetterCandidate
+    297:311:boolean isCandidate(android.graphics.Rect,android.graphics.Rect,int) -> isCandidate
+    343:353:boolean isToDirectionOf(int,android.graphics.Rect,android.graphics.Rect) -> isToDirectionOf
+    365:365:int majorAxisDistance(int,android.graphics.Rect,android.graphics.Rect) -> majorAxisDistance
+    370:380:int majorAxisDistanceRaw(int,android.graphics.Rect,android.graphics.Rect) -> majorAxisDistanceRaw
+    392:392:int majorAxisDistanceToFarEdge(int,android.graphics.Rect,android.graphics.Rect) -> majorAxisDistanceToFarEdge
+    398:408:int majorAxisDistanceToFarEdgeRaw(int,android.graphics.Rect,android.graphics.Rect) -> majorAxisDistanceToFarEdgeRaw
+    423:435:int minorAxisDistance(int,android.graphics.Rect,android.graphics.Rect) -> minorAxisDistance
+androidx.customview.widget.FocusStrategy$SequentialComparator -> androidx.customview.widget.FocusStrategy$SequentialComparator:
+    95:104:void <init>(boolean,androidx.customview.widget.FocusStrategy$BoundsAdapter) -> <init>
+    108:135:int compare(java.lang.Object,java.lang.Object) -> compare
+androidx.customview.widget.ViewDragHelper -> androidx.customview.widget.ViewDragHelper:
+    332:332:void <clinit>() -> <clinit>
+    119:402:void <init>(android.content.Context,android.view.ViewGroup,androidx.customview.widget.ViewDragHelper$Callback) -> <init>
+    525:535:void abort() -> abort
+    933:952:boolean canScroll(android.view.View,boolean,int,int,int,int) -> canScroll
+    511:518:void cancel() -> cancel
+    471:480:void captureChildView(android.view.View,int) -> captureChildView
+    1276:1289:boolean checkNewEdgeDrag(float,float,int,int) -> checkNewEdgeDrag
+    1303:1316:boolean checkTouchSlop(android.view.View,float,float) -> checkTouchSlop
+    1334:1340:boolean checkTouchSlop(int) -> checkTouchSlop
+    1359:1376:boolean checkTouchSlop(int,int) -> checkTouchSlop
+    670:673:int clampMag(int,int,int) -> clampMag
+    687:690:float clampMag(float,float,float) -> clampMag
+    790:801:void clearMotionHistory() -> clearMotionHistory
+    804:815:void clearMotionHistory(int) -> clearMotionHistory
+    638:656:int computeAxisDuration(int,int,int) -> computeAxisDuration
+    617:634:int computeSettleDuration(android.view.View,int,int,int,int) -> computeSettleDuration
+    735:769:boolean continueSettling(boolean) -> continueSettling
+    355:355:androidx.customview.widget.ViewDragHelper create(android.view.ViewGroup,androidx.customview.widget.ViewDragHelper$Callback) -> create
+    369:371:androidx.customview.widget.ViewDragHelper create(android.view.ViewGroup,float,androidx.customview.widget.ViewDragHelper$Callback) -> create
+    779:787:void dispatchViewReleased(float,float) -> dispatchViewReleased
+    694:696:float distanceInfluenceForSnapDuration(float) -> distanceInfluenceForSnapDuration
+    1424:1443:void dragTo(int,int,int,int) -> dragTo
+    818:845:void ensureMotionHistorySizeForId(int) -> ensureMotionHistorySizeForId
+    1487:1495:android.view.View findTopChildUnder(int,int) -> findTopChildUnder
+    710:721:void flingCapturedView(int,int,int,int) -> flingCapturedView
+    597:613:boolean forceSettleCapturedViewAt(int,int,int,int) -> forceSettleCapturedViewAt
+    495:495:int getActivePointerId() -> getActivePointerId
+    487:487:android.view.View getCapturedView() -> getCapturedView
+    459:459:int getEdgeSize() -> getEdgeSize
+    1499:1506:int getEdgesTouched(int,int) -> getEdgesTouched
+    422:422:float getMinVelocity() -> getMinVelocity
+    503:503:int getTouchSlop() -> getTouchSlop
+    431:431:int getViewDragState() -> getViewDragState
+    1455:1455:boolean isCapturedViewUnder(int,int) -> isCapturedViewUnder
+    1389:1395:boolean isEdgeTouched(int) -> isEdgeTouched
+    1409:1409:boolean isEdgeTouched(int,int) -> isEdgeTouched
+    884:884:boolean isPointerDown(int) -> isPointerDown
+    1510:1516:boolean isValidPointerForActionMove(int) -> isValidPointerForActionMove
+    1468:1474:boolean isViewUnder(android.view.View,int,int) -> isViewUnder
+    1097:1252:void processTouchEvent(android.view.MotionEvent) -> processTouchEvent
+    1413:1421:void releaseViewForPointerUp() -> releaseViewForPointerUp
+    1255:1273:void reportNewEdgeDrags(float,float,int) -> reportNewEdgeDrags
+    848:853:void saveInitialMotion(float,float,int) -> saveInitialMotion
+    856:868:void saveLastMotion(android.view.MotionEvent) -> saveLastMotion
+    888:896:void setDragState(int) -> setDragState
+    447:448:void setEdgeTrackingEnabled(int) -> setEdgeTrackingEnabled
+    411:412:void setMinVelocity(float) -> setMinVelocity
+    577:584:boolean settleCapturedViewAt(int,int) -> settleCapturedViewAt
+    963:1087:boolean shouldInterceptTouchEvent(android.view.MotionEvent) -> shouldInterceptTouchEvent
+    552:562:boolean smoothSlideViewTo(android.view.View,int,int) -> smoothSlideViewTo
+    908:917:boolean tryCaptureViewForDrag(android.view.View,int) -> tryCaptureViewForDrag
+androidx.customview.widget.ViewDragHelper$1 -> androidx.customview.widget.ViewDragHelper$1:
+    332:332:void <init>() -> <init>
+    335:336:float getInterpolation(float) -> getInterpolation
+androidx.customview.widget.ViewDragHelper$2 -> androidx.customview.widget.ViewDragHelper$2:
+    340:340:void <init>(androidx.customview.widget.ViewDragHelper) -> <init>
+    343:344:void run() -> run
+androidx.customview.widget.ViewDragHelper$Callback -> androidx.customview.widget.ViewDragHelper$Callback:
+    152:152:void <init>() -> <init>
+    310:310:int clampViewPositionHorizontal(android.view.View,int,int) -> clampViewPositionHorizontal
+    325:325:int clampViewPositionVertical(android.view.View,int,int) -> clampViewPositionVertical
+    255:255:int getOrderedChildIndex(int) -> getOrderedChildIndex
+    266:266:int getViewHorizontalDragRange(android.view.View) -> getViewHorizontalDragRange
+    277:277:int getViewVerticalDragRange(android.view.View) -> getViewVerticalDragRange
+    246:246:void onEdgeDragStarted(int,int) -> onEdgeDragStarted
+    232:232:boolean onEdgeLock(int) -> onEdgeLock
+    220:220:void onEdgeTouched(int,int) -> onEdgeTouched
+    187:187:void onViewCaptured(android.view.View,int) -> onViewCaptured
+    163:163:void onViewDragStateChanged(int) -> onViewDragStateChanged
+    176:176:void onViewPositionChanged(android.view.View,int,int,int,int) -> onViewPositionChanged
+    207:207:void onViewReleased(android.view.View,float,float) -> onViewReleased
+androidx.databinding.BaseObservable -> androidx.databinding.BaseObservable:
+    28:29:void <init>() -> <init>
+    33:39:void addOnPropertyChangedCallback(androidx.databinding.Observable$OnPropertyChangedCallback) -> addOnPropertyChangedCallback
+    55:61:void notifyChange() -> notifyChange
+    71:77:void notifyPropertyChanged(int) -> notifyPropertyChanged
+    43:49:void removeOnPropertyChangedCallback(androidx.databinding.Observable$OnPropertyChangedCallback) -> removeOnPropertyChangedCallback
+androidx.databinding.BaseObservableField -> androidx.databinding.BaseObservableField:
+    8:9:void <init>() -> <init>
+    11:19:void <init>(androidx.databinding.Observable[]) -> <init>
+androidx.databinding.BaseObservableField$DependencyCallback -> androidx.databinding.BaseObservableField$DependencyCallback:
+    21:21:void <init>(androidx.databinding.BaseObservableField) -> <init>
+    24:25:void onPropertyChanged(androidx.databinding.Observable,int) -> onPropertyChanged
+androidx.databinding.CallbackRegistry -> androidx.databinding.CallbackRegistry:
+    48:77:void <init>(androidx.databinding.CallbackRegistry$NotifierCallback) -> <init>
+    212:220:void add(java.lang.Object) -> add
+    362:370:void clear() -> clear
+    44:44:java.lang.Object clone() -> clone
+    377:394:androidx.databinding.CallbackRegistry clone() -> clone
+    312:320:java.util.ArrayList copyCallbacks() -> copyCallbacks
+    328:336:void copyCallbacks(java.util.List) -> copyCallbacks
+    343:355:boolean isEmpty() -> isEmpty
+    229:245:boolean isRemoved(int) -> isRemoved
+    89:108:void notifyCallbacks(java.lang.Object,int,java.lang.Object) -> notifyCallbacks
+    198:205:void notifyCallbacks(java.lang.Object,int,java.lang.Object,int,int,long) -> notifyCallbacks
+    121:123:void notifyFirst64(java.lang.Object,int,java.lang.Object) -> notifyFirst64
+    140:153:void notifyRecurse(java.lang.Object,int,java.lang.Object) -> notifyRecurse
+    168:177:void notifyRemainder(java.lang.Object,int,java.lang.Object,int) -> notifyRemainder
+    276:285:void remove(java.lang.Object) -> remove
+    260:269:void removeRemovedCallbacks(int,long) -> removeRemovedCallbacks
+    288:305:void setRemovalBit(int) -> setRemovalBit
+androidx.databinding.CallbackRegistry$NotifierCallback -> androidx.databinding.CallbackRegistry$NotifierCallback:
+    404:404:void <init>() -> <init>
+androidx.databinding.DataBinderMapper -> androidx.databinding.DataBinderMapper:
+    32:32:void <init>() -> <init>
+    42:42:java.util.List collectDependencies() -> collectDependencies
+androidx.databinding.DataBindingUtil -> androidx.databinding.DataBindingUtil:
+    32:33:void <clinit>() -> <clinit>
+    38:38:void <init>() -> <init>
+    152:152:androidx.databinding.ViewDataBinding bind(android.view.View) -> bind
+    174:187:androidx.databinding.ViewDataBinding bind(android.view.View,androidx.databinding.DataBindingComponent) -> bind
+    194:194:androidx.databinding.ViewDataBinding bind(androidx.databinding.DataBindingComponent,android.view.View[],int) -> bind
+    199:199:androidx.databinding.ViewDataBinding bind(androidx.databinding.DataBindingComponent,android.view.View,int) -> bind
+    323:333:androidx.databinding.ViewDataBinding bindToAddedViews(androidx.databinding.DataBindingComponent,android.view.ViewGroup,int,int) -> bindToAddedViews
+    318:318:java.lang.String convertBrIdToString(int) -> convertBrIdToString
+    218:251:androidx.databinding.ViewDataBinding findBinding(android.view.View) -> findBinding
+    266:266:androidx.databinding.ViewDataBinding getBinding(android.view.View) -> getBinding
+    65:65:androidx.databinding.DataBindingComponent getDefaultComponent() -> getDefaultComponent
+    95:95:androidx.databinding.ViewDataBinding inflate(android.view.LayoutInflater,int,android.view.ViewGroup,boolean) -> inflate
+    124:130:androidx.databinding.ViewDataBinding inflate(android.view.LayoutInflater,int,android.view.ViewGroup,boolean,androidx.databinding.DataBindingComponent) -> inflate
+    284:284:androidx.databinding.ViewDataBinding setContentView(android.app.Activity,int) -> setContentView
+    303:306:androidx.databinding.ViewDataBinding setContentView(android.app.Activity,int,androidx.databinding.DataBindingComponent) -> setContentView
+    51:52:void setDefaultComponent(androidx.databinding.DataBindingComponent) -> setDefaultComponent
+androidx.databinding.ListChangeRegistry -> androidx.databinding.ListChangeRegistry:
+    28:38:void <clinit>() -> <clinit>
+    143:144:void <init>() -> <init>
+    123:130:androidx.databinding.ListChangeRegistry$ListChanges acquire(int,int,int) -> acquire
+    24:24:void notifyCallbacks(java.lang.Object,int,java.lang.Object) -> notifyCallbacks
+    135:140:void notifyCallbacks(androidx.databinding.ObservableList,int,androidx.databinding.ListChangeRegistry$ListChanges) -> notifyCallbacks
+    70:71:void notifyChanged(androidx.databinding.ObservableList) -> notifyChanged
+    81:83:void notifyChanged(androidx.databinding.ObservableList,int,int) -> notifyChanged
+    93:95:void notifyInserted(androidx.databinding.ObservableList,int,int) -> notifyInserted
+    106:108:void notifyMoved(androidx.databinding.ObservableList,int,int,int) -> notifyMoved
+    118:120:void notifyRemoved(androidx.databinding.ObservableList,int,int) -> notifyRemoved
+androidx.databinding.ListChangeRegistry$1 -> androidx.databinding.ListChangeRegistry$1:
+    39:39:void <init>() -> <init>
+    39:39:void onNotifyCallback(java.lang.Object,java.lang.Object,int,java.lang.Object) -> onNotifyCallback
+    43:61:void onNotifyCallback(androidx.databinding.ObservableList$OnListChangedCallback,androidx.databinding.ObservableList,int,androidx.databinding.ListChangeRegistry$ListChanges) -> onNotifyCallback
+androidx.databinding.ListChangeRegistry$ListChanges -> androidx.databinding.ListChangeRegistry$ListChanges:
+    146:146:void <init>() -> <init>
+androidx.databinding.MapChangeRegistry -> androidx.databinding.MapChangeRegistry:
+    27:27:void <clinit>() -> <clinit>
+    37:38:void <init>() -> <init>
+    47:48:void notifyChange(androidx.databinding.ObservableMap,java.lang.Object) -> notifyChange
+androidx.databinding.MapChangeRegistry$1 -> androidx.databinding.MapChangeRegistry$1:
+    28:28:void <init>() -> <init>
+    28:28:void onNotifyCallback(java.lang.Object,java.lang.Object,int,java.lang.Object) -> onNotifyCallback
+    32:33:void onNotifyCallback(androidx.databinding.ObservableMap$OnMapChangedCallback,androidx.databinding.ObservableMap,int,java.lang.Object) -> onNotifyCallback
+androidx.databinding.MergedDataBinderMapper -> androidx.databinding.MergedDataBinderMapper:
+    32:43:void <init>() -> <init>
+    55:63:void addMapper(androidx.databinding.DataBinderMapper) -> addMapper
+    67:68:void addMapper(java.lang.String) -> addMapper
+    116:125:java.lang.String convertBrIdToString(int) -> convertBrIdToString
+    73:82:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View,int) -> getDataBinder
+    88:97:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View[],int) -> getDataBinder
+    102:111:int getLayoutId(java.lang.String) -> getLayoutId
+    132:148:boolean loadFeatures() -> loadFeatures
+androidx.databinding.Observable$OnPropertyChangedCallback -> androidx.databinding.Observable$OnPropertyChangedCallback:
+    51:51:void <init>() -> <init>
+androidx.databinding.ObservableArrayList -> androidx.databinding.ObservableArrayList:
+    24:25:void <init>() -> <init>
+    44:46:boolean add(java.lang.Object) -> add
+    51:53:void add(int,java.lang.Object) -> add
+    57:62:boolean addAll(java.util.Collection) -> addAll
+    67:71:boolean addAll(int,java.util.Collection) -> addAll
+    29:33:void addOnListChangedCallback(androidx.databinding.ObservableList$OnListChangedCallback) -> addOnListChangedCallback
+    76:81:void clear() -> clear
+    117:120:void notifyAdd(int,int) -> notifyAdd
+    123:126:void notifyRemove(int,int) -> notifyRemove
+    85:87:java.lang.Object remove(int) -> remove
+    92:97:boolean remove(java.lang.Object) -> remove
+    37:40:void removeOnListChangedCallback(androidx.databinding.ObservableList$OnListChangedCallback) -> removeOnListChangedCallback
+    112:114:void removeRange(int,int) -> removeRange
+    103:107:java.lang.Object set(int,java.lang.Object) -> set
+androidx.databinding.ObservableArrayMap -> androidx.databinding.ObservableArrayMap:
+    22:22:void <init>() -> <init>
+    29:33:void addOnMapChangedCallback(androidx.databinding.ObservableMap$OnMapChangedCallback) -> addOnMapChangedCallback
+    45:50:void clear() -> clear
+    103:106:void notifyChange(java.lang.Object) -> notifyChange
+    53:55:java.lang.Object put(java.lang.Object,java.lang.Object) -> put
+    60:68:boolean removeAll(java.util.Collection) -> removeAll
+    86:91:java.lang.Object removeAt(int) -> removeAt
+    38:41:void removeOnMapChangedCallback(androidx.databinding.ObservableMap$OnMapChangedCallback) -> removeOnMapChangedCallback
+    73:81:boolean retainAll(java.util.Collection) -> retainAll
+    96:99:java.lang.Object setValueAt(int,java.lang.Object) -> setValueAt
+androidx.databinding.ObservableBoolean -> androidx.databinding.ObservableBoolean:
+    101:101:void <clinit>() -> <clinit>
+    52:54:void <init>(boolean) -> <init>
+    59:60:void <init>() -> <init>
+    70:71:void <init>(androidx.databinding.Observable[]) -> <init>
+    93:93:int describeContents() -> describeContents
+    77:77:boolean get() -> get
+    85:89:void set(boolean) -> set
+    98:99:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableBoolean$1 -> androidx.databinding.ObservableBoolean$1:
+    102:102:void <init>() -> <init>
+    102:102:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    106:106:androidx.databinding.ObservableBoolean createFromParcel(android.os.Parcel) -> createFromParcel
+    102:102:java.lang.Object[] newArray(int) -> newArray
+    111:111:androidx.databinding.ObservableBoolean[] newArray(int) -> newArray
+androidx.databinding.ObservableByte -> androidx.databinding.ObservableByte:
+    103:103:void <clinit>() -> <clinit>
+    53:55:void <init>(byte) -> <init>
+    60:61:void <init>() -> <init>
+    71:72:void <init>(androidx.databinding.Observable[]) -> <init>
+    95:95:int describeContents() -> describeContents
+    78:78:byte get() -> get
+    87:91:void set(byte) -> set
+    100:101:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableByte$1 -> androidx.databinding.ObservableByte$1:
+    104:104:void <init>() -> <init>
+    104:104:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    108:108:androidx.databinding.ObservableByte createFromParcel(android.os.Parcel) -> createFromParcel
+    104:104:java.lang.Object[] newArray(int) -> newArray
+    113:113:androidx.databinding.ObservableByte[] newArray(int) -> newArray
+androidx.databinding.ObservableChar -> androidx.databinding.ObservableChar:
+    102:102:void <clinit>() -> <clinit>
+    52:54:void <init>(char) -> <init>
+    59:60:void <init>() -> <init>
+    70:71:void <init>(androidx.databinding.Observable[]) -> <init>
+    94:94:int describeContents() -> describeContents
+    77:77:char get() -> get
+    86:90:void set(char) -> set
+    99:100:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableChar$1 -> androidx.databinding.ObservableChar$1:
+    103:103:void <init>() -> <init>
+    103:103:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    107:107:androidx.databinding.ObservableChar createFromParcel(android.os.Parcel) -> createFromParcel
+    103:103:java.lang.Object[] newArray(int) -> newArray
+    112:112:androidx.databinding.ObservableChar[] newArray(int) -> newArray
+androidx.databinding.ObservableDouble -> androidx.databinding.ObservableDouble:
+    102:102:void <clinit>() -> <clinit>
+    52:54:void <init>(double) -> <init>
+    59:60:void <init>() -> <init>
+    70:71:void <init>(androidx.databinding.Observable[]) -> <init>
+    94:94:int describeContents() -> describeContents
+    77:77:double get() -> get
+    86:90:void set(double) -> set
+    99:100:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableDouble$1 -> androidx.databinding.ObservableDouble$1:
+    103:103:void <init>() -> <init>
+    103:103:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    107:107:androidx.databinding.ObservableDouble createFromParcel(android.os.Parcel) -> createFromParcel
+    103:103:java.lang.Object[] newArray(int) -> newArray
+    112:112:androidx.databinding.ObservableDouble[] newArray(int) -> newArray
+androidx.databinding.ObservableField -> androidx.databinding.ObservableField:
+    55:57:void <init>(java.lang.Object) -> <init>
+    62:63:void <init>() -> <init>
+    73:74:void <init>(androidx.databinding.Observable[]) -> <init>
+    81:81:java.lang.Object get() -> get
+    90:94:void set(java.lang.Object) -> set
+androidx.databinding.ObservableFloat -> androidx.databinding.ObservableFloat:
+    102:102:void <clinit>() -> <clinit>
+    52:54:void <init>(float) -> <init>
+    59:60:void <init>() -> <init>
+    70:71:void <init>(androidx.databinding.Observable[]) -> <init>
+    94:94:int describeContents() -> describeContents
+    77:77:float get() -> get
+    86:90:void set(float) -> set
+    99:100:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableFloat$1 -> androidx.databinding.ObservableFloat$1:
+    103:103:void <init>() -> <init>
+    103:103:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    107:107:androidx.databinding.ObservableFloat createFromParcel(android.os.Parcel) -> createFromParcel
+    103:103:java.lang.Object[] newArray(int) -> newArray
+    112:112:androidx.databinding.ObservableFloat[] newArray(int) -> newArray
+androidx.databinding.ObservableInt -> androidx.databinding.ObservableInt:
+    103:103:void <clinit>() -> <clinit>
+    53:55:void <init>(int) -> <init>
+    60:61:void <init>() -> <init>
+    71:72:void <init>(androidx.databinding.Observable[]) -> <init>
+    95:95:int describeContents() -> describeContents
+    78:78:int get() -> get
+    87:91:void set(int) -> set
+    100:101:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableInt$1 -> androidx.databinding.ObservableInt$1:
+    104:104:void <init>() -> <init>
+    104:104:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    108:108:androidx.databinding.ObservableInt createFromParcel(android.os.Parcel) -> createFromParcel
+    104:104:java.lang.Object[] newArray(int) -> newArray
+    113:113:androidx.databinding.ObservableInt[] newArray(int) -> newArray
+androidx.databinding.ObservableList$OnListChangedCallback -> androidx.databinding.ObservableList$OnListChangedCallback:
+    50:50:void <init>() -> <init>
+androidx.databinding.ObservableLong -> androidx.databinding.ObservableLong:
+    103:103:void <clinit>() -> <clinit>
+    53:55:void <init>(long) -> <init>
+    60:61:void <init>() -> <init>
+    71:72:void <init>(androidx.databinding.Observable[]) -> <init>
+    95:95:int describeContents() -> describeContents
+    78:78:long get() -> get
+    87:91:void set(long) -> set
+    100:101:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableLong$1 -> androidx.databinding.ObservableLong$1:
+    104:104:void <init>() -> <init>
+    104:104:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    108:108:androidx.databinding.ObservableLong createFromParcel(android.os.Parcel) -> createFromParcel
+    104:104:java.lang.Object[] newArray(int) -> newArray
+    113:113:androidx.databinding.ObservableLong[] newArray(int) -> newArray
+androidx.databinding.ObservableMap$OnMapChangedCallback -> androidx.databinding.ObservableMap$OnMapChangedCallback:
+    51:51:void <init>() -> <init>
+androidx.databinding.ObservableParcelable -> androidx.databinding.ObservableParcelable:
+    68:68:void <clinit>() -> <clinit>
+    48:49:void <init>(android.os.Parcelable) -> <init>
+    55:56:void <init>() -> <init>
+    60:60:int describeContents() -> describeContents
+    65:66:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableParcelable$1 -> androidx.databinding.ObservableParcelable$1:
+    69:69:void <init>() -> <init>
+    69:69:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    74:74:androidx.databinding.ObservableParcelable createFromParcel(android.os.Parcel) -> createFromParcel
+    69:69:java.lang.Object[] newArray(int) -> newArray
+    79:79:androidx.databinding.ObservableParcelable[] newArray(int) -> newArray
+androidx.databinding.ObservableShort -> androidx.databinding.ObservableShort:
+    102:102:void <clinit>() -> <clinit>
+    52:54:void <init>(short) -> <init>
+    59:60:void <init>() -> <init>
+    70:71:void <init>(androidx.databinding.Observable[]) -> <init>
+    94:94:int describeContents() -> describeContents
+    77:77:short get() -> get
+    86:90:void set(short) -> set
+    99:100:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.databinding.ObservableShort$1 -> androidx.databinding.ObservableShort$1:
+    103:103:void <init>() -> <init>
+    103:103:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    107:107:androidx.databinding.ObservableShort createFromParcel(android.os.Parcel) -> createFromParcel
+    103:103:java.lang.Object[] newArray(int) -> newArray
+    112:112:androidx.databinding.ObservableShort[] newArray(int) -> newArray
+androidx.databinding.OnRebindCallback -> androidx.databinding.OnRebindCallback:
+    23:23:void <init>() -> <init>
+    66:66:void onBound(androidx.databinding.ViewDataBinding) -> onBound
+    54:54:void onCanceled(androidx.databinding.ViewDataBinding) -> onCanceled
+    42:42:boolean onPreBind(androidx.databinding.ViewDataBinding) -> onPreBind
+androidx.databinding.PropertyChangeRegistry -> androidx.databinding.PropertyChangeRegistry:
+    26:26:void <clinit>() -> <clinit>
+    35:36:void <init>() -> <init>
+    46:47:void notifyChange(androidx.databinding.Observable,int) -> notifyChange
+androidx.databinding.PropertyChangeRegistry$1 -> androidx.databinding.PropertyChangeRegistry$1:
+    26:26:void <init>() -> <init>
+    26:26:void onNotifyCallback(java.lang.Object,java.lang.Object,int,java.lang.Object) -> onNotifyCallback
+    30:31:void onNotifyCallback(androidx.databinding.Observable$OnPropertyChangedCallback,androidx.databinding.Observable,int,java.lang.Void) -> onNotifyCallback
+androidx.databinding.ViewDataBinding -> androidx.databinding.ViewDataBinding:
+    71:174:void <clinit>() -> <clinit>
+    179:298:void <init>(androidx.databinding.DataBindingComponent,android.view.View,int) -> <init>
+    304:305:void <init>(java.lang.Object,android.view.View,int) -> <init>
+    65:65:boolean access$002(androidx.databinding.ViewDataBinding,boolean) -> access$002
+    65:65:java.lang.Runnable access$100(androidx.databinding.ViewDataBinding) -> access$100
+    65:65:boolean access$202(androidx.databinding.ViewDataBinding,boolean) -> access$202
+    65:65:void access$300() -> access$300
+    65:65:android.view.View access$400(androidx.databinding.ViewDataBinding) -> access$400
+    65:65:android.view.View$OnAttachStateChangeListener access$500() -> access$500
+    65:65:java.lang.ref.ReferenceQueue access$700() -> access$700
+    65:65:void access$800(androidx.databinding.ViewDataBinding,int,java.lang.Object,int) -> access$800
+    422:426:void addOnRebindCallback(androidx.databinding.OnRebindCallback) -> addOnRebindCallback
+    695:696:androidx.databinding.ViewDataBinding bind(java.lang.Object,android.view.View,int) -> bind
+    308:317:androidx.databinding.DataBindingComponent checkAndCastToBindingComponent(java.lang.Object) -> checkAndCastToBindingComponent
+    660:670:void ensureBindingComponentIsNotNull(java.lang.Class) -> ensureBindingComponentIsNotNull
+    455:479:void executeBindingsInternal() -> executeBindingsInternal
+    487:488:void executeBindingsOn(androidx.databinding.ViewDataBinding) -> executeBindingsOn
+    444:449:void executePendingBindings() -> executePendingBindings
+    1276:1287:int findIncludeIndex(java.lang.String,int,androidx.databinding.ViewDataBinding$IncludedLayouts,int) -> findIncludeIndex
+    1291:1311:int findLastMatching(android.view.ViewGroup,int) -> findLastMatching
+    492:493:void forceExecuteBindings() -> forceExecuteBindings
+    524:527:androidx.databinding.ViewDataBinding getBinding(android.view.View) -> getBinding
+    342:342:int getBuildSdkInt() -> getBuildSdkInt
+    795:796:int getColorFromResource(android.view.View,int) -> getColorFromResource
+    804:805:android.content.res.ColorStateList getColorStateListFromResource(android.view.View,int) -> getColorStateListFromResource
+    813:814:android.graphics.drawable.Drawable getDrawableFromResource(android.view.View,int) -> getDrawableFromResource
+    1083:1086:java.lang.Object getFrom(java.util.Map,java.lang.Object) -> getFrom
+    822:825:java.lang.Object getFromArray(java.lang.Object[],int) -> getFromArray
+    838:841:boolean getFromArray(boolean[],int) -> getFromArray
+    854:857:byte getFromArray(byte[],int) -> getFromArray
+    870:873:short getFromArray(short[],int) -> getFromArray
+    886:889:char getFromArray(char[],int) -> getFromArray
+    902:905:int getFromArray(int[],int) -> getFromArray
+    918:921:long getFromArray(long[],int) -> getFromArray
+    934:937:float getFromArray(float[],int) -> getFromArray
+    950:953:double getFromArray(double[],int) -> getFromArray
+    966:969:java.lang.Object getFromList(java.util.List,int) -> getFromList
+    982:985:java.lang.Object getFromList(android.util.SparseArray,int) -> getFromList
+    999:1002:java.lang.Object getFromList(android.util.LongSparseArray,int) -> getFromList
+    1016:1019:java.lang.Object getFromList(androidx.collection.LongSparseArray,int) -> getFromList
+    1033:1036:boolean getFromList(android.util.SparseBooleanArray,int) -> getFromList
+    1049:1052:int getFromList(android.util.SparseIntArray,int) -> getFromList
+    1066:1069:long getFromList(android.util.SparseLongArray,int) -> getFromList
+    412:412:androidx.lifecycle.LifecycleOwner getLifecycleOwner() -> getLifecycleOwner
+    598:602:java.lang.Object getObservedField(int) -> getObservedField
+    539:539:android.view.View getRoot() -> getRoot
+    543:553:void handleFieldChange(int,java.lang.Object,int) -> handleFieldChange
+    1368:1373:androidx.databinding.ViewDataBinding inflateInternal(android.view.LayoutInflater,int,android.view.ViewGroup,boolean,java.lang.Object) -> inflateInternal
+    1315:1324:boolean isNumeric(java.lang.String,int) -> isNumeric
+    718:720:java.lang.Object[] mapBindings(androidx.databinding.DataBindingComponent,android.view.View,int,androidx.databinding.ViewDataBinding$IncludedLayouts,android.util.SparseIntArray) -> mapBindings
+    1179:1183:java.lang.Object[] mapBindings(androidx.databinding.DataBindingComponent,android.view.View[],int,androidx.databinding.ViewDataBinding$IncludedLayouts,android.util.SparseIntArray) -> mapBindings
+    1190:1272:void mapBindings(androidx.databinding.DataBindingComponent,android.view.View,java.lang.Object[],androidx.databinding.ViewDataBinding$IncludedLayouts,android.util.SparseIntArray,boolean) -> mapBindings
+    725:728:boolean parse(java.lang.String,boolean) -> parse
+    734:736:byte parse(java.lang.String,byte) -> parse
+    743:745:short parse(java.lang.String,short) -> parse
+    752:754:int parse(java.lang.String,int) -> parse
+    761:763:long parse(java.lang.String,long) -> parse
+    770:772:float parse(java.lang.String,float) -> parse
+    779:781:double parse(java.lang.String,double) -> parse
+    787:790:char parse(java.lang.String,char) -> parse
+    1334:1341:int parseTagInt(java.lang.String,int) -> parseTagInt
+    1349:1355:void processReferenceQueue() -> processReferenceQueue
+    677:689:void registerTo(int,java.lang.Object,androidx.databinding.ViewDataBinding$CreateWeakListener) -> registerTo
+    434:437:void removeOnRebindCallback(androidx.databinding.OnRebindCallback) -> removeOnRebindCallback
+    570:592:void requestRebind() -> requestRebind
+    1113:1113:int safeUnbox(java.lang.Integer) -> safeUnbox
+    1118:1118:long safeUnbox(java.lang.Long) -> safeUnbox
+    1123:1123:short safeUnbox(java.lang.Short) -> safeUnbox
+    1128:1128:byte safeUnbox(java.lang.Byte) -> safeUnbox
+    1133:1133:char safeUnbox(java.lang.Character) -> safeUnbox
+    1138:1138:double safeUnbox(java.lang.Double) -> safeUnbox
+    1143:1143:float safeUnbox(java.lang.Float) -> safeUnbox
+    1148:1148:boolean safeUnbox(java.lang.Boolean) -> safeUnbox
+    1100:1109:void setBindingInverseListener(androidx.databinding.ViewDataBinding,androidx.databinding.InverseBindingListener,androidx.databinding.ViewDataBinding$PropertyChangedInverseListener) -> setBindingInverseListener
+    1157:1160:void setContainedBinding(androidx.databinding.ViewDataBinding) -> setContainedBinding
+    384:402:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+    324:325:void setRootTag(android.view.View) -> setRootTag
+    331:334:void setRootTag(android.view.View[]) -> setRootTag
+    830:834:void setTo(java.lang.Object[],int,java.lang.Object) -> setTo
+    846:850:void setTo(boolean[],int,boolean) -> setTo
+    862:866:void setTo(byte[],int,byte) -> setTo
+    878:882:void setTo(short[],int,short) -> setTo
+    894:898:void setTo(char[],int,char) -> setTo
+    910:914:void setTo(int[],int,int) -> setTo
+    926:930:void setTo(long[],int,long) -> setTo
+    942:946:void setTo(float[],int,float) -> setTo
+    958:962:void setTo(double[],int,double) -> setTo
+    974:978:void setTo(java.util.List,int,java.lang.Object) -> setTo
+    990:994:void setTo(android.util.SparseArray,int,java.lang.Object) -> setTo
+    1008:1012:void setTo(android.util.LongSparseArray,int,java.lang.Object) -> setTo
+    1025:1029:void setTo(androidx.collection.LongSparseArray,int,java.lang.Object) -> setTo
+    1041:1045:void setTo(android.util.SparseBooleanArray,int,boolean) -> setTo
+    1057:1061:void setTo(android.util.SparseIntArray,int,int) -> setTo
+    1075:1079:void setTo(android.util.SparseLongArray,int,long) -> setTo
+    1091:1095:void setTo(java.util.Map,java.lang.Object,java.lang.Object) -> setTo
+    516:521:void unbind() -> unbind
+    559:563:boolean unregisterFrom(int) -> unregisterFrom
+    648:653:boolean updateLiveDataRegistration(int,androidx.lifecycle.LiveData) -> updateLiveDataRegistration
+    607:620:boolean updateRegistration(int,java.lang.Object,androidx.databinding.ViewDataBinding$CreateWeakListener) -> updateRegistration
+    627:627:boolean updateRegistration(int,androidx.databinding.Observable) -> updateRegistration
+    634:634:boolean updateRegistration(int,androidx.databinding.ObservableList) -> updateRegistration
+    641:641:boolean updateRegistration(int,androidx.databinding.ObservableMap) -> updateRegistration
+androidx.databinding.ViewDataBinding$1 -> androidx.databinding.ViewDataBinding$1:
+    93:93:void <init>() -> <init>
+    96:96:androidx.databinding.ViewDataBinding$WeakListener create(androidx.databinding.ViewDataBinding,int) -> create
+androidx.databinding.ViewDataBinding$2 -> androidx.databinding.ViewDataBinding$2:
+    103:103:void <init>() -> <init>
+    106:106:androidx.databinding.ViewDataBinding$WeakListener create(androidx.databinding.ViewDataBinding,int) -> create
+androidx.databinding.ViewDataBinding$3 -> androidx.databinding.ViewDataBinding$3:
+    113:113:void <init>() -> <init>
+    116:116:androidx.databinding.ViewDataBinding$WeakListener create(androidx.databinding.ViewDataBinding,int) -> create
+androidx.databinding.ViewDataBinding$4 -> androidx.databinding.ViewDataBinding$4:
+    123:123:void <init>() -> <init>
+    126:126:androidx.databinding.ViewDataBinding$WeakListener create(androidx.databinding.ViewDataBinding,int) -> create
+androidx.databinding.ViewDataBinding$5 -> androidx.databinding.ViewDataBinding$5:
+    131:131:void <init>() -> <init>
+    131:131:void onNotifyCallback(java.lang.Object,java.lang.Object,int,java.lang.Object) -> onNotifyCallback
+    135:148:void onNotifyCallback(androidx.databinding.OnRebindCallback,androidx.databinding.ViewDataBinding,int,java.lang.Void) -> onNotifyCallback
+androidx.databinding.ViewDataBinding$6 -> androidx.databinding.ViewDataBinding$6:
+    159:159:void <init>() -> <init>
+    164:167:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    171:171:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.databinding.ViewDataBinding$7 -> androidx.databinding.ViewDataBinding$7:
+    179:179:void <init>(androidx.databinding.ViewDataBinding) -> <init>
+    182:198:void run() -> run
+androidx.databinding.ViewDataBinding$8 -> androidx.databinding.ViewDataBinding$8:
+    288:288:void <init>(androidx.databinding.ViewDataBinding) -> <init>
+    291:292:void doFrame(long) -> doFrame
+androidx.databinding.ViewDataBinding$IncludedLayouts -> androidx.databinding.ViewDataBinding$IncludedLayouts:
+    1636:1640:void <init>(int) -> <init>
+    1643:1646:void setIncludes(int,java.lang.String[],int[],int[]) -> setIncludes
+androidx.databinding.ViewDataBinding$LiveDataListener -> androidx.databinding.ViewDataBinding$LiveDataListener:
+    1576:1578:void <init>(androidx.databinding.ViewDataBinding,int) -> <init>
+    1571:1571:void addListener(java.lang.Object) -> addListener
+    1602:1605:void addListener(androidx.lifecycle.LiveData) -> addListener
+    1597:1597:androidx.databinding.ViewDataBinding$WeakListener getListener() -> getListener
+    1614:1618:void onChanged(java.lang.Object) -> onChanged
+    1571:1571:void removeListener(java.lang.Object) -> removeListener
+    1609:1610:void removeListener(androidx.lifecycle.LiveData) -> removeListener
+    1582:1593:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+androidx.databinding.ViewDataBinding$OnStartListener -> androidx.databinding.ViewDataBinding$OnStartListener:
+    1677:1677:void <init>(androidx.databinding.ViewDataBinding,androidx.databinding.ViewDataBinding$1) -> <init>
+    1679:1681:void <init>(androidx.databinding.ViewDataBinding) -> <init>
+    1685:1689:void onStart() -> onStart
+androidx.databinding.ViewDataBinding$PropertyChangedInverseListener -> androidx.databinding.ViewDataBinding$PropertyChangedInverseListener:
+    1659:1661:void <init>(int) -> <init>
+    1665:1668:void onPropertyChanged(androidx.databinding.Observable,int) -> onPropertyChanged
+androidx.databinding.ViewDataBinding$WeakListListener -> androidx.databinding.ViewDataBinding$WeakListListener:
+    1476:1478:void <init>(androidx.databinding.ViewDataBinding,int) -> <init>
+    1472:1472:void addListener(java.lang.Object) -> addListener
+    1491:1492:void addListener(androidx.databinding.ObservableList) -> addListener
+    1486:1486:androidx.databinding.ViewDataBinding$WeakListener getListener() -> getListener
+    1501:1510:void onChanged(androidx.databinding.ObservableList) -> onChanged
+    1514:1515:void onItemRangeChanged(androidx.databinding.ObservableList,int,int) -> onItemRangeChanged
+    1519:1520:void onItemRangeInserted(androidx.databinding.ObservableList,int,int) -> onItemRangeInserted
+    1525:1526:void onItemRangeMoved(androidx.databinding.ObservableList,int,int,int) -> onItemRangeMoved
+    1530:1531:void onItemRangeRemoved(androidx.databinding.ObservableList,int,int) -> onItemRangeRemoved
+    1472:1472:void removeListener(java.lang.Object) -> removeListener
+    1496:1497:void removeListener(androidx.databinding.ObservableList) -> removeListener
+    1482:1482:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+androidx.databinding.ViewDataBinding$WeakListener -> androidx.databinding.ViewDataBinding$WeakListener:
+    1391:1394:void <init>(androidx.databinding.ViewDataBinding,int,androidx.databinding.ViewDataBinding$ObservableReference) -> <init>
+    1423:1427:androidx.databinding.ViewDataBinding getBinder() -> getBinder
+    1419:1419:java.lang.Object getTarget() -> getTarget
+    1397:1398:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+    1401:1406:void setTarget(java.lang.Object) -> setTarget
+    1409:1415:boolean unregister() -> unregister
+androidx.databinding.ViewDataBinding$WeakMapListener -> androidx.databinding.ViewDataBinding$WeakMapListener:
+    1538:1540:void <init>(androidx.databinding.ViewDataBinding,int) -> <init>
+    1534:1534:void addListener(java.lang.Object) -> addListener
+    1553:1554:void addListener(androidx.databinding.ObservableMap) -> addListener
+    1548:1548:androidx.databinding.ViewDataBinding$WeakListener getListener() -> getListener
+    1563:1568:void onMapChanged(androidx.databinding.ObservableMap,java.lang.Object) -> onMapChanged
+    1534:1534:void removeListener(java.lang.Object) -> removeListener
+    1558:1559:void removeListener(androidx.databinding.ObservableMap) -> removeListener
+    1544:1544:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+androidx.databinding.ViewDataBinding$WeakPropertyListener -> androidx.databinding.ViewDataBinding$WeakPropertyListener:
+    1435:1437:void <init>(androidx.databinding.ViewDataBinding,int) -> <init>
+    1431:1431:void addListener(java.lang.Object) -> addListener
+    1446:1447:void addListener(androidx.databinding.Observable) -> addListener
+    1441:1441:androidx.databinding.ViewDataBinding$WeakListener getListener() -> getListener
+    1460:1469:void onPropertyChanged(androidx.databinding.Observable,int) -> onPropertyChanged
+    1431:1431:void removeListener(java.lang.Object) -> removeListener
+    1451:1452:void removeListener(androidx.databinding.Observable) -> removeListener
+    1456:1456:void setLifecycleOwner(androidx.lifecycle.LifecycleOwner) -> setLifecycleOwner
+androidx.databinding.ViewStubProxy -> androidx.databinding.ViewStubProxy:
+    37:57:void <init>(android.view.ViewStub) -> <init>
+    30:30:android.view.View access$002(androidx.databinding.ViewStubProxy,android.view.View) -> access$002
+    30:30:androidx.databinding.ViewDataBinding access$102(androidx.databinding.ViewStubProxy,androidx.databinding.ViewDataBinding) -> access$102
+    30:30:androidx.databinding.ViewDataBinding access$200(androidx.databinding.ViewStubProxy) -> access$200
+    30:30:android.view.ViewStub access$302(androidx.databinding.ViewStubProxy,android.view.ViewStub) -> access$302
+    30:30:android.view.ViewStub$OnInflateListener access$400(androidx.databinding.ViewStubProxy) -> access$400
+    30:30:android.view.ViewStub$OnInflateListener access$402(androidx.databinding.ViewStubProxy,android.view.ViewStub$OnInflateListener) -> access$402
+    94:94:androidx.databinding.ViewDataBinding getBinding() -> getBinding
+    82:82:android.view.View getRoot() -> getRoot
+    104:104:android.view.ViewStub getViewStub() -> getViewStub
+    71:71:boolean isInflated() -> isInflated
+    60:61:void setContainingBinding(androidx.databinding.ViewDataBinding) -> setContainingBinding
+    115:118:void setOnInflateListener(android.view.ViewStub$OnInflateListener) -> setOnInflateListener
+androidx.databinding.ViewStubProxy$1 -> androidx.databinding.ViewStubProxy$1:
+    37:37:void <init>(androidx.databinding.ViewStubProxy) -> <init>
+    40:51:void onInflate(android.view.ViewStub,android.view.View) -> onInflate
+androidx.databinding.adapters.AbsListViewBindingAdapter -> androidx.databinding.adapters.AbsListViewBindingAdapter:
+    35:35:void <init>() -> <init>
+    41:58:void setOnScroll(android.widget.AbsListView,androidx.databinding.adapters.AbsListViewBindingAdapter$OnScroll,androidx.databinding.adapters.AbsListViewBindingAdapter$OnScrollStateChanged) -> setOnScroll
+androidx.databinding.adapters.AbsListViewBindingAdapter$1 -> androidx.databinding.adapters.AbsListViewBindingAdapter$1:
+    41:41:void <init>(androidx.databinding.adapters.AbsListViewBindingAdapter$OnScrollStateChanged,androidx.databinding.adapters.AbsListViewBindingAdapter$OnScroll) -> <init>
+    52:56:void onScroll(android.widget.AbsListView,int,int,int) -> onScroll
+    44:47:void onScrollStateChanged(android.widget.AbsListView,int) -> onScrollStateChanged
+androidx.databinding.adapters.AbsSeekBarBindingAdapter -> androidx.databinding.adapters.AbsSeekBarBindingAdapter:
+    30:30:void <init>() -> <init>
+androidx.databinding.adapters.AbsSpinnerBindingAdapter -> androidx.databinding.adapters.AbsSpinnerBindingAdapter:
+    31:31:void <init>() -> <init>
+    35:57:void setEntries(android.widget.AbsSpinner,java.lang.CharSequence[]) -> setEntries
+    62:75:void setEntries(android.widget.AbsSpinner,java.util.List) -> setEntries
+androidx.databinding.adapters.ActionMenuViewBindingAdapter -> androidx.databinding.adapters.ActionMenuViewBindingAdapter:
+    30:30:void <init>() -> <init>
+androidx.databinding.adapters.AdapterViewBindingAdapter -> androidx.databinding.adapters.AdapterViewBindingAdapter:
+    45:45:void <init>() -> <init>
+    79:85:void setOnItemSelectedListener(android.widget.AdapterView,androidx.databinding.adapters.AdapterViewBindingAdapter$OnItemSelected,androidx.databinding.adapters.AdapterViewBindingAdapter$OnNothingSelected,androidx.databinding.InverseBindingListener) -> setOnItemSelectedListener
+    49:52:void setSelectedItemPosition(android.widget.AdapterView,int) -> setSelectedItemPosition
+    61:68:void setSelectedItemPosition(android.widget.AdapterView,int,android.widget.Adapter) -> setSelectedItemPosition
+    56:57:void setSelection(android.widget.AdapterView,int) -> setSelection
+    72:73:void setSelection(android.widget.AdapterView,int,android.widget.Adapter) -> setSelection
+androidx.databinding.adapters.AdapterViewBindingAdapter$OnItemSelectedComponentListener -> androidx.databinding.adapters.AdapterViewBindingAdapter$OnItemSelectedComponentListener:
+    93:97:void <init>(androidx.databinding.adapters.AdapterViewBindingAdapter$OnItemSelected,androidx.databinding.adapters.AdapterViewBindingAdapter$OnNothingSelected,androidx.databinding.InverseBindingListener) -> <init>
+    101:107:void onItemSelected(android.widget.AdapterView,android.view.View,int,long) -> onItemSelected
+    111:117:void onNothingSelected(android.widget.AdapterView) -> onNothingSelected
+androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter -> androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter:
+    38:38:void <init>() -> <init>
+    72:78:void setOnItemSelectedListener(android.widget.AutoCompleteTextView,androidx.databinding.adapters.AdapterViewBindingAdapter$OnItemSelected,androidx.databinding.adapters.AdapterViewBindingAdapter$OnNothingSelected) -> setOnItemSelectedListener
+    43:66:void setValidator(android.widget.AutoCompleteTextView,androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$FixText,androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$IsValid) -> setValidator
+androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$1 -> androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$1:
+    46:46:void <init>(androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$IsValid,androidx.databinding.adapters.AutoCompleteTextViewBindingAdapter$FixText) -> <init>
+    58:61:java.lang.CharSequence fixText(java.lang.CharSequence) -> fixText
+    49:52:boolean isValid(java.lang.CharSequence) -> isValid
+androidx.databinding.adapters.CalendarViewBindingAdapter -> androidx.databinding.adapters.CalendarViewBindingAdapter:
+    33:33:void <init>() -> <init>
+    36:39:void setDate(android.widget.CalendarView,long) -> setDate
+    45:59:void setListeners(android.widget.CalendarView,android.widget.CalendarView$OnDateChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.CalendarViewBindingAdapter$1 -> androidx.databinding.adapters.CalendarViewBindingAdapter$1:
+    48:48:void <init>(android.widget.CalendarView$OnDateChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    52:56:void onSelectedDayChange(android.widget.CalendarView,int,int,int) -> onSelectedDayChange
+androidx.databinding.adapters.CardViewBindingAdapter -> androidx.databinding.adapters.CardViewBindingAdapter:
+    34:34:void <init>() -> <init>
+    38:39:void setContentPadding(androidx.cardview.widget.CardView,int) -> setContentPadding
+    67:71:void setContentPaddingBottom(androidx.cardview.widget.CardView,int) -> setContentPaddingBottom
+    43:47:void setContentPaddingLeft(androidx.cardview.widget.CardView,int) -> setContentPaddingLeft
+    59:63:void setContentPaddingRight(androidx.cardview.widget.CardView,int) -> setContentPaddingRight
+    51:55:void setContentPaddingTop(androidx.cardview.widget.CardView,int) -> setContentPaddingTop
+androidx.databinding.adapters.CheckedTextViewBindingAdapter -> androidx.databinding.adapters.CheckedTextViewBindingAdapter:
+    30:30:void <init>() -> <init>
+androidx.databinding.adapters.ChronometerBindingAdapter -> androidx.databinding.adapters.ChronometerBindingAdapter:
+    30:30:void <init>() -> <init>
+androidx.databinding.adapters.CompoundButtonBindingAdapter -> androidx.databinding.adapters.CompoundButtonBindingAdapter:
+    39:39:void <init>() -> <init>
+    43:46:void setChecked(android.widget.CompoundButton,boolean) -> setChecked
+    52:65:void setListeners(android.widget.CompoundButton,android.widget.CompoundButton$OnCheckedChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.CompoundButtonBindingAdapter$1 -> androidx.databinding.adapters.CompoundButtonBindingAdapter$1:
+    55:55:void <init>(android.widget.CompoundButton$OnCheckedChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    58:62:void onCheckedChanged(android.widget.CompoundButton,boolean) -> onCheckedChanged
+androidx.databinding.adapters.Converters -> androidx.databinding.adapters.Converters:
+    25:25:void <init>() -> <init>
+    47:47:android.content.res.ColorStateList convertColorToColorStateList(int) -> convertColorToColorStateList
+    35:35:android.graphics.drawable.ColorDrawable convertColorToDrawable(int) -> convertColorToDrawable
+androidx.databinding.adapters.DatePickerBindingAdapter -> androidx.databinding.adapters.DatePickerBindingAdapter:
+    36:36:void <init>() -> <init>
+    43:60:void setListeners(android.widget.DatePicker,int,int,int,android.widget.DatePicker$OnDateChangedListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.DatePickerBindingAdapter$DateChangedListener -> androidx.databinding.adapters.DatePickerBindingAdapter$DateChangedListener:
+    62:62:void <init>() -> <init>
+    62:62:void <init>(androidx.databinding.adapters.DatePickerBindingAdapter$1) -> <init>
+    78:90:void onDateChanged(android.widget.DatePicker,int,int,int) -> onDateChanged
+    70:74:void setListeners(android.widget.DatePicker$OnDateChangedListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.ExpandableListViewBindingAdapter -> androidx.databinding.adapters.ExpandableListViewBindingAdapter:
+    33:33:void <init>() -> <init>
+androidx.databinding.adapters.FrameLayoutBindingAdapter -> androidx.databinding.adapters.FrameLayoutBindingAdapter:
+    29:29:void <init>() -> <init>
+androidx.databinding.adapters.ImageViewBindingAdapter -> androidx.databinding.adapters.ImageViewBindingAdapter:
+    34:34:void <init>() -> <init>
+    51:52:void setImageDrawable(android.widget.ImageView,android.graphics.drawable.Drawable) -> setImageDrawable
+    37:42:void setImageUri(android.widget.ImageView,java.lang.String) -> setImageUri
+    46:47:void setImageUri(android.widget.ImageView,android.net.Uri) -> setImageUri
+androidx.databinding.adapters.LinearLayoutBindingAdapter -> androidx.databinding.adapters.LinearLayoutBindingAdapter:
+    30:30:void <init>() -> <init>
+androidx.databinding.adapters.ListenerUtil -> androidx.databinding.adapters.ListenerUtil:
+    31:31:void <clinit>() -> <clinit>
+    30:30:void <init>() -> <init>
+    99:101:java.lang.Object getListener(android.view.View,int) -> getListener
+    61:64:java.lang.Object trackListener(android.view.View,java.lang.Object,int) -> trackListener
+androidx.databinding.adapters.NumberPickerBindingAdapter -> androidx.databinding.adapters.NumberPickerBindingAdapter:
+    40:40:void <init>() -> <init>
+    53:66:void setListeners(android.widget.NumberPicker,android.widget.NumberPicker$OnValueChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+    44:47:void setValue(android.widget.NumberPicker,int) -> setValue
+androidx.databinding.adapters.NumberPickerBindingAdapter$1 -> androidx.databinding.adapters.NumberPickerBindingAdapter$1:
+    56:56:void <init>(android.widget.NumberPicker$OnValueChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    59:63:void onValueChange(android.widget.NumberPicker,int,int) -> onValueChange
+androidx.databinding.adapters.ObservableListAdapter -> androidx.databinding.adapters.ObservableListAdapter:
+    45:53:void <init>(android.content.Context,java.util.List,int,int,int) -> <init>
+    105:105:int getCount() -> getCount
+    125:125:android.view.View getDropDownView(int,android.view.View,android.view.ViewGroup) -> getDropDownView
+    110:110:java.lang.Object getItem(int) -> getItem
+    115:115:long getItemId(int) -> getItemId
+    120:120:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    130:147:android.view.View getViewForResource(int,int,android.view.View,android.view.ViewGroup) -> getViewForResource
+    56:101:void setList(java.util.List) -> setList
+androidx.databinding.adapters.ObservableListAdapter$1 -> androidx.databinding.adapters.ObservableListAdapter$1:
+    66:66:void <init>(androidx.databinding.adapters.ObservableListAdapter) -> <init>
+    69:70:void onChanged(androidx.databinding.ObservableList) -> onChanged
+    75:76:void onItemRangeChanged(androidx.databinding.ObservableList,int,int) -> onItemRangeChanged
+    81:82:void onItemRangeInserted(androidx.databinding.ObservableList,int,int) -> onItemRangeInserted
+    87:88:void onItemRangeMoved(androidx.databinding.ObservableList,int,int,int) -> onItemRangeMoved
+    93:94:void onItemRangeRemoved(androidx.databinding.ObservableList,int,int) -> onItemRangeRemoved
+androidx.databinding.adapters.ProgressBarBindingAdapter -> androidx.databinding.adapters.ProgressBarBindingAdapter:
+    31:31:void <init>() -> <init>
+androidx.databinding.adapters.RadioGroupBindingAdapter -> androidx.databinding.adapters.RadioGroupBindingAdapter:
+    33:33:void <init>() -> <init>
+    36:39:void setCheckedButton(android.widget.RadioGroup,int) -> setCheckedButton
+    45:59:void setListeners(android.widget.RadioGroup,android.widget.RadioGroup$OnCheckedChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.RadioGroupBindingAdapter$1 -> androidx.databinding.adapters.RadioGroupBindingAdapter$1:
+    48:48:void <init>(android.widget.RadioGroup$OnCheckedChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    51:56:void onCheckedChanged(android.widget.RadioGroup,int) -> onCheckedChanged
+androidx.databinding.adapters.RatingBarBindingAdapter -> androidx.databinding.adapters.RatingBarBindingAdapter:
+    33:33:void <init>() -> <init>
+    45:58:void setListeners(android.widget.RatingBar,android.widget.RatingBar$OnRatingBarChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+    36:39:void setRating(android.widget.RatingBar,float) -> setRating
+androidx.databinding.adapters.RatingBarBindingAdapter$1 -> androidx.databinding.adapters.RatingBarBindingAdapter$1:
+    48:48:void <init>(android.widget.RatingBar$OnRatingBarChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    51:55:void onRatingChanged(android.widget.RatingBar,float,boolean) -> onRatingChanged
+androidx.databinding.adapters.SearchViewBindingAdapter -> androidx.databinding.adapters.SearchViewBindingAdapter:
+    38:38:void <init>() -> <init>
+    43:68:void setOnQueryTextListener(android.widget.SearchView,androidx.databinding.adapters.SearchViewBindingAdapter$OnQueryTextSubmit,androidx.databinding.adapters.SearchViewBindingAdapter$OnQueryTextChange) -> setOnQueryTextListener
+    74:99:void setOnSuggestListener(android.widget.SearchView,androidx.databinding.adapters.SearchViewBindingAdapter$OnSuggestionSelect,androidx.databinding.adapters.SearchViewBindingAdapter$OnSuggestionClick) -> setOnSuggestListener
+androidx.databinding.adapters.SearchViewBindingAdapter$1 -> androidx.databinding.adapters.SearchViewBindingAdapter$1:
+    47:47:void <init>(androidx.databinding.adapters.SearchViewBindingAdapter$OnQueryTextSubmit,androidx.databinding.adapters.SearchViewBindingAdapter$OnQueryTextChange) -> <init>
+    59:62:boolean onQueryTextChange(java.lang.String) -> onQueryTextChange
+    50:53:boolean onQueryTextSubmit(java.lang.String) -> onQueryTextSubmit
+androidx.databinding.adapters.SearchViewBindingAdapter$2 -> androidx.databinding.adapters.SearchViewBindingAdapter$2:
+    78:78:void <init>(androidx.databinding.adapters.SearchViewBindingAdapter$OnSuggestionSelect,androidx.databinding.adapters.SearchViewBindingAdapter$OnSuggestionClick) -> <init>
+    90:93:boolean onSuggestionClick(int) -> onSuggestionClick
+    81:84:boolean onSuggestionSelect(int) -> onSuggestionSelect
+androidx.databinding.adapters.SeekBarBindingAdapter -> androidx.databinding.adapters.SeekBarBindingAdapter:
+    33:33:void <init>() -> <init>
+    47:76:void setOnSeekBarChangeListener(android.widget.SeekBar,androidx.databinding.adapters.SeekBarBindingAdapter$OnStartTrackingTouch,androidx.databinding.adapters.SeekBarBindingAdapter$OnStopTrackingTouch,androidx.databinding.adapters.SeekBarBindingAdapter$OnProgressChanged,androidx.databinding.InverseBindingListener) -> setOnSeekBarChangeListener
+    37:40:void setProgress(android.widget.SeekBar,int) -> setProgress
+androidx.databinding.adapters.SeekBarBindingAdapter$1 -> androidx.databinding.adapters.SeekBarBindingAdapter$1:
+    50:50:void <init>(androidx.databinding.adapters.SeekBarBindingAdapter$OnProgressChanged,androidx.databinding.InverseBindingListener,androidx.databinding.adapters.SeekBarBindingAdapter$OnStartTrackingTouch,androidx.databinding.adapters.SeekBarBindingAdapter$OnStopTrackingTouch) -> <init>
+    53:59:void onProgressChanged(android.widget.SeekBar,int,boolean) -> onProgressChanged
+    63:66:void onStartTrackingTouch(android.widget.SeekBar) -> onStartTrackingTouch
+    70:73:void onStopTrackingTouch(android.widget.SeekBar) -> onStopTrackingTouch
+androidx.databinding.adapters.SpinnerBindingAdapter -> androidx.databinding.adapters.SpinnerBindingAdapter:
+    29:29:void <init>() -> <init>
+androidx.databinding.adapters.SwitchBindingAdapter -> androidx.databinding.adapters.SwitchBindingAdapter:
+    35:35:void <init>() -> <init>
+    39:40:void setSwitchTextAppearance(android.widget.Switch,int) -> setSwitchTextAppearance
+androidx.databinding.adapters.SwitchCompatBindingAdapter -> androidx.databinding.adapters.SwitchCompatBindingAdapter:
+    32:32:void <init>() -> <init>
+    36:37:void setSwitchTextAppearance(androidx.appcompat.widget.SwitchCompat,int) -> setSwitchTextAppearance
+androidx.databinding.adapters.TabHostBindingAdapter -> androidx.databinding.adapters.TabHostBindingAdapter:
+    30:30:void <init>() -> <init>
+    34:34:int getCurrentTab(android.widget.TabHost) -> getCurrentTab
+    39:39:java.lang.String getCurrentTabTag(android.widget.TabHost) -> getCurrentTabTag
+    44:47:void setCurrentTab(android.widget.TabHost,int) -> setCurrentTab
+    53:56:void setCurrentTabTag(android.widget.TabHost,java.lang.String) -> setCurrentTabTag
+    62:75:void setListeners(android.widget.TabHost,android.widget.TabHost$OnTabChangeListener,androidx.databinding.InverseBindingListener) -> setListeners
+androidx.databinding.adapters.TabHostBindingAdapter$1 -> androidx.databinding.adapters.TabHostBindingAdapter$1:
+    65:65:void <init>(android.widget.TabHost$OnTabChangeListener,androidx.databinding.InverseBindingListener) -> <init>
+    68:72:void onTabChanged(java.lang.String) -> onTabChanged
+androidx.databinding.adapters.TabWidgetBindingAdapter -> androidx.databinding.adapters.TabWidgetBindingAdapter:
+    32:32:void <init>() -> <init>
+androidx.databinding.adapters.TableLayoutBindingAdapter -> androidx.databinding.adapters.TableLayoutBindingAdapter:
+    31:31:void <clinit>() -> <clinit>
+    29:29:void <init>() -> <init>
+    83:103:android.util.SparseBooleanArray parseColumns(java.lang.CharSequence) -> parseColumns
+    37:44:void setCollapseColumns(android.widget.TableLayout,java.lang.CharSequence) -> setCollapseColumns
+    48:62:void setShrinkColumns(android.widget.TableLayout,java.lang.CharSequence) -> setShrinkColumns
+    66:80:void setStretchColumns(android.widget.TableLayout,java.lang.CharSequence) -> setStretchColumns
+androidx.databinding.adapters.TextViewBindingAdapter -> androidx.databinding.adapters.TextViewBindingAdapter:
+    59:59:void <init>() -> <init>
+    85:85:java.lang.String getTextString(android.widget.TextView) -> getTextString
+    333:347:boolean haveContentsChanged(java.lang.CharSequence,java.lang.CharSequence) -> haveContentsChanged
+    90:103:void setAutoText(android.widget.TextView,boolean) -> setAutoText
+    116:117:void setBufferType(android.widget.TextView,android.widget.TextView$BufferType) -> setBufferType
+    107:112:void setCapitalize(android.widget.TextView,android.text.method.TextKeyListener$Capitalize) -> setCapitalize
+    121:126:void setDigits(android.widget.TextView,java.lang.CharSequence) -> setDigits
+    151:154:void setDrawableBottom(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableBottom
+    192:199:void setDrawableEnd(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableEnd
+    158:161:void setDrawableLeft(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableLeft
+    165:169:void setDrawableRight(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableRight
+    181:188:void setDrawableStart(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableStart
+    173:177:void setDrawableTop(android.widget.TextView,android.graphics.drawable.Drawable) -> setDrawableTop
+    203:204:void setImeActionLabel(android.widget.TextView,java.lang.CharSequence) -> setImeActionLabel
+    208:209:void setImeActionLabel(android.widget.TextView,int) -> setImeActionLabel
+    215:224:void setInputMethod(android.widget.TextView,java.lang.CharSequence) -> setInputMethod
+    144:147:void setIntrinsicBounds(android.graphics.drawable.Drawable) -> setIntrinsicBounds
+    228:233:void setLineSpacingExtra(android.widget.TextView,float) -> setLineSpacingExtra
+    237:242:void setLineSpacingMultiplier(android.widget.TextView,float) -> setLineSpacingMultiplier
+    246:276:void setMaxLength(android.widget.TextView,int) -> setMaxLength
+    130:132:void setNumeric(android.widget.TextView,int) -> setNumeric
+    280:285:void setPassword(android.widget.TextView,boolean) -> setPassword
+    136:141:void setPhoneNumber(android.widget.TextView,boolean) -> setPhoneNumber
+    289:295:void setShadowColor(android.widget.TextView,int) -> setShadowColor
+    299:305:void setShadowDx(android.widget.TextView,float) -> setShadowDx
+    309:315:void setShadowDy(android.widget.TextView,float) -> setShadowDy
+    319:325:void setShadowRadius(android.widget.TextView,float) -> setShadowRadius
+    69:81:void setText(android.widget.TextView,java.lang.CharSequence) -> setText
+    329:330:void setTextSize(android.widget.TextView,float) -> setTextSize
+    356:392:void setTextWatcher(android.widget.TextView,androidx.databinding.adapters.TextViewBindingAdapter$BeforeTextChanged,androidx.databinding.adapters.TextViewBindingAdapter$OnTextChanged,androidx.databinding.adapters.TextViewBindingAdapter$AfterTextChanged,androidx.databinding.InverseBindingListener) -> setTextWatcher
+androidx.databinding.adapters.TextViewBindingAdapter$1 -> androidx.databinding.adapters.TextViewBindingAdapter$1:
+    359:359:void <init>(androidx.databinding.adapters.TextViewBindingAdapter$BeforeTextChanged,androidx.databinding.adapters.TextViewBindingAdapter$OnTextChanged,androidx.databinding.InverseBindingListener,androidx.databinding.adapters.TextViewBindingAdapter$AfterTextChanged) -> <init>
+    379:382:void afterTextChanged(android.text.Editable) -> afterTextChanged
+    362:365:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+    369:375:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+androidx.databinding.adapters.TimePickerBindingAdapter -> androidx.databinding.adapters.TimePickerBindingAdapter:
+    31:31:void <init>() -> <init>
+    63:64:int getHour(android.widget.TimePicker) -> getHour
+    78:79:int getMinute(android.widget.TimePicker) -> getMinute
+    36:45:void setHour(android.widget.TimePicker,int) -> setHour
+    95:113:void setListeners(android.widget.TimePicker,android.widget.TimePicker$OnTimeChangedListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener) -> setListeners
+    50:59:void setMinute(android.widget.TimePicker,int) -> setMinute
+androidx.databinding.adapters.TimePickerBindingAdapter$1 -> androidx.databinding.adapters.TimePickerBindingAdapter$1:
+    98:98:void <init>(android.widget.TimePicker$OnTimeChangedListener,androidx.databinding.InverseBindingListener,androidx.databinding.InverseBindingListener) -> <init>
+    101:110:void onTimeChanged(android.widget.TimePicker,int,int) -> onTimeChanged
+androidx.databinding.adapters.ToolbarBindingAdapter -> androidx.databinding.adapters.ToolbarBindingAdapter:
+    31:31:void <init>() -> <init>
+androidx.databinding.adapters.VideoViewBindingAdapter -> androidx.databinding.adapters.VideoViewBindingAdapter:
+    34:34:void <init>() -> <init>
+androidx.databinding.adapters.ViewBindingAdapter -> androidx.databinding.adapters.ViewBindingAdapter:
+    64:64:void <init>() -> <init>
+    222:230:int pixelsToDimensionPixelSize(float) -> pixelsToDimensionPixelSize
+    211:216:void setBackground(android.view.View,android.graphics.drawable.Drawable) -> setBackground
+    138:140:void setClickListener(android.view.View,android.view.View$OnClickListener,boolean) -> setClickListener
+    168:195:void setOnAttachStateChangeListener(android.view.View,androidx.databinding.adapters.ViewBindingAdapter$OnViewDetachedFromWindow,androidx.databinding.adapters.ViewBindingAdapter$OnViewAttachedToWindow) -> setOnAttachStateChangeListener
+    145:147:void setOnClick(android.view.View,android.view.View$OnClickListener,boolean) -> setOnClick
+    200:206:void setOnLayoutChangeListener(android.view.View,android.view.View$OnLayoutChangeListener,android.view.View$OnLayoutChangeListener) -> setOnLayoutChangeListener
+    159:161:void setOnLongClick(android.view.View,android.view.View$OnLongClickListener,boolean) -> setOnLongClick
+    152:154:void setOnLongClickListener(android.view.View,android.view.View$OnLongClickListener,boolean) -> setOnLongClickListener
+    71:73:void setPadding(android.view.View,float) -> setPadding
+    77:80:void setPaddingBottom(android.view.View,float) -> setPaddingBottom
+    84:92:void setPaddingEnd(android.view.View,float) -> setPaddingEnd
+    96:99:void setPaddingLeft(android.view.View,float) -> setPaddingLeft
+    103:106:void setPaddingRight(android.view.View,float) -> setPaddingRight
+    110:118:void setPaddingStart(android.view.View,float) -> setPaddingStart
+    122:125:void setPaddingTop(android.view.View,float) -> setPaddingTop
+    129:133:void setRequiresFadingEdge(android.view.View,int) -> setRequiresFadingEdge
+androidx.databinding.adapters.ViewBindingAdapter$1 -> androidx.databinding.adapters.ViewBindingAdapter$1:
+    171:171:void <init>(androidx.databinding.adapters.ViewBindingAdapter$OnViewAttachedToWindow,androidx.databinding.adapters.ViewBindingAdapter$OnViewDetachedFromWindow) -> <init>
+    174:177:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    181:184:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.databinding.adapters.ViewGroupBindingAdapter -> androidx.databinding.adapters.ViewGroupBindingAdapter:
+    40:40:void <init>() -> <init>
+    45:50:void setAnimateLayoutChanges(android.view.ViewGroup,boolean) -> setAnimateLayoutChanges
+    56:75:void setListener(android.view.ViewGroup,androidx.databinding.adapters.ViewGroupBindingAdapter$OnChildViewAdded,androidx.databinding.adapters.ViewGroupBindingAdapter$OnChildViewRemoved) -> setListener
+    81:107:void setListener(android.view.ViewGroup,androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationStart,androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationEnd,androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationRepeat) -> setListener
+androidx.databinding.adapters.ViewGroupBindingAdapter$1 -> androidx.databinding.adapters.ViewGroupBindingAdapter$1:
+    59:59:void <init>(androidx.databinding.adapters.ViewGroupBindingAdapter$OnChildViewAdded,androidx.databinding.adapters.ViewGroupBindingAdapter$OnChildViewRemoved) -> <init>
+    62:65:void onChildViewAdded(android.view.View,android.view.View) -> onChildViewAdded
+    69:72:void onChildViewRemoved(android.view.View,android.view.View) -> onChildViewRemoved
+androidx.databinding.adapters.ViewGroupBindingAdapter$2 -> androidx.databinding.adapters.ViewGroupBindingAdapter$2:
+    84:84:void <init>(androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationStart,androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationEnd,androidx.databinding.adapters.ViewGroupBindingAdapter$OnAnimationRepeat) -> <init>
+    94:97:void onAnimationEnd(android.view.animation.Animation) -> onAnimationEnd
+    101:104:void onAnimationRepeat(android.view.animation.Animation) -> onAnimationRepeat
+    87:90:void onAnimationStart(android.view.animation.Animation) -> onAnimationStart
+androidx.databinding.adapters.ViewStubBindingAdapter -> androidx.databinding.adapters.ViewStubBindingAdapter:
+    34:34:void <init>() -> <init>
+    38:39:void setOnInflateListener(androidx.databinding.ViewStubProxy,android.view.ViewStub$OnInflateListener) -> setOnInflateListener
+androidx.databinding.adapters.ZoomControlsBindingAdapter -> androidx.databinding.adapters.ZoomControlsBindingAdapter:
+    31:31:void <init>() -> <init>
+androidx.databinding.library.BuildConfig -> androidx.databinding.library.BuildConfig:
+    6:6:void <init>() -> <init>
+androidx.databinding.library.baseAdapters.BuildConfig -> androidx.databinding.library.baseAdapters.BuildConfig:
+    6:6:void <init>() -> <init>
+androidx.databinding.library.baseAdapters.DataBinderMapperImpl -> androidx.databinding.library.baseAdapters.DataBinderMapperImpl:
+    19:22:void <clinit>() -> <clinit>
+    18:18:void <init>() -> <init>
+    70:71:java.util.List collectDependencies() -> collectDependencies
+    64:65:java.lang.String convertBrIdToString(int) -> convertBrIdToString
+    26:33:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View,int) -> getDataBinder
+    38:50:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View[],int) -> getDataBinder
+    55:59:int getLayoutId(java.lang.String) -> getLayoutId
+androidx.databinding.library.baseAdapters.DataBinderMapperImpl$InnerBrLookup -> androidx.databinding.library.baseAdapters.DataBinderMapperImpl$InnerBrLookup:
+    75:79:void <clinit>() -> <clinit>
+    74:74:void <init>() -> <init>
+androidx.databinding.library.baseAdapters.DataBinderMapperImpl$InnerLayoutIdLookup -> androidx.databinding.library.baseAdapters.DataBinderMapperImpl$InnerLayoutIdLookup:
+    83:86:void <clinit>() -> <clinit>
+    82:82:void <init>() -> <init>
+androidx.documentfile.provider.DocumentFile -> androidx.documentfile.provider.DocumentFile:
+    88:90:void <init>(androidx.documentfile.provider.DocumentFile) -> <init>
+    338:343:androidx.documentfile.provider.DocumentFile findFile(java.lang.String) -> findFile
+    102:102:androidx.documentfile.provider.DocumentFile fromFile(java.io.File) -> fromFile
+    117:118:androidx.documentfile.provider.DocumentFile fromSingleUri(android.content.Context,android.net.Uri) -> fromSingleUri
+    135:138:androidx.documentfile.provider.DocumentFile fromTreeUri(android.content.Context,android.net.Uri) -> fromTreeUri
+    229:229:androidx.documentfile.provider.DocumentFile getParentFile() -> getParentFile
+    149:150:boolean isDocumentUri(android.content.Context,android.net.Uri) -> isDocumentUri
+androidx.documentfile.provider.DocumentsContractApi19 -> androidx.documentfile.provider.DocumentsContractApi19:
+    213:214:void <init>() -> <init>
+    94:104:boolean canRead(android.content.Context,android.net.Uri) -> canRead
+    109:137:boolean canWrite(android.content.Context,android.net.Uri) -> canWrite
+    203:211:void closeQuietly(java.lang.AutoCloseable) -> closeQuietly
+    141:152:boolean exists(android.content.Context,android.net.Uri) -> exists
+    68:68:long getFlags(android.content.Context,android.net.Uri) -> getFlags
+    49:49:java.lang.String getName(android.content.Context,android.net.Uri) -> getName
+    54:54:java.lang.String getRawType(android.content.Context,android.net.Uri) -> getRawType
+    59:63:java.lang.String getType(android.content.Context,android.net.Uri) -> getType
+    72:72:boolean isDirectory(android.content.Context,android.net.Uri) -> isDirectory
+    76:80:boolean isFile(android.content.Context,android.net.Uri) -> isFile
+    40:44:boolean isVirtual(android.content.Context,android.net.Uri) -> isVirtual
+    85:85:long lastModified(android.content.Context,android.net.Uri) -> lastModified
+    89:89:long length(android.content.Context,android.net.Uri) -> length
+    179:179:int queryForInt(android.content.Context,android.net.Uri,java.lang.String,int) -> queryForInt
+    184:198:long queryForLong(android.content.Context,android.net.Uri,java.lang.String,long) -> queryForLong
+    159:173:java.lang.String queryForString(android.content.Context,android.net.Uri,java.lang.String,java.lang.String) -> queryForString
+androidx.documentfile.provider.RawDocumentFile -> androidx.documentfile.provider.RawDocumentFile:
+    33:35:void <init>(androidx.documentfile.provider.DocumentFile,java.io.File) -> <init>
+    113:113:boolean canRead() -> canRead
+    118:118:boolean canWrite() -> canWrite
+    58:62:androidx.documentfile.provider.DocumentFile createDirectory(java.lang.String) -> createDirectory
+    41:51:androidx.documentfile.provider.DocumentFile createFile(java.lang.String,java.lang.String) -> createFile
+    123:124:boolean delete() -> delete
+    169:182:boolean deleteContents(java.io.File) -> deleteContents
+    129:129:boolean exists() -> exists
+    73:73:java.lang.String getName() -> getName
+    79:82:java.lang.String getType() -> getType
+    156:165:java.lang.String getTypeForName(java.lang.String) -> getTypeForName
+    68:68:android.net.Uri getUri() -> getUri
+    88:88:boolean isDirectory() -> isDirectory
+    93:93:boolean isFile() -> isFile
+    98:98:boolean isVirtual() -> isVirtual
+    103:103:long lastModified() -> lastModified
+    108:108:long length() -> length
+    134:141:androidx.documentfile.provider.DocumentFile[] listFiles() -> listFiles
+    146:151:boolean renameTo(java.lang.String) -> renameTo
+androidx.documentfile.provider.SingleDocumentFile -> androidx.documentfile.provider.SingleDocumentFile:
+    32:35:void <init>(androidx.documentfile.provider.DocumentFile,android.content.Context,android.net.Uri) -> <init>
+    91:91:boolean canRead() -> canRead
+    96:96:boolean canWrite() -> canWrite
+    44:44:androidx.documentfile.provider.DocumentFile createDirectory(java.lang.String) -> createDirectory
+    39:39:androidx.documentfile.provider.DocumentFile createFile(java.lang.String,java.lang.String) -> createFile
+    102:104:boolean delete() -> delete
+    110:110:boolean exists() -> exists
+    55:55:java.lang.String getName() -> getName
+    61:61:java.lang.String getType() -> getType
+    49:49:android.net.Uri getUri() -> getUri
+    66:66:boolean isDirectory() -> isDirectory
+    71:71:boolean isFile() -> isFile
+    76:76:boolean isVirtual() -> isVirtual
+    81:81:long lastModified() -> lastModified
+    86:86:long length() -> length
+    115:115:androidx.documentfile.provider.DocumentFile[] listFiles() -> listFiles
+    120:120:boolean renameTo(java.lang.String) -> renameTo
+androidx.documentfile.provider.TreeDocumentFile -> androidx.documentfile.provider.TreeDocumentFile:
+    37:40:void <init>(androidx.documentfile.provider.DocumentFile,android.content.Context,android.net.Uri) -> <init>
+    112:112:boolean canRead() -> canRead
+    117:117:boolean canWrite() -> canWrite
+    166:174:void closeQuietly(java.lang.AutoCloseable) -> closeQuietly
+    63:65:androidx.documentfile.provider.DocumentFile createDirectory(java.lang.String) -> createDirectory
+    45:46:androidx.documentfile.provider.DocumentFile createFile(java.lang.String,java.lang.String) -> createFile
+    53:56:android.net.Uri createFile(android.content.Context,android.net.Uri,java.lang.String,java.lang.String) -> createFile
+    123:125:boolean delete() -> delete
+    131:131:boolean exists() -> exists
+    76:76:java.lang.String getName() -> getName
+    82:82:java.lang.String getType() -> getType
+    70:70:android.net.Uri getUri() -> getUri
+    87:87:boolean isDirectory() -> isDirectory
+    92:92:boolean isFile() -> isFile
+    97:97:boolean isVirtual() -> isVirtual
+    102:102:long lastModified() -> lastModified
+    107:107:long length() -> length
+    136:162:androidx.documentfile.provider.DocumentFile[] listFiles() -> listFiles
+    179:188:boolean renameTo(java.lang.String) -> renameTo
+androidx.drawerlayout.widget.DrawerLayout -> androidx.drawerlayout.widget.DrawerLayout:
+    104:192:void <clinit>() -> <clinit>
+    306:307:void <init>(android.content.Context) -> <init>
+    310:311:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    195:367:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    511:518:void addDrawerListener(androidx.drawerlayout.widget.DrawerLayout$DrawerListener) -> addDrawerListener
+    1911:1942:void addFocusables(java.util.ArrayList,int,int) -> addFocusables
+    2057:2077:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    1961:1972:void cancelChildViewTouch() -> cancelChildViewTouch
+    950:951:boolean checkDrawerViewAbsoluteGravity(android.view.View,int) -> checkDrawerViewAbsoluteGravity
+    1901:1901:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    1747:1748:void closeDrawer(android.view.View) -> closeDrawer
+    1757:1780:void closeDrawer(android.view.View,boolean) -> closeDrawer
+    1789:1790:void closeDrawer(int) -> closeDrawer
+    1800:1806:void closeDrawer(int,boolean) -> closeDrawer
+    1637:1638:void closeDrawers() -> closeDrawers
+    1641:1670:void closeDrawers(boolean) -> closeDrawers
+    1309:1322:void computeScroll() -> computeScroll
+    1536:1564:boolean dispatchGenericMotionEvent(android.view.MotionEvent) -> dispatchGenericMotionEvent
+    850:875:void dispatchOnDrawerClosed(android.view.View) -> dispatchOnDrawerClosed
+    878:897:void dispatchOnDrawerOpened(android.view.View) -> dispatchOnDrawerOpened
+    916:924:void dispatchOnDrawerSlide(android.view.View,float) -> dispatchOnDrawerSlide
+    774:786:boolean dispatchTransformedGenericPointerEvent(android.view.MotionEvent,android.view.View) -> dispatchTransformedGenericPointerEvent
+    1401:1460:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    985:995:android.view.View findDrawerWithGravity(int) -> findDrawerWithGravity
+    955:963:android.view.View findOpenDrawer() -> findOpenDrawer
+    1949:1956:android.view.View findVisibleDrawer() -> findVisibleDrawer
+    1887:1887:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1892:1892:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1906:1906:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    393:396:float getDrawerElevation() -> getDrawerElevation
+    652:697:int getDrawerLockMode(int) -> getDrawerLockMode
+    709:713:int getDrawerLockMode(android.view.View) -> getDrawerLockMode
+    746:753:java.lang.CharSequence getDrawerTitle(int) -> getDrawerTitle
+    945:946:int getDrawerViewAbsoluteGravity(android.view.View) -> getDrawerViewAbsoluteGravity
+    937:937:float getDrawerViewOffset(android.view.View) -> getDrawerViewOffset
+    1350:1350:android.graphics.drawable.Drawable getStatusBarBackgroundDrawable() -> getStatusBarBackgroundDrawable
+    794:806:android.view.MotionEvent getTransformedMotionEvent(android.view.MotionEvent,android.view.View) -> getTransformedMotionEvent
+    1005:1011:java.lang.String gravityToString(int) -> gravityToString
+    1325:1329:boolean hasOpaqueBackground(android.view.View) -> hasOpaqueBackground
+    1875:1882:boolean hasPeekingDrawer() -> hasPeekingDrawer
+    1945:1945:boolean hasVisibleDrawer() -> hasVisibleDrawer
+    2085:2087:boolean includeChildForAccessibility(android.view.View) -> includeChildForAccessibility
+    1464:1464:boolean isContentView(android.view.View) -> isContentView
+    1819:1823:boolean isDrawerOpen(android.view.View) -> isDrawerOpen
+    1836:1840:boolean isDrawerOpen(int) -> isDrawerOpen
+    1468:1479:boolean isDrawerView(android.view.View) -> isDrawerView
+    1852:1855:boolean isDrawerVisible(android.view.View) -> isDrawerVisible
+    1867:1871:boolean isDrawerVisible(int) -> isDrawerVisible
+    761:765:boolean isInBoundsOfChild(float,float,android.view.View) -> isInBoundsOfChild
+    1208:1213:boolean mirror(android.graphics.drawable.Drawable,int) -> mirror
+    967:976:void moveDrawerToOffset(android.view.View,float) -> moveDrawerToOffset
+    1022:1024:void onAttachedToWindow() -> onAttachedToWindow
+    1016:1018:void onDetachedFromWindow() -> onDetachedFromWindow
+    1383:1397:void onDraw(android.graphics.Canvas) -> onDraw
+    1485:1527:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    1976:1980:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    1985:1992:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    1218:1298:void onLayout(boolean,int,int,int,int) -> onLayout
+    1029:1155:void onMeasure(int,int) -> onMeasure
+    1997:2024:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1378:1379:void onRtlPropertiesChanged(int) -> onRtlPropertiesChanged
+    2028:2052:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1569:1616:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    1678:1679:void openDrawer(android.view.View) -> openDrawer
+    1688:1713:void openDrawer(android.view.View,boolean) -> openDrawer
+    1722:1723:void openDrawer(int) -> openDrawer
+    1733:1739:void openDrawer(int,boolean) -> openDrawer
+    528:536:void removeDrawerListener(androidx.drawerlayout.widget.DrawerLayout$DrawerListener) -> removeDrawerListener
+    1625:1631:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    1302:1305:void requestLayout() -> requestLayout
+    1166:1181:android.graphics.drawable.Drawable resolveLeftShadow() -> resolveLeftShadow
+    1185:1199:android.graphics.drawable.Drawable resolveRightShadow() -> resolveRightShadow
+    1158:1163:void resolveShadowDrawables() -> resolveShadowDrawables
+    405:409:void setChildInsets(java.lang.Object,boolean) -> setChildInsets
+    376:383:void setDrawerElevation(float) -> setDrawerElevation
+    493:502:void setDrawerListener(androidx.drawerlayout.widget.DrawerLayout$DrawerListener) -> setDrawerListener
+    552:554:void setDrawerLockMode(int) -> setDrawerLockMode
+    576:614:void setDrawerLockMode(int,int) -> setDrawerLockMode
+    635:641:void setDrawerLockMode(int,android.view.View) -> setDrawerLockMode
+    431:448:void setDrawerShadow(android.graphics.drawable.Drawable,int) -> setDrawerShadow
+    465:466:void setDrawerShadow(int,int) -> setDrawerShadow
+    727:734:void setDrawerTitle(int,java.lang.CharSequence) -> setDrawerTitle
+    927:934:void setDrawerViewOffset(android.view.View,float) -> setDrawerViewOffset
+    474:476:void setScrimColor(int) -> setScrimColor
+    1339:1341:void setStatusBarBackground(android.graphics.drawable.Drawable) -> setStatusBarBackground
+    1360:1362:void setStatusBarBackground(int) -> setStatusBarBackground
+    1372:1374:void setStatusBarBackgroundColor(int) -> setStatusBarBackgroundColor
+    900:913:void updateChildrenImportantForAccessibility(android.view.View,boolean) -> updateChildrenImportantForAccessibility
+    814:847:void updateDrawerState(int,int,android.view.View) -> updateDrawerState
+androidx.drawerlayout.widget.DrawerLayout$1 -> androidx.drawerlayout.widget.DrawerLayout$1:
+    343:343:void <init>(androidx.drawerlayout.widget.DrawerLayout) -> <init>
+    346:348:android.view.WindowInsets onApplyWindowInsets(android.view.View,android.view.WindowInsets) -> onApplyWindowInsets
+androidx.drawerlayout.widget.DrawerLayout$AccessibilityDelegate -> androidx.drawerlayout.widget.DrawerLayout$AccessibilityDelegate:
+    2349:2350:void <init>(androidx.drawerlayout.widget.DrawerLayout) -> <init>
+    2426:2433:void addChildrenForAccessibility(androidx.core.view.accessibility.AccessibilityNodeInfoCompat,android.view.ViewGroup) -> addChildrenForAccessibility
+    2442:2464:void copyNodeInfoNoChildren(androidx.core.view.accessibility.AccessibilityNodeInfoCompat,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> copyNodeInfoNoChildren
+    2399:2413:boolean dispatchPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    2387:2390:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    2354:2383:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    2419:2422:boolean onRequestSendAccessibilityEvent(android.view.ViewGroup,android.view.View,android.view.accessibility.AccessibilityEvent) -> onRequestSendAccessibilityEvent
+androidx.drawerlayout.widget.DrawerLayout$ChildAccessibilityDelegate -> androidx.drawerlayout.widget.DrawerLayout$ChildAccessibilityDelegate:
+    2467:2467:void <init>() -> <init>
+    2471:2479:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+androidx.drawerlayout.widget.DrawerLayout$LayoutParams -> androidx.drawerlayout.widget.DrawerLayout$LayoutParams:
+    2313:2324:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2313:2328:void <init>(int,int) -> <init>
+    2331:2333:void <init>(int,int,int) -> <init>
+    2313:2338:void <init>(androidx.drawerlayout.widget.DrawerLayout$LayoutParams) -> <init>
+    2313:2342:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    2313:2346:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+androidx.drawerlayout.widget.DrawerLayout$SavedState -> androidx.drawerlayout.widget.DrawerLayout$SavedState:
+    2124:2124:void <clinit>() -> <clinit>
+    2095:2108:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    2095:2112:void <init>(android.os.Parcelable) -> <init>
+    2116:2122:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.drawerlayout.widget.DrawerLayout$SavedState$1 -> androidx.drawerlayout.widget.DrawerLayout$SavedState$1:
+    2124:2124:void <init>() -> <init>
+    2124:2124:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2124:2124:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2127:2127:androidx.drawerlayout.widget.DrawerLayout$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2132:2132:androidx.drawerlayout.widget.DrawerLayout$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    2124:2124:java.lang.Object[] newArray(int) -> newArray
+    2137:2137:androidx.drawerlayout.widget.DrawerLayout$SavedState[] newArray(int) -> newArray
+androidx.drawerlayout.widget.DrawerLayout$SimpleDrawerListener -> androidx.drawerlayout.widget.DrawerLayout$SimpleDrawerListener:
+    287:287:void <init>() -> <init>
+    298:298:void onDrawerClosed(android.view.View) -> onDrawerClosed
+    294:294:void onDrawerOpened(android.view.View) -> onDrawerOpened
+    290:290:void onDrawerSlide(android.view.View,float) -> onDrawerSlide
+    302:302:void onDrawerStateChanged(int) -> onDrawerStateChanged
+androidx.drawerlayout.widget.DrawerLayout$ViewDragCallback -> androidx.drawerlayout.widget.DrawerLayout$ViewDragCallback:
+    2146:2154:void <init>(androidx.drawerlayout.widget.DrawerLayout,int) -> <init>
+    2294:2298:int clampViewPositionHorizontal(android.view.View,int,int) -> clampViewPositionHorizontal
+    2304:2304:int clampViewPositionVertical(android.view.View,int,int) -> clampViewPositionVertical
+    2203:2208:void closeOtherDrawer() -> closeOtherDrawer
+    2289:2289:int getViewHorizontalDragRange(android.view.View) -> getViewHorizontalDragRange
+    2276:2285:void onEdgeDragStarted(int,int) -> onEdgeDragStarted
+    2270:2270:boolean onEdgeLock(int) -> onEdgeLock
+    2231:2232:void onEdgeTouched(int,int) -> onEdgeTouched
+    2196:2200:void onViewCaptured(android.view.View,int) -> onViewCaptured
+    2174:2175:void onViewDragStateChanged(int) -> onViewDragStateChanged
+    2180:2192:void onViewPositionChanged(android.view.View,int,int,int,int) -> onViewPositionChanged
+    2214:2227:void onViewReleased(android.view.View,float,float) -> onViewReleased
+    2237:2259:void peekDrawer() -> peekDrawer
+    2161:2162:void removeCallbacks() -> removeCallbacks
+    2157:2158:void setDragger(androidx.customview.widget.ViewDragHelper) -> setDragger
+    2168:2169:boolean tryCaptureView(android.view.View,int) -> tryCaptureView
+androidx.drawerlayout.widget.DrawerLayout$ViewDragCallback$1 -> androidx.drawerlayout.widget.DrawerLayout$ViewDragCallback$1:
+    2146:2146:void <init>(androidx.drawerlayout.widget.DrawerLayout$ViewDragCallback) -> <init>
+    2148:2149:void run() -> run
+androidx.dynamicanimation.animation.AnimationHandler -> androidx.dynamicanimation.animation.AnimationHandler:
+    69:69:void <clinit>() -> <clinit>
+    40:254:void <init>() -> <init>
+    125:135:void addAnimationFrameCallback(androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallback,long) -> addAnimationFrameCallback
+    183:191:void cleanUpList() -> cleanUpList
+    151:162:void doAnimationFrame(long) -> doAnimationFrame
+    95:98:long getFrameTime() -> getFrameTime
+    88:91:androidx.dynamicanimation.animation.AnimationHandler getInstance() -> getInstance
+    111:118:androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallbackProvider getProvider() -> getProvider
+    171:179:boolean isCallbackDue(androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallback,long) -> isCallbackDue
+    141:147:void removeCallback(androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallback) -> removeCallback
+    106:107:void setProvider(androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallbackProvider) -> setProvider
+androidx.dynamicanimation.animation.AnimationHandler$AnimationCallbackDispatcher -> androidx.dynamicanimation.animation.AnimationHandler$AnimationCallbackDispatcher:
+    58:58:void <init>(androidx.dynamicanimation.animation.AnimationHandler) -> <init>
+    60:65:void dispatchAnimationFrame() -> dispatchAnimationFrame
+androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallbackProvider -> androidx.dynamicanimation.animation.AnimationHandler$AnimationFrameCallbackProvider:
+    256:258:void <init>(androidx.dynamicanimation.animation.AnimationHandler$AnimationCallbackDispatcher) -> <init>
+androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider14 -> androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider14:
+    226:238:void <init>(androidx.dynamicanimation.animation.AnimationHandler$AnimationCallbackDispatcher) -> <init>
+    242:245:void postFrameCallback() -> postFrameCallback
+androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider14$1 -> androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider14$1:
+    230:230:void <init>(androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider14) -> <init>
+    233:235:void run() -> run
+androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider16 -> androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider16:
+    199:210:void <init>(androidx.dynamicanimation.animation.AnimationHandler$AnimationCallbackDispatcher) -> <init>
+    214:215:void postFrameCallback() -> postFrameCallback
+androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider16$1 -> androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider16$1:
+    204:204:void <init>(androidx.dynamicanimation.animation.AnimationHandler$FrameCallbackProvider16) -> <init>
+    207:208:void doFrame(long) -> doFrame
+androidx.dynamicanimation.animation.DynamicAnimation -> androidx.dynamicanimation.animation.DynamicAnimation:
+    57:253:void <clinit>() -> <clinit>
+    289:347:void <init>(androidx.dynamicanimation.animation.FloatValueHolder) -> <init>
+    289:369:void <init>(java.lang.Object,androidx.dynamicanimation.animation.FloatPropertyCompat) -> <init>
+    445:448:androidx.dynamicanimation.animation.DynamicAnimation addEndListener(androidx.dynamicanimation.animation.DynamicAnimation$OnAnimationEndListener) -> addEndListener
+    473:482:androidx.dynamicanimation.animation.DynamicAnimation addUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation$OnAnimationUpdateListener) -> addUpdateListener
+    591:597:void cancel() -> cancel
+    639:657:boolean doAnimationFrame(long) -> doAnimationFrame
+    674:684:void endAnimationInternal(boolean) -> endAnimationInternal
+    539:539:float getMinimumVisibleChange() -> getMinimumVisibleChange
+    710:710:float getPropertyValue() -> getPropertyValue
+    703:703:float getValueThreshold() -> getValueThreshold
+    605:605:boolean isRunning() -> isRunning
+    457:458:void removeEndListener(androidx.dynamicanimation.animation.DynamicAnimation$OnAnimationEndListener) -> removeEndListener
+    558:562:void removeEntry(java.util.ArrayList,java.lang.Object) -> removeEntry
+    547:552:void removeNullEntries(java.util.ArrayList) -> removeNullEntries
+    492:493:void removeUpdateListener(androidx.dynamicanimation.animation.DynamicAnimation$OnAnimationUpdateListener) -> removeUpdateListener
+    420:421:androidx.dynamicanimation.animation.DynamicAnimation setMaxValue(float) -> setMaxValue
+    433:434:androidx.dynamicanimation.animation.DynamicAnimation setMinValue(float) -> setMinValue
+    524:529:androidx.dynamicanimation.animation.DynamicAnimation setMinimumVisibleChange(float) -> setMinimumVisibleChange
+    690:697:void setPropertyValue(float) -> setPropertyValue
+    379:381:androidx.dynamicanimation.animation.DynamicAnimation setStartValue(float) -> setStartValue
+    403:404:androidx.dynamicanimation.animation.DynamicAnimation setStartVelocity(float) -> setStartVelocity
+    576:582:void start() -> start
+    613:625:void startAnimationInternal() -> startAnimationInternal
+androidx.dynamicanimation.animation.DynamicAnimation$1 -> androidx.dynamicanimation.animation.DynamicAnimation$1:
+    57:57:void <init>(java.lang.String) -> <init>
+    57:57:float getValue(java.lang.Object) -> getValue
+    65:65:float getValue(android.view.View) -> getValue
+    57:57:void setValue(java.lang.Object,float) -> setValue
+    60:61:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$10 -> androidx.dynamicanimation.animation.DynamicAnimation$10:
+    192:192:void <init>(java.lang.String) -> <init>
+    192:192:float getValue(java.lang.Object) -> getValue
+    200:200:float getValue(android.view.View) -> getValue
+    192:192:void setValue(java.lang.Object,float) -> setValue
+    195:196:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$11 -> androidx.dynamicanimation.animation.DynamicAnimation$11:
+    207:207:void <init>(java.lang.String) -> <init>
+    207:207:float getValue(java.lang.Object) -> getValue
+    215:215:float getValue(android.view.View) -> getValue
+    207:207:void setValue(java.lang.Object,float) -> setValue
+    210:211:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$12 -> androidx.dynamicanimation.animation.DynamicAnimation$12:
+    222:222:void <init>(java.lang.String) -> <init>
+    222:222:float getValue(java.lang.Object) -> getValue
+    230:230:float getValue(android.view.View) -> getValue
+    222:222:void setValue(java.lang.Object,float) -> setValue
+    225:226:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$13 -> androidx.dynamicanimation.animation.DynamicAnimation$13:
+    238:238:void <init>(java.lang.String) -> <init>
+    238:238:float getValue(java.lang.Object) -> getValue
+    246:246:float getValue(android.view.View) -> getValue
+    238:238:void setValue(java.lang.Object,float) -> setValue
+    241:242:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$14 -> androidx.dynamicanimation.animation.DynamicAnimation$14:
+    253:253:void <init>(java.lang.String) -> <init>
+    253:253:float getValue(java.lang.Object) -> getValue
+    261:261:float getValue(android.view.View) -> getValue
+    253:253:void setValue(java.lang.Object,float) -> setValue
+    256:257:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$15 -> androidx.dynamicanimation.animation.DynamicAnimation$15:
+    335:335:void <init>(androidx.dynamicanimation.animation.DynamicAnimation,java.lang.String,androidx.dynamicanimation.animation.FloatValueHolder) -> <init>
+    338:338:float getValue(java.lang.Object) -> getValue
+    343:344:void setValue(java.lang.Object,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$2 -> androidx.dynamicanimation.animation.DynamicAnimation$2:
+    72:72:void <init>(java.lang.String) -> <init>
+    72:72:float getValue(java.lang.Object) -> getValue
+    80:80:float getValue(android.view.View) -> getValue
+    72:72:void setValue(java.lang.Object,float) -> setValue
+    75:76:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$3 -> androidx.dynamicanimation.animation.DynamicAnimation$3:
+    87:87:void <init>(java.lang.String) -> <init>
+    87:87:float getValue(java.lang.Object) -> getValue
+    95:95:float getValue(android.view.View) -> getValue
+    87:87:void setValue(java.lang.Object,float) -> setValue
+    90:91:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$4 -> androidx.dynamicanimation.animation.DynamicAnimation$4:
+    102:102:void <init>(java.lang.String) -> <init>
+    102:102:float getValue(java.lang.Object) -> getValue
+    110:110:float getValue(android.view.View) -> getValue
+    102:102:void setValue(java.lang.Object,float) -> setValue
+    105:106:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$5 -> androidx.dynamicanimation.animation.DynamicAnimation$5:
+    117:117:void <init>(java.lang.String) -> <init>
+    117:117:float getValue(java.lang.Object) -> getValue
+    125:125:float getValue(android.view.View) -> getValue
+    117:117:void setValue(java.lang.Object,float) -> setValue
+    120:121:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$6 -> androidx.dynamicanimation.animation.DynamicAnimation$6:
+    132:132:void <init>(java.lang.String) -> <init>
+    132:132:float getValue(java.lang.Object) -> getValue
+    140:140:float getValue(android.view.View) -> getValue
+    132:132:void setValue(java.lang.Object,float) -> setValue
+    135:136:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$7 -> androidx.dynamicanimation.animation.DynamicAnimation$7:
+    147:147:void <init>(java.lang.String) -> <init>
+    147:147:float getValue(java.lang.Object) -> getValue
+    155:155:float getValue(android.view.View) -> getValue
+    147:147:void setValue(java.lang.Object,float) -> setValue
+    150:151:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$8 -> androidx.dynamicanimation.animation.DynamicAnimation$8:
+    162:162:void <init>(java.lang.String) -> <init>
+    162:162:float getValue(java.lang.Object) -> getValue
+    170:170:float getValue(android.view.View) -> getValue
+    162:162:void setValue(java.lang.Object,float) -> setValue
+    165:166:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$9 -> androidx.dynamicanimation.animation.DynamicAnimation$9:
+    177:177:void <init>(java.lang.String) -> <init>
+    177:177:float getValue(java.lang.Object) -> getValue
+    185:185:float getValue(android.view.View) -> getValue
+    177:177:void setValue(java.lang.Object,float) -> setValue
+    180:181:void setValue(android.view.View,float) -> setValue
+androidx.dynamicanimation.animation.DynamicAnimation$MassState -> androidx.dynamicanimation.animation.DynamicAnimation$MassState:
+    323:323:void <init>() -> <init>
+androidx.dynamicanimation.animation.DynamicAnimation$ViewProperty -> androidx.dynamicanimation.animation.DynamicAnimation$ViewProperty:
+    48:48:void <init>(java.lang.String,androidx.dynamicanimation.animation.DynamicAnimation$1) -> <init>
+    50:51:void <init>(java.lang.String) -> <init>
+androidx.dynamicanimation.animation.FlingAnimation -> androidx.dynamicanimation.animation.FlingAnimation:
+    43:60:void <init>(androidx.dynamicanimation.animation.FloatValueHolder) -> <init>
+    43:72:void <init>(java.lang.Object,androidx.dynamicanimation.animation.FloatPropertyCompat) -> <init>
+    179:179:float getAcceleration(float,float) -> getAcceleration
+    98:98:float getFriction() -> getFriction
+    184:186:boolean isAtEquilibrium(float,float) -> isAtEquilibrium
+    84:88:androidx.dynamicanimation.animation.FlingAnimation setFriction(float) -> setFriction
+    41:41:androidx.dynamicanimation.animation.DynamicAnimation setMaxValue(float) -> setMaxValue
+    123:124:androidx.dynamicanimation.animation.FlingAnimation setMaxValue(float) -> setMaxValue
+    41:41:androidx.dynamicanimation.animation.DynamicAnimation setMinValue(float) -> setMinValue
+    110:111:androidx.dynamicanimation.animation.FlingAnimation setMinValue(float) -> setMinValue
+    41:41:androidx.dynamicanimation.animation.DynamicAnimation setStartVelocity(float) -> setStartVelocity
+    150:151:androidx.dynamicanimation.animation.FlingAnimation setStartVelocity(float) -> setStartVelocity
+    191:192:void setValueThreshold(float) -> setValueThreshold
+    157:174:boolean updateValueAndVelocity(long) -> updateValueAndVelocity
+androidx.dynamicanimation.animation.FlingAnimation$DragForce -> androidx.dynamicanimation.animation.FlingAnimation$DragForce:
+    194:206:void <init>() -> <init>
+    228:228:float getAcceleration(float,float) -> getAcceleration
+    213:213:float getFrictionScalar() -> getFrictionScalar
+    233:233:boolean isAtEquilibrium(float,float) -> isAtEquilibrium
+    209:210:void setFrictionScalar(float) -> setFrictionScalar
+    237:238:void setValueThreshold(float) -> setValueThreshold
+    217:223:androidx.dynamicanimation.animation.DynamicAnimation$MassState updateValueAndVelocity(float,float,long) -> updateValueAndVelocity
+androidx.dynamicanimation.animation.FloatPropertyCompat -> androidx.dynamicanimation.animation.FloatPropertyCompat:
+    42:44:void <init>(java.lang.String) -> <init>
+    58:58:androidx.dynamicanimation.animation.FloatPropertyCompat createFloatPropertyCompat(android.util.FloatProperty) -> createFloatPropertyCompat
+androidx.dynamicanimation.animation.FloatPropertyCompat$1 -> androidx.dynamicanimation.animation.FloatPropertyCompat$1:
+    58:58:void <init>(java.lang.String,android.util.FloatProperty) -> <init>
+    61:61:float getValue(java.lang.Object) -> getValue
+    66:67:void setValue(java.lang.Object,float) -> setValue
+androidx.dynamicanimation.animation.FloatValueHolder -> androidx.dynamicanimation.animation.FloatValueHolder:
+    40:46:void <init>() -> <init>
+    40:55:void <init>(float) -> <init>
+    72:72:float getValue() -> getValue
+    63:64:void setValue(float) -> setValue
+androidx.dynamicanimation.animation.SpringAnimation -> androidx.dynamicanimation.animation.SpringAnimation:
+    60:79:void <init>(androidx.dynamicanimation.animation.FloatValueHolder) -> <init>
+    60:92:void <init>(java.lang.Object,androidx.dynamicanimation.animation.FloatPropertyCompat) -> <init>
+    60:108:void <init>(java.lang.Object,androidx.dynamicanimation.animation.FloatPropertyCompat,float) -> <init>
+    152:161:void animateToFinalPosition(float) -> animateToFinalPosition
+    191:191:boolean canSkipToEnd() -> canSkipToEnd
+    257:257:float getAcceleration(float,float) -> getAcceleration
+    116:116:androidx.dynamicanimation.animation.SpringForce getSpring() -> getSpring
+    262:262:boolean isAtEquilibrium(float,float) -> isAtEquilibrium
+    197:209:void sanityCheck() -> sanityCheck
+    128:129:androidx.dynamicanimation.animation.SpringAnimation setSpring(androidx.dynamicanimation.animation.SpringForce) -> setSpring
+    267:267:void setValueThreshold(float) -> setValueThreshold
+    173:183:void skipToEnd() -> skipToEnd
+    134:137:void start() -> start
+    215:252:boolean updateValueAndVelocity(long) -> updateValueAndVelocity
+androidx.dynamicanimation.animation.SpringForce -> androidx.dynamicanimation.animation.SpringForce:
+    83:115:void <init>() -> <init>
+    83:124:void <init>(float) -> <init>
+    218:223:float getAcceleration(float,float) -> getAcceleration
+    186:186:float getDampingRatio() -> getDampingRatio
+    206:206:float getFinalPosition() -> getFinalPosition
+    152:152:float getStiffness() -> getStiffness
+    247:268:void init() -> init
+    232:236:boolean isAtEquilibrium(float,float) -> isAtEquilibrium
+    171:177:androidx.dynamicanimation.animation.SpringForce setDampingRatio(float) -> setDampingRatio
+    196:197:androidx.dynamicanimation.animation.SpringForce setFinalPosition(float) -> setFinalPosition
+    137:143:androidx.dynamicanimation.animation.SpringForce setStiffness(float) -> setStiffness
+    329:331:void setValueThreshold(double) -> setValueThreshold
+    276:315:androidx.dynamicanimation.animation.DynamicAnimation$MassState updateValues(double,double,long) -> updateValues
+androidx.fragment.app.BackStackRecord -> androidx.fragment.app.BackStackRecord:
+    38:142:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    264:281:void bumpBackStackNesting(int) -> bumpBackStackNesting
+    294:294:int commit() -> commit
+    299:299:int commitAllowingStateLoss() -> commitAllowingStateLoss
+    315:330:int commitInternal(boolean) -> commitInternal
+    304:306:void commitNow() -> commitNow
+    310:312:void commitNowAllowingStateLoss() -> commitNowAllowingStateLoss
+    223:228:androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment) -> detach
+    183:185:void doAddOp(int,androidx.fragment.app.Fragment,java.lang.String,int) -> doAddOp
+    58:59:void dump(java.lang.String,java.io.PrintWriter) -> dump
+    62:135:void dump(java.lang.String,java.io.PrintWriter,boolean) -> dump
+    402:461:void executeOps() -> executeOps
+    471:529:void executePopOps(boolean) -> executePopOps
+    555:620:androidx.fragment.app.Fragment expandOps(java.util.ArrayList,androidx.fragment.app.Fragment) -> expandOps
+    345:354:boolean generateOps(java.util.ArrayList,java.util.ArrayList) -> generateOps
+    175:178:java.lang.CharSequence getBreadCrumbShortTitle() -> getBreadCrumbShortTitle
+    158:158:int getBreadCrumbShortTitleRes() -> getBreadCrumbShortTitleRes
+    165:168:java.lang.CharSequence getBreadCrumbTitle() -> getBreadCrumbTitle
+    152:152:int getBreadCrumbTitleRes() -> getBreadCrumbTitleRes
+    146:146:int getId() -> getId
+    687:687:java.lang.String getName() -> getName
+    201:206:androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment) -> hide
+    358:366:boolean interactsWith(int) -> interactsWith
+    370:394:boolean interactsWith(java.util.ArrayList,int,int) -> interactsWith
+    692:692:boolean isEmpty() -> isEmpty
+    679:681:boolean isFragmentPostponed(androidx.fragment.app.FragmentTransaction$Op) -> isFragmentPostponed
+    660:666:boolean isPostponed() -> isPostponed
+    190:195:androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment) -> remove
+    284:290:void runOnCommitRunnables() -> runOnCommitRunnables
+    247:260:androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle$State) -> setMaxLifecycle
+    670:676:void setOnStartPostponedListener(androidx.fragment.app.Fragment$OnStartEnterTransitionListener) -> setOnStartPostponedListener
+    234:240:androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment) -> setPrimaryNavigationFragment
+    212:217:androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment) -> show
+    42:54:java.lang.String toString() -> toString
+    634:656:androidx.fragment.app.Fragment trackAddedFragmentsInPop(java.util.ArrayList,androidx.fragment.app.Fragment) -> trackAddedFragmentsInPop
+androidx.fragment.app.BackStackState -> androidx.fragment.app.BackStackState:
+    169:169:void <clinit>() -> <clinit>
+    48:81:void <init>(androidx.fragment.app.BackStackRecord) -> <init>
+    83:98:void <init>(android.os.Parcel) -> <init>
+    148:148:int describeContents() -> describeContents
+    101:143:androidx.fragment.app.BackStackRecord instantiate(androidx.fragment.app.FragmentManager) -> instantiate
+    153:167:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.BackStackState$1 -> androidx.fragment.app.BackStackState$1:
+    170:170:void <init>() -> <init>
+    170:170:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    173:173:androidx.fragment.app.BackStackState createFromParcel(android.os.Parcel) -> createFromParcel
+    170:170:java.lang.Object[] newArray(int) -> newArray
+    178:178:androidx.fragment.app.BackStackState[] newArray(int) -> newArray
+androidx.fragment.app.DefaultSpecialEffectsController -> androidx.fragment.app.DefaultSpecialEffectsController:
+    52:53:void <init>(android.view.ViewGroup) -> <init>
+    742:744:void applyContainerChanges(androidx.fragment.app.SpecialEffectsController$Operation) -> applyContainerChanges
+    697:717:void captureTransitioningViews(java.util.ArrayList,android.view.View) -> captureTransitioningViews
+    59:127:void executeOperations(java.util.List,boolean) -> executeOperations
+    724:738:void findNamedViews(java.util.Map,android.view.View) -> findNamedViews
+    679:686:void retainMatchingViews(androidx.collection.ArrayMap,java.util.Collection) -> retainMatchingViews
+    132:281:void startAnimations(java.util.List,java.util.List,boolean,java.util.Map) -> startAnimations
+    288:667:java.util.Map startTransitions(java.util.List,java.util.List,boolean,androidx.fragment.app.SpecialEffectsController$Operation,androidx.fragment.app.SpecialEffectsController$Operation) -> startTransitions
+androidx.fragment.app.DefaultSpecialEffectsController$1 -> androidx.fragment.app.DefaultSpecialEffectsController$1:
+    103:103:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,java.util.List,androidx.fragment.app.SpecialEffectsController$Operation) -> <init>
+    106:110:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$10 -> androidx.fragment.app.DefaultSpecialEffectsController$10:
+    63:63:void <clinit>() -> <clinit>
+androidx.fragment.app.DefaultSpecialEffectsController$2 -> androidx.fragment.app.DefaultSpecialEffectsController$2:
+    181:181:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,android.view.ViewGroup,android.view.View,boolean,androidx.fragment.app.SpecialEffectsController$Operation,androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo) -> <init>
+    184:191:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.fragment.app.DefaultSpecialEffectsController$3 -> androidx.fragment.app.DefaultSpecialEffectsController$3:
+    197:197:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,android.animation.Animator) -> <init>
+    200:201:void onCancel() -> onCancel
+androidx.fragment.app.DefaultSpecialEffectsController$4 -> androidx.fragment.app.DefaultSpecialEffectsController$4:
+    245:245:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,android.view.ViewGroup,android.view.View,androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo) -> <init>
+    255:262:void onAnimationEnd(android.view.animation.Animation) -> onAnimationEnd
+    266:266:void onAnimationRepeat(android.view.animation.Animation) -> onAnimationRepeat
+    248:248:void onAnimationStart(android.view.animation.Animation) -> onAnimationStart
+androidx.fragment.app.DefaultSpecialEffectsController$4$1 -> androidx.fragment.app.DefaultSpecialEffectsController$4$1:
+    255:255:void <init>(androidx.fragment.app.DefaultSpecialEffectsController$4) -> <init>
+    258:260:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$5 -> androidx.fragment.app.DefaultSpecialEffectsController$5:
+    272:272:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,android.view.View,android.view.ViewGroup,androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo) -> <init>
+    275:278:void onCancel() -> onCancel
+androidx.fragment.app.DefaultSpecialEffectsController$6 -> androidx.fragment.app.DefaultSpecialEffectsController$6:
+    454:454:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,androidx.fragment.app.SpecialEffectsController$Operation,androidx.fragment.app.SpecialEffectsController$Operation,boolean,androidx.collection.ArrayMap) -> <init>
+    457:460:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$7 -> androidx.fragment.app.DefaultSpecialEffectsController$7:
+    485:485:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,androidx.fragment.app.FragmentTransitionImpl,android.view.View,android.graphics.Rect) -> <init>
+    488:490:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$8 -> androidx.fragment.app.DefaultSpecialEffectsController$8:
+    577:577:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,java.util.ArrayList) -> <init>
+    580:582:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$9 -> androidx.fragment.app.DefaultSpecialEffectsController$9:
+    639:639:void <init>(androidx.fragment.app.DefaultSpecialEffectsController,androidx.fragment.app.DefaultSpecialEffectsController$TransitionInfo) -> <init>
+    642:643:void run() -> run
+androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo -> androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo:
+    783:791:void <init>(androidx.fragment.app.SpecialEffectsController$Operation,androidx.core.os.CancellationSignal,boolean) -> <init>
+    795:803:androidx.fragment.app.FragmentAnim$AnimationOrAnimator getAnimation(android.content.Context) -> getAnimation
+androidx.fragment.app.DefaultSpecialEffectsController$SpecialEffectsInfo -> androidx.fragment.app.DefaultSpecialEffectsController$SpecialEffectsInfo:
+    752:755:void <init>(androidx.fragment.app.SpecialEffectsController$Operation,androidx.core.os.CancellationSignal) -> <init>
+    776:777:void completeSpecialEffect() -> completeSpecialEffect
+    759:759:androidx.fragment.app.SpecialEffectsController$Operation getOperation() -> getOperation
+    764:764:androidx.core.os.CancellationSignal getSignal() -> getSignal
+    768:771:boolean isVisibilityUnchanged() -> isVisibilityUnchanged
+androidx.fragment.app.DefaultSpecialEffectsController$TransitionInfo -> androidx.fragment.app.DefaultSpecialEffectsController$TransitionInfo:
+    817:845:void <init>(androidx.fragment.app.SpecialEffectsController$Operation,androidx.core.os.CancellationSignal,boolean,boolean) -> <init>
+    867:879:androidx.fragment.app.FragmentTransitionImpl getHandlingImpl() -> getHandlingImpl
+    884:896:androidx.fragment.app.FragmentTransitionImpl getHandlingImpl(java.lang.Object) -> getHandlingImpl
+    862:862:java.lang.Object getSharedElementTransition() -> getSharedElementTransition
+    849:849:java.lang.Object getTransition() -> getTransition
+    857:857:boolean hasSharedElementTransition() -> hasSharedElementTransition
+    853:853:boolean isOverlapAllowed() -> isOverlapAllowed
+androidx.fragment.app.DialogFragment -> androidx.fragment.app.DialogFragment:
+    107:189:void <init>() -> <init>
+    107:214:void <init>(int) -> <init>
+    60:60:android.app.Dialog access$000(androidx.fragment.app.DialogFragment) -> access$000
+    60:60:android.content.DialogInterface$OnDismissListener access$100(androidx.fragment.app.DialogFragment) -> access$100
+    60:60:boolean access$200(androidx.fragment.app.DialogFragment) -> access$200
+    505:506:androidx.fragment.app.FragmentContainer createFragmentContainer() -> createFragmentContainer
+    307:308:void dismiss() -> dismiss
+    317:318:void dismissAllowingStateLoss() -> dismissAllowingStateLoss
+    321:358:void dismissInternal(boolean,boolean) -> dismissInternal
+    367:367:android.app.Dialog getDialog() -> getDialog
+    439:439:boolean getShowsDialog() -> getShowsDialog
+    388:388:int getTheme() -> getTheme
+    409:409:boolean isCancelable() -> isCancelable
+    445:452:void onAttach(android.content.Context) -> onAttach
+    620:620:void onCancel(android.content.DialogInterface) -> onCancel
+    471:484:void onCreate(android.os.Bundle) -> onCreate
+    612:615:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    737:756:void onDestroyView() -> onDestroyView
+    457:465:void onDetach() -> onDetach
+    624:634:void onDismiss(android.content.DialogInterface) -> onDismiss
+    525:528:android.view.View onFindViewById(int) -> onFindViewById
+    545:567:android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle) -> onGetLayoutInflater
+    532:532:boolean onHasView() -> onHasView
+    699:720:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    683:694:void onStart() -> onStart
+    725:729:void onStop() -> onStop
+    671:678:void onViewStateRestored(android.os.Bundle) -> onViewStateRestored
+    489:500:void performCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> performCreateView
+    637:666:void prepareDialog(android.os.Bundle) -> prepareDialog
+    379:383:android.app.Dialog requireDialog() -> requireDialog
+    401:403:void setCancelable(boolean) -> setCancelable
+    432:433:void setShowsDialog(boolean) -> setShowsDialog
+    231:242:void setStyle(int,int) -> setStyle
+    573:585:void setupDialog(android.app.Dialog,int) -> setupDialog
+    256:261:void show(androidx.fragment.app.FragmentManager,java.lang.String) -> show
+    273:278:int show(androidx.fragment.app.FragmentTransaction,java.lang.String) -> show
+    293:298:void showNow(androidx.fragment.app.FragmentManager,java.lang.String) -> showNow
+androidx.fragment.app.DialogFragment$1 -> androidx.fragment.app.DialogFragment$1:
+    107:107:void <init>(androidx.fragment.app.DialogFragment) -> <init>
+    111:112:void run() -> run
+androidx.fragment.app.DialogFragment$2 -> androidx.fragment.app.DialogFragment$2:
+    116:116:void <init>(androidx.fragment.app.DialogFragment) -> <init>
+    120:123:void onCancel(android.content.DialogInterface) -> onCancel
+androidx.fragment.app.DialogFragment$3 -> androidx.fragment.app.DialogFragment$3:
+    127:127:void <init>(androidx.fragment.app.DialogFragment) -> <init>
+    131:134:void onDismiss(android.content.DialogInterface) -> onDismiss
+androidx.fragment.app.DialogFragment$4 -> androidx.fragment.app.DialogFragment$4:
+    143:143:void <init>(androidx.fragment.app.DialogFragment) -> <init>
+    143:143:void onChanged(java.lang.Object) -> onChanged
+    147:161:void onChanged(androidx.lifecycle.LifecycleOwner) -> onChanged
+androidx.fragment.app.DialogFragment$5 -> androidx.fragment.app.DialogFragment$5:
+    506:506:void <init>(androidx.fragment.app.DialogFragment,androidx.fragment.app.FragmentContainer) -> <init>
+    510:513:android.view.View onFindViewById(int) -> onFindViewById
+    518:518:boolean onHasView() -> onHasView
+androidx.fragment.app.Fragment -> androidx.fragment.app.Fragment:
+    122:122:void <clinit>() -> <clinit>
+    134:538:void <init>() -> <init>
+    563:565:void <init>(int) -> <init>
+    2758:2788:void callStartTransitionListener(boolean) -> callStartTransitionListener
+    2896:2896:androidx.fragment.app.FragmentContainer createFragmentContainer() -> createFragmentContainer
+    2802:2884:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    3263:3266:androidx.fragment.app.Fragment$AnimationInfo ensureAnimationInfo() -> ensureAnimationInfo
+    665:665:boolean equals(java.lang.Object) -> equals
+    2888:2891:androidx.fragment.app.Fragment findFragmentByWho(java.lang.String) -> findFragmentByWho
+    3541:3541:java.lang.String generateActivityResultKey() -> generateActivityResultKey
+    914:914:androidx.fragment.app.FragmentActivity getActivity() -> getActivity
+    2613:2614:boolean getAllowEnterTransitionOverlap() -> getAllowEnterTransitionOverlap
+    2638:2639:boolean getAllowReturnTransitionOverlap() -> getAllowReturnTransitionOverlap
+    3374:3377:android.view.View getAnimatingAway() -> getAnimatingAway
+    3389:3392:android.animation.Animator getAnimator() -> getAnimator
+    735:735:android.os.Bundle getArguments() -> getArguments
+    1074:1077:androidx.fragment.app.FragmentManager getChildFragmentManager() -> getChildFragmentManager
+    887:887:android.content.Context getContext() -> getContext
+    426:450:androidx.lifecycle.ViewModelProvider$Factory getDefaultViewModelProviderFactory() -> getDefaultViewModelProviderFactory
+    3280:3283:int getEnterAnim() -> getEnterAnim
+    2396:2399:java.lang.Object getEnterTransition() -> getEnterTransition
+    3360:3363:androidx.core.app.SharedElementCallback getEnterTransitionCallback() -> getEnterTransitionCallback
+    3287:3290:int getExitAnim() -> getExitAnim
+    2475:2478:java.lang.Object getExitTransition() -> getExitTransition
+    3367:3370:androidx.core.app.SharedElementCallback getExitTransitionCallback() -> getExitTransitionCallback
+    3411:3414:android.view.View getFocusedView() -> getFocusedView
+    1021:1021:androidx.fragment.app.FragmentManager getFragmentManager() -> getFragmentManager
+    941:941:java.lang.Object getHost() -> getHost
+    704:704:int getId() -> getId
+    1638:1641:android.view.LayoutInflater getLayoutInflater() -> getLayoutInflater
+    1672:1678:android.view.LayoutInflater getLayoutInflater(android.os.Bundle) -> getLayoutInflater
+    319:319:androidx.lifecycle.Lifecycle getLifecycle() -> getLifecycle
+    1357:1357:androidx.loader.app.LoaderManager getLoaderManager() -> getLoaderManager
+    410:413:int getMinimumMaxLifecycleState() -> getMinimumMaxLifecycleState
+    3322:3325:int getNextTransition() -> getNextTransition
+    1086:1086:androidx.fragment.app.Fragment getParentFragment() -> getParentFragment
+    1038:1043:androidx.fragment.app.FragmentManager getParentFragmentManager() -> getParentFragmentManager
+    3308:3311:boolean getPopDirection() -> getPopDirection
+    3294:3297:int getPopEnterAnim() -> getPopEnterAnim
+    3301:3304:int getPopExitAnim() -> getPopExitAnim
+    3400:3403:float getPostOnViewCreatedAlpha() -> getPostOnViewCreatedAlpha
+    2513:2517:java.lang.Object getReenterTransition() -> getReenterTransition
+    964:964:android.content.res.Resources getResources() -> getResources
+    1261:1261:boolean getRetainInstance() -> getRetainInstance
+    2435:2439:java.lang.Object getReturnTransition() -> getReturnTransition
+    456:456:androidx.savedstate.SavedStateRegistry getSavedStateRegistry() -> getSavedStateRegistry
+    2546:2549:java.lang.Object getSharedElementEnterTransition() -> getSharedElementEnterTransition
+    2584:2589:java.lang.Object getSharedElementReturnTransition() -> getSharedElementReturnTransition
+    3338:3341:java.util.ArrayList getSharedElementSourceNames() -> getSharedElementSourceNames
+    3346:3349:java.util.ArrayList getSharedElementTargetNames() -> getSharedElementTargetNames
+    986:986:java.lang.String getString(int) -> getString
+    999:999:java.lang.String getString(int,java.lang.Object[]) -> getString
+    712:712:java.lang.String getTag() -> getTag
+    855:863:androidx.fragment.app.Fragment getTargetFragment() -> getTargetFragment
+    877:877:int getTargetRequestCode() -> getTargetRequestCode
+    975:975:java.lang.CharSequence getText(int) -> getText
+    1345:1345:boolean getUserVisibleHint() -> getUserVisibleHint
+    1951:1951:android.view.View getView() -> getView
+    360:364:androidx.lifecycle.LifecycleOwner getViewLifecycleOwner() -> getViewLifecycleOwner
+    381:381:androidx.lifecycle.LiveData getViewLifecycleOwnerLiveData() -> getViewLifecycleOwnerLiveData
+    397:405:androidx.lifecycle.ViewModelStore getViewModelStore() -> getViewModelStore
+    1191:1191:boolean hasOptionsMenu() -> hasOptionsMenu
+    672:672:int hashCode() -> hashCode
+    568:573:void initLifecycle() -> initLifecycle
+    2164:2180:void initState() -> initState
+    585:585:androidx.fragment.app.Fragment instantiate(android.content.Context,java.lang.String) -> instantiate
+    611:631:androidx.fragment.app.Fragment instantiate(android.content.Context,java.lang.String,android.os.Bundle) -> instantiate
+    1116:1116:boolean isAdded() -> isAdded
+    1125:1125:boolean isDetached() -> isDetached
+    1184:1184:boolean isHidden() -> isHidden
+    3425:3428:boolean isHideReplaced() -> isHideReplaced
+    658:658:boolean isInBackStack() -> isInBackStack
+    1155:1155:boolean isInLayout() -> isInLayout
+    1197:1198:boolean isMenuVisible() -> isMenuVisible
+    3418:3421:boolean isPostponed() -> isPostponed
+    1134:1134:boolean isRemoving() -> isRemoving
+    1143:1144:boolean isRemovingParent() -> isRemovingParent
+    1163:1163:boolean isResumed() -> isResumed
+    762:765:boolean isStateSaved() -> isStateSaved
+    1172:1173:boolean isVisible() -> isVisible
+    3052:3053:void noteStateNotSaved() -> noteStateNotSaved
+    1996:1997:void onActivityCreated(android.os.Bundle) -> onActivityCreated
+    1489:1494:void onActivityResult(int,int,android.content.Intent) -> onActivityResult
+    1779:1785:void onAttach(android.content.Context) -> onAttach
+    1798:1799:void onAttach(android.app.Activity) -> onAttach
+    1769:1769:void onAttachFragment(androidx.fragment.app.Fragment) -> onAttachFragment
+    2085:2086:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    2343:2343:boolean onContextItemSelected(android.view.MenuItem) -> onContextItemSelected
+    1866:1871:void onCreate(android.os.Bundle) -> onCreate
+    1819:1819:android.view.animation.Animation onCreateAnimation(int,boolean,int) -> onCreateAnimation
+    1841:1841:android.animation.Animator onCreateAnimator(int,boolean,int) -> onCreateAnimator
+    2295:2296:void onCreateContextMenu(android.view.ContextMenu,android.view.View,android.view.ContextMenu$ContextMenuInfo) -> onCreateContextMenu
+    2207:2207:void onCreateOptionsMenu(android.view.Menu,android.view.MenuInflater) -> onCreateOptionsMenu
+    1923:1926:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    2154:2155:void onDestroy() -> onDestroy
+    2236:2236:void onDestroyOptionsMenu() -> onDestroyOptionsMenu
+    2144:2145:void onDestroyView() -> onDestroyView
+    2189:2190:void onDetach() -> onDetach
+    1622:1622:android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle) -> onGetLayoutInflater
+    1209:1209:void onHiddenChanged(boolean) -> onHiddenChanged
+    1727:1733:void onInflate(android.content.Context,android.util.AttributeSet,android.os.Bundle) -> onInflate
+    1747:1748:void onInflate(android.app.Activity,android.util.AttributeSet,android.os.Bundle) -> onInflate
+    2129:2130:void onLowMemory() -> onLowMemory
+    2070:2070:void onMultiWindowModeChanged(boolean) -> onMultiWindowModeChanged
+    2259:2259:boolean onOptionsItemSelected(android.view.MenuItem) -> onOptionsItemSelected
+    2272:2272:void onOptionsMenuClosed(android.view.Menu) -> onOptionsMenuClosed
+    2111:2112:void onPause() -> onPause
+    2080:2080:void onPictureInPictureModeChanged(boolean) -> onPictureInPictureModeChanged
+    2225:2225:void onPrepareOptionsMenu(android.view.Menu) -> onPrepareOptionsMenu
+    2101:2101:void onPrimaryNavigationFragmentChanged(boolean) -> onPrimaryNavigationFragmentChanged
+    1591:1591:void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    2035:2036:void onResume() -> onResume
+    2059:2059:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    2023:2024:void onStart() -> onStart
+    2122:2123:void onStop() -> onStop
+    1941:1941:void onViewCreated(android.view.View,android.os.Bundle) -> onViewCreated
+    2012:2013:void onViewStateRestored(android.os.Bundle) -> onViewStateRestored
+    2993:3003:void performActivityCreated(android.os.Bundle) -> performActivityCreated
+    2915:2929:void performAttach() -> performAttach
+    3077:3079:void performConfigurationChanged(android.content.res.Configuration) -> performConfigurationChanged
+    3132:3138:boolean performContextItemSelected(android.view.MenuItem) -> performContextItemSelected
+    2932:2956:void performCreate(android.os.Bundle) -> performCreate
+    3096:3104:boolean performCreateOptionsMenu(android.view.Menu,android.view.MenuInflater) -> performCreateOptionsMenu
+    2960:2982:void performCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> performCreateView
+    3214:3224:void performDestroy() -> performDestroy
+    3193:3211:void performDestroyView() -> performDestroyView
+    3227:3243:void performDetach() -> performDetach
+    1654:1655:android.view.LayoutInflater performGetLayoutInflater(android.os.Bundle) -> performGetLayoutInflater
+    3082:3084:void performLowMemory() -> performLowMemory
+    3067:3069:void performMultiWindowModeChanged(boolean) -> performMultiWindowModeChanged
+    3120:3128:boolean performOptionsItemSelected(android.view.MenuItem) -> performOptionsItemSelected
+    3142:3148:void performOptionsMenuClosed(android.view.Menu) -> performOptionsMenuClosed
+    3161:3173:void performPause() -> performPause
+    3072:3074:void performPictureInPictureModeChanged(boolean) -> performPictureInPictureModeChanged
+    3108:3116:boolean performPrepareOptionsMenu(android.view.Menu) -> performPrepareOptionsMenu
+    3056:3064:void performPrimaryNavigationFragmentChanged() -> performPrimaryNavigationFragmentChanged
+    3035:3049:void performResume() -> performResume
+    3151:3157:void performSaveInstanceState(android.os.Bundle) -> performSaveInstanceState
+    3017:3031:void performStart() -> performStart
+    3177:3189:void performStop() -> performStop
+    2987:2989:void performViewCreated() -> performViewCreated
+    2674:2675:void postponeEnterTransition() -> postponeEnterTransition
+    2709:2718:void postponeEnterTransition(long,java.util.concurrent.TimeUnit) -> postponeEnterTransition
+    3481:3502:androidx.activity.result.ActivityResultLauncher prepareCallInternal(androidx.activity.result.contract.ActivityResultContract,androidx.arch.core.util.Function,androidx.activity.result.ActivityResultCallback) -> prepareCallInternal
+    3449:3449:androidx.activity.result.ActivityResultLauncher registerForActivityResult(androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultCallback) -> registerForActivityResult
+    3467:3467:androidx.activity.result.ActivityResultLauncher registerForActivityResult(androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultRegistry,androidx.activity.result.ActivityResultCallback) -> registerForActivityResult
+    2309:2310:void registerForContextMenu(android.view.View) -> registerForContextMenu
+    3531:3537:void registerOnPreAttachListener(androidx.fragment.app.Fragment$OnPreAttachedListener) -> registerOnPreAttachListener
+    1558:1562:void requestPermissions(java.lang.String[],int) -> requestPermissions
+    926:930:androidx.fragment.app.FragmentActivity requireActivity() -> requireActivity
+    746:750:android.os.Bundle requireArguments() -> requireArguments
+    898:902:android.content.Context requireContext() -> requireContext
+    1065:1065:androidx.fragment.app.FragmentManager requireFragmentManager() -> requireFragmentManager
+    952:956:java.lang.Object requireHost() -> requireHost
+    1098:1109:androidx.fragment.app.Fragment requireParentFragment() -> requireParentFragment
+    1962:1967:android.view.View requireView() -> requireView
+    1886:1894:void restoreChildFragmentState(android.os.Bundle) -> restoreChildFragmentState
+    638:655:void restoreViewState(android.os.Bundle) -> restoreViewState
+    3006:3013:void restoreViewState() -> restoreViewState
+    2601:2602:void setAllowEnterTransitionOverlap(boolean) -> setAllowEnterTransitionOverlap
+    2626:2627:void setAllowReturnTransitionOverlap(boolean) -> setAllowReturnTransitionOverlap
+    3381:3382:void setAnimatingAway(android.view.View) -> setAnimatingAway
+    3270:3277:void setAnimations(int,int,int,int) -> setAnimations
+    3385:3386:void setAnimator(android.animation.Animator) -> setAnimator
+    723:727:void setArguments(android.os.Bundle) -> setArguments
+    2354:2355:void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback) -> setEnterSharedElementCallback
+    2382:2383:void setEnterTransition(java.lang.Object) -> setEnterTransition
+    2365:2366:void setExitSharedElementCallback(androidx.core.app.SharedElementCallback) -> setExitSharedElementCallback
+    2458:2459:void setExitTransition(java.lang.Object) -> setExitTransition
+    3407:3408:void setFocusedView(android.view.View) -> setFocusedView
+    1272:1278:void setHasOptionsMenu(boolean) -> setHasOptionsMenu
+    3432:3433:void setHideReplaced(boolean) -> setHideReplaced
+    777:782:void setInitialSavedState(androidx.fragment.app.Fragment$SavedState) -> setInitialSavedState
+    1290:1296:void setMenuVisibility(boolean) -> setMenuVisibility
+    3329:3334:void setNextTransition(int) -> setNextTransition
+    3246:3260:void setOnStartEnterTransitionListener(androidx.fragment.app.Fragment$OnStartEnterTransitionListener) -> setOnStartEnterTransitionListener
+    3315:3319:void setPopDirection(boolean) -> setPopDirection
+    3396:3397:void setPostOnViewCreatedAlpha(float) -> setPostOnViewCreatedAlpha
+    2497:2498:void setReenterTransition(java.lang.Object) -> setReenterTransition
+    1235:1245:void setRetainInstance(boolean) -> setRetainInstance
+    2418:2419:void setReturnTransition(java.lang.Object) -> setReturnTransition
+    2532:2533:void setSharedElementEnterTransition(java.lang.Object) -> setSharedElementEnterTransition
+    3354:3357:void setSharedElementNames(java.util.ArrayList,java.util.ArrayList) -> setSharedElementNames
+    2567:2568:void setSharedElementReturnTransition(java.lang.Object) -> setSharedElementReturnTransition
+    812:840:void setTargetFragment(androidx.fragment.app.Fragment,int) -> setTargetFragment
+    1322:1334:void setUserVisibleHint(boolean) -> setUserVisibleHint
+    1604:1607:boolean shouldShowRequestPermissionRationale(java.lang.String) -> shouldShowRequestPermissionRationale
+    1365:1366:void startActivity(android.content.Intent) -> startActivity
+    1374:1378:void startActivity(android.content.Intent,android.os.Bundle) -> startActivity
+    1398:1399:void startActivityForResult(android.content.Intent,int) -> startActivityForResult
+    1421:1426:void startActivityForResult(android.content.Intent,int,android.os.Bundle) -> startActivityForResult
+    1455:1465:void startIntentSenderForResult(android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> startIntentSenderForResult
+    2731:2747:void startPostponedEnterTransition() -> startPostponedEnterTransition
+    678:695:java.lang.String toString() -> toString
+    2320:2321:void unregisterForContextMenu(android.view.View) -> unregisterForContextMenu
+androidx.fragment.app.Fragment$1 -> androidx.fragment.app.Fragment$1:
+    256:256:void <init>(androidx.fragment.app.Fragment) -> <init>
+    259:260:void run() -> run
+androidx.fragment.app.Fragment$2 -> androidx.fragment.app.Fragment$2:
+    2738:2738:void <init>(androidx.fragment.app.Fragment) -> <init>
+    2741:2742:void run() -> run
+androidx.fragment.app.Fragment$3 -> androidx.fragment.app.Fragment$3:
+    2777:2777:void <init>(androidx.fragment.app.Fragment,androidx.fragment.app.SpecialEffectsController) -> <init>
+    2780:2781:void run() -> run
+androidx.fragment.app.Fragment$4 -> androidx.fragment.app.Fragment$4:
+    2896:2896:void <init>(androidx.fragment.app.Fragment) -> <init>
+    2900:2904:android.view.View onFindViewById(int) -> onFindViewById
+    2909:2909:boolean onHasView() -> onHasView
+androidx.fragment.app.Fragment$5 -> androidx.fragment.app.Fragment$5:
+    2936:2936:void <init>(androidx.fragment.app.Fragment) -> <init>
+    2940:2945:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.fragment.app.Fragment$6 -> androidx.fragment.app.Fragment$6:
+    3449:3449:void <init>(androidx.fragment.app.Fragment) -> <init>
+    3449:3449:java.lang.Object apply(java.lang.Object) -> apply
+    3452:3455:androidx.activity.result.ActivityResultRegistry apply(java.lang.Void) -> apply
+androidx.fragment.app.Fragment$7 -> androidx.fragment.app.Fragment$7:
+    3467:3467:void <init>(androidx.fragment.app.Fragment,androidx.activity.result.ActivityResultRegistry) -> <init>
+    3467:3467:java.lang.Object apply(java.lang.Object) -> apply
+    3470:3470:androidx.activity.result.ActivityResultRegistry apply(java.lang.Void) -> apply
+androidx.fragment.app.Fragment$8 -> androidx.fragment.app.Fragment$8:
+    3493:3493:void <init>(androidx.fragment.app.Fragment,androidx.arch.core.util.Function,java.util.concurrent.atomic.AtomicReference,androidx.activity.result.contract.ActivityResultContract,androidx.activity.result.ActivityResultCallback) -> <init>
+    3496:3499:void onPreAttached() -> onPreAttached
+androidx.fragment.app.Fragment$9 -> androidx.fragment.app.Fragment$9:
+    3502:3502:void <init>(androidx.fragment.app.Fragment,java.util.concurrent.atomic.AtomicReference,androidx.activity.result.contract.ActivityResultContract) -> <init>
+    3524:3524:androidx.activity.result.contract.ActivityResultContract getContract() -> getContract
+    3505:3511:void launch(java.lang.Object,androidx.core.app.ActivityOptionsCompat) -> launch
+    3515:3519:void unregister() -> unregister
+androidx.fragment.app.Fragment$AnimationInfo -> androidx.fragment.app.Fragment$AnimationInfo:
+    3558:3597:void <init>() -> <init>
+androidx.fragment.app.Fragment$InstantiationException -> androidx.fragment.app.Fragment$InstantiationException:
+    516:517:void <init>(java.lang.String,java.lang.Exception) -> <init>
+androidx.fragment.app.Fragment$OnPreAttachedListener -> androidx.fragment.app.Fragment$OnPreAttachedListener:
+    306:306:void <init>() -> <init>
+    306:306:void <init>(androidx.fragment.app.Fragment$1) -> <init>
+androidx.fragment.app.Fragment$SavedState -> androidx.fragment.app.Fragment$SavedState:
+    490:490:void <clinit>() -> <clinit>
+    468:470:void <init>(android.os.Bundle) -> <init>
+    472:477:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    481:481:int describeContents() -> describeContents
+    486:487:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.Fragment$SavedState$1 -> androidx.fragment.app.Fragment$SavedState$1:
+    491:491:void <init>() -> <init>
+    491:491:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    491:491:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    494:494:androidx.fragment.app.Fragment$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    499:499:androidx.fragment.app.Fragment$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    491:491:java.lang.Object[] newArray(int) -> newArray
+    504:504:androidx.fragment.app.Fragment$SavedState[] newArray(int) -> newArray
+androidx.fragment.app.FragmentActivity -> androidx.fragment.app.FragmentActivity:
+    84:105:void <init>() -> <init>
+    84:121:void <init>(int) -> <init>
+    319:319:android.view.View dispatchFragmentsOnCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> dispatchFragmentsOnCreateView
+    562:576:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    608:608:androidx.fragment.app.FragmentManager getSupportFragmentManager() -> getSupportFragmentManager
+    618:618:androidx.loader.app.LoaderManager getSupportLoaderManager() -> getSupportLoaderManager
+    125:153:void init() -> init
+    823:825:void markFragmentsCreated() -> markFragmentsCreated
+    828:848:boolean markState(androidx.fragment.app.FragmentManager,androidx.lifecycle.Lifecycle$State) -> markState
+    163:165:void onActivityResult(int,int,android.content.Intent) -> onActivityResult
+    600:600:void onAttachFragment(androidx.fragment.app.Fragment) -> onAttachFragment
+    261:264:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    273:277:void onCreate(android.os.Bundle) -> onCreate
+    286:291:boolean onCreatePanelMenu(int,android.view.Menu) -> onCreatePanelMenu
+    298:302:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    309:313:android.view.View onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    329:332:void onDestroy() -> onDestroy
+    341:343:void onLowMemory() -> onLowMemory
+    352:364:boolean onMenuItemSelected(int,android.view.MenuItem) -> onMenuItemSelected
+    235:236:void onMultiWindowModeChanged(boolean) -> onMultiWindowModeChanged
+    409:411:void onNewIntent(android.content.Intent) -> onNewIntent
+    375:379:void onPanelClosed(int,android.view.Menu) -> onPanelClosed
+    388:392:void onPause() -> onPause
+    251:252:void onPictureInPictureModeChanged(boolean) -> onPictureInPictureModeChanged
+    446:448:void onPostResume() -> onPostResume
+    485:485:boolean onPrepareOptionsPanel(android.view.View,android.view.Menu) -> onPrepareOptionsPanel
+    469:474:boolean onPreparePanel(int,android.view.View,android.view.Menu) -> onPreparePanel
+    635:637:void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    433:437:void onResume() -> onResume
+    457:459:void onResumeFragments() -> onResumeFragments
+    495:511:void onStart() -> onStart
+    421:422:void onStateNotSaved() -> onStateNotSaved
+    520:527:void onStop() -> onStop
+    190:191:void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback) -> setEnterSharedElementCallback
+    203:204:void setExitSharedElementCallback(androidx.core.app.SharedElementCallback) -> setExitSharedElementCallback
+    651:652:void startActivityFromFragment(androidx.fragment.app.Fragment,android.content.Intent,int) -> startActivityFromFragment
+    671:678:void startActivityFromFragment(androidx.fragment.app.Fragment,android.content.Intent,int,android.os.Bundle) -> startActivityFromFragment
+    710:717:void startIntentSenderFromFragment(androidx.fragment.app.Fragment,android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> startIntentSenderFromFragment
+    178:179:void supportFinishAfterTransition() -> supportFinishAfterTransition
+    545:546:void supportInvalidateOptionsMenu() -> supportInvalidateOptionsMenu
+    211:212:void supportPostponeEnterTransition() -> supportPostponeEnterTransition
+    219:220:void supportStartPostponedEnterTransition() -> supportStartPostponedEnterTransition
+    628:628:void validateRequestPermissionsRequestCode(int) -> validateRequestPermissionsRequestCode
+androidx.fragment.app.FragmentActivity$1 -> androidx.fragment.app.FragmentActivity$1:
+    126:126:void <init>(androidx.fragment.app.FragmentActivity) -> <init>
+    130:137:android.os.Bundle saveState() -> saveState
+androidx.fragment.app.FragmentActivity$2 -> androidx.fragment.app.FragmentActivity$2:
+    140:140:void <init>(androidx.fragment.app.FragmentActivity) -> <init>
+    143:151:void onContextAvailable(android.content.Context) -> onContextAvailable
+androidx.fragment.app.FragmentActivity$HostCallbacks -> androidx.fragment.app.FragmentActivity$HostCallbacks:
+    724:726:void <init>(androidx.fragment.app.FragmentActivity) -> <init>
+    816:816:androidx.activity.result.ActivityResultRegistry getActivityResultRegistry() -> getActivityResultRegistry
+    735:735:androidx.lifecycle.Lifecycle getLifecycle() -> getLifecycle
+    747:747:androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher() -> getOnBackPressedDispatcher
+    741:741:androidx.lifecycle.ViewModelStore getViewModelStore() -> getViewModelStore
+    798:799:void onAttachFragment(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onAttachFragment
+    753:754:void onDump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> onDump
+    804:804:android.view.View onFindViewById(int) -> onFindViewById
+    719:719:java.lang.Object onGetHost() -> onGetHost
+    769:769:androidx.fragment.app.FragmentActivity onGetHost() -> onGetHost
+    764:764:android.view.LayoutInflater onGetLayoutInflater() -> onGetLayoutInflater
+    790:791:int onGetWindowAnimations() -> onGetWindowAnimations
+    809:810:boolean onHasView() -> onHasView
+    785:785:boolean onHasWindowAnimations() -> onHasWindowAnimations
+    758:758:boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment) -> onShouldSaveFragmentState
+    779:779:boolean onShouldShowRequestPermissionRationale(java.lang.String) -> onShouldShowRequestPermissionRationale
+    774:775:void onSupportInvalidateOptionsMenu() -> onSupportInvalidateOptionsMenu
+androidx.fragment.app.FragmentAnim -> androidx.fragment.app.FragmentAnim:
+    41:42:void <init>() -> <init>
+    146:211:void animateRemoveFragment(androidx.fragment.app.Fragment,androidx.fragment.app.FragmentAnim$AnimationOrAnimator,androidx.fragment.app.FragmentTransition$Callback) -> animateRemoveFragment
+    121:131:int getNextAnim(androidx.fragment.app.Fragment,boolean,boolean) -> getNextAnim
+    46:117:androidx.fragment.app.FragmentAnim$AnimationOrAnimator loadAnimation(android.content.Context,androidx.fragment.app.Fragment,boolean,boolean) -> loadAnimation
+    215:227:int transitToAnimResourceId(int,boolean) -> transitToAnimResourceId
+androidx.fragment.app.FragmentAnim$1 -> androidx.fragment.app.FragmentAnim$1:
+    150:150:void <init>(androidx.fragment.app.Fragment) -> <init>
+    153:159:void onCancel() -> onCancel
+androidx.fragment.app.FragmentAnim$2 -> androidx.fragment.app.FragmentAnim$2:
+    166:166:void <init>(android.view.ViewGroup,androidx.fragment.app.Fragment,androidx.fragment.app.FragmentTransition$Callback,androidx.core.os.CancellationSignal) -> <init>
+    176:185:void onAnimationEnd(android.view.animation.Animation) -> onAnimationEnd
+    189:189:void onAnimationRepeat(android.view.animation.Animation) -> onAnimationRepeat
+    169:169:void onAnimationStart(android.view.animation.Animation) -> onAnimationStart
+androidx.fragment.app.FragmentAnim$2$1 -> androidx.fragment.app.FragmentAnim$2$1:
+    176:176:void <init>(androidx.fragment.app.FragmentAnim$2) -> <init>
+    179:183:void run() -> run
+androidx.fragment.app.FragmentAnim$3 -> androidx.fragment.app.FragmentAnim$3:
+    195:195:void <init>(android.view.ViewGroup,android.view.View,androidx.fragment.app.Fragment,androidx.fragment.app.FragmentTransition$Callback,androidx.core.os.CancellationSignal) -> <init>
+    198:206:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.fragment.app.FragmentAnim$AnimationOrAnimator -> androidx.fragment.app.FragmentAnim$AnimationOrAnimator:
+    237:243:void <init>(android.view.animation.Animation) -> <init>
+    245:251:void <init>(android.animation.Animator) -> <init>
+androidx.fragment.app.FragmentAnim$EndViewTransitionAnimation -> androidx.fragment.app.FragmentAnim$EndViewTransitionAnimation:
+    265:276:void <init>(android.view.animation.Animation,android.view.ViewGroup,android.view.View) -> <init>
+    280:289:boolean getTransformation(long,android.view.animation.Transformation) -> getTransformation
+    295:304:boolean getTransformation(long,android.view.animation.Transformation,float) -> getTransformation
+    309:317:void run() -> run
+androidx.fragment.app.FragmentContainer -> androidx.fragment.app.FragmentContainer:
+    31:31:void <init>() -> <init>
+    57:57:androidx.fragment.app.Fragment instantiate(android.content.Context,java.lang.String,android.os.Bundle) -> instantiate
+androidx.fragment.app.FragmentContainerView -> androidx.fragment.app.FragmentContainerView:
+    109:113:void <init>(android.content.Context) -> <init>
+    120:121:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    109:146:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    109:183:void <init>(android.content.Context,android.util.AttributeSet,androidx.fragment.app.FragmentManager) -> <init>
+    395:401:void addDisappearingFragmentView(android.view.View) -> addDisappearingFragmentView
+    308:314:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    326:331:boolean addViewInLayout(android.view.View,int,android.view.ViewGroup$LayoutParams,boolean) -> addViewInLayout
+    235:246:android.view.WindowInsets dispatchApplyWindowInsets(android.view.WindowInsets) -> dispatchApplyWindowInsets
+    251:257:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    261:268:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    284:292:void endViewTransition(android.view.View) -> endViewTransition
+    223:223:android.view.WindowInsets onApplyWindowInsets(android.view.WindowInsets) -> onApplyWindowInsets
+    373:378:void removeAllViewsInLayout() -> removeAllViewsInLayout
+    382:386:void removeDetachedView(android.view.View,boolean) -> removeDetachedView
+    349:351:void removeView(android.view.View) -> removeView
+    336:339:void removeViewAt(int) -> removeViewAt
+    343:345:void removeViewInLayout(android.view.View) -> removeViewInLayout
+    355:360:void removeViews(int,int) -> removeViews
+    364:369:void removeViewsInLayout(int,int) -> removeViewsInLayout
+    296:297:void setDrawDisappearingViewsLast(boolean) -> setDrawDisappearingViewsLast
+    201:209:void setLayoutTransition(android.animation.LayoutTransition) -> setLayoutTransition
+    216:217:void setOnApplyWindowInsetsListener(android.view.View$OnApplyWindowInsetsListener) -> setOnApplyWindowInsetsListener
+    273:280:void startViewTransition(android.view.View) -> startViewTransition
+androidx.fragment.app.FragmentController -> androidx.fragment.app.FragmentController:
+    60:62:void <init>(androidx.fragment.app.FragmentHostCallback) -> <init>
+    116:118:void attachHost(androidx.fragment.app.Fragment) -> attachHost
+    57:57:androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback) -> createController
+    251:252:void dispatchActivityCreated() -> dispatchActivityCreated
+    367:368:void dispatchConfigurationChanged(android.content.res.Configuration) -> dispatchConfigurationChanged
+    429:429:boolean dispatchContextItemSelected(android.view.MenuItem) -> dispatchContextItemSelected
+    240:241:void dispatchCreate() -> dispatchCreate
+    391:391:boolean dispatchCreateOptionsMenu(android.view.Menu,android.view.MenuInflater) -> dispatchCreateOptionsMenu
+    334:335:void dispatchDestroy() -> dispatchDestroy
+    313:314:void dispatchDestroyView() -> dispatchDestroyView
+    379:380:void dispatchLowMemory() -> dispatchLowMemory
+    345:346:void dispatchMultiWindowModeChanged(boolean) -> dispatchMultiWindowModeChanged
+    416:416:boolean dispatchOptionsItemSelected(android.view.MenuItem) -> dispatchOptionsItemSelected
+    440:441:void dispatchOptionsMenuClosed(android.view.Menu) -> dispatchOptionsMenuClosed
+    284:285:void dispatchPause() -> dispatchPause
+    356:357:void dispatchPictureInPictureModeChanged(boolean) -> dispatchPictureInPictureModeChanged
+    403:403:boolean dispatchPrepareOptionsMenu(android.view.Menu) -> dispatchPrepareOptionsMenu
+    303:303:void dispatchReallyStop() -> dispatchReallyStop
+    273:274:void dispatchResume() -> dispatchResume
+    262:263:void dispatchStart() -> dispatchStart
+    295:296:void dispatchStop() -> dispatchStop
+    492:492:void doLoaderDestroy() -> doLoaderDestroy
+    483:483:void doLoaderRetain() -> doLoaderRetain
+    461:461:void doLoaderStart() -> doLoaderStart
+    474:474:void doLoaderStop(boolean) -> doLoaderStop
+    536:536:void dumpLoaders(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dumpLoaders
+    451:451:boolean execPendingActions() -> execPendingActions
+    92:92:androidx.fragment.app.Fragment findFragmentByWho(java.lang.String) -> findFragmentByWho
+    108:108:java.util.List getActiveFragments(java.util.List) -> getActiveFragments
+    99:99:int getActiveFragmentsCount() -> getActiveFragmentsCount
+    69:69:androidx.fragment.app.FragmentManager getSupportFragmentManager() -> getSupportFragmentManager
+    83:83:androidx.loader.app.LoaderManager getSupportLoaderManager() -> getSupportLoaderManager
+    142:143:void noteStateNotSaved() -> noteStateNotSaved
+    134:135:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    501:501:void reportLoaderStart() -> reportLoaderStart
+    167:169:void restoreAllState(android.os.Parcelable,java.util.List) -> restoreAllState
+    183:184:void restoreAllState(android.os.Parcelable,androidx.fragment.app.FragmentManagerNonConfig) -> restoreAllState
+    526:526:void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap) -> restoreLoaderNonConfig
+    193:199:void restoreSaveState(android.os.Parcelable) -> restoreSaveState
+    512:512:androidx.collection.SimpleArrayMap retainLoaderNonConfig() -> retainLoaderNonConfig
+    229:229:androidx.fragment.app.FragmentManagerNonConfig retainNestedNonConfig() -> retainNestedNonConfig
+    212:215:java.util.List retainNonConfig() -> retainNonConfig
+    152:152:android.os.Parcelable saveAllState() -> saveAllState
+androidx.fragment.app.FragmentFactory -> androidx.fragment.app.FragmentFactory:
+    33:33:void <clinit>() -> <clinit>
+    31:31:void <init>() -> <init>
+    120:134:androidx.fragment.app.Fragment instantiate(java.lang.ClassLoader,java.lang.String) -> instantiate
+    70:73:boolean isFragmentClass(java.lang.ClassLoader,java.lang.String) -> isFragmentClass
+    45:56:java.lang.Class loadClass(java.lang.ClassLoader,java.lang.String) -> loadClass
+    94:100:java.lang.Class loadFragmentClass(java.lang.ClassLoader,java.lang.String) -> loadFragmentClass
+androidx.fragment.app.FragmentHostCallback -> androidx.fragment.app.FragmentHostCallback:
+    85:87:void <init>(android.content.Context,android.os.Handler,int) -> <init>
+    91:92:void <init>(androidx.fragment.app.FragmentActivity) -> <init>
+    81:100:void <init>(android.app.Activity,android.content.Context,android.os.Handler,int) -> <init>
+    242:242:android.app.Activity getActivity() -> getActivity
+    247:247:android.content.Context getContext() -> getContext
+    252:252:android.os.Handler getHandler() -> getHandler
+    113:113:void onDump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> onDump
+    232:232:android.view.View onFindViewById(int) -> onFindViewById
+    128:128:android.view.LayoutInflater onGetLayoutInflater() -> onGetLayoutInflater
+    226:226:int onGetWindowAnimations() -> onGetWindowAnimations
+    237:237:boolean onHasView() -> onHasView
+    219:219:boolean onHasWindowAnimations() -> onHasWindowAnimations
+    205:205:void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment,java.lang.String[],int) -> onRequestPermissionsFromFragment
+    119:119:boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment) -> onShouldSaveFragmentState
+    212:212:boolean onShouldShowRequestPermissionRationale(java.lang.String) -> onShouldShowRequestPermissionRationale
+    152:153:void onStartActivityFromFragment(androidx.fragment.app.Fragment,android.content.Intent,int) -> onStartActivityFromFragment
+    162:167:void onStartActivityFromFragment(androidx.fragment.app.Fragment,android.content.Intent,int,android.os.Bundle) -> onStartActivityFromFragment
+    184:190:void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment,android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> onStartIntentSenderFromFragment
+    144:144:void onSupportInvalidateOptionsMenu() -> onSupportInvalidateOptionsMenu
+androidx.fragment.app.FragmentLayoutInflaterFactory -> androidx.fragment.app.FragmentLayoutInflaterFactory:
+    36:38:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    44:44:android.view.View onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    51:173:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+androidx.fragment.app.FragmentLayoutInflaterFactory$1 -> androidx.fragment.app.FragmentLayoutInflaterFactory$1:
+    158:158:void <init>(androidx.fragment.app.FragmentLayoutInflaterFactory,androidx.fragment.app.FragmentStateManager) -> <init>
+    161:167:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    170:170:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.fragment.app.FragmentLifecycleCallbacksDispatcher -> androidx.fragment.app.FragmentLifecycleCallbacksDispatcher:
+    46:55:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    155:167:void dispatchOnFragmentActivityCreated(androidx.fragment.app.Fragment,android.os.Bundle,boolean) -> dispatchOnFragmentActivityCreated
+    106:118:void dispatchOnFragmentAttached(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentAttached
+    138:150:void dispatchOnFragmentCreated(androidx.fragment.app.Fragment,android.os.Bundle,boolean) -> dispatchOnFragmentCreated
+    272:283:void dispatchOnFragmentDestroyed(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentDestroyed
+    286:297:void dispatchOnFragmentDetached(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentDetached
+    214:225:void dispatchOnFragmentPaused(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentPaused
+    91:103:void dispatchOnFragmentPreAttached(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentPreAttached
+    122:134:void dispatchOnFragmentPreCreated(androidx.fragment.app.Fragment,android.os.Bundle,boolean) -> dispatchOnFragmentPreCreated
+    200:211:void dispatchOnFragmentResumed(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentResumed
+    243:255:void dispatchOnFragmentSaveInstanceState(androidx.fragment.app.Fragment,android.os.Bundle,boolean) -> dispatchOnFragmentSaveInstanceState
+    186:197:void dispatchOnFragmentStarted(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentStarted
+    228:239:void dispatchOnFragmentStopped(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentStopped
+    171:183:void dispatchOnFragmentViewCreated(androidx.fragment.app.Fragment,android.view.View,android.os.Bundle,boolean) -> dispatchOnFragmentViewCreated
+    258:269:void dispatchOnFragmentViewDestroyed(androidx.fragment.app.Fragment,boolean) -> dispatchOnFragmentViewDestroyed
+    68:69:void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks,boolean) -> registerFragmentLifecycleCallbacks
+    80:88:void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks) -> unregisterFragmentLifecycleCallbacks
+androidx.fragment.app.FragmentLifecycleCallbacksDispatcher$FragmentLifecycleCallbacksHolder -> androidx.fragment.app.FragmentLifecycleCallbacksDispatcher$FragmentLifecycleCallbacksHolder:
+    40:43:void <init>(androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks,boolean) -> <init>
+androidx.fragment.app.FragmentManager -> androidx.fragment.app.FragmentManager:
+    97:99:void <clinit>() -> <clinit>
+    96:521:void <init>() -> <init>
+    96:96:java.util.Map access$000(androidx.fragment.app.FragmentManager) -> access$000
+    96:96:java.util.Map access$100(androidx.fragment.app.FragmentManager) -> access$100
+    96:96:androidx.fragment.app.FragmentStore access$200(androidx.fragment.app.FragmentManager) -> access$200
+    2458:2471:void addAddedFragments(androidx.collection.ArraySet) -> addAddedFragments
+    2568:2572:void addBackStackState(androidx.fragment.app.BackStackRecord) -> addBackStackState
+    833:837:void addCancellationSignal(androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> addCancellationSignal
+    1708:1722:androidx.fragment.app.FragmentStateManager addFragment(androidx.fragment.app.Fragment) -> addFragment
+    3417:3418:void addFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener) -> addFragmentOnAttachListener
+    813:817:void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager$OnBackStackChangedListener) -> addOnBackStackChangedListener
+    1104:1105:void addRetainedFragment(androidx.fragment.app.Fragment) -> addRetainedFragment
+    1920:1920:int allocBackStackIndex() -> allocBackStackIndex
+    2829:2972:void attachController(androidx.fragment.app.FragmentHostCallback,androidx.fragment.app.FragmentContainer,androidx.fragment.app.Fragment) -> attachController
+    1790:1801:void attachFragment(androidx.fragment.app.Fragment) -> attachFragment
+    575:575:androidx.fragment.app.FragmentTransaction beginTransaction() -> beginTransaction
+    1485:1494:void cancelExitAnimation(androidx.fragment.app.Fragment) -> cancelExitAnimation
+    3446:3455:boolean checkForMenus() -> checkForMenus
+    1843:1847:void checkStateLoss() -> checkStateLoss
+    1987:1990:void cleanupExec() -> cleanupExec
+    874:875:void clearFragmentResult(java.lang.String) -> clearFragmentResult
+    918:922:void clearFragmentResultListener(java.lang.String) -> clearFragmentResultListener
+    2512:2521:java.util.Set collectAllSpecialEffectsController() -> collectAllSpecialEffectsController
+    2240:2254:java.util.Set collectChangedControllers(java.util.ArrayList,int,int) -> collectChangedControllers
+    2345:2381:void completeExecute(androidx.fragment.app.BackStackRecord,boolean,boolean,boolean) -> completeExecute
+    1536:1582:void completeShowHideFragment(androidx.fragment.app.Fragment) -> completeShowHideFragment
+    1694:1704:androidx.fragment.app.FragmentStateManager createOrGetFragmentStateManager(androidx.fragment.app.Fragment) -> createOrGetFragmentStateManager
+    1510:1519:void destroyFragmentView(androidx.fragment.app.Fragment) -> destroyFragmentView
+    1774:1787:void detachFragment(androidx.fragment.app.Fragment) -> detachFragment
+    3069:3073:void dispatchActivityCreated() -> dispatchActivityCreated
+    3051:3055:void dispatchAttach() -> dispatchAttach
+    3158:3163:void dispatchConfigurationChanged(android.content.res.Configuration) -> dispatchConfigurationChanged
+    3235:3245:boolean dispatchContextItemSelected(android.view.MenuItem) -> dispatchContextItemSelected
+    3058:3062:void dispatchCreate() -> dispatchCreate
+    3174:3202:boolean dispatchCreateOptionsMenu(android.view.Menu,android.view.MenuInflater) -> dispatchCreateOptionsMenu
+    3104:3122:void dispatchDestroy() -> dispatchDestroy
+    3100:3101:void dispatchDestroyView() -> dispatchDestroyView
+    3166:3171:void dispatchLowMemory() -> dispatchLowMemory
+    3142:3147:void dispatchMultiWindowModeChanged(boolean) -> dispatchMultiWindowModeChanged
+    3427:3430:void dispatchOnAttachFragment(androidx.fragment.app.Fragment) -> dispatchOnAttachFragment
+    3221:3231:boolean dispatchOptionsItemSelected(android.view.MenuItem) -> dispatchOptionsItemSelected
+    3249:3257:void dispatchOptionsMenuClosed(android.view.Menu) -> dispatchOptionsMenuClosed
+    3272:3275:void dispatchParentPrimaryNavigationFragmentChanged(androidx.fragment.app.Fragment) -> dispatchParentPrimaryNavigationFragmentChanged
+    3090:3091:void dispatchPause() -> dispatchPause
+    3150:3155:void dispatchPictureInPictureModeChanged(boolean) -> dispatchPictureInPictureModeChanged
+    3206:3217:boolean dispatchPrepareOptionsMenu(android.view.Menu) -> dispatchPrepareOptionsMenu
+    3278:3281:void dispatchPrimaryNavigationFragmentChanged() -> dispatchPrimaryNavigationFragmentChanged
+    3083:3087:void dispatchResume() -> dispatchResume
+    3076:3080:void dispatchStart() -> dispatchStart
+    3126:3139:void dispatchStateChange(int) -> dispatchStateChange
+    3094:3097:void dispatchStop() -> dispatchStop
+    3065:3066:void dispatchViewCreated() -> dispatchViewCreated
+    2553:2557:void doPendingDeferredStart() -> doPendingDeferredStart
+    1208:1289:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    137:138:void enableDebugLogging(boolean) -> enableDebugLogging
+    124:125:void enableNewStateManager(boolean) -> enableNewStateManager
+    2496:2509:void endAnimatingAwayFragments() -> endAnimatingAwayFragments
+    1875:1897:void enqueueAction(androidx.fragment.app.FragmentManager$OpGenerator,boolean) -> enqueueAction
+    1930:1960:void ensureExecReady(boolean) -> ensureExecReady
+    1996:2013:boolean execPendingActions(boolean) -> execPendingActions
+    1963:1980:void execSingleAction(androidx.fragment.app.FragmentManager$OpGenerator,boolean) -> execSingleAction
+    2393:2407:void executeOps(java.util.ArrayList,java.util.ArrayList,int,int) -> executeOps
+    2120:2236:void executeOpsTogether(java.util.ArrayList,java.util.ArrayList,int,int) -> executeOpsTogether
+    600:602:boolean executePendingTransactions() -> executePendingTransactions
+    2022:2052:void executePostponedTransaction(java.util.ArrayList,java.util.ArrayList) -> executePostponedTransaction
+    1839:1839:androidx.fragment.app.Fragment findActiveFragment(java.lang.String) -> findActiveFragment
+    981:985:androidx.fragment.app.Fragment findFragment(android.view.View) -> findFragment
+    1813:1813:androidx.fragment.app.Fragment findFragmentById(int) -> findFragmentById
+    1830:1830:androidx.fragment.app.Fragment findFragmentByTag(java.lang.String) -> findFragmentByTag
+    1834:1834:androidx.fragment.app.Fragment findFragmentByWho(java.lang.String) -> findFragmentByWho
+    1044:1073:androidx.fragment.app.FragmentManager findFragmentManager(android.view.View) -> findFragmentManager
+    995:1003:androidx.fragment.app.Fragment findViewFragment(android.view.View) -> findViewFragment
+    2477:2489:void forcePostponedTransactions() -> forcePostponedTransactions
+    2536:2549:boolean generateOpsForPendingActions(java.util.ArrayList,java.util.ArrayList) -> generateOpsForPendingActions
+    1128:1128:int getActiveFragmentCount() -> getActiveFragmentCount
+    1119:1119:java.util.List getActiveFragments() -> getActiveFragments
+    806:806:androidx.fragment.app.FragmentManager$BackStackEntry getBackStackEntryAt(int) -> getBackStackEntryAt
+    797:797:int getBackStackEntryCount() -> getBackStackEntryCount
+    1100:1100:androidx.fragment.app.FragmentManagerViewModel getChildNonConfig(androidx.fragment.app.Fragment) -> getChildNonConfig
+    2817:2817:androidx.fragment.app.FragmentContainer getContainer() -> getContainer
+    954:963:androidx.fragment.app.Fragment getFragment(android.os.Bundle,java.lang.String) -> getFragment
+    2430:2448:android.view.ViewGroup getFragmentContainer(androidx.fragment.app.Fragment) -> getFragmentContainer
+    3334:3344:androidx.fragment.app.FragmentFactory getFragmentFactory() -> getFragmentFactory
+    2822:2822:androidx.fragment.app.FragmentStore getFragmentStore() -> getFragmentStore
+    1090:1090:java.util.List getFragments() -> getFragments
+    2807:2807:androidx.fragment.app.FragmentHostCallback getHost() -> getHost
+    3487:3487:android.view.LayoutInflater$Factory2 getLayoutInflaterFactory() -> getLayoutInflaterFactory
+    3382:3382:androidx.fragment.app.FragmentLifecycleCallbacksDispatcher getLifecycleCallbacksDispatcher() -> getLifecycleCallbacksDispatcher
+    2812:2812:androidx.fragment.app.Fragment getParent() -> getParent
+    3297:3297:androidx.fragment.app.Fragment getPrimaryNavigationFragment() -> getPrimaryNavigationFragment
+    3367:3377:androidx.fragment.app.SpecialEffectsControllerFactory getSpecialEffectsControllerFactory() -> getSpecialEffectsControllerFactory
+    1013:1017:androidx.fragment.app.Fragment getViewFragment(android.view.View) -> getViewFragment
+    1095:1095:androidx.lifecycle.ViewModelStore getViewModelStore(androidx.fragment.app.Fragment) -> getViewModelStore
+    661:674:void handleOnBackPressed() -> handleOnBackPressed
+    1747:1755:void hideFragment(androidx.fragment.app.Fragment) -> hideFragment
+    3463:3466:void invalidateMenuForFragment(androidx.fragment.app.Fragment) -> invalidateMenuForFragment
+    1169:1169:boolean isDestroyed() -> isDestroyed
+    141:141:boolean isLoggingEnabled(int) -> isLoggingEnabled
+    3459:3459:boolean isMenuAvailable(androidx.fragment.app.Fragment) -> isMenuAvailable
+    648:652:boolean isParentMenuVisible(androidx.fragment.app.Fragment) -> isParentMenuVisible
+    630:640:boolean isPrimaryNavigation(androidx.fragment.app.Fragment) -> isPrimaryNavigation
+    1309:1309:boolean isStateAtLeast(int) -> isStateAtLeast
+    1864:1864:boolean isStateSaved() -> isStateSaved
+    3041:3048:void launchRequestPermissions(androidx.fragment.app.Fragment,java.lang.String[],int) -> launchRequestPermissions
+    2994:3004:void launchStartActivityForResult(androidx.fragment.app.Fragment,android.content.Intent,int,android.os.Bundle) -> launchStartActivityForResult
+    3011:3036:void launchStartIntentSenderForResult(androidx.fragment.app.Fragment,android.content.IntentSender,int,android.content.Intent,int,int,int,android.os.Bundle) -> launchStartIntentSenderForResult
+    2265:2274:void makeRemovedFragmentsInvisible(androidx.collection.ArraySet) -> makeRemovedFragmentsInvisible
+    1591:1624:void moveFragmentToExpectedState(androidx.fragment.app.Fragment) -> moveFragmentToExpectedState
+    1314:1480:void moveToState(androidx.fragment.app.Fragment,int) -> moveToState
+    1522:1523:void moveToState(androidx.fragment.app.Fragment) -> moveToState
+    1636:1675:void moveToState(int,boolean) -> moveToState
+    2978:2989:void noteStateNotSaved() -> noteStateNotSaved
+    1022:1031:void onContainerAvailable(androidx.fragment.app.FragmentContainerView) -> onContainerAvailable
+    557:557:androidx.fragment.app.FragmentTransaction openTransaction() -> openTransaction
+    1292:1306:void performPendingDeferredStart(androidx.fragment.app.FragmentStateManager) -> performPendingDeferredStart
+    682:683:void popBackStack() -> popBackStack
+    709:710:void popBackStack(java.lang.String,int) -> popBackStack
+    737:741:void popBackStack(int,int) -> popBackStack
+    692:692:boolean popBackStackImmediate() -> popBackStackImmediate
+    719:719:boolean popBackStackImmediate(java.lang.String,int) -> popBackStackImmediate
+    750:753:boolean popBackStackImmediate(int,int) -> popBackStackImmediate
+    764:790:boolean popBackStackImmediate(java.lang.String,int,int) -> popBackStackImmediate
+    2577:2628:boolean popBackStackState(java.util.ArrayList,java.util.ArrayList,java.lang.String,int,int) -> popBackStackState
+    2291:2324:int postponePostponableTransactions(java.util.ArrayList,java.util.ArrayList,int,int,androidx.collection.ArraySet) -> postponePostponableTransactions
+    936:941:void putFragment(android.os.Bundle,java.lang.String,androidx.fragment.app.Fragment) -> putFragment
+    3395:3396:void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks,boolean) -> registerFragmentLifecycleCallbacks
+    847:857:void removeCancellationSignal(androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> removeCancellationSignal
+    1726:1738:void removeFragment(androidx.fragment.app.Fragment) -> removeFragment
+    3440:3441:void removeFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener) -> removeFragmentOnAttachListener
+    824:827:void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager$OnBackStackChangedListener) -> removeOnBackStackChangedListener
+    2070:2108:void removeRedundantOperationsAndExecute(java.util.ArrayList,java.util.ArrayList) -> removeRedundantOperationsAndExecute
+    1108:1109:void removeRetainedFragment(androidx.fragment.app.Fragment) -> removeRetainedFragment
+    2560:2565:void reportBackStackChanged() -> reportBackStackChanged
+    2697:2703:void restoreAllState(android.os.Parcelable,androidx.fragment.app.FragmentManagerNonConfig) -> restoreAllState
+    2707:2803:void restoreSaveState(android.os.Parcelable) -> restoreSaveState
+    2637:2641:androidx.fragment.app.FragmentManagerNonConfig retainNonConfig() -> retainNonConfig
+    3469:3481:int reverseTransit(int) -> reverseTransit
+    2647:2692:android.os.Parcelable saveAllState() -> saveAllState
+    1155:1161:androidx.fragment.app.Fragment$SavedState saveFragmentInstanceState(androidx.fragment.app.Fragment) -> saveFragmentInstanceState
+    1907:1917:void scheduleCommit() -> scheduleCommit
+    1501:1507:void setExitAnimationOrder(androidx.fragment.app.Fragment,boolean) -> setExitAnimationOrder
+    3320:3321:void setFragmentFactory(androidx.fragment.app.FragmentFactory) -> setFragmentFactory
+    862:870:void setFragmentResult(java.lang.String,android.os.Bundle) -> setFragmentResult
+    882:914:void setFragmentResultListener(java.lang.String,androidx.lifecycle.LifecycleOwner,androidx.fragment.app.FragmentResultListener) -> setFragmentResultListener
+    3301:3307:void setMaxLifecycle(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle$State) -> setMaxLifecycle
+    3260:3269:void setPrimaryNavigationFragment(androidx.fragment.app.Fragment) -> setPrimaryNavigationFragment
+    3356:3357:void setSpecialEffectsControllerFactory(androidx.fragment.app.SpecialEffectsControllerFactory) -> setSpecialEffectsControllerFactory
+    2416:2426:void setVisibleRemovingFragment(androidx.fragment.app.Fragment) -> setVisibleRemovingFragment
+    1764:1771:void showFragment(androidx.fragment.app.Fragment) -> showFragment
+    1679:1682:void startPendingDeferredFragments() -> startPendingDeferredFragments
+    529:546:void throwException(java.lang.RuntimeException) -> throwException
+    1175:1195:java.lang.String toString() -> toString
+    3406:3407:void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks) -> unregisterFragmentLifecycleCallbacks
+    609:620:void updateOnBackPressedCallbackEnabled() -> updateOnBackPressedCallbackEnabled
+androidx.fragment.app.FragmentManager$1 -> androidx.fragment.app.FragmentManager$1:
+    433:433:void <init>(androidx.fragment.app.FragmentManager,boolean) -> <init>
+    436:437:void handleOnBackPressed() -> handleOnBackPressed
+androidx.fragment.app.FragmentManager$10 -> androidx.fragment.app.FragmentManager$10:
+    2913:2913:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    2913:2913:void onActivityResult(java.lang.Object) -> onActivityResult
+    2916:2934:void onActivityResult(androidx.activity.result.ActivityResult) -> onActivityResult
+androidx.fragment.app.FragmentManager$11 -> androidx.fragment.app.FragmentManager$11:
+    2939:2939:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    2939:2939:void onActivityResult(java.lang.Object) -> onActivityResult
+    2943:2969:void onActivityResult(java.util.Map) -> onActivityResult
+androidx.fragment.app.FragmentManager$2 -> androidx.fragment.app.FragmentManager$2:
+    451:451:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    460:463:void onComplete(androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> onComplete
+    455:456:void onStart(androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> onStart
+androidx.fragment.app.FragmentManager$3 -> androidx.fragment.app.FragmentManager$3:
+    478:478:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    483:483:androidx.fragment.app.Fragment instantiate(java.lang.ClassLoader,java.lang.String) -> instantiate
+androidx.fragment.app.FragmentManager$4 -> androidx.fragment.app.FragmentManager$4:
+    488:488:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    492:492:androidx.fragment.app.SpecialEffectsController createController(android.view.ViewGroup) -> createController
+androidx.fragment.app.FragmentManager$5 -> androidx.fragment.app.FragmentManager$5:
+    521:521:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    524:525:void run() -> run
+androidx.fragment.app.FragmentManager$6 -> androidx.fragment.app.FragmentManager$6:
+    887:887:void <init>(androidx.fragment.app.FragmentManager,java.lang.String,androidx.fragment.app.FragmentResultListener,androidx.lifecycle.Lifecycle) -> <init>
+    891:906:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.fragment.app.FragmentManager$7 -> androidx.fragment.app.FragmentManager$7:
+    1550:1550:void <init>(androidx.fragment.app.FragmentManager,android.view.ViewGroup,android.view.View,androidx.fragment.app.Fragment) -> <init>
+    1553:1558:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.fragment.app.FragmentManager$8 -> androidx.fragment.app.FragmentManager$8:
+    2837:2837:void <init>(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> <init>
+    2842:2843:void onAttachFragment(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onAttachFragment
+androidx.fragment.app.FragmentManager$9 -> androidx.fragment.app.FragmentManager$9:
+    2885:2885:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    2885:2885:void onActivityResult(java.lang.Object) -> onActivityResult
+    2888:2907:void onActivityResult(androidx.activity.result.ActivityResult) -> onActivityResult
+androidx.fragment.app.FragmentManager$FragmentIntentSenderContract -> androidx.fragment.app.FragmentManager$FragmentIntentSenderContract:
+    3656:3656:void <init>() -> <init>
+    3656:3656:android.content.Intent createIntent(android.content.Context,java.lang.Object) -> createIntent
+    3662:3681:android.content.Intent createIntent(android.content.Context,androidx.activity.result.IntentSenderRequest) -> createIntent
+    3656:3656:java.lang.Object parseResult(int,android.content.Intent) -> parseResult
+    3687:3687:androidx.activity.result.ActivityResult parseResult(int,android.content.Intent) -> parseResult
+androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks -> androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks:
+    269:269:void <init>() -> <init>
+    334:334:void onFragmentActivityCreated(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.os.Bundle) -> onFragmentActivityCreated
+    291:291:void onFragmentAttached(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.content.Context) -> onFragmentAttached
+    315:315:void onFragmentCreated(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.os.Bundle) -> onFragmentCreated
+    411:411:void onFragmentDestroyed(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentDestroyed
+    420:420:void onFragmentDetached(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentDetached
+    373:373:void onFragmentPaused(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentPaused
+    280:280:void onFragmentPreAttached(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.content.Context) -> onFragmentPreAttached
+    303:303:void onFragmentPreCreated(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.os.Bundle) -> onFragmentPreCreated
+    364:364:void onFragmentResumed(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentResumed
+    393:393:void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.os.Bundle) -> onFragmentSaveInstanceState
+    355:355:void onFragmentStarted(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentStarted
+    382:382:void onFragmentStopped(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentStopped
+    346:346:void onFragmentViewCreated(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.view.View,android.os.Bundle) -> onFragmentViewCreated
+    402:402:void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment) -> onFragmentViewDestroyed
+androidx.fragment.app.FragmentManager$LaunchedFragmentInfo -> androidx.fragment.app.FragmentManager$LaunchedFragmentInfo:
+    3642:3642:void <clinit>() -> <clinit>
+    3621:3624:void <init>(java.lang.String,int) -> <init>
+    3626:3629:void <init>(android.os.Parcel) -> <init>
+    3633:3633:int describeContents() -> describeContents
+    3638:3640:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.FragmentManager$LaunchedFragmentInfo$1 -> androidx.fragment.app.FragmentManager$LaunchedFragmentInfo$1:
+    3643:3643:void <init>() -> <init>
+    3643:3643:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    3646:3646:androidx.fragment.app.FragmentManager$LaunchedFragmentInfo createFromParcel(android.os.Parcel) -> createFromParcel
+    3643:3643:java.lang.Object[] newArray(int) -> newArray
+    3651:3651:androidx.fragment.app.FragmentManager$LaunchedFragmentInfo[] newArray(int) -> newArray
+androidx.fragment.app.FragmentManager$LifecycleAwareResultListener -> androidx.fragment.app.FragmentManager$LifecycleAwareResultListener:
+    244:248:void <init>(androidx.lifecycle.Lifecycle,androidx.fragment.app.FragmentResultListener,androidx.lifecycle.LifecycleEventObserver) -> <init>
+    251:251:boolean isAtLeast(androidx.lifecycle.Lifecycle$State) -> isAtLeast
+    256:257:void onFragmentResult(java.lang.String,android.os.Bundle) -> onFragmentResult
+    260:261:void removeObserver() -> removeObserver
+androidx.fragment.app.FragmentManager$PopBackStackState -> androidx.fragment.app.FragmentManager$PopBackStackState:
+    3519:3523:void <init>(androidx.fragment.app.FragmentManager,java.lang.String,int,int) -> <init>
+    3528:3538:boolean generateOps(java.util.ArrayList,java.util.ArrayList) -> generateOps
+androidx.fragment.app.FragmentManager$StartEnterTransitionListener -> androidx.fragment.app.FragmentManager$StartEnterTransitionListener:
+    3553:3556:void <init>(androidx.fragment.app.BackStackRecord,boolean) -> <init>
+    3612:3613:void cancelTransaction() -> cancelTransaction
+    3596:3605:void completeTransaction() -> completeTransaction
+    3586:3586:boolean isReady() -> isReady
+    3565:3570:void onStartEnterTransition() -> onStartEnterTransition
+    3579:3580:void startListening() -> startListening
+androidx.fragment.app.FragmentManagerImpl -> androidx.fragment.app.FragmentManagerImpl:
+    30:30:void <init>() -> <init>
+androidx.fragment.app.FragmentManagerNonConfig -> androidx.fragment.app.FragmentManagerNonConfig:
+    49:53:void <init>(java.util.Collection,java.util.Map,java.util.Map) -> <init>
+    76:76:java.util.Map getChildNonConfigs() -> getChildNonConfigs
+    68:68:java.util.Collection getFragments() -> getFragments
+    84:84:java.util.Map getViewModelStores() -> getViewModelStores
+    57:60:boolean isRetaining(androidx.fragment.app.Fragment) -> isRetaining
+androidx.fragment.app.FragmentManagerState -> androidx.fragment.app.FragmentManagerState:
+    68:68:void <clinit>() -> <clinit>
+    32:38:void <init>() -> <init>
+    32:49:void <init>(android.os.Parcel) -> <init>
+    53:53:int describeContents() -> describeContents
+    58:66:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.FragmentManagerState$1 -> androidx.fragment.app.FragmentManagerState$1:
+    69:69:void <init>() -> <init>
+    69:69:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    72:72:androidx.fragment.app.FragmentManagerState createFromParcel(android.os.Parcel) -> createFromParcel
+    69:69:java.lang.Object[] newArray(int) -> newArray
+    77:77:androidx.fragment.app.FragmentManagerState[] newArray(int) -> newArray
+androidx.fragment.app.FragmentManagerViewModel -> androidx.fragment.app.FragmentManagerViewModel:
+    40:40:void <clinit>() -> <clinit>
+    57:88:void <init>(boolean) -> <init>
+    112:125:void addRetainedFragment(androidx.fragment.app.Fragment) -> addRetainedFragment
+    187:202:void clearNonConfigState(androidx.fragment.app.Fragment) -> clearNonConfigState
+    274:281:boolean equals(java.lang.Object) -> equals
+    129:129:androidx.fragment.app.Fragment findRetainedFragmentByWho(java.lang.String) -> findRetainedFragmentByWho
+    168:173:androidx.fragment.app.FragmentManagerViewModel getChildNonConfig(androidx.fragment.app.Fragment) -> getChildNonConfig
+    52:54:androidx.fragment.app.FragmentManagerViewModel getInstance(androidx.lifecycle.ViewModelStore) -> getInstance
+    134:134:java.util.Collection getRetainedFragments() -> getRetainedFragments
+    249:267:androidx.fragment.app.FragmentManagerNonConfig getSnapshot() -> getSnapshot
+    178:183:androidx.lifecycle.ViewModelStore getViewModelStore(androidx.fragment.app.Fragment) -> getViewModelStore
+    286:289:int hashCode() -> hashCode
+    108:108:boolean isCleared() -> isCleared
+    101:105:void onCleared() -> onCleared
+    154:164:void removeRetainedFragment(androidx.fragment.app.Fragment) -> removeRetainedFragment
+    212:240:void restoreFromSnapshot(androidx.fragment.app.FragmentManagerNonConfig) -> restoreFromSnapshot
+    96:97:void setIsStateSaved(boolean) -> setIsStateSaved
+    138:149:boolean shouldDestroy(androidx.fragment.app.Fragment) -> shouldDestroy
+    295:322:java.lang.String toString() -> toString
+androidx.fragment.app.FragmentManagerViewModel$1 -> androidx.fragment.app.FragmentManagerViewModel$1:
+    40:40:void <init>() -> <init>
+    45:46:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+androidx.fragment.app.FragmentPagerAdapter -> androidx.fragment.app.FragmentPagerAdapter:
+    122:123:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    104:141:void <init>(androidx.fragment.app.FragmentManager,int) -> <init>
+    195:206:void destroyItem(android.view.ViewGroup,int,java.lang.Object) -> destroyItem
+    240:256:void finishUpdate(android.view.ViewGroup) -> finishUpdate
+    283:283:long getItemId(int) -> getItemId
+    161:188:java.lang.Object instantiateItem(android.view.ViewGroup,int) -> instantiateItem
+    260:260:boolean isViewFromObject(android.view.View,java.lang.Object) -> isViewFromObject
+    287:287:java.lang.String makeFragmentName(int,long) -> makeFragmentName
+    271:271:void restoreState(android.os.Parcelable,java.lang.ClassLoader) -> restoreState
+    266:266:android.os.Parcelable saveState() -> saveState
+    211:236:void setPrimaryItem(android.view.ViewGroup,int,java.lang.Object) -> setPrimaryItem
+    151:155:void startUpdate(android.view.ViewGroup) -> startUpdate
+androidx.fragment.app.FragmentState -> androidx.fragment.app.FragmentState:
+    131:131:void <clinit>() -> <clinit>
+    43:56:void <init>(androidx.fragment.app.Fragment) -> <init>
+    58:72:void <init>(android.os.Parcel) -> <init>
+    111:111:int describeContents() -> describeContents
+    77:106:java.lang.String toString() -> toString
+    116:129:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.FragmentState$1 -> androidx.fragment.app.FragmentState$1:
+    132:132:void <init>() -> <init>
+    132:132:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    135:135:androidx.fragment.app.FragmentState createFromParcel(android.os.Parcel) -> createFromParcel
+    132:132:java.lang.Object[] newArray(int) -> newArray
+    140:140:androidx.fragment.app.FragmentState[] newArray(int) -> newArray
+androidx.fragment.app.FragmentStateManager -> androidx.fragment.app.FragmentStateManager:
+    51:66:void <init>(androidx.fragment.app.FragmentLifecycleCallbacksDispatcher,androidx.fragment.app.FragmentStore,androidx.fragment.app.Fragment) -> <init>
+    51:112:void <init>(androidx.fragment.app.FragmentLifecycleCallbacksDispatcher,androidx.fragment.app.FragmentStore,java.lang.ClassLoader,androidx.fragment.app.FragmentFactory,androidx.fragment.app.FragmentState) -> <init>
+    51:145:void <init>(androidx.fragment.app.FragmentLifecycleCallbacksDispatcher,androidx.fragment.app.FragmentStore,androidx.fragment.app.Fragment,androidx.fragment.app.FragmentState) -> <init>
+    577:583:void activityCreated() -> activityCreated
+    832:834:void addViewToContainer() -> addViewToContainer
+    428:466:void attach() -> attach
+    170:254:int computeExpectedState() -> computeExpectedState
+    469:482:void create() -> create
+    485:574:void createView() -> createView
+    754:806:void destroy() -> destroy
+    733:751:void destroyFragmentView() -> destroyFragmentView
+    809:826:void detach() -> detach
+    382:398:void ensureInflatedView() -> ensureInflatedView
+    149:149:androidx.fragment.app.Fragment getFragment() -> getFragment
+    615:625:boolean isFragmentViewChild(android.view.View) -> isFragmentViewChild
+    258:379:void moveToExpectedState() -> moveToExpectedState
+    629:634:void pause() -> pause
+    401:425:void restoreState(java.lang.ClassLoader) -> restoreState
+    594:612:void resume() -> resume
+    681:713:android.os.Bundle saveBasicState() -> saveBasicState
+    673:677:androidx.fragment.app.Fragment$SavedState saveInstanceState() -> saveInstanceState
+    646:668:androidx.fragment.app.FragmentState saveState() -> saveState
+    717:730:void saveViewState() -> saveViewState
+    159:160:void setFragmentManagerState(int) -> setFragmentManagerState
+    586:591:void start() -> start
+    637:642:void stop() -> stop
+androidx.fragment.app.FragmentStateManager$1 -> androidx.fragment.app.FragmentStateManager$1:
+    534:534:void <init>(androidx.fragment.app.FragmentStateManager,android.view.View) -> <init>
+    537:539:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    543:543:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+androidx.fragment.app.FragmentStateManager$2 -> androidx.fragment.app.FragmentStateManager$2:
+    177:177:void <clinit>() -> <clinit>
+androidx.fragment.app.FragmentStatePagerAdapter -> androidx.fragment.app.FragmentStatePagerAdapter:
+    129:130:void <init>(androidx.fragment.app.FragmentManager) -> <init>
+    107:148:void <init>(androidx.fragment.app.FragmentManager,int) -> <init>
+    213:231:void destroyItem(android.view.ViewGroup,int,java.lang.Object) -> destroyItem
+    265:281:void finishUpdate(android.view.ViewGroup) -> finishUpdate
+    172:206:java.lang.Object instantiateItem(android.view.ViewGroup,int) -> instantiateItem
+    285:285:boolean isViewFromObject(android.view.View,java.lang.Object) -> isViewFromObject
+    313:341:void restoreState(android.os.Parcelable,java.lang.ClassLoader) -> restoreState
+    291:308:android.os.Parcelable saveState() -> saveState
+    236:261:void setPrimaryItem(android.view.ViewGroup,int,java.lang.Object) -> setPrimaryItem
+    158:162:void startUpdate(android.view.ViewGroup) -> startUpdate
+androidx.fragment.app.FragmentStore -> androidx.fragment.app.FragmentStore:
+    34:38:void <init>() -> <init>
+    90:97:void addFragment(androidx.fragment.app.Fragment) -> addFragment
+    164:168:void burpActive() -> burpActive
+    291:291:boolean containsActiveFragment(java.lang.String) -> containsActiveFragment
+    100:105:void dispatchStateChange(int) -> dispatchStateChange
+    371:400:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    314:318:androidx.fragment.app.Fragment findActiveFragment(java.lang.String) -> findActiveFragment
+    247:262:androidx.fragment.app.Fragment findFragmentById(int) -> findFragmentById
+    267:287:androidx.fragment.app.Fragment findFragmentByTag(java.lang.String) -> findFragmentByTag
+    301:309:androidx.fragment.app.Fragment findFragmentByWho(java.lang.String) -> findFragmentByWho
+    339:366:int findFragmentIndexInContainer(androidx.fragment.app.Fragment) -> findFragmentIndexInContainer
+    241:241:int getActiveFragmentCount() -> getActiveFragmentCount
+    208:214:java.util.List getActiveFragmentStateManagers() -> getActiveFragmentStateManagers
+    229:237:java.util.List getActiveFragments() -> getActiveFragments
+    296:296:androidx.fragment.app.FragmentStateManager getFragmentStateManager(java.lang.String) -> getFragmentStateManager
+    219:224:java.util.List getFragments() -> getFragments
+    47:47:androidx.fragment.app.FragmentManagerViewModel getNonConfig() -> getNonConfig
+    71:87:void makeActive(androidx.fragment.app.FragmentStateManager) -> makeActive
+    139:156:void makeInactive(androidx.fragment.app.FragmentStateManager) -> makeInactive
+    109:129:void moveToExpectedState() -> moveToExpectedState
+    132:136:void removeFragment(androidx.fragment.app.Fragment) -> removeFragment
+    51:52:void resetActiveFragments() -> resetActiveFragments
+    55:68:void restoreAddedFragments(java.util.List) -> restoreAddedFragments
+    172:185:java.util.ArrayList saveActiveFragments() -> saveActiveFragments
+    190:203:java.util.ArrayList saveAddedFragments() -> saveAddedFragments
+    43:44:void setNonConfig(androidx.fragment.app.FragmentManagerViewModel) -> setNonConfig
+androidx.fragment.app.FragmentTabHost -> androidx.fragment.app.FragmentTabHost:
+    49:139:void <init>(android.content.Context) -> <init>
+    49:150:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    270:289:void addTab(android.widget.TabHost$TabSpec,java.lang.Class,android.os.Bundle) -> addTab
+    402:428:androidx.fragment.app.FragmentTransaction doTabChanged(java.lang.String,androidx.fragment.app.FragmentTransaction) -> doTabChanged
+    242:249:void ensureContent() -> ensureContent
+    164:187:void ensureHierarchy(android.content.Context) -> ensureHierarchy
+    433:439:androidx.fragment.app.FragmentTabHost$TabInfo getTabInfoForTag(java.lang.String) -> getTabInfoForTag
+    153:159:void initFragmentTabHost(android.content.Context,android.util.AttributeSet) -> initFragmentTabHost
+    299:334:void onAttachedToWindow() -> onAttachedToWindow
+    344:346:void onDetachedFromWindow() -> onDetachedFromWindow
+    371:378:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    357:360:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    388:397:void onTabChanged(java.lang.String) -> onTabChanged
+    259:260:void setOnTabChangedListener(android.widget.TabHost$OnTabChangeListener) -> setOnTabChangedListener
+    196:196:void setup() -> setup
+    209:214:void setup(android.content.Context,androidx.fragment.app.FragmentManager) -> setup
+    226:239:void setup(android.content.Context,androidx.fragment.app.FragmentManager,int) -> setup
+androidx.fragment.app.FragmentTabHost$DummyTabFactory -> androidx.fragment.app.FragmentTabHost$DummyTabFactory:
+    75:77:void <init>(android.content.Context) -> <init>
+    81:84:android.view.View createTabContent(java.lang.String) -> createTabContent
+androidx.fragment.app.FragmentTabHost$SavedState -> androidx.fragment.app.FragmentTabHost$SavedState:
+    114:114:void <clinit>() -> <clinit>
+    92:93:void <init>(android.os.Parcelable) -> <init>
+    96:98:void <init>(android.os.Parcel) -> <init>
+    109:110:java.lang.String toString() -> toString
+    102:104:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.fragment.app.FragmentTabHost$SavedState$1 -> androidx.fragment.app.FragmentTabHost$SavedState$1:
+    115:115:void <init>() -> <init>
+    115:115:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    118:118:androidx.fragment.app.FragmentTabHost$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    115:115:java.lang.Object[] newArray(int) -> newArray
+    123:123:androidx.fragment.app.FragmentTabHost$SavedState[] newArray(int) -> newArray
+androidx.fragment.app.FragmentTabHost$TabInfo -> androidx.fragment.app.FragmentTabHost$TabInfo:
+    65:69:void <init>(java.lang.String,java.lang.Class,android.os.Bundle) -> <init>
+androidx.fragment.app.FragmentTransaction -> androidx.fragment.app.FragmentTransaction:
+    94:123:void <init>() -> <init>
+    94:129:void <init>(androidx.fragment.app.FragmentFactory,java.lang.ClassLoader) -> <init>
+    163:163:androidx.fragment.app.FragmentTransaction add(java.lang.Class,android.os.Bundle,java.lang.String) -> add
+    171:172:androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment,java.lang.String) -> add
+    181:181:androidx.fragment.app.FragmentTransaction add(int,java.lang.Class,android.os.Bundle) -> add
+    189:190:androidx.fragment.app.FragmentTransaction add(int,androidx.fragment.app.Fragment) -> add
+    213:213:androidx.fragment.app.FragmentTransaction add(int,java.lang.Class,android.os.Bundle,java.lang.String) -> add
+    234:235:androidx.fragment.app.FragmentTransaction add(int,androidx.fragment.app.Fragment,java.lang.String) -> add
+    240:241:androidx.fragment.app.FragmentTransaction add(android.view.ViewGroup,androidx.fragment.app.Fragment,java.lang.String) -> add
+    132:137:void addOp(androidx.fragment.app.FragmentTransaction$Op) -> addOp
+    596:616:androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View,java.lang.String) -> addSharedElement
+    655:661:androidx.fragment.app.FragmentTransaction addToBackStack(java.lang.String) -> addToBackStack
+    424:426:androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment) -> attach
+    142:154:androidx.fragment.app.Fragment createFragment(java.lang.Class,android.os.Bundle) -> createFragment
+    407:409:androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment) -> detach
+    682:687:androidx.fragment.app.FragmentTransaction disallowAddToBackStack() -> disallowAddToBackStack
+    245:277:void doAddOp(int,androidx.fragment.app.Fragment,java.lang.String,int) -> doAddOp
+    373:375:androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment) -> hide
+    672:672:boolean isAddToBackStackAllowed() -> isAddToBackStackAllowed
+    481:481:boolean isEmpty() -> isEmpty
+    357:359:androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment) -> remove
+    285:285:androidx.fragment.app.FragmentTransaction replace(int,java.lang.Class,android.os.Bundle) -> replace
+    293:293:androidx.fragment.app.FragmentTransaction replace(int,androidx.fragment.app.Fragment) -> replace
+    318:318:androidx.fragment.app.FragmentTransaction replace(int,java.lang.Class,android.os.Bundle,java.lang.String) -> replace
+    340:344:androidx.fragment.app.FragmentTransaction replace(int,androidx.fragment.app.Fragment,java.lang.String) -> replace
+    818:823:androidx.fragment.app.FragmentTransaction runOnCommit(java.lang.Runnable) -> runOnCommit
+    792:792:androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean) -> setAllowOptimization
+    732:734:androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(int) -> setBreadCrumbShortTitle
+    747:749:androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence) -> setBreadCrumbShortTitle
+    701:703:androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(int) -> setBreadCrumbTitle
+    716:718:androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(java.lang.CharSequence) -> setBreadCrumbTitle
+    538:538:androidx.fragment.app.FragmentTransaction setCustomAnimations(int,int) -> setCustomAnimations
+    575:579:androidx.fragment.app.FragmentTransaction setCustomAnimations(int,int,int,int) -> setCustomAnimations
+    472:473:androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle$State) -> setMaxLifecycle
+    447:449:androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment) -> setPrimaryNavigationFragment
+    782:783:androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean) -> setReorderingAllowed
+    626:627:androidx.fragment.app.FragmentTransaction setTransition(int) -> setTransition
+    639:639:androidx.fragment.app.FragmentTransaction setTransitionStyle(int) -> setTransitionStyle
+    389:391:androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment) -> show
+androidx.fragment.app.FragmentTransaction$Op -> androidx.fragment.app.FragmentTransaction$Op:
+    73:74:void <init>() -> <init>
+    76:81:void <init>(int,androidx.fragment.app.Fragment) -> <init>
+    83:88:void <init>(int,androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle$State) -> <init>
+androidx.fragment.app.FragmentTransition -> androidx.fragment.app.FragmentTransition:
+    48:81:void <clinit>() -> <clinit>
+    1314:1315:void <init>() -> <init>
+    695:701:void addSharedElementsWithMatchingNames(java.util.ArrayList,androidx.collection.ArrayMap,java.util.Collection) -> addSharedElementsWithMatchingNames
+    1173:1261:void addToFirstInLastOut(androidx.fragment.app.BackStackRecord,androidx.fragment.app.FragmentTransaction$Op,android.util.SparseArray,boolean,boolean) -> addToFirstInLastOut
+    1125:1130:void calculateFragments(androidx.fragment.app.BackStackRecord,android.util.SparseArray,boolean) -> calculateFragments
+    187:217:androidx.collection.ArrayMap calculateNameOverrides(int,java.util.ArrayList,java.util.ArrayList,int,int) -> calculateNameOverrides
+    1142:1150:void calculatePopFragments(androidx.fragment.app.BackStackRecord,android.util.SparseArray,boolean) -> calculatePopFragments
+    1029:1046:void callSharedElementStartEnd(androidx.fragment.app.Fragment,androidx.fragment.app.Fragment,boolean,androidx.collection.ArrayMap,boolean) -> callSharedElementStartEnd
+    518:523:boolean canHandleAll(androidx.fragment.app.FragmentTransitionImpl,java.util.List) -> canHandleAll
+    889:933:androidx.collection.ArrayMap captureInSharedElements(androidx.fragment.app.FragmentTransitionImpl,androidx.collection.ArrayMap,java.lang.Object,androidx.fragment.app.FragmentTransition$FragmentContainerTransition) -> captureInSharedElements
+    831:868:androidx.collection.ArrayMap captureOutSharedElements(androidx.fragment.app.FragmentTransitionImpl,androidx.collection.ArrayMap,java.lang.Object,androidx.fragment.app.FragmentTransition$FragmentContainerTransition) -> captureOutSharedElements
+    472:514:androidx.fragment.app.FragmentTransitionImpl chooseImpl(androidx.fragment.app.Fragment,androidx.fragment.app.Fragment) -> chooseImpl
+    1052:1067:java.util.ArrayList configureEnteringExitingViews(androidx.fragment.app.FragmentTransitionImpl,java.lang.Object,androidx.fragment.app.Fragment,java.util.ArrayList,android.view.View) -> configureEnteringExitingViews
+    738:811:java.lang.Object configureSharedElementsOrdered(androidx.fragment.app.FragmentTransitionImpl,android.view.ViewGroup,android.view.View,androidx.collection.ArrayMap,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,java.util.ArrayList,java.util.ArrayList,java.lang.Object,java.lang.Object) -> configureSharedElementsOrdered
+    609:681:java.lang.Object configureSharedElementsReordered(androidx.fragment.app.FragmentTransitionImpl,android.view.ViewGroup,android.view.View,androidx.collection.ArrayMap,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,java.util.ArrayList,java.util.ArrayList,java.lang.Object,java.lang.Object) -> configureSharedElementsReordered
+    354:416:void configureTransitionsOrdered(android.view.ViewGroup,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,android.view.View,androidx.collection.ArrayMap,androidx.fragment.app.FragmentTransition$Callback) -> configureTransitionsOrdered
+    237:297:void configureTransitionsReordered(android.view.ViewGroup,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,android.view.View,androidx.collection.ArrayMap,androidx.fragment.app.FragmentTransition$Callback) -> configureTransitionsReordered
+    1271:1275:androidx.fragment.app.FragmentTransition$FragmentContainerTransition ensureContainer(androidx.fragment.app.FragmentTransition$FragmentContainerTransition,android.util.SparseArray,int) -> ensureContainer
+    940:946:java.lang.String findKeyForValue(androidx.collection.ArrayMap,java.lang.String) -> findKeyForValue
+    554:559:java.lang.Object getEnterTransition(androidx.fragment.app.FragmentTransitionImpl,androidx.fragment.app.Fragment,boolean) -> getEnterTransition
+    567:572:java.lang.Object getExitTransition(androidx.fragment.app.FragmentTransitionImpl,androidx.fragment.app.Fragment,boolean) -> getExitTransition
+    962:971:android.view.View getInEpicenterView(androidx.collection.ArrayMap,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,java.lang.Object,boolean) -> getInEpicenterView
+    540:546:java.lang.Object getSharedElementTransition(androidx.fragment.app.FragmentTransitionImpl,androidx.fragment.app.Fragment,androidx.fragment.app.Fragment,boolean) -> getSharedElementTransition
+    1090:1111:java.lang.Object mergeTransitions(androidx.fragment.app.FragmentTransitionImpl,java.lang.Object,java.lang.Object,java.lang.Object,androidx.fragment.app.Fragment,boolean) -> mergeTransitions
+    307:335:void replaceHide(androidx.fragment.app.FragmentTransitionImpl,java.lang.Object,androidx.fragment.app.Fragment,java.util.ArrayList) -> replaceHide
+    86:92:androidx.fragment.app.FragmentTransitionImpl resolveSupportImpl() -> resolveSupportImpl
+    1007:1013:void retainValues(androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> retainValues
+    441:464:void scheduleTargetChange(androidx.fragment.app.FragmentTransitionImpl,android.view.ViewGroup,androidx.fragment.app.Fragment,android.view.View,java.util.ArrayList,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList) -> scheduleTargetChange
+    986:998:void setOutEpicenter(androidx.fragment.app.FragmentTransitionImpl,java.lang.Object,java.lang.Object,androidx.collection.ArrayMap,boolean,androidx.fragment.app.BackStackRecord) -> setOutEpicenter
+    1074:1081:void setViewVisibility(java.util.ArrayList,int) -> setViewVisibility
+    127:167:void startTransitions(android.content.Context,androidx.fragment.app.FragmentContainer,java.util.ArrayList,java.util.ArrayList,int,int,boolean,androidx.fragment.app.FragmentTransition$Callback) -> startTransitions
+    1153:1153:boolean supportsTransition() -> supportsTransition
+androidx.fragment.app.FragmentTransition$1 -> androidx.fragment.app.FragmentTransition$1:
+    275:275:void <init>(androidx.fragment.app.FragmentTransition$Callback,androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> <init>
+    278:279:void run() -> run
+androidx.fragment.app.FragmentTransition$2 -> androidx.fragment.app.FragmentTransition$2:
+    328:328:void <init>(java.util.ArrayList) -> <init>
+    331:332:void run() -> run
+androidx.fragment.app.FragmentTransition$3 -> androidx.fragment.app.FragmentTransition$3:
+    396:396:void <init>(androidx.fragment.app.FragmentTransition$Callback,androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> <init>
+    399:400:void run() -> run
+androidx.fragment.app.FragmentTransition$4 -> androidx.fragment.app.FragmentTransition$4:
+    441:441:void <init>(java.lang.Object,androidx.fragment.app.FragmentTransitionImpl,android.view.View,androidx.fragment.app.Fragment,java.util.ArrayList,java.util.ArrayList,java.util.ArrayList,java.lang.Object) -> <init>
+    444:462:void run() -> run
+androidx.fragment.app.FragmentTransition$5 -> androidx.fragment.app.FragmentTransition$5:
+    671:671:void <init>(androidx.fragment.app.Fragment,androidx.fragment.app.Fragment,boolean,androidx.collection.ArrayMap,android.view.View,androidx.fragment.app.FragmentTransitionImpl,android.graphics.Rect) -> <init>
+    674:679:void run() -> run
+androidx.fragment.app.FragmentTransition$6 -> androidx.fragment.app.FragmentTransition$6:
+    783:783:void <init>(androidx.fragment.app.FragmentTransitionImpl,androidx.collection.ArrayMap,java.lang.Object,androidx.fragment.app.FragmentTransition$FragmentContainerTransition,java.util.ArrayList,android.view.View,androidx.fragment.app.Fragment,androidx.fragment.app.Fragment,boolean,java.util.ArrayList,java.lang.Object,android.graphics.Rect) -> <init>
+    786:808:void run() -> run
+androidx.fragment.app.FragmentTransition$FragmentContainerTransition -> androidx.fragment.app.FragmentTransition$FragmentContainerTransition:
+    1282:1282:void <init>() -> <init>
+androidx.fragment.app.FragmentTransitionCompat21 -> androidx.fragment.app.FragmentTransitionCompat21:
+    34:34:void <init>() -> <init>
+    331:335:void addTarget(java.lang.Object,android.view.View) -> addTarget
+    94:115:void addTargets(java.lang.Object,java.util.ArrayList) -> addTargets
+    216:217:void beginDelayedTransition(android.view.ViewGroup,java.lang.Object) -> beginDelayedTransition
+    38:38:boolean canHandle(java.lang.Object) -> canHandle
+    43:47:java.lang.Object cloneTransition(java.lang.Object) -> cloneTransition
+    121:123:boolean hasSimpleTarget(android.transition.Transition) -> hasSimpleTarget
+    188:210:java.lang.Object mergeTransitionsInSequence(java.lang.Object,java.lang.Object,java.lang.Object) -> mergeTransitionsInSequence
+    129:139:java.lang.Object mergeTransitionsTogether(java.lang.Object,java.lang.Object,java.lang.Object) -> mergeTransitionsTogether
+    339:343:void removeTarget(java.lang.Object,android.view.View) -> removeTarget
+    305:327:void replaceTargets(java.lang.Object,java.util.ArrayList,java.util.ArrayList) -> replaceTargets
+    145:181:void scheduleHideFragmentView(java.lang.Object,android.view.View,java.util.ArrayList) -> scheduleHideFragmentView
+    224:256:void scheduleRemoveTargets(java.lang.Object,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList) -> scheduleRemoveTargets
+    78:90:void setEpicenter(java.lang.Object,android.view.View) -> setEpicenter
+    347:359:void setEpicenter(java.lang.Object,android.graphics.Rect) -> setEpicenter
+    271:289:void setListenerForTransitionEnd(androidx.fragment.app.Fragment,java.lang.Object,androidx.core.os.CancellationSignal,java.lang.Runnable) -> setListenerForTransitionEnd
+    63:74:void setSharedElementTargets(java.lang.Object,android.view.View,java.util.ArrayList) -> setSharedElementTargets
+    294:300:void swapSharedElementTargets(java.lang.Object,java.util.ArrayList,java.util.ArrayList) -> swapSharedElementTargets
+    52:57:java.lang.Object wrapTransitionInSet(java.lang.Object) -> wrapTransitionInSet
+androidx.fragment.app.FragmentTransitionCompat21$1 -> androidx.fragment.app.FragmentTransitionCompat21$1:
+    83:83:void <init>(androidx.fragment.app.FragmentTransitionCompat21,android.graphics.Rect) -> <init>
+    86:86:android.graphics.Rect onGetEpicenter(android.transition.Transition) -> onGetEpicenter
+androidx.fragment.app.FragmentTransitionCompat21$2 -> androidx.fragment.app.FragmentTransitionCompat21$2:
+    146:146:void <init>(androidx.fragment.app.FragmentTransitionCompat21,android.view.View,java.util.ArrayList) -> <init>
+    171:171:void onTransitionCancel(android.transition.Transition) -> onTransitionCancel
+    161:167:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    175:175:void onTransitionPause(android.transition.Transition) -> onTransitionPause
+    179:179:void onTransitionResume(android.transition.Transition) -> onTransitionResume
+    155:157:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+androidx.fragment.app.FragmentTransitionCompat21$3 -> androidx.fragment.app.FragmentTransitionCompat21$3:
+    225:225:void <init>(androidx.fragment.app.FragmentTransitionCompat21,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList) -> <init>
+    246:246:void onTransitionCancel(android.transition.Transition) -> onTransitionCancel
+    241:242:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    250:250:void onTransitionPause(android.transition.Transition) -> onTransitionPause
+    254:254:void onTransitionResume(android.transition.Transition) -> onTransitionResume
+    228:237:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+androidx.fragment.app.FragmentTransitionCompat21$4 -> androidx.fragment.app.FragmentTransitionCompat21$4:
+    271:271:void <init>(androidx.fragment.app.FragmentTransitionCompat21,java.lang.Runnable) -> <init>
+    281:281:void onTransitionCancel(android.transition.Transition) -> onTransitionCancel
+    277:278:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    284:284:void onTransitionPause(android.transition.Transition) -> onTransitionPause
+    287:287:void onTransitionResume(android.transition.Transition) -> onTransitionResume
+    273:273:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+androidx.fragment.app.FragmentTransitionCompat21$5 -> androidx.fragment.app.FragmentTransitionCompat21$5:
+    349:349:void <init>(androidx.fragment.app.FragmentTransitionCompat21,android.graphics.Rect) -> <init>
+    352:355:android.graphics.Rect onGetEpicenter(android.transition.Transition) -> onGetEpicenter
+androidx.fragment.app.FragmentTransitionImpl -> androidx.fragment.app.FragmentTransitionImpl:
+    45:45:void <init>() -> <init>
+    358:379:void bfsAddViewChildren(java.util.List,android.view.View) -> bfsAddViewChildren
+    219:235:void captureTransitioningViews(java.util.ArrayList,android.view.View) -> captureTransitioningViews
+    386:391:boolean containedBeforeIndex(java.util.List,android.view.View,int) -> containedBeforeIndex
+    406:411:java.lang.String findKeyForValue(java.util.Map,java.lang.String) -> findKeyForValue
+    242:256:void findNamedViews(java.util.Map,android.view.View) -> findNamedViews
+    82:108:void getBoundsOnScreen(android.view.View,android.graphics.Rect) -> getBoundsOnScreen
+    398:398:boolean isNullOrEmpty(java.util.List) -> isNullOrEmpty
+    160:167:java.util.ArrayList prepareSetNameOverridesReordered(java.util.ArrayList) -> prepareSetNameOverridesReordered
+    339:351:void scheduleNameReset(android.view.ViewGroup,java.util.ArrayList,java.util.Map) -> scheduleNameReset
+    302:303:void setListenerForTransitionEnd(androidx.fragment.app.Fragment,java.lang.Object,androidx.core.os.CancellationSignal,java.lang.Runnable) -> setListenerForTransitionEnd
+    263:277:void setNameOverridesOrdered(android.view.View,java.util.ArrayList,java.util.Map) -> setNameOverridesOrdered
+    179:208:void setNameOverridesReordered(android.view.View,java.util.ArrayList,java.util.ArrayList,java.util.ArrayList,java.util.Map) -> setNameOverridesReordered
+androidx.fragment.app.FragmentTransitionImpl$1 -> androidx.fragment.app.FragmentTransitionImpl$1:
+    199:199:void <init>(androidx.fragment.app.FragmentTransitionImpl,int,java.util.ArrayList,java.util.ArrayList,java.util.ArrayList,java.util.ArrayList) -> <init>
+    202:206:void run() -> run
+androidx.fragment.app.FragmentTransitionImpl$2 -> androidx.fragment.app.FragmentTransitionImpl$2:
+    263:263:void <init>(androidx.fragment.app.FragmentTransitionImpl,java.util.ArrayList,java.util.Map) -> <init>
+    266:275:void run() -> run
+androidx.fragment.app.FragmentTransitionImpl$3 -> androidx.fragment.app.FragmentTransitionImpl$3:
+    339:339:void <init>(androidx.fragment.app.FragmentTransitionImpl,java.util.ArrayList,java.util.Map) -> <init>
+    342:349:void run() -> run
+androidx.fragment.app.FragmentViewLifecycleOwner -> androidx.fragment.app.FragmentViewLifecycleOwner:
+    44:50:void <init>(androidx.fragment.app.Fragment,androidx.lifecycle.ViewModelStore) -> <init>
+    101:126:androidx.lifecycle.ViewModelProvider$Factory getDefaultViewModelProviderFactory() -> getDefaultViewModelProviderFactory
+    79:80:androidx.lifecycle.Lifecycle getLifecycle() -> getLifecycle
+    132:133:androidx.savedstate.SavedStateRegistry getSavedStateRegistry() -> getSavedStateRegistry
+    55:56:androidx.lifecycle.ViewModelStore getViewModelStore() -> getViewModelStore
+    88:89:void handleLifecycleEvent(androidx.lifecycle.Lifecycle$Event) -> handleLifecycleEvent
+    63:67:void initialize() -> initialize
+    73:73:boolean isInitialized() -> isInitialized
+    137:138:void performRestore(android.os.Bundle) -> performRestore
+    141:142:void performSave(android.os.Bundle) -> performSave
+    84:85:void setCurrentState(androidx.lifecycle.Lifecycle$State) -> setCurrentState
+androidx.fragment.app.ListFragment -> androidx.fragment.app.ListFragment:
+    50:78:void <init>() -> <init>
+    350:401:void ensureList() -> ensureList
+    330:330:android.widget.ListAdapter getListAdapter() -> getListAdapter
+    230:231:android.widget.ListView getListView() -> getListView
+    221:222:long getSelectedItemId() -> getSelectedItemId
+    213:214:int getSelectedItemPosition() -> getSelectedItemPosition
+    98:143:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    160:166:void onDestroyView() -> onDestroyView
+    180:180:void onListItemClick(android.widget.ListView,android.view.View,int,long) -> onListItemClick
+    151:153:void onViewCreated(android.view.View,android.os.Bundle) -> onViewCreated
+    341:346:android.widget.ListAdapter requireListAdapter() -> requireListAdapter
+    240:249:void setEmptyText(java.lang.CharSequence) -> setEmptyText
+    186:196:void setListAdapter(android.widget.ListAdapter) -> setListAdapter
+    266:267:void setListShown(boolean) -> setListShown
+    288:321:void setListShown(boolean,boolean) -> setListShown
+    274:275:void setListShownNoAnimation(boolean) -> setListShownNoAnimation
+    205:207:void setSelection(int) -> setSelection
+androidx.fragment.app.ListFragment$1 -> androidx.fragment.app.ListFragment$1:
+    53:53:void <init>(androidx.fragment.app.ListFragment) -> <init>
+    56:57:void run() -> run
+androidx.fragment.app.ListFragment$2 -> androidx.fragment.app.ListFragment$2:
+    61:61:void <init>(androidx.fragment.app.ListFragment) -> <init>
+    64:65:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+androidx.fragment.app.LogWriter -> androidx.fragment.app.LogWriter:
+    25:32:void <init>(java.lang.String) -> <init>
+    35:36:void close() -> close
+    39:40:void flush() -> flush
+    55:59:void flushBuilder() -> flushBuilder
+    43:52:void write(char[],int,int) -> write
+androidx.fragment.app.SpecialEffectsController -> androidx.fragment.app.SpecialEffectsController:
+    84:94:void <init>(android.view.ViewGroup) -> <init>
+    193:225:void enqueue(androidx.fragment.app.SpecialEffectsController$Operation$State,androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact,androidx.fragment.app.FragmentStateManager) -> enqueue
+    155:161:void enqueueAdd(androidx.fragment.app.SpecialEffectsController$Operation$State,androidx.fragment.app.FragmentStateManager) -> enqueueAdd
+    173:179:void enqueueHide(androidx.fragment.app.FragmentStateManager) -> enqueueHide
+    182:188:void enqueueRemove(androidx.fragment.app.FragmentStateManager) -> enqueueRemove
+    164:170:void enqueueShow(androidx.fragment.app.FragmentStateManager) -> enqueueShow
+    260:301:void executePendingOperations() -> executePendingOperations
+    135:140:androidx.fragment.app.SpecialEffectsController$Operation findPendingOperation(androidx.fragment.app.Fragment) -> findPendingOperation
+    145:150:androidx.fragment.app.SpecialEffectsController$Operation findRunningOperation(androidx.fragment.app.Fragment) -> findRunningOperation
+    304:335:void forceCompleteAllOperations() -> forceCompleteAllOperations
+    253:257:void forcePostponedExecutePendingOperations() -> forcePostponedExecutePendingOperations
+    117:130:androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact getAwaitingCompletionLifecycleImpact(androidx.fragment.app.FragmentStateManager) -> getAwaitingCompletionLifecycleImpact
+    98:98:android.view.ViewGroup getContainer() -> getContainer
+    54:56:androidx.fragment.app.SpecialEffectsController getOrCreateController(android.view.ViewGroup,androidx.fragment.app.FragmentManager) -> getOrCreateController
+    72:79:androidx.fragment.app.SpecialEffectsController getOrCreateController(android.view.ViewGroup,androidx.fragment.app.SpecialEffectsControllerFactory) -> getOrCreateController
+    232:250:void markPostponedState() -> markPostponedState
+    338:347:void updateFinalState() -> updateFinalState
+    228:229:void updateOperationDirection(boolean) -> updateOperationDirection
+androidx.fragment.app.SpecialEffectsController$1 -> androidx.fragment.app.SpecialEffectsController$1:
+    207:207:void <init>(androidx.fragment.app.SpecialEffectsController,androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation) -> <init>
+    210:213:void run() -> run
+androidx.fragment.app.SpecialEffectsController$2 -> androidx.fragment.app.SpecialEffectsController$2:
+    217:217:void <init>(androidx.fragment.app.SpecialEffectsController,androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation) -> <init>
+    220:222:void run() -> run
+androidx.fragment.app.SpecialEffectsController$3 -> androidx.fragment.app.SpecialEffectsController$3:
+    444:607:void <clinit>() -> <clinit>
+androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation -> androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation:
+    708:711:void <init>(androidx.fragment.app.SpecialEffectsController$Operation$State,androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact,androidx.fragment.app.FragmentStateManager,androidx.core.os.CancellationSignal) -> <init>
+    744:746:void complete() -> complete
+    715:740:void onStart() -> onStart
+androidx.fragment.app.SpecialEffectsController$Operation -> androidx.fragment.app.SpecialEffectsController$Operation:
+    505:533:void <init>(androidx.fragment.app.SpecialEffectsController$Operation$State,androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact,androidx.fragment.app.Fragment,androidx.core.os.CancellationSignal) -> <init>
+    645:646:void addCompletionListener(java.lang.Runnable) -> addCompletionListener
+    592:604:void cancel() -> cancel
+    686:697:void complete() -> complete
+    671:674:void completeSpecialEffect(androidx.core.os.CancellationSignal) -> completeSpecialEffect
+    542:542:androidx.fragment.app.SpecialEffectsController$Operation$State getFinalState() -> getFinalState
+    561:561:androidx.fragment.app.Fragment getFragment() -> getFragment
+    552:552:androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact getLifecycleImpact() -> getLifecycleImpact
+    565:565:boolean isCanceled() -> isCanceled
+    677:677:boolean isComplete() -> isComplete
+    659:661:void markStartedSpecialEffect(androidx.core.os.CancellationSignal) -> markStartedSpecialEffect
+    607:642:void mergeWith(androidx.fragment.app.SpecialEffectsController$Operation$State,androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact) -> mergeWith
+    651:651:void onStart() -> onStart
+    571:588:java.lang.String toString() -> toString
+androidx.fragment.app.SpecialEffectsController$Operation$1 -> androidx.fragment.app.SpecialEffectsController$Operation$1:
+    527:527:void <init>(androidx.fragment.app.SpecialEffectsController$Operation) -> <init>
+    530:531:void onCancel() -> onCancel
+androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact -> androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact:
+    484:496:void <clinit>() -> <clinit>
+    484:484:void <init>(java.lang.String,int) -> <init>
+    484:484:androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact valueOf(java.lang.String) -> valueOf
+    484:484:androidx.fragment.app.SpecialEffectsController$Operation$LifecycleImpact[] values() -> values
+androidx.fragment.app.SpecialEffectsController$Operation$State -> androidx.fragment.app.SpecialEffectsController$Operation$State:
+    385:401:void <clinit>() -> <clinit>
+    385:385:void <init>(java.lang.String,int) -> <init>
+    444:478:void applyState(android.view.View) -> applyState
+    412:415:androidx.fragment.app.SpecialEffectsController$Operation$State from(android.view.View) -> from
+    426:434:androidx.fragment.app.SpecialEffectsController$Operation$State from(int) -> from
+    385:385:androidx.fragment.app.SpecialEffectsController$Operation$State valueOf(java.lang.String) -> valueOf
+    385:385:androidx.fragment.app.SpecialEffectsController$Operation$State[] values() -> values
+androidx.fragment.app.SuperNotCalledException -> androidx.fragment.app.SuperNotCalledException:
+    23:24:void <init>(java.lang.String) -> <init>
+androidx.interpolator.view.animation.FastOutLinearInInterpolator -> androidx.interpolator.view.animation.FastOutLinearInInterpolator:
+    34:34:void <clinit>() -> <clinit>
+    67:68:void <init>() -> <init>
+    28:28:float getInterpolation(float) -> getInterpolation
+androidx.interpolator.view.animation.FastOutSlowInInterpolator -> androidx.interpolator.view.animation.FastOutSlowInInterpolator:
+    34:34:void <clinit>() -> <clinit>
+    67:68:void <init>() -> <init>
+    28:28:float getInterpolation(float) -> getInterpolation
+androidx.interpolator.view.animation.LinearOutSlowInInterpolator -> androidx.interpolator.view.animation.LinearOutSlowInInterpolator:
+    34:34:void <clinit>() -> <clinit>
+    67:68:void <init>() -> <init>
+    28:28:float getInterpolation(float) -> getInterpolation
+androidx.interpolator.view.animation.LookupTableInterpolator -> androidx.interpolator.view.animation.LookupTableInterpolator:
+    30:33:void <init>(float[]) -> <init>
+    37:54:float getInterpolation(float) -> getInterpolation
+androidx.legacy.content.WakefulBroadcastReceiver -> androidx.legacy.content.WakefulBroadcastReceiver:
+    76:77:void <clinit>() -> <clinit>
+    73:73:void <init>() -> <init>
+    126:145:boolean completeWakefulIntent(android.content.Intent) -> completeWakefulIntent
+    94:114:android.content.ComponentName startWakefulService(android.content.Context,android.content.Intent) -> startWakefulService
+androidx.lifecycle.AbstractSavedStateViewModelFactory -> androidx.lifecycle.AbstractSavedStateViewModelFactory:
+    53:57:void <init>(androidx.savedstate.SavedStateRegistryOwner,android.os.Bundle) -> <init>
+    67:71:androidx.lifecycle.ViewModel create(java.lang.String,java.lang.Class) -> create
+    80:84:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+    103:104:void onRequery(androidx.lifecycle.ViewModel) -> onRequery
+androidx.lifecycle.AndroidViewModel -> androidx.lifecycle.AndroidViewModel:
+    34:36:void <init>(android.app.Application) -> <init>
+    44:44:android.app.Application getApplication() -> getApplication
+androidx.lifecycle.ClassesInfoCache -> androidx.lifecycle.ClassesInfoCache:
+    35:35:void <clinit>() -> <clinit>
+    33:42:void <init>() -> <init>
+    105:161:androidx.lifecycle.ClassesInfoCache$CallbackInfo createInfo(java.lang.Class,java.lang.reflect.Method[]) -> createInfo
+    70:72:java.lang.reflect.Method[] getDeclaredMethods(java.lang.Class) -> getDeclaredMethods
+    81:86:androidx.lifecycle.ClassesInfoCache$CallbackInfo getInfo(java.lang.Class) -> getInfo
+    45:65:boolean hasLifecycleMethods(java.lang.Class) -> hasLifecycleMethods
+    91:102:void verifyAndPutHandler(java.util.Map,androidx.lifecycle.ClassesInfoCache$MethodReference,androidx.lifecycle.Lifecycle$Event,java.lang.Class) -> verifyAndPutHandler
+androidx.lifecycle.ClassesInfoCache$CallbackInfo -> androidx.lifecycle.ClassesInfoCache$CallbackInfo:
+    169:181:void <init>(java.util.Map) -> <init>
+    185:188:void invokeCallbacks(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event,java.lang.Object) -> invokeCallbacks
+    192:197:void invokeMethodsForEvent(java.util.List,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event,java.lang.Object) -> invokeMethodsForEvent
+androidx.lifecycle.ClassesInfoCache$MethodReference -> androidx.lifecycle.ClassesInfoCache$MethodReference:
+    205:209:void <init>(int,java.lang.reflect.Method) -> <init>
+    234:242:boolean equals(java.lang.Object) -> equals
+    247:247:int hashCode() -> hashCode
+    214:230:void invokeCallback(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event,java.lang.Object) -> invokeCallback
+androidx.lifecycle.CompositeGeneratedAdaptersObserver -> androidx.lifecycle.CompositeGeneratedAdaptersObserver:
+    26:28:void <init>(androidx.lifecycle.GeneratedAdapter[]) -> <init>
+    32:39:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.ComputableLiveData -> androidx.lifecycle.ComputableLiveData:
+    56:57:void <init>() -> <init>
+    46:123:void <init>(java.util.concurrent.Executor) -> <init>
+    83:83:androidx.lifecycle.LiveData getLiveData() -> getLiveData
+    143:144:void invalidate() -> invalidate
+androidx.lifecycle.ComputableLiveData$1 -> androidx.lifecycle.ComputableLiveData$1:
+    67:67:void <init>(androidx.lifecycle.ComputableLiveData) -> <init>
+    70:71:void onActive() -> onActive
+androidx.lifecycle.ComputableLiveData$2 -> androidx.lifecycle.ComputableLiveData$2:
+    87:87:void <init>(androidx.lifecycle.ComputableLiveData) -> <init>
+    93:119:void run() -> run
+androidx.lifecycle.ComputableLiveData$3 -> androidx.lifecycle.ComputableLiveData$3:
+    124:124:void <init>(androidx.lifecycle.ComputableLiveData) -> <init>
+    128:134:void run() -> run
+androidx.lifecycle.FullLifecycleObserverAdapter -> androidx.lifecycle.FullLifecycleObserverAdapter:
+    27:30:void <init>(androidx.lifecycle.FullLifecycleObserver,androidx.lifecycle.LifecycleEventObserver) -> <init>
+    34:59:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.FullLifecycleObserverAdapter$1 -> androidx.lifecycle.FullLifecycleObserverAdapter$1:
+    34:34:void <clinit>() -> <clinit>
+androidx.lifecycle.Lifecycle -> androidx.lifecycle.Lifecycle:
+    79:86:void <init>() -> <init>
+androidx.lifecycle.Lifecycle$1 -> androidx.lifecycle.Lifecycle$1:
+    169:258:void <clinit>() -> <clinit>
+androidx.lifecycle.Lifecycle$Event -> androidx.lifecycle.Lifecycle$Event:
+    128:157:void <clinit>() -> <clinit>
+    129:129:void <init>(java.lang.String,int) -> <init>
+    169:177:androidx.lifecycle.Lifecycle$Event downFrom(androidx.lifecycle.Lifecycle$State) -> downFrom
+    191:199:androidx.lifecycle.Lifecycle$Event downTo(androidx.lifecycle.Lifecycle$State) -> downTo
+    258:272:androidx.lifecycle.Lifecycle$State getTargetState() -> getTargetState
+    213:221:androidx.lifecycle.Lifecycle$Event upFrom(androidx.lifecycle.Lifecycle$State) -> upFrom
+    235:243:androidx.lifecycle.Lifecycle$Event upTo(androidx.lifecycle.Lifecycle$State) -> upTo
+    128:128:androidx.lifecycle.Lifecycle$Event valueOf(java.lang.String) -> valueOf
+    128:128:androidx.lifecycle.Lifecycle$Event[] values() -> values
+androidx.lifecycle.Lifecycle$State -> androidx.lifecycle.Lifecycle$State:
+    280:320:void <clinit>() -> <clinit>
+    281:281:void <init>(java.lang.String,int) -> <init>
+    329:329:boolean isAtLeast(androidx.lifecycle.Lifecycle$State) -> isAtLeast
+    280:280:androidx.lifecycle.Lifecycle$State valueOf(java.lang.String) -> valueOf
+    280:280:androidx.lifecycle.Lifecycle$State[] values() -> values
+androidx.lifecycle.LifecycleRegistry -> androidx.lifecycle.LifecycleRegistry:
+    91:92:void <init>(androidx.lifecycle.LifecycleOwner) -> <init>
+    51:98:void <init>(androidx.lifecycle.LifecycleOwner,boolean) -> <init>
+    172:207:void addObserver(androidx.lifecycle.LifecycleObserver) -> addObserver
+    272:288:void backwardPass(androidx.lifecycle.LifecycleOwner) -> backwardPass
+    162:167:androidx.lifecycle.Lifecycle$State calculateTargetState(androidx.lifecycle.LifecycleObserver) -> calculateTargetState
+    335:335:androidx.lifecycle.LifecycleRegistry createUnsafe(androidx.lifecycle.LifecycleOwner) -> createUnsafe
+    315:321:void enforceMainThreadIfNeeded(java.lang.String) -> enforceMainThreadIfNeeded
+    253:269:void forwardPass(androidx.lifecycle.LifecycleOwner) -> forwardPass
+    249:249:androidx.lifecycle.Lifecycle$State getCurrentState() -> getCurrentState
+    242:243:int getObserverCount() -> getObserverCount
+    133:135:void handleLifecycleEvent(androidx.lifecycle.Lifecycle$Event) -> handleLifecycleEvent
+    153:158:boolean isSynced() -> isSynced
+    109:111:void markState(androidx.lifecycle.Lifecycle$State) -> markState
+    339:339:androidx.lifecycle.Lifecycle$State min(androidx.lifecycle.Lifecycle$State,androidx.lifecycle.Lifecycle$State) -> min
+    138:150:void moveToState(androidx.lifecycle.Lifecycle$State) -> moveToState
+    210:211:void popParentState() -> popParentState
+    214:215:void pushParentState(androidx.lifecycle.Lifecycle$State) -> pushParentState
+    219:233:void removeObserver(androidx.lifecycle.LifecycleObserver) -> removeObserver
+    120:122:void setCurrentState(androidx.lifecycle.Lifecycle$State) -> setCurrentState
+    293:311:void sync() -> sync
+androidx.lifecycle.LifecycleRegistry$ObserverWithState -> androidx.lifecycle.LifecycleRegistry$ObserverWithState:
+    346:349:void <init>(androidx.lifecycle.LifecycleObserver,androidx.lifecycle.Lifecycle$State) -> <init>
+    352:356:void dispatchEvent(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> dispatchEvent
+androidx.lifecycle.Lifecycling -> androidx.lifecycle.Lifecycling:
+    42:43:void <clinit>() -> <clinit>
+    209:210:void <init>() -> <init>
+    105:111:androidx.lifecycle.GeneratedAdapter createGeneratedAdapter(java.lang.reflect.Constructor,java.lang.Object) -> createGeneratedAdapter
+    118:137:java.lang.reflect.Constructor generatedConstructor(java.lang.Class) -> generatedConstructor
+    206:206:java.lang.String getAdapterName(java.lang.String) -> getAdapterName
+    56:57:androidx.lifecycle.GenericLifecycleObserver getCallback(java.lang.Object) -> getCallback
+    142:148:int getObserverConstructorType(java.lang.Class) -> getObserverConstructorType
+    199:199:boolean isLifecycleParent(java.lang.Class) -> isLifecycleParent
+    68:98:androidx.lifecycle.LifecycleEventObserver lifecycleEventObserver(java.lang.Object) -> lifecycleEventObserver
+    153:195:int resolveObserverCallbackType(java.lang.Class) -> resolveObserverCallbackType
+androidx.lifecycle.Lifecycling$1 -> androidx.lifecycle.Lifecycling$1:
+    57:57:void <init>(androidx.lifecycle.LifecycleEventObserver) -> <init>
+    61:62:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.LiveData -> androidx.lifecycle.LiveData:
+    64:64:void <clinit>() -> <clinit>
+    60:105:void <init>(java.lang.Object) -> <init>
+    60:113:void <init>() -> <init>
+    486:490:void assertMainThread(java.lang.String) -> assertMainThread
+    378:398:void changeActiveCounter(int) -> changeActiveCounter
+    117:134:void considerNotify(androidx.lifecycle.LiveData$ObserverWrapper) -> considerNotify
+    138:159:void dispatchingValue(androidx.lifecycle.LiveData$ObserverWrapper) -> dispatchingValue
+    322:326:java.lang.Object getValue() -> getValue
+    330:330:int getVersion() -> getVersion
+    373:373:boolean hasActiveObservers() -> hasActiveObservers
+    363:363:boolean hasObservers() -> hasObservers
+    191:206:void observe(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Observer) -> observe
+    224:235:void observeForever(androidx.lifecycle.Observer) -> observeForever
+    341:341:void onActive() -> onActive
+    354:354:void onInactive() -> onInactive
+    286:294:void postValue(java.lang.Object) -> postValue
+    244:251:void removeObserver(androidx.lifecycle.Observer) -> removeObserver
+    261:267:void removeObservers(androidx.lifecycle.LifecycleOwner) -> removeObservers
+    306:310:void setValue(java.lang.Object) -> setValue
+androidx.lifecycle.LiveData$1 -> androidx.lifecycle.LiveData$1:
+    84:84:void <init>(androidx.lifecycle.LiveData) -> <init>
+    89:94:void run() -> run
+androidx.lifecycle.LiveData$AlwaysActiveObserver -> androidx.lifecycle.LiveData$AlwaysActiveObserver:
+    475:477:void <init>(androidx.lifecycle.LiveData,androidx.lifecycle.Observer) -> <init>
+    481:481:boolean shouldBeActive() -> shouldBeActive
+androidx.lifecycle.LiveData$LifecycleBoundObserver -> androidx.lifecycle.LiveData$LifecycleBoundObserver:
+    404:407:void <init>(androidx.lifecycle.LiveData,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Observer) -> <init>
+    437:438:void detachObserver() -> detachObserver
+    432:432:boolean isAttachedTo(androidx.lifecycle.LifecycleOwner) -> isAttachedTo
+    417:428:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+    411:411:boolean shouldBeActive() -> shouldBeActive
+androidx.lifecycle.LiveData$ObserverWrapper -> androidx.lifecycle.LiveData$ObserverWrapper:
+    444:448:void <init>(androidx.lifecycle.LiveData,androidx.lifecycle.Observer) -> <init>
+    460:470:void activeStateChanged(boolean) -> activeStateChanged
+    457:457:void detachObserver() -> detachObserver
+    453:453:boolean isAttachedTo(androidx.lifecycle.LifecycleOwner) -> isAttachedTo
+androidx.lifecycle.MediatorLiveData -> androidx.lifecycle.MediatorLiveData:
+    69:130:void <init>() -> <init>
+    86:98:void addSource(androidx.lifecycle.LiveData,androidx.lifecycle.Observer) -> addSource
+    117:120:void onActive() -> onActive
+    125:128:void onInactive() -> onInactive
+    108:112:void removeSource(androidx.lifecycle.LiveData) -> removeSource
+androidx.lifecycle.MediatorLiveData$Source -> androidx.lifecycle.MediatorLiveData$Source:
+    133:138:void <init>(androidx.lifecycle.LiveData,androidx.lifecycle.Observer) -> <init>
+    150:154:void onChanged(java.lang.Object) -> onChanged
+    141:142:void plug() -> plug
+    145:146:void unplug() -> unplug
+androidx.lifecycle.MethodCallsLogger -> androidx.lifecycle.MethodCallsLogger:
+    28:29:void <init>() -> <init>
+    36:40:boolean approveCall(java.lang.String,int) -> approveCall
+androidx.lifecycle.MutableLiveData -> androidx.lifecycle.MutableLiveData:
+    33:34:void <init>(java.lang.Object) -> <init>
+    40:41:void <init>() -> <init>
+    45:46:void postValue(java.lang.Object) -> postValue
+    50:51:void setValue(java.lang.Object) -> setValue
+androidx.lifecycle.ReflectiveGenericLifecycleObserver -> androidx.lifecycle.ReflectiveGenericLifecycleObserver:
+    30:33:void <init>(java.lang.Object) -> <init>
+    37:38:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.ReportFragment -> androidx.lifecycle.ReportFragment:
+    37:37:void <init>() -> <init>
+    60:71:void dispatch(android.app.Activity,androidx.lifecycle.Lifecycle$Event) -> dispatch
+    140:146:void dispatch(androidx.lifecycle.Lifecycle$Event) -> dispatch
+    81:84:void dispatchCreate(androidx.lifecycle.ReportFragment$ActivityInitializationListener) -> dispatchCreate
+    93:96:void dispatchResume(androidx.lifecycle.ReportFragment$ActivityInitializationListener) -> dispatchResume
+    87:90:void dispatchStart(androidx.lifecycle.ReportFragment$ActivityInitializationListener) -> dispatchStart
+    74:74:androidx.lifecycle.ReportFragment get(android.app.Activity) -> get
+    42:56:void injectIfNeededIn(android.app.Activity) -> injectIfNeededIn
+    100:103:void onActivityCreated(android.os.Bundle) -> onActivityCreated
+    133:137:void onDestroy() -> onDestroy
+    121:123:void onPause() -> onPause
+    114:117:void onResume() -> onResume
+    107:110:void onStart() -> onStart
+    127:129:void onStop() -> onStop
+    149:150:void setProcessListener(androidx.lifecycle.ReportFragment$ActivityInitializationListener) -> setProcessListener
+androidx.lifecycle.ReportFragment$LifecycleCallbacks -> androidx.lifecycle.ReportFragment$LifecycleCallbacks:
+    164:164:void <init>() -> <init>
+    173:173:void onActivityCreated(android.app.Activity,android.os.Bundle) -> onActivityCreated
+    229:229:void onActivityDestroyed(android.app.Activity) -> onActivityDestroyed
+    206:206:void onActivityPaused(android.app.Activity) -> onActivityPaused
+    178:179:void onActivityPostCreated(android.app.Activity,android.os.Bundle) -> onActivityPostCreated
+    196:197:void onActivityPostResumed(android.app.Activity) -> onActivityPostResumed
+    187:188:void onActivityPostStarted(android.app.Activity) -> onActivityPostStarted
+    224:225:void onActivityPreDestroyed(android.app.Activity) -> onActivityPreDestroyed
+    201:202:void onActivityPrePaused(android.app.Activity) -> onActivityPrePaused
+    210:211:void onActivityPreStopped(android.app.Activity) -> onActivityPreStopped
+    192:192:void onActivityResumed(android.app.Activity) -> onActivityResumed
+    220:220:void onActivitySaveInstanceState(android.app.Activity,android.os.Bundle) -> onActivitySaveInstanceState
+    183:183:void onActivityStarted(android.app.Activity) -> onActivityStarted
+    215:215:void onActivityStopped(android.app.Activity) -> onActivityStopped
+    167:168:void registerIn(android.app.Activity) -> registerIn
+androidx.lifecycle.SavedStateHandle -> androidx.lifecycle.SavedStateHandle:
+    376:408:void <clinit>() -> <clinit>
+    58:99:void <init>(java.util.Map) -> <init>
+    58:106:void <init>() -> <init>
+    343:344:void clearSavedStateProvider(java.lang.String) -> clearSavedStateProvider
+    146:146:boolean contains(java.lang.String) -> contains
+    110:133:androidx.lifecycle.SavedStateHandle createHandle(android.os.Bundle,android.os.Bundle) -> createHandle
+    240:240:java.lang.Object get(java.lang.String) -> get
+    158:158:androidx.lifecycle.MutableLiveData getLiveData(java.lang.String) -> getLiveData
+    192:192:androidx.lifecycle.MutableLiveData getLiveData(java.lang.String,java.lang.Object) -> getLiveData
+    201:215:androidx.lifecycle.MutableLiveData getLiveDataInternal(java.lang.String,boolean,java.lang.Object) -> getLiveDataInternal
+    227:230:java.util.Set keys() -> keys
+    292:297:java.lang.Object remove(java.lang.String) -> remove
+    138:138:androidx.savedstate.SavedStateRegistry$SavedStateProvider savedStateProvider() -> savedStateProvider
+    251:260:void set(java.lang.String,java.lang.Object) -> set
+    329:330:void setSavedStateProvider(java.lang.String,androidx.savedstate.SavedStateRegistry$SavedStateProvider) -> setSavedStateProvider
+    263:271:void validateValue(java.lang.Object) -> validateValue
+androidx.lifecycle.SavedStateHandle$1 -> androidx.lifecycle.SavedStateHandle$1:
+    64:64:void <init>(androidx.lifecycle.SavedStateHandle) -> <init>
+    71:89:android.os.Bundle saveState() -> saveState
+androidx.lifecycle.SavedStateHandle$SavingStateLiveData -> androidx.lifecycle.SavedStateHandle$SavingStateLiveData:
+    351:354:void <init>(androidx.lifecycle.SavedStateHandle,java.lang.String,java.lang.Object) -> <init>
+    357:360:void <init>(androidx.lifecycle.SavedStateHandle,java.lang.String) -> <init>
+    371:372:void detach() -> detach
+    364:368:void setValue(java.lang.Object) -> setValue
+androidx.lifecycle.SavedStateHandleController -> androidx.lifecycle.SavedStateHandleController:
+    32:38:void <init>(java.lang.String,androidx.lifecycle.SavedStateHandle) -> <init>
+    98:104:void attachHandleIfNeeded(androidx.lifecycle.ViewModel,androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle) -> attachHandleIfNeeded
+    45:51:void attachToLifecycle(androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle) -> attachToLifecycle
+    67:72:androidx.lifecycle.SavedStateHandleController create(androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle,java.lang.String,android.os.Bundle) -> create
+    62:62:androidx.lifecycle.SavedStateHandle getHandle() -> getHandle
+    41:41:boolean isAttached() -> isAttached
+    55:59:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+    107:122:void tryToAddRecreator(androidx.savedstate.SavedStateRegistry,androidx.lifecycle.Lifecycle) -> tryToAddRecreator
+androidx.lifecycle.SavedStateHandleController$1 -> androidx.lifecycle.SavedStateHandleController$1:
+    111:111:void <init>(androidx.lifecycle.Lifecycle,androidx.savedstate.SavedStateRegistry) -> <init>
+    115:119:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.SavedStateHandleController$OnRecreation -> androidx.lifecycle.SavedStateHandleController$OnRecreation:
+    75:75:void <init>() -> <init>
+    79:93:void onRecreated(androidx.savedstate.SavedStateRegistryOwner) -> onRecreated
+androidx.lifecycle.SavedStateViewModelFactory -> androidx.lifecycle.SavedStateViewModelFactory:
+    149:151:void <clinit>() -> <clinit>
+    68:69:void <init>(android.app.Application,androidx.savedstate.SavedStateRegistryOwner) -> <init>
+    90:98:void <init>(android.app.Application,androidx.savedstate.SavedStateRegistryOwner,android.os.Bundle) -> <init>
+    103:132:androidx.lifecycle.ViewModel create(java.lang.String,java.lang.Class) -> create
+    142:146:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+    156:162:java.lang.reflect.Constructor findMatchingConstructor(java.lang.Class,java.lang.Class[]) -> findMatchingConstructor
+    167:168:void onRequery(androidx.lifecycle.ViewModel) -> onRequery
+androidx.lifecycle.SingleGeneratedAdapterObserver -> androidx.lifecycle.SingleGeneratedAdapterObserver:
+    25:27:void <init>(androidx.lifecycle.GeneratedAdapter) -> <init>
+    31:33:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.lifecycle.Transformations -> androidx.lifecycle.Transformations:
+    35:36:void <init>() -> <init>
+    71:78:androidx.lifecycle.LiveData map(androidx.lifecycle.LiveData,androidx.arch.core.util.Function) -> map
+    135:159:androidx.lifecycle.LiveData switchMap(androidx.lifecycle.LiveData,androidx.arch.core.util.Function) -> switchMap
+androidx.lifecycle.Transformations$1 -> androidx.lifecycle.Transformations$1:
+    72:72:void <init>(androidx.lifecycle.MediatorLiveData,androidx.arch.core.util.Function) -> <init>
+    75:76:void onChanged(java.lang.Object) -> onChanged
+androidx.lifecycle.Transformations$2 -> androidx.lifecycle.Transformations$2:
+    136:136:void <init>(androidx.arch.core.util.Function,androidx.lifecycle.MediatorLiveData) -> <init>
+    141:157:void onChanged(java.lang.Object) -> onChanged
+androidx.lifecycle.Transformations$2$1 -> androidx.lifecycle.Transformations$2$1:
+    150:150:void <init>(androidx.lifecycle.Transformations$2) -> <init>
+    153:154:void onChanged(java.lang.Object) -> onChanged
+androidx.lifecycle.ViewModel -> androidx.lifecycle.ViewModel:
+    107:111:void <init>() -> <init>
+    125:139:void clear() -> clear
+    186:193:void closeWithRuntimeException(java.lang.Object) -> closeWithRuntimeException
+    177:182:java.lang.Object getTag(java.lang.String) -> getTag
+    121:121:void onCleared() -> onCleared
+    156:169:java.lang.Object setTagIfAbsent(java.lang.String,java.lang.Object) -> setTagIfAbsent
+androidx.lifecycle.ViewModelProvider -> androidx.lifecycle.ViewModelProvider:
+    99:102:void <init>(androidx.lifecycle.ViewModelStoreOwner) -> <init>
+    114:115:void <init>(androidx.lifecycle.ViewModelStoreOwner,androidx.lifecycle.ViewModelProvider$Factory) -> <init>
+    125:128:void <init>(androidx.lifecycle.ViewModelStore,androidx.lifecycle.ViewModelProvider$Factory) -> <init>
+    146:150:androidx.lifecycle.ViewModel get(java.lang.Class) -> get
+    171:190:androidx.lifecycle.ViewModel get(java.lang.String,java.lang.Class) -> get
+androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory -> androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory:
+    257:259:void <init>(android.app.Application) -> <init>
+    264:278:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+    244:247:androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory getInstance(android.app.Application) -> getInstance
+androidx.lifecycle.ViewModelProvider$KeyedFactory -> androidx.lifecycle.ViewModelProvider$KeyedFactory:
+    65:65:void <init>() -> <init>
+    81:81:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+androidx.lifecycle.ViewModelProvider$NewInstanceFactory -> androidx.lifecycle.ViewModelProvider$NewInstanceFactory:
+    196:196:void <init>() -> <init>
+    219:223:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+    207:210:androidx.lifecycle.ViewModelProvider$NewInstanceFactory getInstance() -> getInstance
+androidx.lifecycle.ViewModelProvider$OnRequeryFactory -> androidx.lifecycle.ViewModelProvider$OnRequeryFactory:
+    54:54:void <init>() -> <init>
+    56:56:void onRequery(androidx.lifecycle.ViewModel) -> onRequery
+androidx.lifecycle.ViewModelStore -> androidx.lifecycle.ViewModelStore:
+    38:40:void <init>() -> <init>
+    61:65:void clear() -> clear
+    50:50:androidx.lifecycle.ViewModel get(java.lang.String) -> get
+    54:54:java.util.Set keys() -> keys
+    43:47:void put(java.lang.String,androidx.lifecycle.ViewModel) -> put
+androidx.lifecycle.ViewTreeLifecycleOwner -> androidx.lifecycle.ViewTreeLifecycleOwner:
+    31:33:void <init>() -> <init>
+    63:71:androidx.lifecycle.LifecycleOwner get(android.view.View) -> get
+    49:50:void set(android.view.View,androidx.lifecycle.LifecycleOwner) -> set
+androidx.lifecycle.ViewTreeViewModelStoreOwner -> androidx.lifecycle.ViewTreeViewModelStoreOwner:
+    31:33:void <init>() -> <init>
+    63:72:androidx.lifecycle.ViewModelStoreOwner get(android.view.View) -> get
+    50:51:void set(android.view.View,androidx.lifecycle.ViewModelStoreOwner) -> set
+androidx.loader.app.LoaderManager -> androidx.loader.app.LoaderManager:
+    40:44:void <init>() -> <init>
+    235:236:void enableDebugLogging(boolean) -> enableDebugLogging
+    128:128:androidx.loader.app.LoaderManager getInstance(androidx.lifecycle.LifecycleOwner) -> getInstance
+    242:242:boolean hasRunningLoaders() -> hasRunningLoaders
+androidx.loader.app.LoaderManagerImpl -> androidx.loader.app.LoaderManagerImpl:
+    42:42:void <clinit>() -> <clinit>
+    371:374:void <init>(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.ViewModelStore) -> <init>
+    382:400:androidx.loader.content.Loader createAndInstallLoader(int,android.os.Bundle,androidx.loader.app.LoaderManager$LoaderCallbacks,androidx.loader.content.Loader) -> createAndInstallLoader
+    453:466:void destroyLoader(int) -> destroyLoader
+    498:499:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    471:476:androidx.loader.content.Loader getLoader(int) -> getLoader
+    503:503:boolean hasRunningLoaders() -> hasRunningLoaders
+    408:424:androidx.loader.content.Loader initLoader(int,android.os.Bundle,androidx.loader.app.LoaderManager$LoaderCallbacks) -> initLoader
+    481:482:void markForRedelivery() -> markForRedelivery
+    433:447:androidx.loader.content.Loader restartLoader(int,android.os.Bundle,androidx.loader.app.LoaderManager$LoaderCallbacks) -> restartLoader
+    486:492:java.lang.String toString() -> toString
+androidx.loader.app.LoaderManagerImpl$LoaderInfo -> androidx.loader.app.LoaderManagerImpl$LoaderInfo:
+    61:67:void <init>(int,android.os.Bundle,androidx.loader.content.Loader,androidx.loader.content.Loader) -> <init>
+    149:167:androidx.loader.content.Loader destroy(boolean) -> destroy
+    212:224:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    71:71:androidx.loader.content.Loader getLoader() -> getLoader
+    125:129:boolean isCallbackWaitingForData() -> isCallbackWaitingForData
+    111:121:void markForRedelivery() -> markForRedelivery
+    76:78:void onActive() -> onActive
+    82:84:void onInactive() -> onInactive
+    172:185:void onLoadComplete(androidx.loader.content.Loader,java.lang.Object) -> onLoadComplete
+    134:138:void removeObserver(androidx.lifecycle.Observer) -> removeObserver
+    98:107:androidx.loader.content.Loader setCallback(androidx.lifecycle.LifecycleOwner,androidx.loader.app.LoaderManager$LoaderCallbacks) -> setCallback
+    189:195:void setValue(java.lang.Object) -> setValue
+    199:207:java.lang.String toString() -> toString
+androidx.loader.app.LoaderManagerImpl$LoaderObserver -> androidx.loader.app.LoaderManagerImpl$LoaderObserver:
+    237:242:void <init>(androidx.loader.content.Loader,androidx.loader.app.LoaderManager$LoaderCallbacks) -> <init>
+    272:274:void dump(java.lang.String,java.io.PrintWriter) -> dump
+    255:255:boolean hasDeliveredData() -> hasDeliveredData
+    246:252:void onChanged(java.lang.Object) -> onChanged
+    260:264:void reset() -> reset
+    268:268:java.lang.String toString() -> toString
+androidx.loader.app.LoaderManagerImpl$LoaderViewModel -> androidx.loader.app.LoaderManagerImpl$LoaderViewModel:
+    281:281:void <clinit>() -> <clinit>
+    280:296:void <init>() -> <init>
+    354:364:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    307:308:void finishCreatingLoader() -> finishCreatingLoader
+    292:292:androidx.loader.app.LoaderManagerImpl$LoaderViewModel getInstance(androidx.lifecycle.ViewModelStore) -> getInstance
+    316:316:androidx.loader.app.LoaderManagerImpl$LoaderInfo getLoader(int) -> getLoader
+    324:331:boolean hasRunningLoaders() -> hasRunningLoaders
+    303:303:boolean isCreatingLoader() -> isCreatingLoader
+    335:340:void markForRedelivery() -> markForRedelivery
+    344:351:void onCleared() -> onCleared
+    311:312:void putLoader(int,androidx.loader.app.LoaderManagerImpl$LoaderInfo) -> putLoader
+    320:321:void removeLoader(int) -> removeLoader
+    299:300:void startCreatingLoader() -> startCreatingLoader
+androidx.loader.app.LoaderManagerImpl$LoaderViewModel$1 -> androidx.loader.app.LoaderManagerImpl$LoaderViewModel$1:
+    281:281:void <init>() -> <init>
+    286:286:androidx.lifecycle.ViewModel create(java.lang.Class) -> create
+androidx.loader.content.AsyncTaskLoader -> androidx.loader.content.AsyncTaskLoader:
+    128:129:void <init>(android.content.Context) -> <init>
+    124:134:void <init>(android.content.Context,java.util.concurrent.Executor) -> <init>
+    322:322:void cancelLoadInBackground() -> cancelLoadInBackground
+    233:243:void dispatchOnCancelled(androidx.loader.content.AsyncTaskLoader$LoadTask,java.lang.Object) -> dispatchOnCancelled
+    246:261:void dispatchOnLoadComplete(androidx.loader.content.AsyncTaskLoader$LoadTask,java.lang.Object) -> dispatchOnLoadComplete
+    356:373:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    210:230:void executePendingTask() -> executePendingTask
+    332:332:boolean isLoadInBackgroundCanceled() -> isLoadInBackgroundCanceled
+    162:196:boolean onCancelLoad() -> onCancelLoad
+    207:207:void onCanceled(java.lang.Object) -> onCanceled
+    152:157:void onForceLoad() -> onForceLoad
+    307:307:java.lang.Object onLoadInBackground() -> onLoadInBackground
+    144:148:void setUpdateThrottle(long) -> setUpdateThrottle
+    347:351:void waitForLoader() -> waitForLoader
+androidx.loader.content.AsyncTaskLoader$LoadTask -> androidx.loader.content.AsyncTaskLoader$LoadTask:
+    48:49:void <init>(androidx.loader.content.AsyncTaskLoader) -> <init>
+    48:48:java.lang.Object doInBackground(java.lang.Object[]) -> doInBackground
+    60:74:java.lang.Object doInBackground(java.lang.Void[]) -> doInBackground
+    94:98:void onCancelled(java.lang.Object) -> onCancelled
+    83:87:void onPostExecute(java.lang.Object) -> onPostExecute
+    104:106:void run() -> run
+    111:115:void waitForLoader() -> waitForLoader
+androidx.loader.content.CursorLoader -> androidx.loader.content.CursorLoader:
+    123:125:void <init>(android.content.Context) -> <init>
+    136:143:void <init>(android.content.Context,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String) -> <init>
+    86:93:void cancelLoadInBackground() -> cancelLoadInBackground
+    41:41:void deliverResult(java.lang.Object) -> deliverResult
+    98:115:void deliverResult(android.database.Cursor) -> deliverResult
+    239:249:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    202:202:java.lang.String[] getProjection() -> getProjection
+    211:211:java.lang.String getSelection() -> getSelection
+    220:220:java.lang.String[] getSelectionArgs() -> getSelectionArgs
+    229:229:java.lang.String getSortOrder() -> getSortOrder
+    193:193:android.net.Uri getUri() -> getUri
+    41:41:java.lang.Object loadInBackground() -> loadInBackground
+    56:80:android.database.Cursor loadInBackground() -> loadInBackground
+    41:41:void onCanceled(java.lang.Object) -> onCanceled
+    173:176:void onCanceled(android.database.Cursor) -> onCanceled
+    180:189:void onReset() -> onReset
+    154:160:void onStartLoading() -> onStartLoading
+    168:169:void onStopLoading() -> onStopLoading
+    206:207:void setProjection(java.lang.String[]) -> setProjection
+    215:216:void setSelection(java.lang.String) -> setSelection
+    224:225:void setSelectionArgs(java.lang.String[]) -> setSelectionArgs
+    233:234:void setSortOrder(java.lang.String) -> setSortOrder
+    197:198:void setUri(android.net.Uri) -> setUri
+androidx.loader.content.Loader -> androidx.loader.content.Loader:
+    44:120:void <init>(android.content.Context) -> <init>
+    409:411:void abandon() -> abandon
+    318:318:boolean cancelLoad() -> cancelLoad
+    485:486:void commitContentChanged() -> commitContentChanged
+    527:530:java.lang.String dataToString(java.lang.Object) -> dataToString
+    144:147:void deliverCancellation() -> deliverCancellation
+    131:134:void deliverResult(java.lang.Object) -> deliverResult
+    555:566:void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]) -> dump
+    347:348:void forceLoad() -> forceLoad
+    154:154:android.content.Context getContext() -> getContext
+    161:161:int getId() -> getId
+    247:247:boolean isAbandoned() -> isAbandoned
+    256:256:boolean isReset() -> isReset
+    238:238:boolean isStarted() -> isStarted
+    425:425:void onAbandon() -> onAbandon
+    334:334:boolean onCancelLoad() -> onCancelLoad
+    511:519:void onContentChanged() -> onContentChanged
+    356:356:void onForceLoad() -> onForceLoad
+    463:463:void onReset() -> onReset
+    296:296:void onStartLoading() -> onStartLoading
+    392:392:void onStopLoading() -> onStopLoading
+    173:178:void registerListener(int,androidx.loader.content.Loader$OnLoadCompleteListener) -> registerListener
+    207:211:void registerOnLoadCanceledListener(androidx.loader.content.Loader$OnLoadCanceledListener) -> registerOnLoadCanceledListener
+    447:453:void reset() -> reset
+    496:499:void rollbackContentChanged() -> rollbackContentChanged
+    282:286:void startLoading() -> startLoading
+    380:382:void stopLoading() -> stopLoading
+    471:474:boolean takeContentChanged() -> takeContentChanged
+    535:540:java.lang.String toString() -> toString
+    187:194:void unregisterListener(androidx.loader.content.Loader$OnLoadCompleteListener) -> unregisterListener
+    223:230:void unregisterOnLoadCanceledListener(androidx.loader.content.Loader$OnLoadCanceledListener) -> unregisterOnLoadCanceledListener
+androidx.loader.content.Loader$ForceLoadContentObserver -> androidx.loader.content.Loader$ForceLoadContentObserver:
+    58:60:void <init>(androidx.loader.content.Loader) -> <init>
+    64:64:boolean deliverSelfNotifications() -> deliverSelfNotifications
+    69:70:void onChange(boolean) -> onChange
+androidx.loader.content.ModernAsyncTask -> androidx.loader.content.ModernAsyncTask:
+    60:84:void <clinit>() -> <clinit>
+    88:173:void <init>() -> <init>
+    332:333:boolean cancel(boolean) -> cancel
+    398:398:androidx.loader.content.ModernAsyncTask execute(java.lang.Object[]) -> execute
+    462:463:void execute(java.lang.Runnable) -> execute
+    433:454:androidx.loader.content.ModernAsyncTask executeOnExecutor(java.util.concurrent.Executor,java.lang.Object[]) -> executeOnExecutor
+    487:493:void finish(java.lang.Object) -> finish
+    348:348:java.lang.Object get() -> get
+    368:368:java.lang.Object get(long,java.util.concurrent.TimeUnit) -> get
+    115:120:android.os.Handler getHandler() -> getHandler
+    195:195:androidx.loader.content.ModernAsyncTask$Status getStatus() -> getStatus
+    299:299:boolean isCancelled() -> isCancelled
+    270:271:void onCancelled(java.lang.Object) -> onCancelled
+    286:286:void onCancelled() -> onCancelled
+    239:239:void onPostExecute(java.lang.Object) -> onPostExecute
+    223:223:void onPreExecute() -> onPreExecute
+    252:252:void onProgressUpdate(java.lang.Object[]) -> onProgressUpdate
+    183:186:java.lang.Object postResult(java.lang.Object) -> postResult
+    176:180:void postResultIfNotInvoked(java.lang.Object) -> postResultIfNotInvoked
+    480:484:void publishProgress(java.lang.Object[]) -> publishProgress
+    126:127:void setDefaultExecutor(java.util.concurrent.Executor) -> setDefaultExecutor
+androidx.loader.content.ModernAsyncTask$1 -> androidx.loader.content.ModernAsyncTask$1:
+    60:61:void <init>() -> <init>
+    65:65:java.lang.Thread newThread(java.lang.Runnable) -> newThread
+androidx.loader.content.ModernAsyncTask$2 -> androidx.loader.content.ModernAsyncTask$2:
+    133:133:void <init>(androidx.loader.content.ModernAsyncTask) -> <init>
+    136:149:java.lang.Object call() -> call
+androidx.loader.content.ModernAsyncTask$3 -> androidx.loader.content.ModernAsyncTask$3:
+    153:153:void <init>(androidx.loader.content.ModernAsyncTask,java.util.concurrent.Callable) -> <init>
+    157:171:void done() -> done
+androidx.loader.content.ModernAsyncTask$4 -> androidx.loader.content.ModernAsyncTask$4:
+    434:434:void <clinit>() -> <clinit>
+androidx.loader.content.ModernAsyncTask$AsyncTaskResult -> androidx.loader.content.ModernAsyncTask$AsyncTaskResult:
+    528:531:void <init>(androidx.loader.content.ModernAsyncTask,java.lang.Object[]) -> <init>
+androidx.loader.content.ModernAsyncTask$InternalHandler -> androidx.loader.content.ModernAsyncTask$InternalHandler:
+    497:498:void <init>() -> <init>
+    503:513:void handleMessage(android.os.Message) -> handleMessage
+androidx.loader.content.ModernAsyncTask$Status -> androidx.loader.content.ModernAsyncTask$Status:
+    99:111:void <clinit>() -> <clinit>
+    99:99:void <init>(java.lang.String,int) -> <init>
+    99:99:androidx.loader.content.ModernAsyncTask$Status valueOf(java.lang.String) -> valueOf
+    99:99:androidx.loader.content.ModernAsyncTask$Status[] values() -> values
+androidx.loader.content.ModernAsyncTask$WorkerRunnable -> androidx.loader.content.ModernAsyncTask$WorkerRunnable:
+    519:520:void <init>() -> <init>
+androidx.localbroadcastmanager.content.LocalBroadcastManager -> androidx.localbroadcastmanager.content.LocalBroadcastManager:
+    100:100:void <clinit>() -> <clinit>
+    90:128:void <init>(android.content.Context) -> <init>
+    298:317:void executePendingBroadcasts() -> executePendingBroadcasts
+    105:110:androidx.localbroadcastmanager.content.LocalBroadcastManager getInstance(android.content.Context) -> getInstance
+    140:158:void registerReceiver(android.content.BroadcastReceiver,android.content.IntentFilter) -> registerReceiver
+    213:280:boolean sendBroadcast(android.content.Intent) -> sendBroadcast
+    289:292:void sendBroadcastSync(android.content.Intent) -> sendBroadcastSync
+    170:196:void unregisterReceiver(android.content.BroadcastReceiver) -> unregisterReceiver
+androidx.localbroadcastmanager.content.LocalBroadcastManager$1 -> androidx.localbroadcastmanager.content.LocalBroadcastManager$1:
+    115:115:void <init>(androidx.localbroadcastmanager.content.LocalBroadcastManager,android.os.Looper) -> <init>
+    119:126:void handleMessage(android.os.Message) -> handleMessage
+androidx.localbroadcastmanager.content.LocalBroadcastManager$BroadcastRecord -> androidx.localbroadcastmanager.content.LocalBroadcastManager$BroadcastRecord:
+    79:82:void <init>(android.content.Intent,java.util.ArrayList) -> <init>
+androidx.localbroadcastmanager.content.LocalBroadcastManager$ReceiverRecord -> androidx.localbroadcastmanager.content.LocalBroadcastManager$ReceiverRecord:
+    55:58:void <init>(android.content.IntentFilter,android.content.BroadcastReceiver) -> <init>
+    62:71:java.lang.String toString() -> toString
+androidx.print.PrintHelper -> androidx.print.PrintHelper:
+    70:78:void <clinit>() -> <clinit>
+    139:164:void <init>(android.content.Context) -> <init>
+    816:831:android.graphics.Bitmap convertBitmapForColorMode(android.graphics.Bitmap,int) -> convertBitmapForColorMode
+    558:573:android.print.PrintAttributes$Builder copyAttributes(android.print.PrintAttributes) -> copyAttributes
+    210:210:int getColorMode() -> getColorMode
+    589:606:android.graphics.Matrix getMatrix(int,int,android.graphics.RectF,int) -> getMatrix
+    232:235:int getOrientation() -> getOrientation
+    187:187:int getScaleMode() -> getScaleMode
+    546:546:boolean isPortrait(android.graphics.Bitmap) -> isPortrait
+    796:809:android.graphics.Bitmap loadBitmap(android.net.Uri,android.graphics.BitmapFactory$Options) -> loadBitmap
+    746:787:android.graphics.Bitmap loadConstrainedBitmap(android.net.Uri) -> loadConstrainedBitmap
+    246:247:void printBitmap(java.lang.String,android.graphics.Bitmap) -> printBitmap
+    258:277:void printBitmap(java.lang.String,android.graphics.Bitmap,androidx.print.PrintHelper$OnPrintFinishCallback) -> printBitmap
+    340:341:void printBitmap(java.lang.String,android.net.Uri) -> printBitmap
+    356:376:void printBitmap(java.lang.String,android.net.Uri,androidx.print.PrintHelper$OnPrintFinishCallback) -> printBitmap
+    199:200:void setColorMode(int) -> setColorMode
+    221:222:void setOrientation(int) -> setOrientation
+    176:177:void setScaleMode(int) -> setScaleMode
+    154:154:boolean systemSupportsPrint() -> systemSupportsPrint
+    626:735:void writeBitmap(android.print.PrintAttributes,int,android.graphics.Bitmap,android.os.ParcelFileDescriptor,android.os.CancellationSignal,android.print.PrintDocumentAdapter$WriteResultCallback) -> writeBitmap
+androidx.print.PrintHelper$1 -> androidx.print.PrintHelper$1:
+    635:635:void <init>(androidx.print.PrintHelper,android.os.CancellationSignal,android.print.PrintAttributes,android.graphics.Bitmap,android.print.PrintAttributes,int,android.os.ParcelFileDescriptor,android.print.PrintDocumentAdapter$WriteResultCallback) -> <init>
+    635:635:java.lang.Object doInBackground(java.lang.Object[]) -> doInBackground
+    639:715:java.lang.Throwable doInBackground(java.lang.Void[]) -> doInBackground
+    635:635:void onPostExecute(java.lang.Object) -> onPostExecute
+    721:733:void onPostExecute(java.lang.Throwable) -> onPostExecute
+androidx.print.PrintHelper$PrintBitmapAdapter -> androidx.print.PrintHelper$PrintBitmapAdapter:
+    288:293:void <init>(androidx.print.PrintHelper,java.lang.String,int,android.graphics.Bitmap,androidx.print.PrintHelper$OnPrintFinishCallback) -> <init>
+    323:326:void onFinish() -> onFinish
+    302:310:void onLayout(android.print.PrintAttributes,android.print.PrintAttributes,android.os.CancellationSignal,android.print.PrintDocumentAdapter$LayoutResultCallback,android.os.Bundle) -> onLayout
+    317:319:void onWrite(android.print.PageRange[],android.os.ParcelFileDescriptor,android.os.CancellationSignal,android.print.PrintDocumentAdapter$WriteResultCallback) -> onWrite
+androidx.print.PrintHelper$PrintUriAdapter -> androidx.print.PrintHelper$PrintUriAdapter:
+    389:395:void <init>(androidx.print.PrintHelper,java.lang.String,android.net.Uri,androidx.print.PrintHelper$OnPrintFinishCallback,int) -> <init>
+    502:511:void cancelLoad() -> cancelLoad
+    515:527:void onFinish() -> onFinish
+    404:498:void onLayout(android.print.PrintAttributes,android.print.PrintAttributes,android.os.CancellationSignal,android.print.PrintDocumentAdapter$LayoutResultCallback,android.os.Bundle) -> onLayout
+    533:535:void onWrite(android.print.PageRange[],android.os.ParcelFileDescriptor,android.os.CancellationSignal,android.print.PrintDocumentAdapter$WriteResultCallback) -> onWrite
+androidx.print.PrintHelper$PrintUriAdapter$1 -> androidx.print.PrintHelper$PrintUriAdapter$1:
+    424:424:void <init>(androidx.print.PrintHelper$PrintUriAdapter,android.os.CancellationSignal,android.print.PrintAttributes,android.print.PrintAttributes,android.print.PrintDocumentAdapter$LayoutResultCallback) -> <init>
+    424:424:java.lang.Object doInBackground(java.lang.Object[]) -> doInBackground
+    441:445:android.graphics.Bitmap doInBackground(android.net.Uri[]) -> doInBackground
+    424:424:void onCancelled(java.lang.Object) -> onCancelled
+    494:496:void onCancelled(android.graphics.Bitmap) -> onCancelled
+    424:424:void onPostExecute(java.lang.Object) -> onPostExecute
+    450:489:void onPostExecute(android.graphics.Bitmap) -> onPostExecute
+    428:436:void onPreExecute() -> onPreExecute
+androidx.print.PrintHelper$PrintUriAdapter$1$1 -> androidx.print.PrintHelper$PrintUriAdapter$1$1:
+    429:429:void <init>(androidx.print.PrintHelper$PrintUriAdapter$1) -> <init>
+    432:434:void onCancel() -> onCancel
+androidx.recyclerview.widget.AdapterHelper -> androidx.recyclerview.widget.AdapterHelper:
+    72:73:void <init>(androidx.recyclerview.widget.AdapterHelper$Callback) -> <init>
+    55:79:void <init>(androidx.recyclerview.widget.AdapterHelper$Callback,boolean) -> <init>
+    82:83:androidx.recyclerview.widget.AdapterHelper addUpdateOp(androidx.recyclerview.widget.AdapterHelper$UpdateOp[]) -> addUpdateOp
+    432:433:void applyAdd(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> applyAdd
+    130:131:void applyMove(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> applyMove
+    588:620:int applyPendingUpdatesToPosition(int) -> applyPendingUpdatesToPosition
+    134:185:void applyRemove(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> applyRemove
+    188:225:void applyUpdate(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> applyUpdate
+    411:428:boolean canFindInPreLayout(int) -> canFindInPreLayout
+    119:125:void consumePostponedUpdates() -> consumePostponedUpdates
+    557:585:void consumeUpdatesInOnePass() -> consumeUpdatesInOnePass
+    231:312:void dispatchAndUpdateViewHolders(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> dispatchAndUpdateViewHolders
+    315:327:void dispatchFirstPassAndUpdateViewHolders(androidx.recyclerview.widget.AdapterHelper$UpdateOp,int) -> dispatchFirstPassAndUpdateViewHolders
+    468:468:int findPositionOffset(int) -> findPositionOffset
+    472:497:int findPositionOffset(int,int) -> findPositionOffset
+    464:464:boolean hasAnyUpdateTypes(int) -> hasAnyUpdateTypes
+    460:460:boolean hasPendingUpdates() -> hasPendingUpdates
+    624:624:boolean hasUpdates() -> hasUpdates
+    727:736:androidx.recyclerview.widget.AdapterHelper$UpdateOp obtainUpdateOp(int,int,int,java.lang.Object) -> obtainUpdateOp
+    504:509:boolean onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    516:521:boolean onItemRangeInserted(int,int) -> onItemRangeInserted
+    540:548:boolean onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    528:533:boolean onItemRangeRemoved(int,int) -> onItemRangeRemoved
+    439:457:void postponeAndUpdateViewHolders(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> postponeAndUpdateViewHolders
+    93:116:void preProcess() -> preProcess
+    741:745:void recycleUpdateOp(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> recycleUpdateOp
+    748:753:void recycleUpdateOpsAndClearList(java.util.List) -> recycleUpdateOpsAndClearList
+    87:90:void reset() -> reset
+    330:407:int updatePositionWithPostponed(int,int) -> updatePositionWithPostponed
+androidx.recyclerview.widget.AdapterHelper$UpdateOp -> androidx.recyclerview.widget.AdapterHelper$UpdateOp:
+    651:656:void <init>(int,int,int,java.lang.Object) -> <init>
+    659:669:java.lang.String cmdToString() -> cmdToString
+    681:713:boolean equals(java.lang.Object) -> equals
+    718:721:int hashCode() -> hashCode
+    674:675:java.lang.String toString() -> toString
+androidx.recyclerview.widget.AdapterListUpdateCallback -> androidx.recyclerview.widget.AdapterListUpdateCallback:
+    35:37:void <init>(androidx.recyclerview.widget.RecyclerView$Adapter) -> <init>
+    60:61:void onChanged(int,int,java.lang.Object) -> onChanged
+    42:43:void onInserted(int,int) -> onInserted
+    54:55:void onMoved(int,int) -> onMoved
+    48:49:void onRemoved(int,int) -> onRemoved
+androidx.recyclerview.widget.AsyncDifferConfig -> androidx.recyclerview.widget.AsyncDifferConfig:
+    47:51:void <init>(java.util.concurrent.Executor,java.util.concurrent.Executor,androidx.recyclerview.widget.DiffUtil$ItemCallback) -> <init>
+    64:64:java.util.concurrent.Executor getBackgroundThreadExecutor() -> getBackgroundThreadExecutor
+    70:70:androidx.recyclerview.widget.DiffUtil$ItemCallback getDiffCallback() -> getDiffCallback
+    58:58:java.util.concurrent.Executor getMainThreadExecutor() -> getMainThreadExecutor
+androidx.recyclerview.widget.AsyncDifferConfig$Builder -> androidx.recyclerview.widget.AsyncDifferConfig$Builder:
+    144:145:void <clinit>() -> <clinit>
+    84:86:void <init>(androidx.recyclerview.widget.DiffUtil$ItemCallback) -> <init>
+    129:137:androidx.recyclerview.widget.AsyncDifferConfig build() -> build
+    118:119:androidx.recyclerview.widget.AsyncDifferConfig$Builder setBackgroundThreadExecutor(java.util.concurrent.Executor) -> setBackgroundThreadExecutor
+    102:103:androidx.recyclerview.widget.AsyncDifferConfig$Builder setMainThreadExecutor(java.util.concurrent.Executor) -> setMainThreadExecutor
+androidx.recyclerview.widget.AsyncListDiffer -> androidx.recyclerview.widget.AsyncListDiffer:
+    131:131:void <clinit>() -> <clinit>
+    162:164:void <init>(androidx.recyclerview.widget.RecyclerView$Adapter,androidx.recyclerview.widget.DiffUtil$ItemCallback) -> <init>
+    148:197:void <init>(androidx.recyclerview.widget.ListUpdateCallback,androidx.recyclerview.widget.AsyncDifferConfig) -> <init>
+    392:393:void addListListener(androidx.recyclerview.widget.AsyncListDiffer$ListListener) -> addListListener
+    216:216:java.util.List getCurrentList() -> getCurrentList
+    364:370:void latchList(java.util.List,androidx.recyclerview.widget.DiffUtil$DiffResult,java.lang.Runnable) -> latchList
+    375:381:void onCurrentListChanged(java.util.List,java.lang.Runnable) -> onCurrentListChanged
+    403:404:void removeListListener(androidx.recyclerview.widget.AsyncListDiffer$ListListener) -> removeListListener
+    231:232:void submitList(java.util.List) -> submitList
+    254:357:void submitList(java.util.List,java.lang.Runnable) -> submitList
+androidx.recyclerview.widget.AsyncListDiffer$1 -> androidx.recyclerview.widget.AsyncListDiffer$1:
+    289:289:void <init>(androidx.recyclerview.widget.AsyncListDiffer,java.util.List,java.util.List,int,java.lang.Runnable) -> <init>
+    292:355:void run() -> run
+androidx.recyclerview.widget.AsyncListDiffer$1$1 -> androidx.recyclerview.widget.AsyncListDiffer$1$1:
+    292:292:void <init>(androidx.recyclerview.widget.AsyncListDiffer$1) -> <init>
+    316:328:boolean areContentsTheSame(int,int) -> areContentsTheSame
+    305:311:boolean areItemsTheSame(int,int) -> areItemsTheSame
+    334:343:java.lang.Object getChangePayload(int,int) -> getChangePayload
+    300:300:int getNewListSize() -> getNewListSize
+    295:295:int getOldListSize() -> getOldListSize
+androidx.recyclerview.widget.AsyncListDiffer$1$2 -> androidx.recyclerview.widget.AsyncListDiffer$1$2:
+    347:347:void <init>(androidx.recyclerview.widget.AsyncListDiffer$1,androidx.recyclerview.widget.DiffUtil$DiffResult) -> <init>
+    350:353:void run() -> run
+androidx.recyclerview.widget.AsyncListDiffer$MainThreadExecutor -> androidx.recyclerview.widget.AsyncListDiffer$MainThreadExecutor:
+    122:123:void <init>() -> <init>
+    126:127:void execute(java.lang.Runnable) -> execute
+androidx.recyclerview.widget.AsyncListUtil -> androidx.recyclerview.widget.AsyncListUtil:
+    64:293:void <init>(java.lang.Class,int,androidx.recyclerview.widget.AsyncListUtil$DataCallback,androidx.recyclerview.widget.AsyncListUtil$ViewCallback) -> <init>
+    155:162:java.lang.Object getItem(int) -> getItem
+    175:175:int getItemCount() -> getItemCount
+    107:107:boolean isRefreshPending() -> isRefreshPending
+    79:80:void log(java.lang.String,java.lang.Object[]) -> log
+    119:124:void onRangeChanged() -> onRangeChanged
+    133:135:void refresh() -> refresh
+    179:209:void updateRange() -> updateRange
+androidx.recyclerview.widget.AsyncListUtil$1 -> androidx.recyclerview.widget.AsyncListUtil$1:
+    212:212:void <init>(androidx.recyclerview.widget.AsyncListUtil) -> <init>
+    233:260:void addTile(int,androidx.recyclerview.widget.TileList$Tile) -> addTile
+    289:289:boolean isRequestedGeneration(int) -> isRequestedGeneration
+    282:286:void recycleAllTiles() -> recycleAllTiles
+    264:276:void removeTile(int,int) -> removeTile
+    218:229:void updateItemCount(int,int) -> updateItemCount
+androidx.recyclerview.widget.AsyncListUtil$2 -> androidx.recyclerview.widget.AsyncListUtil$2:
+    294:298:void <init>(androidx.recyclerview.widget.AsyncListUtil) -> <init>
+    392:397:androidx.recyclerview.widget.TileList$Tile acquireTile() -> acquireTile
+    405:410:void addTile(androidx.recyclerview.widget.TileList$Tile) -> addTile
+    421:438:void flushTileCache(int) -> flushTileCache
+    350:350:int getTileStart(int) -> getTileStart
+    401:401:boolean isTileLoaded(int) -> isTileLoaded
+    366:378:void loadTile(int,int) -> loadTile
+    441:442:void log(java.lang.String,java.lang.Object[]) -> log
+    385:389:void recycleTile(androidx.recyclerview.widget.TileList$Tile) -> recycleTile
+    308:312:void refresh(int) -> refresh
+    413:418:void removeTile(int) -> removeTile
+    355:362:void requestTiles(int,int,int,boolean) -> requestTiles
+    322:347:void updateRange(int,int,int,int,int) -> updateRange
+androidx.recyclerview.widget.AsyncListUtil$DataCallback -> androidx.recyclerview.widget.AsyncListUtil$DataCallback:
+    451:451:void <init>() -> <init>
+    511:511:int getMaxCachedTiles() -> getMaxCachedTiles
+    489:489:void recycleData(java.lang.Object[],int) -> recycleData
+androidx.recyclerview.widget.AsyncListUtil$ViewCallback -> androidx.recyclerview.widget.AsyncListUtil$ViewCallback:
+    521:521:void <init>() -> <init>
+    577:581:void extendRangeInto(int[],int[],int) -> extendRangeInto
+androidx.recyclerview.widget.BatchingListUpdateCallback -> androidx.recyclerview.widget.BatchingListUpdateCallback:
+    41:48:void <init>(androidx.recyclerview.widget.ListUpdateCallback) -> <init>
+    56:72:void dispatchLastEvent() -> dispatchLastEvent
+    110:124:void onChanged(int,int,java.lang.Object) -> onChanged
+    76:86:void onInserted(int,int) -> onInserted
+    104:106:void onMoved(int,int) -> onMoved
+    90:100:void onRemoved(int,int) -> onRemoved
+androidx.recyclerview.widget.ChildHelper -> androidx.recyclerview.widget.ChildHelper:
+    48:52:void <init>(androidx.recyclerview.widget.ChildHelper$Callback) -> <init>
+    85:86:void addView(android.view.View,boolean) -> addView
+    98:111:void addView(android.view.View,int,boolean) -> addView
+    230:244:void attachViewToParent(android.view.View,int,android.view.ViewGroup$LayoutParams,boolean) -> attachViewToParent
+    282:288:void detachViewFromParent(int) -> detachViewFromParent
+    206:216:android.view.View findHiddenNonRemovedView(int) -> findHiddenNonRemovedView
+    180:181:android.view.View getChildAt(int) -> getChildAt
+    253:253:int getChildCount() -> getChildCount
+    114:131:int getOffset(int) -> getOffset
+    273:273:android.view.View getUnfilteredChildAt(int) -> getUnfilteredChildAt
+    263:263:int getUnfilteredChildCount() -> getUnfilteredChildCount
+    328:340:void hide(android.view.View) -> hide
+    60:62:void hideViewInternal(android.view.View) -> hideViewInternal
+    297:309:int indexOfChild(android.view.View) -> indexOfChild
+    319:319:boolean isHidden(android.view.View) -> isHidden
+    188:197:void removeAllViewsUnfiltered() -> removeAllViewsUnfiltered
+    140:151:void removeView(android.view.View) -> removeView
+    160:172:void removeViewAt(int) -> removeViewAt
+    373:389:boolean removeViewIfHidden(android.view.View) -> removeViewIfHidden
+    363:363:java.lang.String toString() -> toString
+    350:359:void unhide(android.view.View) -> unhide
+    70:74:boolean unhideViewInternal(android.view.View) -> unhideViewInternal
+androidx.recyclerview.widget.ChildHelper$Bucket -> androidx.recyclerview.widget.ChildHelper$Bucket:
+    395:401:void <init>() -> <init>
+    421:429:void clear(int) -> clear
+    493:502:int countOnesBefore(int) -> countOnesBefore
+    415:418:void ensureNext() -> ensureNext
+    432:436:boolean get(int) -> get
+    448:467:void insert(int,boolean) -> insert
+    470:488:boolean remove(int) -> remove
+    441:445:void reset() -> reset
+    406:412:void set(int) -> set
+    508:509:java.lang.String toString() -> toString
+androidx.recyclerview.widget.DefaultItemAnimator -> androidx.recyclerview.widget.DefaultItemAnimator:
+    38:55:void <init>() -> <init>
+    222:225:boolean animateAdd(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> animateAdd
+    229:252:void animateAddImpl(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> animateAddImpl
+    321:344:boolean animateChange(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int,int) -> animateChange
+    348:397:void animateChangeImpl(androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo) -> animateChangeImpl
+    257:274:boolean animateMove(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int,int) -> animateMove
+    278:316:void animateMoveImpl(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int,int) -> animateMoveImpl
+    193:195:boolean animateRemove(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> animateRemove
+    199:218:void animateRemoveImpl(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> animateRemoveImpl
+    665:665:boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,java.util.List) -> canReuseUpdatedViewHolder
+    641:644:void cancelAll(java.util.List) -> cancelAll
+    550:553:void dispatchFinishedWhenDone() -> dispatchFinishedWhenDone
+    437:519:void endAnimation(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> endAnimation
+    557:638:void endAnimations() -> endAnimations
+    400:408:void endChangeAnimation(java.util.List,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> endChangeAnimation
+    411:417:void endChangeAnimationIfNecessary(androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo) -> endChangeAnimationIfNecessary
+    419:432:boolean endChangeAnimationIfNecessary(androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> endChangeAnimationIfNecessary
+    531:541:boolean isRunning() -> isRunning
+    522:527:void resetAnimation(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> resetAnimation
+    102:189:void runPendingAnimations() -> runPendingAnimations
+androidx.recyclerview.widget.DefaultItemAnimator$1 -> androidx.recyclerview.widget.DefaultItemAnimator$1:
+    121:121:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,java.util.ArrayList) -> <init>
+    124:130:void run() -> run
+androidx.recyclerview.widget.DefaultItemAnimator$2 -> androidx.recyclerview.widget.DefaultItemAnimator$2:
+    145:145:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,java.util.ArrayList) -> <init>
+    148:153:void run() -> run
+androidx.recyclerview.widget.DefaultItemAnimator$3 -> androidx.recyclerview.widget.DefaultItemAnimator$3:
+    168:168:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,java.util.ArrayList) -> <init>
+    171:176:void run() -> run
+androidx.recyclerview.widget.DefaultItemAnimator$4 -> androidx.recyclerview.widget.DefaultItemAnimator$4:
+    203:203:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,androidx.recyclerview.widget.RecyclerView$ViewHolder,android.view.ViewPropertyAnimator,android.view.View) -> <init>
+    211:216:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    206:207:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.recyclerview.widget.DefaultItemAnimator$5 -> androidx.recyclerview.widget.DefaultItemAnimator$5:
+    233:233:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,androidx.recyclerview.widget.RecyclerView$ViewHolder,android.view.View,android.view.ViewPropertyAnimator) -> <init>
+    241:242:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    246:250:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    236:237:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.recyclerview.widget.DefaultItemAnimator$6 -> androidx.recyclerview.widget.DefaultItemAnimator$6:
+    292:292:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,android.view.View,int,android.view.ViewPropertyAnimator) -> <init>
+    300:306:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    310:314:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    295:296:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.recyclerview.widget.DefaultItemAnimator$7 -> androidx.recyclerview.widget.DefaultItemAnimator$7:
+    358:358:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo,android.view.ViewPropertyAnimator,android.view.View) -> <init>
+    366:373:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    361:362:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.recyclerview.widget.DefaultItemAnimator$8 -> androidx.recyclerview.widget.DefaultItemAnimator$8:
+    380:380:void <init>(androidx.recyclerview.widget.DefaultItemAnimator,androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo,android.view.ViewPropertyAnimator,android.view.View) -> <init>
+    387:394:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    383:384:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo -> androidx.recyclerview.widget.DefaultItemAnimator$ChangeInfo:
+    73:76:void <init>(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> <init>
+    80:85:void <init>(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int,int) -> <init>
+    89:89:java.lang.String toString() -> toString
+androidx.recyclerview.widget.DefaultItemAnimator$MoveInfo -> androidx.recyclerview.widget.DefaultItemAnimator$MoveInfo:
+    61:67:void <init>(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int,int) -> <init>
+androidx.recyclerview.widget.DiffUtil -> androidx.recyclerview.widget.DiffUtil:
+    84:84:void <clinit>() -> <clinit>
+    80:82:void <init>() -> <init>
+    105:105:androidx.recyclerview.widget.DiffUtil$DiffResult calculateDiff(androidx.recyclerview.widget.DiffUtil$Callback) -> calculateDiff
+    123:198:androidx.recyclerview.widget.DiffUtil$DiffResult calculateDiff(androidx.recyclerview.widget.DiffUtil$Callback,boolean) -> calculateDiff
+    204:287:androidx.recyclerview.widget.DiffUtil$Snake diffPartial(androidx.recyclerview.widget.DiffUtil$Callback,int,int,int,int,int[],int[],int) -> diffPartial
+androidx.recyclerview.widget.DiffUtil$1 -> androidx.recyclerview.widget.DiffUtil$1:
+    84:84:void <init>() -> <init>
+    84:84:int compare(java.lang.Object,java.lang.Object) -> compare
+    87:88:int compare(androidx.recyclerview.widget.DiffUtil$Snake,androidx.recyclerview.widget.DiffUtil$Snake) -> compare
+androidx.recyclerview.widget.DiffUtil$Callback -> androidx.recyclerview.widget.DiffUtil$Callback:
+    295:295:void <init>() -> <init>
+    360:360:java.lang.Object getChangePayload(int,int) -> getChangePayload
+androidx.recyclerview.widget.DiffUtil$DiffResult -> androidx.recyclerview.widget.DiffUtil$DiffResult:
+    567:579:void <init>(androidx.recyclerview.widget.DiffUtil$Callback,java.util.List,int[],int[],boolean) -> <init>
+    586:596:void addRootSnake() -> addRootSnake
+    695:703:int convertNewPositionToOld(int) -> convertNewPositionToOld
+    671:679:int convertOldPositionToNew(int) -> convertOldPositionToNew
+    873:909:void dispatchAdditions(java.util.List,androidx.recyclerview.widget.ListUpdateCallback,int,int,int) -> dispatchAdditions
+    913:950:void dispatchRemovals(java.util.List,androidx.recyclerview.widget.ListUpdateCallback,int,int,int) -> dispatchRemovals
+    802:803:void dispatchUpdatesTo(androidx.recyclerview.widget.RecyclerView$Adapter) -> dispatchUpdatesTo
+    816:853:void dispatchUpdatesTo(androidx.recyclerview.widget.ListUpdateCallback) -> dispatchUpdatesTo
+    646:650:void findAddition(int,int,int) -> findAddition
+    723:766:boolean findMatchingItem(int,int,int,boolean) -> findMatchingItem
+    610:643:void findMatchingItems() -> findMatchingItems
+    653:657:void findRemoval(int,int,int) -> findRemoval
+    954:954:java.util.List getSnakes() -> getSnakes
+    857:868:androidx.recyclerview.widget.DiffUtil$PostponedUpdate removePostponedUpdate(java.util.List,int,boolean) -> removePostponedUpdate
+androidx.recyclerview.widget.DiffUtil$ItemCallback -> androidx.recyclerview.widget.DiffUtil$ItemCallback:
+    373:373:void <init>() -> <init>
+    434:434:java.lang.Object getChangePayload(java.lang.Object,java.lang.Object) -> getChangePayload
+androidx.recyclerview.widget.DiffUtil$PostponedUpdate -> androidx.recyclerview.widget.DiffUtil$PostponedUpdate:
+    973:977:void <init>(int,int,boolean) -> <init>
+androidx.recyclerview.widget.DiffUtil$Range -> androidx.recyclerview.widget.DiffUtil$Range:
+    482:483:void <init>() -> <init>
+    485:490:void <init>(int,int,int,int) -> <init>
+androidx.recyclerview.widget.DiffUtil$Snake -> androidx.recyclerview.widget.DiffUtil$Snake:
+    442:442:void <init>() -> <init>
+androidx.recyclerview.widget.DividerItemDecoration -> androidx.recyclerview.widget.DividerItemDecoration:
+    48:48:void <clinit>() -> <clinit>
+    57:75:void <init>(android.content.Context,int) -> <init>
+    151:175:void drawHorizontal(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView) -> drawHorizontal
+    124:148:void drawVertical(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView) -> drawVertical
+    108:108:android.graphics.drawable.Drawable getDrawable() -> getDrawable
+    180:189:void getItemOffsets(android.graphics.Rect,android.view.View,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> getItemOffsets
+    113:121:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDraw
+    97:101:void setDrawable(android.graphics.drawable.Drawable) -> setDrawable
+    84:89:void setOrientation(int) -> setOrientation
+androidx.recyclerview.widget.FastScroller -> androidx.recyclerview.widget.FastScroller:
+    74:75:void <clinit>() -> <clinit>
+    104:161:void <init>(androidx.recyclerview.widget.RecyclerView,android.graphics.drawable.StateListDrawable,android.graphics.drawable.Drawable,android.graphics.drawable.StateListDrawable,android.graphics.drawable.Drawable,int,int,int) -> <init>
+    164:174:void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> attachToRecyclerView
+    258:259:void cancelHide() -> cancelHide
+    183:187:void destroyCallbacks() -> destroyCallbacks
+    316:329:void drawHorizontalScrollbar(android.graphics.Canvas) -> drawHorizontalScrollbar
+    291:313:void drawVerticalScrollbar(android.graphics.Canvas) -> drawVerticalScrollbar
+    542:544:int[] getHorizontalRange() -> getHorizontalRange
+    516:516:android.graphics.drawable.Drawable getHorizontalThumbDrawable() -> getHorizontalThumbDrawable
+    511:511:android.graphics.drawable.Drawable getHorizontalTrackDrawable() -> getHorizontalTrackDrawable
+    533:535:int[] getVerticalRange() -> getVerticalRange
+    526:526:android.graphics.drawable.Drawable getVerticalThumbDrawable() -> getVerticalThumbDrawable
+    521:521:android.graphics.drawable.Drawable getVerticalTrackDrawable() -> getVerticalTrackDrawable
+    244:255:void hide(int) -> hide
+    461:475:void horizontalScrollTo(float) -> horizontalScrollTo
+    220:220:boolean isDragging() -> isDragging
+    216:216:boolean isLayoutRTL() -> isLayoutRTL
+    504:504:boolean isPointInsideHorizontalThumb(float,float) -> isPointInsideHorizontalThumb
+    496:496:boolean isPointInsideVerticalThumb(float,float) -> isPointInsideVerticalThumb
+    224:224:boolean isVisible() -> isVisible
+    268:288:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    381:404:boolean onInterceptTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onInterceptTouchEvent
+    443:443:void onRequestDisallowInterceptTouchEvent(boolean) -> onRequestDisallowInterceptTouchEvent
+    409:440:void onTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onTouchEvent
+    191:192:void requestRedraw() -> requestRedraw
+    262:264:void resetHideDelay(int) -> resetHideDelay
+    479:490:int scrollTo(float,float,int[],int,int,int) -> scrollTo
+    195:213:void setState(int) -> setState
+    177:180:void setupCallbacks() -> setupCallbacks
+    228:240:void show() -> show
+    339:375:void updateScrollPosition(int,int) -> updateScrollPosition
+    446:458:void verticalScrollTo(float) -> verticalScrollTo
+androidx.recyclerview.widget.FastScroller$1 -> androidx.recyclerview.widget.FastScroller$1:
+    123:123:void <init>(androidx.recyclerview.widget.FastScroller) -> <init>
+    126:127:void run() -> run
+androidx.recyclerview.widget.FastScroller$2 -> androidx.recyclerview.widget.FastScroller$2:
+    130:130:void <init>(androidx.recyclerview.widget.FastScroller) -> <init>
+    133:135:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+androidx.recyclerview.widget.FastScroller$AnimatorListener -> androidx.recyclerview.widget.FastScroller$AnimatorListener:
+    549:552:void <init>(androidx.recyclerview.widget.FastScroller) -> <init>
+    572:573:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    557:568:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.recyclerview.widget.FastScroller$AnimatorUpdater -> androidx.recyclerview.widget.FastScroller$AnimatorUpdater:
+    577:578:void <init>(androidx.recyclerview.widget.FastScroller) -> <init>
+    582:586:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+androidx.recyclerview.widget.GapWorker -> androidx.recyclerview.widget.GapWorker:
+    32:190:void <clinit>() -> <clinit>
+    30:59:void <init>() -> <init>
+    163:164:void add(androidx.recyclerview.widget.RecyclerView) -> add
+    217:262:void buildTaskList() -> buildTaskList
+    344:353:void flushTaskWithDeadline(androidx.recyclerview.widget.GapWorker$Task,long) -> flushTaskWithDeadline
+    356:364:void flushTasksWithDeadline(long) -> flushTasksWithDeadline
+    265:274:boolean isPrefetchPositionAttached(androidx.recyclerview.widget.RecyclerView,int) -> isPrefetchPositionAttached
+    177:188:void postFromTraversal(androidx.recyclerview.widget.RecyclerView,int,int) -> postFromTraversal
+    367:369:void prefetch(long) -> prefetch
+    312:341:void prefetchInnerRecyclerViewWithDeadline(androidx.recyclerview.widget.RecyclerView,long) -> prefetchInnerRecyclerViewWithDeadline
+    279:307:androidx.recyclerview.widget.RecyclerView$ViewHolder prefetchPositionWithDeadline(androidx.recyclerview.widget.RecyclerView,int,long) -> prefetchPositionWithDeadline
+    167:171:void remove(androidx.recyclerview.widget.RecyclerView) -> remove
+    374:406:void run() -> run
+androidx.recyclerview.widget.GapWorker$1 -> androidx.recyclerview.widget.GapWorker$1:
+    190:190:void <init>() -> <init>
+    190:190:int compare(java.lang.Object,java.lang.Object) -> compare
+    194:211:int compare(androidx.recyclerview.widget.GapWorker$Task,androidx.recyclerview.widget.GapWorker$Task) -> compare
+androidx.recyclerview.widget.GapWorker$LayoutPrefetchRegistryImpl -> androidx.recyclerview.widget.GapWorker$LayoutPrefetchRegistryImpl:
+    65:65:void <init>() -> <init>
+    112:136:void addPosition(int,int) -> addPosition
+    152:156:void clearPrefetchPositions() -> clearPrefetchPositions
+    79:108:void collectPrefetchPositionsFromView(androidx.recyclerview.widget.RecyclerView,boolean) -> collectPrefetchPositionsFromView
+    139:145:boolean lastPrefetchIncludedPosition(int) -> lastPrefetchIncludedPosition
+    74:76:void setPrefetchVector(int,int) -> setPrefetchVector
+androidx.recyclerview.widget.GapWorker$Task -> androidx.recyclerview.widget.GapWorker$Task:
+    38:38:void <init>() -> <init>
+    46:51:void clear() -> clear
+androidx.recyclerview.widget.GridLayoutManager -> androidx.recyclerview.widget.GridLayoutManager:
+    44:76:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    44:87:void <init>(android.content.Context,int) -> <init>
+    44:100:void <init>(android.content.Context,int,int,boolean) -> <init>
+    775:792:void assignSpans(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,boolean) -> assignSpans
+    189:196:void cachePreLayoutSpanMapping() -> cachePreLayoutSpanMapping
+    314:315:void calculateItemBorders(int) -> calculateItemBorders
+    325:344:int[] calculateItemBorders(int[],int,int) -> calculateItemBorders
+    256:256:boolean checkLayoutParams(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> checkLayoutParams
+    184:186:void clearPreLayoutSpanMappingCache() -> clearPreLayoutSpanMappingCache
+    515:525:void collectPrefetchPositionsForLayoutState(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$LayoutState,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectPrefetchPositionsForLayoutState
+    1213:1216:int computeHorizontalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollOffset
+    1195:1198:int computeHorizontalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollRange
+    1304:1342:int computeScrollOffsetWithSpanInfo(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollOffsetWithSpanInfo
+    1271:1300:int computeScrollRangeWithSpanInfo(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollRangeWithSpanInfo
+    1222:1225:int computeVerticalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollOffset
+    1204:1207:int computeVerticalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollRange
+    391:416:void ensureAnchorIsInCorrectSpan(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo,int) -> ensureAnchorIsInCorrectSpan
+    368:371:void ensureViewSet() -> ensureViewSet
+    421:450:android.view.View findReferenceChild(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,int,int) -> findReferenceChild
+    231:235:androidx.recyclerview.widget.RecyclerView$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    242:242:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.content.Context,android.util.AttributeSet) -> generateLayoutParams
+    247:250:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    133:141:int getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getColumnCountForAccessibility
+    119:127:int getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getRowCountForAccessibility
+    348:352:int getSpaceForSpanRange(int,int) -> getSpaceForSpanRange
+    801:801:int getSpanCount() -> getSpanCount
+    455:467:int getSpanGroupIndex(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int) -> getSpanGroupIndex
+    471:488:int getSpanIndex(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int) -> getSpanIndex
+    492:509:int getSpanSize(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int) -> getSpanSize
+    275:275:androidx.recyclerview.widget.GridLayoutManager$SpanSizeLookup getSpanSizeLookup() -> getSpanSizeLookup
+    750:753:void guessMeasurement(float,int) -> guessMeasurement
+    1267:1267:boolean isUsingSpansToEstimateScrollbarDimensions() -> isUsingSpansToEstimateScrollbarDimensions
+    530:704:void layoutChunk(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$LayoutState,androidx.recyclerview.widget.LinearLayoutManager$LayoutChunkResult) -> layoutChunk
+    716:737:void measureChild(android.view.View,int,boolean) -> measureChild
+    757:767:void measureChildWithDecorationsAndMargin(android.view.View,int,int,boolean) -> measureChildWithDecorationsAndMargin
+    359:365:void onAnchorReady(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo,int) -> onAnchorReady
+    1068:1185:android.view.View onFocusSearchFailed(android.view.View,int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onFocusSearchFailed
+    147:163:void onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfoForItem
+    200:202:void onItemsAdded(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsAdded
+    206:208:void onItemsChanged(androidx.recyclerview.widget.RecyclerView) -> onItemsChanged
+    225:227:void onItemsMoved(androidx.recyclerview.widget.RecyclerView,int,int,int) -> onItemsMoved
+    212:214:void onItemsRemoved(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsRemoved
+    219:221:void onItemsUpdated(androidx.recyclerview.widget.RecyclerView,int,int,java.lang.Object) -> onItemsUpdated
+    167:175:void onLayoutChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onLayoutChildren
+    179:181:void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView$State) -> onLayoutCompleted
+    376:378:int scrollHorizontallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollHorizontallyBy
+    384:386:int scrollVerticallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollVerticallyBy
+    290:308:void setMeasuredDimension(android.graphics.Rect,int,int) -> setMeasuredDimension
+    814:825:void setSpanCount(int) -> setSpanCount
+    266:267:void setSpanSizeLookup(androidx.recyclerview.widget.GridLayoutManager$SpanSizeLookup) -> setSpanSizeLookup
+    108:114:void setStackFromEnd(boolean) -> setStackFromEnd
+    1255:1256:void setUsingSpansToEstimateScrollbarDimensions(boolean) -> setUsingSpansToEstimateScrollbarDimensions
+    1190:1190:boolean supportsPredictiveItemAnimations() -> supportsPredictiveItemAnimations
+    280:286:void updateMeasurements() -> updateMeasurements
+androidx.recyclerview.widget.GridLayoutManager$DefaultSpanSizeLookup -> androidx.recyclerview.widget.GridLayoutManager$DefaultSpanSizeLookup:
+    1348:1348:void <init>() -> <init>
+    1357:1357:int getSpanIndex(int,int) -> getSpanIndex
+    1352:1352:int getSpanSize(int) -> getSpanSize
+androidx.recyclerview.widget.GridLayoutManager$LayoutParams -> androidx.recyclerview.widget.GridLayoutManager$LayoutParams:
+    1375:1381:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1375:1385:void <init>(int,int) -> <init>
+    1375:1389:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    1375:1393:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    1375:1397:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> <init>
+    1414:1414:int getSpanIndex() -> getSpanIndex
+    1424:1424:int getSpanSize() -> getSpanSize
+androidx.recyclerview.widget.GridLayoutManager$SpanSizeLookup -> androidx.recyclerview.widget.GridLayoutManager$SpanSizeLookup:
+    834:840:void <init>() -> <init>
+    997:1015:int findFirstKeyLessThan(android.util.SparseIntArray,int) -> findFirstKeyLessThan
+    930:939:int getCachedSpanGroupIndex(int,int) -> getCachedSpanGroupIndex
+    917:926:int getCachedSpanIndex(int,int) -> getCachedSpanIndex
+    1029:1061:int getSpanGroupIndex(int,int) -> getSpanGroupIndex
+    966:993:int getSpanIndex(int,int) -> getSpanIndex
+    895:896:void invalidateSpanGroupIndexCache() -> invalidateSpanGroupIndexCache
+    887:888:void invalidateSpanIndexCache() -> invalidateSpanIndexCache
+    913:913:boolean isSpanGroupIndexCacheEnabled() -> isSpanGroupIndexCacheEnabled
+    904:904:boolean isSpanIndexCacheEnabled() -> isSpanIndexCacheEnabled
+    876:880:void setSpanGroupIndexCacheEnabled(boolean) -> setSpanGroupIndexCacheEnabled
+    859:863:void setSpanIndexCacheEnabled(boolean) -> setSpanIndexCacheEnabled
+androidx.recyclerview.widget.ItemTouchHelper -> androidx.recyclerview.widget.ItemTouchHelper:
+    167:448:void <init>(androidx.recyclerview.widget.ItemTouchHelper$Callback) -> <init>
+    1290:1291:void addChildDrawingOrderCallback() -> addChildDrawingOrderCallback
+    467:482:void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> attachToRecyclerView
+    1237:1260:int checkHorizontalSwipe(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> checkHorizontalSwipe
+    980:1034:void checkSelectForSwipe(int,android.view.MotionEvent,int) -> checkSelectForSwipe
+    1264:1286:int checkVerticalSwipe(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> checkVerticalSwipe
+    494:508:void destroyCallbacks() -> destroyCallbacks
+    914:926:void endRecoverAnimation(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> endRecoverAnimation
+    1155:1165:androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation findAnimation(android.view.MotionEvent) -> findAnimation
+    1039:1054:android.view.View findChildView(android.view.MotionEvent) -> findChildView
+    800:845:java.util.List findSwapTargets(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> findSwapTargets
+    950:972:androidx.recyclerview.widget.RecyclerView$ViewHolder findSwipedView(android.view.MotionEvent) -> findSwipedView
+    931:932:void getItemOffsets(android.graphics.Rect,android.view.View,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> getItemOffsets
+    527:537:void getSelectedDxDy(float[]) -> getSelectedDxDy
+    723:729:boolean hasRunningRecoverAnim() -> hasRunningRecoverAnim
+    451:454:boolean hitTest(android.view.View,float,float,float,float) -> hitTest
+    853:886:void moveIfNecessary(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> moveIfNecessary
+    936:940:void obtainVelocityTracker() -> obtainVelocityTracker
+    890:890:void onChildViewAttachedToWindow(android.view.View) -> onChildViewAttachedToWindow
+    894:907:void onChildViewDetachedFromWindow(android.view.View) -> onChildViewDetachedFromWindow
+    554:563:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDraw
+    541:549:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    700:719:void postDispatchSwipe(androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation,int) -> postDispatchSwipe
+    943:947:void releaseVelocityTracker() -> releaseVelocityTracker
+    1317:1324:void removeChildDrawingOrderCallbackIfNecessary(android.view.View) -> removeChildDrawingOrderCallbackIfNecessary
+    737:796:boolean scrollIfNecessary() -> scrollIfNecessary
+    574:695:void select(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> select
+    485:491:void setupCallbacks() -> setupCallbacks
+    1092:1104:void startDrag(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> startDrag
+    511:514:void startGestureDetection() -> startGestureDetection
+    1139:1151:void startSwipe(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> startSwipe
+    517:524:void stopGestureDetection() -> stopGestureDetection
+    1191:1233:int swipeIfNecessary(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> swipeIfNecessary
+    1170:1188:void updateDxDy(android.view.MotionEvent,int,int) -> updateDxDy
+androidx.recyclerview.widget.ItemTouchHelper$1 -> androidx.recyclerview.widget.ItemTouchHelper$1:
+    257:257:void <init>(androidx.recyclerview.widget.ItemTouchHelper) -> <init>
+    260:267:void run() -> run
+androidx.recyclerview.widget.ItemTouchHelper$2 -> androidx.recyclerview.widget.ItemTouchHelper$2:
+    313:313:void <init>(androidx.recyclerview.widget.ItemTouchHelper) -> <init>
+    317:357:boolean onInterceptTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onInterceptTouchEvent
+    420:424:void onRequestDisallowInterceptTouchEvent(boolean) -> onRequestDisallowInterceptTouchEvent
+    362:416:void onTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onTouchEvent
+androidx.recyclerview.widget.ItemTouchHelper$3 -> androidx.recyclerview.widget.ItemTouchHelper$3:
+    635:635:void <init>(androidx.recyclerview.widget.ItemTouchHelper,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,float,float,float,float,int,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> <init>
+    638:660:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.recyclerview.widget.ItemTouchHelper$4 -> androidx.recyclerview.widget.ItemTouchHelper$4:
+    700:700:void <init>(androidx.recyclerview.widget.ItemTouchHelper,androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation,int) -> <init>
+    703:717:void run() -> run
+androidx.recyclerview.widget.ItemTouchHelper$5 -> androidx.recyclerview.widget.ItemTouchHelper$5:
+    1294:1294:void <init>(androidx.recyclerview.widget.ItemTouchHelper) -> <init>
+    1297:1308:int onGetChildDrawingOrder(int,int) -> onGetChildDrawingOrder
+androidx.recyclerview.widget.ItemTouchHelper$Callback -> androidx.recyclerview.widget.ItemTouchHelper$Callback:
+    1401:1408:void <clinit>() -> <clinit>
+    1385:1421:void <init>() -> <init>
+    1626:1626:boolean canDropOver(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> canDropOver
+    1802:1853:androidx.recyclerview.widget.RecyclerView$ViewHolder chooseDropTarget(androidx.recyclerview.widget.RecyclerView$ViewHolder,java.util.List,int,int) -> chooseDropTarget
+    2038:2039:void clearView(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> clearView
+    1573:1588:int convertToAbsoluteDirection(int,int) -> convertToAbsoluteDirection
+    1482:1497:int convertToRelativeDirection(int,int) -> convertToRelativeDirection
+    1593:1594:int getAbsoluteMovementFlags(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getAbsoluteMovementFlags
+    2132:2138:long getAnimationDuration(androidx.recyclerview.widget.RecyclerView,int,float,float) -> getAnimationDuration
+    1690:1690:int getBoundingBoxMargin() -> getBoundingBoxMargin
+    1466:1466:androidx.recyclerview.widget.ItemTouchUIUtil getDefaultUIUtil() -> getDefaultUIUtil
+    1901:1905:int getMaxDragScroll(androidx.recyclerview.widget.RecyclerView) -> getMaxDragScroll
+    1720:1720:float getMoveThreshold(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getMoveThreshold
+    1746:1746:float getSwipeEscapeVelocity(float) -> getSwipeEscapeVelocity
+    1706:1706:float getSwipeThreshold(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getSwipeThreshold
+    1770:1770:float getSwipeVelocityThreshold(float) -> getSwipeVelocityThreshold
+    1598:1599:boolean hasDragFlag(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> hasDragFlag
+    1604:1605:boolean hasSwipeFlag(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> hasSwipeFlag
+    2166:2184:int interpolateOutOfBoundsScroll(androidx.recyclerview.widget.RecyclerView,int,int,int,long) -> interpolateOutOfBoundsScroll
+    1678:1678:boolean isItemViewSwipeEnabled() -> isItemViewSwipeEnabled
+    1663:1663:boolean isLongPressDragEnabled() -> isLongPressDragEnabled
+    1529:1529:int makeFlag(int,int) -> makeFlag
+    1512:1514:int makeMovementFlags(int,int) -> makeMovementFlags
+    2071:2073:void onChildDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,float,float,int,boolean) -> onChildDraw
+    2105:2107:void onChildDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,float,float,int,boolean) -> onChildDrawOver
+    1978:1992:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,java.util.List,int,float,float) -> onDraw
+    1997:2022:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,java.util.List,int,float,float) -> onDrawOver
+    1944:1973:void onMoved(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int) -> onMoved
+    1895:1898:void onSelectedChanged(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onSelectedChanged
+androidx.recyclerview.widget.ItemTouchHelper$Callback$1 -> androidx.recyclerview.widget.ItemTouchHelper$Callback$1:
+    1401:1401:void <init>() -> <init>
+    1404:1404:float getInterpolation(float) -> getInterpolation
+androidx.recyclerview.widget.ItemTouchHelper$Callback$2 -> androidx.recyclerview.widget.ItemTouchHelper$Callback$2:
+    1408:1408:void <init>() -> <init>
+    1411:1412:float getInterpolation(float) -> getInterpolation
+androidx.recyclerview.widget.ItemTouchHelper$ItemTouchHelperGestureListener -> androidx.recyclerview.widget.ItemTouchHelper$ItemTouchHelperGestureListener:
+    2314:2317:void <init>(androidx.recyclerview.widget.ItemTouchHelper) -> <init>
+    2324:2325:void doNotReactToLongPress() -> doNotReactToLongPress
+    2329:2329:boolean onDown(android.view.MotionEvent) -> onDown
+    2334:2365:void onLongPress(android.view.MotionEvent) -> onLongPress
+androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation -> androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation:
+    2394:2420:void <init>(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,float,float,float,float) -> <init>
+    2432:2433:void cancel() -> cancel
+    2471:2472:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    2463:2467:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    2477:2477:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    2459:2459:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    2423:2424:void setDuration(long) -> setDuration
+    2436:2437:void setFraction(float) -> setFraction
+    2427:2429:void start() -> start
+    2444:2454:void update() -> update
+androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation$1 -> androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation$1:
+    2411:2411:void <init>(androidx.recyclerview.widget.ItemTouchHelper$RecoverAnimation) -> <init>
+    2414:2415:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+androidx.recyclerview.widget.ItemTouchHelper$SimpleCallback -> androidx.recyclerview.widget.ItemTouchHelper$SimpleCallback:
+    2233:2236:void <init>(int,int) -> <init>
+    2287:2287:int getDragDirs(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getDragDirs
+    2293:2294:int getMovementFlags(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getMovementFlags
+    2272:2272:int getSwipeDirs(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getSwipeDirs
+    2257:2258:void setDefaultDragDirs(int) -> setDefaultDragDirs
+    2246:2247:void setDefaultSwipeDirs(int) -> setDefaultSwipeDirs
+androidx.recyclerview.widget.ItemTouchUIUtilImpl -> androidx.recyclerview.widget.ItemTouchUIUtilImpl:
+    31:31:void <clinit>() -> <clinit>
+    30:30:void <init>() -> <init>
+    75:85:void clearView(android.view.View) -> clearView
+    53:65:float findMaxElevation(androidx.recyclerview.widget.RecyclerView,android.view.View) -> findMaxElevation
+    36:50:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,android.view.View,float,float,int,boolean) -> onDraw
+    71:71:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,android.view.View,float,float,int,boolean) -> onDrawOver
+    89:89:void onSelected(android.view.View) -> onSelected
+androidx.recyclerview.widget.LayoutState -> androidx.recyclerview.widget.LayoutState:
+    25:72:void <init>() -> <init>
+    88:88:boolean hasMore(androidx.recyclerview.widget.RecyclerView$State) -> hasMore
+    98:100:android.view.View next(androidx.recyclerview.widget.RecyclerView$Recycler) -> next
+    105:105:java.lang.String toString() -> toString
+androidx.recyclerview.widget.LinearLayoutManager -> androidx.recyclerview.widget.LinearLayoutManager:
+    159:160:void <init>(android.content.Context) -> <init>
+    67:172:void <init>(android.content.Context,int,boolean) -> <init>
+    67:188:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    1409:1412:void assertNotInLayoutOrScroll(java.lang.String) -> assertNotInLayoutOrScroll
+    482:497:void calculateExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView$State,int[]) -> calculateExtraLayoutSpace
+    295:295:boolean canScrollHorizontally() -> canScrollHorizontally
+    303:303:boolean canScrollVertically() -> canScrollVertically
+    1368:1379:void collectAdjacentPrefetchPositions(int,int,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectAdjacentPrefetchPositions
+    1288:1314:void collectInitialPrefetchPositions(int,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectInitialPrefetchPositions
+    1277:1281:void collectPrefetchPositionsForLayoutState(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$LayoutState,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectPrefetchPositionsForLayoutState
+    1143:1143:int computeHorizontalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollExtent
+    1133:1133:int computeHorizontalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollOffset
+    1153:1153:int computeHorizontalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollRange
+    1173:1179:int computeScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollExtent
+    1162:1168:int computeScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollOffset
+    1184:1190:int computeScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollRange
+    510:518:android.graphics.PointF computeScrollVectorForPosition(int) -> computeScrollVectorForPosition
+    1148:1148:int computeVerticalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollExtent
+    1138:1138:int computeVerticalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollOffset
+    1158:1158:int computeVerticalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollRange
+    1716:1749:int convertFocusDirectionToLayoutDirection(int) -> convertFocusDirectionToLayoutDirection
+    1051:1051:androidx.recyclerview.widget.LinearLayoutManager$LayoutState createLayoutState() -> createLayoutState
+    1040:1043:void ensureLayoutState() -> ensureLayoutState
+    1572:1622:int fill(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.LinearLayoutManager$LayoutState,androidx.recyclerview.widget.RecyclerView$State,boolean) -> fill
+    1940:1941:int findFirstCompletelyVisibleItemPosition() -> findFirstCompletelyVisibleItemPosition
+    1897:1897:android.view.View findFirstPartiallyOrCompletelyInvisibleChild() -> findFirstPartiallyOrCompletelyInvisibleChild
+    1845:1845:android.view.View findFirstReferenceChild(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> findFirstReferenceChild
+    1801:1805:android.view.View findFirstVisibleChildClosestToEnd(boolean,boolean) -> findFirstVisibleChildClosestToEnd
+    1783:1787:android.view.View findFirstVisibleChildClosestToStart(boolean,boolean) -> findFirstVisibleChildClosestToStart
+    1923:1924:int findFirstVisibleItemPosition() -> findFirstVisibleItemPosition
+    1980:1981:int findLastCompletelyVisibleItemPosition() -> findLastCompletelyVisibleItemPosition
+    1901:1901:android.view.View findLastPartiallyOrCompletelyInvisibleChild() -> findLastPartiallyOrCompletelyInvisibleChild
+    1849:1849:android.view.View findLastReferenceChild(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> findLastReferenceChild
+    1963:1964:int findLastVisibleItemPosition() -> findLastVisibleItemPosition
+    2012:2034:android.view.View findOnePartiallyOrCompletelyInvisibleChild(int,int) -> findOnePartiallyOrCompletelyInvisibleChild
+    1990:2007:android.view.View findOneVisibleChild(int,int,boolean,boolean) -> findOneVisibleChild
+    1885:1886:android.view.View findPartiallyOrCompletelyInvisibleChildClosestToEnd() -> findPartiallyOrCompletelyInvisibleChildClosestToEnd
+    1892:1893:android.view.View findPartiallyOrCompletelyInvisibleChildClosestToStart() -> findPartiallyOrCompletelyInvisibleChildClosestToStart
+    1855:1879:android.view.View findReferenceChild(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,int,int) -> findReferenceChild
+    1823:1824:android.view.View findReferenceChildClosestToEnd(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> findReferenceChildClosestToEnd
+    1840:1841:android.view.View findReferenceChildClosestToStart(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> findReferenceChildClosestToStart
+    407:420:android.view.View findViewByPosition(int) -> findViewByPosition
+    961:978:int fixLayoutEndGap(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,boolean) -> fixLayoutEndGap
+    986:1003:int fixLayoutStartGap(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,boolean) -> fixLayoutStartGap
+    200:200:androidx.recyclerview.widget.RecyclerView$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1771:1771:android.view.View getChildClosestToEnd() -> getChildClosestToEnd
+    1761:1761:android.view.View getChildClosestToStart() -> getChildClosestToStart
+    447:450:int getExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView$State) -> getExtraLayoutSpace
+    1362:1362:int getInitialPrefetchItemCount() -> getInitialPrefetchItemCount
+    330:330:int getOrientation() -> getOrientation
+    212:212:boolean getRecycleChildrenOnDetach() -> getRecycleChildrenOnDetach
+    376:376:boolean getReverseLayout() -> getReverseLayout
+    319:319:boolean getStackFromEnd() -> getStackFromEnd
+    192:192:boolean isAutoMeasureEnabled() -> isAutoMeasureEnabled
+    1036:1036:boolean isLayoutRTL() -> isLayoutRTL
+    1223:1223:boolean isSmoothScrollbarEnabled() -> isSmoothScrollbarEnabled
+    1627:1696:void layoutChunk(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$LayoutState,androidx.recyclerview.widget.LinearLayoutManager$LayoutChunkResult) -> layoutChunk
+    755:802:void layoutForPredictiveAnimations(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,int) -> layoutForPredictiveAnimations
+    2089:2096:void logChildren() -> logChildren
+    743:743:void onAnchorReady(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo,int) -> onAnchorReady
+    234:239:void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$Recycler) -> onDetachedFromWindow
+    2041:2081:android.view.View onFocusSearchFailed(android.view.View,int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onFocusSearchFailed
+    243:248:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    537:721:void onLayoutChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onLayoutChildren
+    725:730:void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView$State) -> onLayoutCompleted
+    279:288:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    252:274:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    2160:2187:void prepareForDrop(android.view.View,android.view.View,int,int) -> prepareForDrop
+    1546:1556:void recycleByLayoutState(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.LinearLayoutManager$LayoutState) -> recycleByLayoutState
+    1421:1436:void recycleChildren(androidx.recyclerview.widget.RecyclerView$Recycler,int,int) -> recycleChildren
+    1502:1532:void recycleViewsFromEnd(androidx.recyclerview.widget.RecyclerView$Recycler,int,int) -> recycleViewsFromEnd
+    1453:1484:void recycleViewsFromStart(androidx.recyclerview.widget.RecyclerView$Recycler,int,int) -> recycleViewsFromStart
+    1271:1272:boolean resolveIsInfinite() -> resolveIsInfinite
+    362:367:void resolveShouldLayoutReverse() -> resolveShouldLayoutReverse
+    1382:1404:int scrollBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollBy
+    1113:1116:int scrollHorizontallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollHorizontallyBy
+    1070:1076:void scrollToPosition(int) -> scrollToPosition
+    1098:1104:void scrollToPositionWithOffset(int,int) -> scrollToPositionWithOffset
+    1125:1128:int scrollVerticallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollVerticallyBy
+    1346:1347:void setInitialPrefetchItemCount(int) -> setInitialPrefetchItemCount
+    340:353:void setOrientation(int) -> setOrientation
+    229:230:void setRecycleChildrenOnDetach(boolean) -> setRecycleChildrenOnDetach
+    394:400:void setReverseLayout(boolean) -> setReverseLayout
+    1212:1213:void setSmoothScrollbarEnabled(boolean) -> setSmoothScrollbarEnabled
+    310:316:void setStackFromEnd(boolean) -> setStackFromEnd
+    1700:1702:boolean shouldMeasureTwice() -> shouldMeasureTwice
+    502:506:void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State,int) -> smoothScrollToPosition
+    2150:2150:boolean supportsPredictiveItemAnimations() -> supportsPredictiveItemAnimations
+    834:867:boolean updateAnchorFromChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo) -> updateAnchorFromChildren
+    875:953:boolean updateAnchorFromPendingData(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo) -> updateAnchorFromPendingData
+    806:824:void updateAnchorInfoForLayout(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo) -> updateAnchorInfoForLayout
+    1229:1268:void updateLayoutState(int,int,boolean,androidx.recyclerview.widget.RecyclerView$State) -> updateLayoutState
+    1007:1008:void updateLayoutStateToFillEnd(androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo) -> updateLayoutStateToFillEnd
+    1011:1018:void updateLayoutStateToFillEnd(int,int) -> updateLayoutStateToFillEnd
+    1021:1022:void updateLayoutStateToFillStart(androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo) -> updateLayoutStateToFillStart
+    1025:1033:void updateLayoutStateToFillStart(int,int) -> updateLayoutStateToFillStart
+    2109:2146:void validateChildOrder() -> validateChildOrder
+androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo -> androidx.recyclerview.widget.LinearLayoutManager$AnchorInfo:
+    2453:2455:void <init>() -> <init>
+    2469:2472:void assignCoordinateFromPadding() -> assignCoordinateFromPadding
+    2538:2546:void assignFromView(android.view.View,int) -> assignFromView
+    2491:2535:void assignFromViewAndKeepVisibleRect(android.view.View,int) -> assignFromViewAndKeepVisibleRect
+    2485:2487:boolean isViewValidAsAnchor(android.view.View,androidx.recyclerview.widget.RecyclerView$State) -> isViewValidAsAnchor
+    2458:2462:void reset() -> reset
+    2476:2476:java.lang.String toString() -> toString
+androidx.recyclerview.widget.LinearLayoutManager$LayoutChunkResult -> androidx.recyclerview.widget.LinearLayoutManager$LayoutChunkResult:
+    2549:2549:void <init>() -> <init>
+    2556:2560:void resetInternal() -> resetInternal
+androidx.recyclerview.widget.LinearLayoutManager$LayoutState -> androidx.recyclerview.widget.LinearLayoutManager$LayoutState:
+    2193:2279:void <init>() -> <init>
+    2332:2333:void assignPositionFromScrapList() -> assignPositionFromScrapList
+    2336:2343:void assignPositionFromScrapList(android.view.View) -> assignPositionFromScrapList
+    2290:2290:boolean hasMore(androidx.recyclerview.widget.RecyclerView$State) -> hasMore
+    2375:2377:void log() -> log
+    2300:2305:android.view.View next(androidx.recyclerview.widget.RecyclerView$Recycler) -> next
+    2316:2328:android.view.View nextViewFromScrapList() -> nextViewFromScrapList
+    2346:2371:android.view.View nextViewInLimitedList(android.view.View) -> nextViewInLimitedList
+androidx.recyclerview.widget.LinearLayoutManager$SavedState -> androidx.recyclerview.widget.LinearLayoutManager$SavedState:
+    2429:2429:void <clinit>() -> <clinit>
+    2393:2395:void <init>() -> <init>
+    2397:2401:void <init>(android.os.Parcel) -> <init>
+    2403:2407:void <init>(androidx.recyclerview.widget.LinearLayoutManager$SavedState) -> <init>
+    2419:2419:int describeContents() -> describeContents
+    2410:2410:boolean hasValidAnchor() -> hasValidAnchor
+    2414:2415:void invalidateAnchor() -> invalidateAnchor
+    2424:2427:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.recyclerview.widget.LinearLayoutManager$SavedState$1 -> androidx.recyclerview.widget.LinearLayoutManager$SavedState$1:
+    2430:2430:void <init>() -> <init>
+    2430:2430:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2433:2433:androidx.recyclerview.widget.LinearLayoutManager$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    2430:2430:java.lang.Object[] newArray(int) -> newArray
+    2438:2438:androidx.recyclerview.widget.LinearLayoutManager$SavedState[] newArray(int) -> newArray
+androidx.recyclerview.widget.LinearSmoothScroller -> androidx.recyclerview.widget.LinearSmoothScroller:
+    79:95:void <init>(android.content.Context) -> <init>
+    280:299:int calculateDtToFit(int,int,int,int,int) -> calculateDtToFit
+    339:349:int calculateDxToMakeVisible(android.view.View,int) -> calculateDxToMakeVisible
+    314:324:int calculateDyToMakeVisible(android.view.View,int) -> calculateDyToMakeVisible
+    166:166:float calculateSpeedPerPixel(android.util.DisplayMetrics) -> calculateSpeedPerPixel
+    191:191:int calculateTimeForDeceleration(int) -> calculateTimeForDeceleration
+    205:205:int calculateTimeForScrolling(int) -> calculateTimeForScrolling
+    266:271:int clampApplyScroll(int,int) -> clampApplyScroll
+    218:218:int getHorizontalSnapPreference() -> getHorizontalSnapPreference
+    170:174:float getSpeedPerPixel() -> getSpeedPerPixel
+    232:232:int getVerticalSnapPreference() -> getVerticalSnapPreference
+    127:144:void onSeekTargetStep(int,int,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action) -> onSeekTargetStep
+    103:103:void onStart() -> onStart
+    151:153:void onStop() -> onStop
+    110:117:void onTargetFound(android.view.View,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action) -> onTargetFound
+    244:263:void updateActionForInterimTarget(androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action) -> updateActionForInterimTarget
+androidx.recyclerview.widget.LinearSnapHelper -> androidx.recyclerview.widget.LinearSnapHelper:
+    33:33:void <init>() -> <init>
+    46:60:int[] calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView$LayoutManager,android.view.View) -> calculateDistanceToFinalSnap
+    223:258:float computeDistancePerChild(androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.OrientationHelper) -> computeDistancePerChild
+    143:146:int distanceToCenter(androidx.recyclerview.widget.RecyclerView$LayoutManager,android.view.View,androidx.recyclerview.widget.OrientationHelper) -> distanceToCenter
+    162:169:int estimateNextPositionDiffForFling(androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.OrientationHelper,int,int) -> estimateNextPositionDiffForFling
+    184:205:android.view.View findCenterView(androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.OrientationHelper) -> findCenterView
+    133:138:android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> findSnapView
+    66:128:int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView$LayoutManager,int,int) -> findTargetSnapPosition
+    272:275:androidx.recyclerview.widget.OrientationHelper getHorizontalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> getHorizontalHelper
+    263:266:androidx.recyclerview.widget.OrientationHelper getVerticalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> getVerticalHelper
+androidx.recyclerview.widget.ListAdapter -> androidx.recyclerview.widget.ListAdapter:
+    97:111:void <init>(androidx.recyclerview.widget.DiffUtil$ItemCallback) -> <init>
+    97:117:void <init>(androidx.recyclerview.widget.AsyncDifferConfig) -> <init>
+    173:173:java.util.List getCurrentList() -> getCurrentList
+    150:150:java.lang.Object getItem(int) -> getItem
+    155:155:int getItemCount() -> getItemCount
+    189:189:void onCurrentListChanged(java.util.List,java.util.List) -> onCurrentListChanged
+    128:129:void submitList(java.util.List) -> submitList
+    146:147:void submitList(java.util.List,java.lang.Runnable) -> submitList
+androidx.recyclerview.widget.ListAdapter$1 -> androidx.recyclerview.widget.ListAdapter$1:
+    98:98:void <init>(androidx.recyclerview.widget.ListAdapter) -> <init>
+    102:103:void onCurrentListChanged(java.util.List,java.util.List) -> onCurrentListChanged
+androidx.recyclerview.widget.MessageThreadUtil -> androidx.recyclerview.widget.MessageThreadUtil:
+    27:27:void <init>() -> <init>
+    88:88:androidx.recyclerview.widget.ThreadUtil$BackgroundCallback getBackgroundProxy(androidx.recyclerview.widget.ThreadUtil$BackgroundCallback) -> getBackgroundProxy
+    31:31:androidx.recyclerview.widget.ThreadUtil$MainThreadCallback getMainThreadProxy(androidx.recyclerview.widget.ThreadUtil$MainThreadCallback) -> getMainThreadProxy
+androidx.recyclerview.widget.MessageThreadUtil$1 -> androidx.recyclerview.widget.MessageThreadUtil$1:
+    31:59:void <init>(androidx.recyclerview.widget.MessageThreadUtil,androidx.recyclerview.widget.ThreadUtil$MainThreadCallback) -> <init>
+    46:47:void addTile(int,androidx.recyclerview.widget.TileList$Tile) -> addTile
+    51:52:void removeTile(int,int) -> removeTile
+    55:57:void sendMessage(androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem) -> sendMessage
+    41:42:void updateItemCount(int,int) -> updateItemCount
+androidx.recyclerview.widget.MessageThreadUtil$1$1 -> androidx.recyclerview.widget.MessageThreadUtil$1$1:
+    59:59:void <init>(androidx.recyclerview.widget.MessageThreadUtil$1) -> <init>
+    62:81:void run() -> run
+androidx.recyclerview.widget.MessageThreadUtil$2 -> androidx.recyclerview.widget.MessageThreadUtil$2:
+    88:136:void <init>(androidx.recyclerview.widget.MessageThreadUtil,androidx.recyclerview.widget.ThreadUtil$BackgroundCallback) -> <init>
+    112:113:void loadTile(int,int) -> loadTile
+    131:134:void maybeExecuteBackgroundRunnable() -> maybeExecuteBackgroundRunnable
+    117:118:void recycleTile(androidx.recyclerview.widget.TileList$Tile) -> recycleTile
+    100:101:void refresh(int) -> refresh
+    121:123:void sendMessage(androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem) -> sendMessage
+    126:128:void sendMessageAtFrontOfQueue(androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem) -> sendMessageAtFrontOfQueue
+    106:108:void updateRange(int,int,int,int,int) -> updateRange
+androidx.recyclerview.widget.MessageThreadUtil$2$1 -> androidx.recyclerview.widget.MessageThreadUtil$2$1:
+    136:136:void <init>(androidx.recyclerview.widget.MessageThreadUtil$2) -> <init>
+    140:168:void run() -> run
+androidx.recyclerview.widget.MessageThreadUtil$MessageQueue -> androidx.recyclerview.widget.MessageThreadUtil$MessageQueue:
+    233:233:void <init>() -> <init>
+    237:243:androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem next() -> next
+    263:283:void removeMessages(int) -> removeMessages
+    251:261:void sendMessage(androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem) -> sendMessage
+    246:249:void sendMessageAtFrontOfQueue(androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem) -> sendMessageAtFrontOfQueue
+androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem -> androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem:
+    180:180:void <clinit>() -> <clinit>
+    177:177:void <init>() -> <init>
+    204:221:androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem obtainMessage(int,int,int,int,int,int,java.lang.Object) -> obtainMessage
+    225:225:androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem obtainMessage(int,int,int) -> obtainMessage
+    229:229:androidx.recyclerview.widget.MessageThreadUtil$SyncQueueItem obtainMessage(int,int,java.lang.Object) -> obtainMessage
+    191:200:void recycle() -> recycle
+androidx.recyclerview.widget.OpReorderer -> androidx.recyclerview.widget.OpReorderer:
+    25:27:void <init>(androidx.recyclerview.widget.OpReorderer$Callback) -> <init>
+    213:224:int getLastMoveOutOfOrder(java.util.List) -> getLastMoveOutOfOrder
+    33:36:void reorderOps(java.util.List) -> reorderOps
+    155:172:void swapMoveAdd(java.util.List,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> swapMoveAdd
+    39:52:void swapMoveOp(java.util.List,int,int) -> swapMoveOp
+    56:151:void swapMoveRemove(java.util.List,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> swapMoveRemove
+    176:210:void swapMoveUpdate(java.util.List,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp,int,androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> swapMoveUpdate
+androidx.recyclerview.widget.OrientationHelper -> androidx.recyclerview.widget.OrientationHelper:
+    32:32:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.OrientationHelper$1) -> <init>
+    42:48:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> <init>
+    258:258:androidx.recyclerview.widget.OrientationHelper createHorizontalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> createHorizontalHelper
+    241:247:androidx.recyclerview.widget.OrientationHelper createOrientationHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager,int) -> createOrientationHelper
+    356:356:androidx.recyclerview.widget.OrientationHelper createVerticalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> createVerticalHelper
+    55:55:androidx.recyclerview.widget.RecyclerView$LayoutManager getLayoutManager() -> getLayoutManager
+    78:78:int getTotalSpaceChange() -> getTotalSpaceChange
+    64:65:void onLayoutComplete() -> onLayoutComplete
+androidx.recyclerview.widget.OrientationHelper$1 -> androidx.recyclerview.widget.OrientationHelper$1:
+    258:258:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> <init>
+    297:299:int getDecoratedEnd(android.view.View) -> getDecoratedEnd
+    281:283:int getDecoratedMeasurement(android.view.View) -> getDecoratedMeasurement
+    289:291:int getDecoratedMeasurementInOther(android.view.View) -> getDecoratedMeasurementInOther
+    304:306:int getDecoratedStart(android.view.View) -> getDecoratedStart
+    266:266:int getEnd() -> getEnd
+    261:261:int getEndAfterPadding() -> getEndAfterPadding
+    334:334:int getEndPadding() -> getEndPadding
+    339:339:int getMode() -> getMode
+    344:344:int getModeInOther() -> getModeInOther
+    276:276:int getStartAfterPadding() -> getStartAfterPadding
+    323:324:int getTotalSpace() -> getTotalSpace
+    311:312:int getTransformedEndWithDecoration(android.view.View) -> getTransformedEndWithDecoration
+    317:318:int getTransformedStartWithDecoration(android.view.View) -> getTransformedStartWithDecoration
+    329:330:void offsetChild(android.view.View,int) -> offsetChild
+    271:272:void offsetChildren(int) -> offsetChildren
+androidx.recyclerview.widget.OrientationHelper$2 -> androidx.recyclerview.widget.OrientationHelper$2:
+    356:356:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> <init>
+    395:397:int getDecoratedEnd(android.view.View) -> getDecoratedEnd
+    379:381:int getDecoratedMeasurement(android.view.View) -> getDecoratedMeasurement
+    387:389:int getDecoratedMeasurementInOther(android.view.View) -> getDecoratedMeasurementInOther
+    402:404:int getDecoratedStart(android.view.View) -> getDecoratedStart
+    364:364:int getEnd() -> getEnd
+    359:359:int getEndAfterPadding() -> getEndAfterPadding
+    432:432:int getEndPadding() -> getEndPadding
+    437:437:int getMode() -> getMode
+    442:442:int getModeInOther() -> getModeInOther
+    374:374:int getStartAfterPadding() -> getStartAfterPadding
+    421:422:int getTotalSpace() -> getTotalSpace
+    409:410:int getTransformedEndWithDecoration(android.view.View) -> getTransformedEndWithDecoration
+    415:416:int getTransformedStartWithDecoration(android.view.View) -> getTransformedStartWithDecoration
+    427:428:void offsetChild(android.view.View,int) -> offsetChild
+    369:370:void offsetChildren(int) -> offsetChildren
+androidx.recyclerview.widget.PagerSnapHelper -> androidx.recyclerview.widget.PagerSnapHelper:
+    38:38:void <init>() -> <init>
+    51:65:int[] calculateDistanceToFinalSnap(androidx.recyclerview.widget.RecyclerView$LayoutManager,android.view.View) -> calculateDistanceToFinalSnap
+    169:172:androidx.recyclerview.widget.LinearSmoothScroller createSnapScroller(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> createSnapScroller
+    199:202:int distanceToCenter(androidx.recyclerview.widget.RecyclerView$LayoutManager,android.view.View,androidx.recyclerview.widget.OrientationHelper) -> distanceToCenter
+    217:238:android.view.View findCenterView(androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.OrientationHelper) -> findCenterView
+    71:76:android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> findSnapView
+    82:142:int findTargetSnapPosition(androidx.recyclerview.widget.RecyclerView$LayoutManager,int,int) -> findTargetSnapPosition
+    263:266:androidx.recyclerview.widget.OrientationHelper getHorizontalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> getHorizontalHelper
+    243:248:androidx.recyclerview.widget.OrientationHelper getOrientationHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> getOrientationHelper
+    254:257:androidx.recyclerview.widget.OrientationHelper getVerticalHelper(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> getVerticalHelper
+    147:150:boolean isForwardFling(androidx.recyclerview.widget.RecyclerView$LayoutManager,int,int) -> isForwardFling
+    155:164:boolean isReverseLayout(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> isReverseLayout
+androidx.recyclerview.widget.PagerSnapHelper$1 -> androidx.recyclerview.widget.PagerSnapHelper$1:
+    172:172:void <init>(androidx.recyclerview.widget.PagerSnapHelper,android.content.Context) -> <init>
+    187:187:float calculateSpeedPerPixel(android.util.DisplayMetrics) -> calculateSpeedPerPixel
+    192:192:int calculateTimeForScrolling(int) -> calculateTimeForScrolling
+    175:183:void onTargetFound(android.view.View,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action) -> onTargetFound
+androidx.recyclerview.widget.RecyclerView -> androidx.recyclerview.widget.RecyclerView:
+    219:598:void <clinit>() -> <clinit>
+    646:647:void <init>(android.content.Context) -> <init>
+    650:651:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    365:726:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    2603:2630:void absorbGlows(int,int) -> absorbGlows
+    210:210:void access$000(androidx.recyclerview.widget.RecyclerView,android.view.View,int,android.view.ViewGroup$LayoutParams) -> access$000
+    210:210:void access$100(androidx.recyclerview.widget.RecyclerView,int) -> access$100
+    210:210:boolean access$200(androidx.recyclerview.widget.RecyclerView) -> access$200
+    210:210:void access$300(androidx.recyclerview.widget.RecyclerView,int,int) -> access$300
+    1431:1442:void addAnimatingView(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> addAnimatingView
+    2943:2946:void addFocusables(java.util.ArrayList,int,int) -> addFocusables
+    1568:1582:void addItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration,int) -> addItemDecoration
+    1597:1598:void addItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration) -> addItemDecoration
+    1273:1277:void addOnChildAttachStateChangeListener(androidx.recyclerview.widget.RecyclerView$OnChildAttachStateChangeListener) -> addOnChildAttachStateChangeListener
+    3079:3080:void addOnItemTouchListener(androidx.recyclerview.widget.RecyclerView$OnItemTouchListener) -> addOnItemTouchListener
+    1706:1710:void addOnScrollListener(androidx.recyclerview.widget.RecyclerView$OnScrollListener) -> addOnScrollListener
+    4363:4367:void animateAppearance(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animateAppearance
+    4381:4399:void animateChange(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,boolean,boolean) -> animateChange
+    4371:4376:void animateDisappearance(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animateDisappearance
+    3030:3038:void assertInLayoutOrScroll(java.lang.String) -> assertInLayoutOrScroll
+    3048:3063:void assertNotInLayoutOrScroll(java.lang.String) -> assertNotInLayoutOrScroll
+    4674:4675:boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> canReuseUpdatedViewHolder
+    3443:3445:void cancelScroll() -> cancelScroll
+    4500:4500:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    5851:5867:void clearNestedRecyclerViewIfNotNested(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> clearNestedRecyclerViewIfNotNested
+    4554:4562:void clearOldPositions() -> clearOldPositions
+    1297:1300:void clearOnChildAttachStateChangeListeners() -> clearOnChildAttachStateChangeListeners
+    1727:1730:void clearOnScrollListeners() -> clearOnScrollListeners
+    2024:2027:int computeHorizontalScrollExtent() -> computeHorizontalScrollExtent
+    1999:2002:int computeHorizontalScrollOffset() -> computeHorizontalScrollOffset
+    2047:2050:int computeHorizontalScrollRange() -> computeHorizontalScrollRange
+    2096:2099:int computeVerticalScrollExtent() -> computeVerticalScrollExtent
+    2072:2075:int computeVerticalScrollOffset() -> computeVerticalScrollOffset
+    2119:2122:int computeVerticalScrollRange() -> computeVerticalScrollRange
+    2580:2600:void considerReleasingGlowsOnScroll(int,int) -> considerReleasingGlowsOnScroll
+    1865:1900:void consumePendingUpdateOperations() -> consumePendingUpdateOperations
+    782:832:void createLayoutManager(android.content.Context,java.lang.String,android.util.AttributeSet,int,int) -> createLayoutManager
+    3606:3614:void defaultOnMeasure(int,int) -> defaultOnMeasure
+    4327:4328:boolean didChildRangeChange(int,int) -> didChildRangeChange
+    7553:7564:void dispatchChildAttached(android.view.View) -> dispatchChildAttached
+    7538:7549:void dispatchChildDetached(android.view.View) -> dispatchChildDetached
+    3675:3683:void dispatchContentChangedIfNecessary() -> dispatchContentChangedIfNecessary
+    3837:3863:void dispatchLayout() -> dispatchLayout
+    4033:4118:void dispatchLayoutStep1() -> dispatchLayoutStep1
+    4125:4144:void dispatchLayoutStep2() -> dispatchLayoutStep2
+    4151:4235:void dispatchLayoutStep3() -> dispatchLayoutStep3
+    11601:11601:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    11606:11606:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    11589:11589:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    11595:11595:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    11569:11569:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    11576:11576:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    11583:11585:void dispatchNestedScroll(int,int,int,int,int[],int,int[]) -> dispatchNestedScroll
+    5196:5213:void dispatchOnScrollStateChanged(int) -> dispatchOnScrollStateChanged
+    5154:5177:void dispatchOnScrolled(int,int) -> dispatchOnScrolled
+    11480:11494:void dispatchPendingImportantForAccessibilityChanges() -> dispatchPendingImportantForAccessibilityChanges
+    3741:3742:boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    1419:1420:void dispatchRestoreInstanceState(android.util.SparseArray) -> dispatchRestoreInstanceState
+    1411:1412:void dispatchSaveInstanceState(android.util.SparseArray) -> dispatchSaveInstanceState
+    3118:3129:boolean dispatchToOnItemTouchListeners(android.view.MotionEvent) -> dispatchToOnItemTouchListeners
+    4429:4486:void draw(android.graphics.Canvas) -> draw
+    5030:5030:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    2673:2683:void ensureBottomGlow() -> ensureBottomGlow
+    2633:2643:void ensureLeftGlow() -> ensureLeftGlow
+    2646:2656:void ensureRightGlow() -> ensureRightGlow
+    2659:2670:void ensureTopGlow() -> ensureTopGlow
+    733:736:java.lang.String exceptionLabel() -> exceptionLabel
+    4015:4023:void fillRemainingScrollValues(androidx.recyclerview.widget.RecyclerView$State) -> fillRemainingScrollValues
+    5013:5025:android.view.View findChildViewUnder(float,float) -> findChildViewUnder
+    4792:4797:android.view.View findContainingItemView(android.view.View) -> findContainingItemView
+    4810:4811:androidx.recyclerview.widget.RecyclerView$ViewHolder findContainingViewHolder(android.view.View) -> findContainingViewHolder
+    3147:3156:boolean findInterceptingOnItemTouchListener(android.view.MotionEvent) -> findInterceptingOnItemTouchListener
+    4301:4324:void findMinMaxChildLayoutPositions(int[]) -> findMinMaxChildLayoutPositions
+    5829:5844:androidx.recyclerview.widget.RecyclerView findNestedRecyclerView(android.view.View) -> findNestedRecyclerView
+    3902:3925:android.view.View findNextViewToFocus() -> findNextViewToFocus
+    4924:4941:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForAdapterPosition(int) -> findViewHolderForAdapterPosition
+    4986:5001:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForItemId(long) -> findViewHolderForItemId
+    4902:4902:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForLayoutPosition(int) -> findViewHolderForLayoutPosition
+    4878:4878:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForPosition(int) -> findViewHolderForPosition
+    4946:4968:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolderForPosition(int,boolean) -> findViewHolderForPosition
+    2438:2485:boolean fling(int,int) -> fling
+    2748:2822:android.view.View focusSearch(android.view.View,int) -> focusSearch
+    4505:4508:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    4513:4516:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    4521:4524:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    774:774:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    1226:1226:androidx.recyclerview.widget.RecyclerView$Adapter getAdapter() -> getAdapter
+    11497:11502:int getAdapterPositionFor(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getAdapterPositionFor
+    1253:1256:int getBaseline() -> getBaseline
+    4358:4358:long getChangedHolderKey(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getChangedHolderKey
+    4838:4839:int getChildAdapterPosition(android.view.View) -> getChildAdapterPosition
+    13465:13468:int getChildDrawingOrder(int,int) -> getChildDrawingOrder
+    4864:4868:long getChildItemId(android.view.View) -> getChildItemId
+    4853:4854:int getChildLayoutPosition(android.view.View) -> getChildLayoutPosition
+    4828:4828:int getChildPosition(android.view.View) -> getChildPosition
+    4769:4774:androidx.recyclerview.widget.RecyclerView$ViewHolder getChildViewHolder(android.view.View) -> getChildViewHolder
+    4816:4819:androidx.recyclerview.widget.RecyclerView$ViewHolder getChildViewHolderInt(android.view.View) -> getChildViewHolderInt
+    1099:1099:boolean getClipToPadding() -> getClipToPadding
+    759:759:androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate getCompatAccessibilityDelegate() -> getCompatAccessibilityDelegate
+    5092:5093:void getDecoratedBoundsWithMargins(android.view.View,android.graphics.Rect) -> getDecoratedBoundsWithMargins
+    5096:5102:void getDecoratedBoundsWithMarginsInt(android.view.View,android.graphics.Rect) -> getDecoratedBoundsWithMarginsInt
+    4003:4011:int getDeepestFocusedViewWithId(android.view.View) -> getDeepestFocusedViewWithId
+    2713:2713:androidx.recyclerview.widget.RecyclerView$EdgeEffectFactory getEdgeEffectFactory() -> getEdgeEffectFactory
+    835:841:java.lang.String getFullClassName(android.content.Context,java.lang.String) -> getFullClassName
+    3756:3756:androidx.recyclerview.widget.RecyclerView$ItemAnimator getItemAnimator() -> getItemAnimator
+    5105:5126:android.graphics.Rect getItemDecorInsetsForChild(android.view.View) -> getItemDecorInsetsForChild
+    1609:1614:androidx.recyclerview.widget.RecyclerView$ItemDecoration getItemDecorationAt(int) -> getItemDecorationAt
+    1623:1623:int getItemDecorationCount() -> getItemDecorationCount
+    1474:1474:androidx.recyclerview.widget.RecyclerView$LayoutManager getLayoutManager() -> getLayoutManager
+    2523:2523:int getMaxFlingVelocity() -> getMaxFlingVelocity
+    2513:2513:int getMinFlingVelocity() -> getMinFlingVelocity
+    5876:5879:long getNanoTime() -> getNanoTime
+    1375:1375:androidx.recyclerview.widget.RecyclerView$OnFlingListener getOnFlingListener() -> getOnFlingListener
+    4741:4741:boolean getPreserveFocusAfterLayout() -> getPreserveFocusAfterLayout
+    1487:1487:androidx.recyclerview.widget.RecyclerView$RecycledViewPool getRecycledViewPool() -> getRecycledViewPool
+    1535:1535:int getScrollState() -> getScrollState
+    13495:13498:androidx.core.view.NestedScrollingChildHelper getScrollingChildHelper() -> getScrollingChildHelper
+    4255:4282:void handleMissingPreInfoForChangeError(long,androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> handleMissingPreInfoForChangeError
+    1070:1070:boolean hasFixedSize() -> hasFixedSize
+    11558:11558:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    11563:11563:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    5229:5230:boolean hasPendingAdapterUpdates() -> hasPendingAdapterUpdates
+    1906:1916:boolean hasUpdatedView() -> hasUpdatedView
+    968:1048:void initAdapterManager() -> initAdapterManager
+    747:751:void initAutofill() -> initAutofill
+    845:965:void initChildrenHelper() -> initChildrenHelper
+    11509:11522:void initFastScroller(android.graphics.drawable.StateListDrawable,android.graphics.drawable.Drawable,android.graphics.drawable.StateListDrawable,android.graphics.drawable.Drawable) -> initFastScroller
+    2686:2687:void invalidateGlows() -> invalidateGlows
+    4718:4727:void invalidateItemDecorations() -> invalidateItemDecorations
+    3671:3671:boolean isAccessibilityEnabled() -> isAccessibilityEnabled
+    4536:4536:boolean isAnimating() -> isAnimating
+    3019:3019:boolean isAttachedToWindow() -> isAttachedToWindow
+    3705:3705:boolean isComputingLayout() -> isComputingLayout
+    2281:2281:boolean isLayoutFrozen() -> isLayoutFrozen
+    2242:2242:boolean isLayoutSuppressed() -> isLayoutSuppressed
+    11533:11533:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    2834:2888:boolean isPreferredNextFocus(android.view.View,android.view.View,int) -> isPreferredNextFocus
+    1755:1764:void jumpToPositionForSmoothScroller(int) -> jumpToPositionForSmoothScroller
+    4419:4425:void markItemDecorInsetsDirty() -> markItemDecorInsetsDirty
+    4702:4711:void markKnownViewsInvalid() -> markKnownViewsInvalid
+    5078:5082:void offsetChildrenHorizontal(int) -> offsetChildrenHorizontal
+    5040:5044:void offsetChildrenVertical(int) -> offsetChildrenVertical
+    4599:4613:void offsetPositionRecordsForInsert(int,int) -> offsetPositionRecordsForInsert
+    4565:4596:void offsetPositionRecordsForMove(int,int) -> offsetPositionRecordsForMove
+    4617:4643:void offsetPositionRecordsForRemove(int,int,boolean) -> offsetPositionRecordsForRemove
+    2960:2990:void onAttachedToWindow() -> onAttachedToWindow
+    5057:5057:void onChildAttachedToWindow(android.view.View) -> onChildAttachedToWindow
+    5069:5069:void onChildDetachedFromWindow(android.view.View) -> onChildDetachedFromWindow
+    2994:3012:void onDetachedFromWindow() -> onDetachedFromWindow
+    4490:4496:void onDraw(android.graphics.Canvas) -> onDraw
+    3648:3649:void onEnterLayoutOrScroll() -> onEnterLayoutOrScroll
+    3652:3653:void onExitLayoutOrScroll() -> onExitLayoutOrScroll
+    3656:3668:void onExitLayoutOrScroll(boolean) -> onExitLayoutOrScroll
+    3460:3505:boolean onGenericMotionEvent(android.view.MotionEvent) -> onGenericMotionEvent
+    3161:3265:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    4403:4407:void onLayout(boolean,int,int,int,int) -> onLayout
+    3510:3597:void onMeasure(int,int) -> onMeasure
+    3448:3456:void onPointerUp(android.view.MotionEvent) -> onPointerUp
+    2950:2955:boolean onRequestFocusInDescendants(int,android.graphics.Rect) -> onRequestFocusInDescendants
+    1394:1404:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1380:1389:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    5191:5191:void onScrollStateChanged(int) -> onScrollStateChanged
+    5151:5151:void onScrolled(int,int) -> onScrolled
+    3618:3623:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    3280:3431:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    3764:3768:void postAnimationRunner() -> postAnimationRunner
+    3771:3771:boolean predictiveItemAnimationsEnabled() -> predictiveItemAnimationsEnabled
+    3781:3809:void processAdapterUpdatesAndSetAnimationFlags() -> processAdapterUpdatesAndSetAnimationFlags
+    4692:4695:void processDataSetCompletelyChanged(boolean) -> processDataSetCompletelyChanged
+    2530:2554:void pullGlows(float,float,float,float) -> pullGlows
+    4291:4298:void recordAnimationInfoIfBouncedHiddenView(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> recordAnimationInfoIfBouncedHiddenView
+    3929:4000:void recoverFocusFromState() -> recoverFocusFromState
+    2557:2577:void releaseGlows() -> releaseGlows
+    1171:1184:void removeAndRecycleViews() -> removeAndRecycleViews
+    1451:1463:boolean removeAnimatingView(android.view.View) -> removeAnimatingView
+    4334:4351:void removeDetachedView(android.view.View,boolean) -> removeDetachedView
+    1650:1660:void removeItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration) -> removeItemDecoration
+    1632:1638:void removeItemDecorationAt(int) -> removeItemDecorationAt
+    1286:1290:void removeOnChildAttachStateChangeListener(androidx.recyclerview.widget.RecyclerView$OnChildAttachStateChangeListener) -> removeOnChildAttachStateChangeListener
+    3088:3092:void removeOnItemTouchListener(androidx.recyclerview.widget.RecyclerView$OnItemTouchListener) -> removeOnItemTouchListener
+    1718:1721:void removeOnScrollListener(androidx.recyclerview.widget.RecyclerView$OnScrollListener) -> removeOnScrollListener
+    5513:5528:void repositionShadowingViews() -> repositionShadowingViews
+    2893:2897:void requestChildFocus(android.view.View,android.view.View) -> requestChildFocus
+    2909:2934:void requestChildOnScreen(android.view.View,android.view.View) -> requestChildOnScreen
+    2938:2938:boolean requestChildRectangleOnScreen(android.view.View,android.graphics.Rect,boolean) -> requestChildRectangleOnScreen
+    3270:3276:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    4411:4416:void requestLayout() -> requestLayout
+    3887:3890:void resetFocusInfo() -> resetFocusInfo
+    3435:3440:void resetScroll() -> resetScroll
+    3866:3884:void saveFocusInfo() -> saveFocusInfo
+    4540:4551:void saveOldPositions() -> saveOldPositions
+    1801:1814:void scrollBy(int,int) -> scrollBy
+    1931:1976:boolean scrollByInternal(int,int,android.view.MotionEvent) -> scrollByInternal
+    1829:1854:void scrollStep(int,int,int[]) -> scrollStep
+    1795:1797:void scrollTo(int,int) -> scrollTo
+    1741:1752:void scrollToPosition(int) -> scrollToPosition
+    3733:3737:void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent) -> sendAccessibilityEventUnchecked
+    768:770:void setAccessibilityDelegateCompat(androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate) -> setAccessibilityDelegateCompat
+    1160:1164:void setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> setAdapter
+    1197:1216:void setAdapterInternal(androidx.recyclerview.widget.RecyclerView$Adapter,boolean,boolean) -> setAdapterInternal
+    1676:1681:void setChildDrawingOrderCallback(androidx.recyclerview.widget.RecyclerView$ChildDrawingOrderCallback) -> setChildDrawingOrderCallback
+    11470:11476:boolean setChildImportantForAccessibilityInternal(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> setChildImportantForAccessibilityInternal
+    1075:1083:void setClipToPadding(boolean) -> setClipToPadding
+    2699:2702:void setEdgeEffectFactory(androidx.recyclerview.widget.RecyclerView$EdgeEffectFactory) -> setEdgeEffectFactory
+    1062:1063:void setHasFixedSize(boolean) -> setHasFixedSize
+    3637:3645:void setItemAnimator(androidx.recyclerview.widget.RecyclerView$ItemAnimator) -> setItemAnimator
+    1525:1526:void setItemViewCacheSize(int) -> setItemViewCacheSize
+    2271:2272:void setLayoutFrozen(boolean) -> setLayoutFrozen
+    1315:1354:void setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> setLayoutManager
+    2290:2317:void setLayoutTransition(android.animation.LayoutTransition) -> setLayoutTransition
+    11528:11529:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    1365:1366:void setOnFlingListener(androidx.recyclerview.widget.RecyclerView$OnFlingListener) -> setOnFlingListener
+    1693:1694:void setOnScrollListener(androidx.recyclerview.widget.RecyclerView$OnScrollListener) -> setOnScrollListener
+    4759:4760:void setPreserveFocusAfterLayout(boolean) -> setPreserveFocusAfterLayout
+    1499:1500:void setRecycledViewPool(androidx.recyclerview.widget.RecyclerView$RecycledViewPool) -> setRecycledViewPool
+    1240:1241:void setRecyclerListener(androidx.recyclerview.widget.RecyclerView$RecyclerListener) -> setRecyclerListener
+    1539:1551:void setScrollState(int) -> setScrollState
+    1112:1126:void setScrollingTouchSlop(int) -> setScrollingTouchSlop
+    1510:1511:void setViewCacheExtension(androidx.recyclerview.widget.RecyclerView$ViewCacheExtension) -> setViewCacheExtension
+    3717:3728:boolean shouldDeferAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> shouldDeferAccessibilityEvent
+    2326:2327:void smoothScrollBy(int,int) -> smoothScrollBy
+    2338:2339:void smoothScrollBy(int,int,android.view.animation.Interpolator) -> smoothScrollBy
+    2356:2357:void smoothScrollBy(int,int,android.view.animation.Interpolator,int) -> smoothScrollBy
+    2390:2422:void smoothScrollBy(int,int,android.view.animation.Interpolator,int,boolean) -> smoothScrollBy
+    1782:1791:void smoothScrollToPosition(int) -> smoothScrollToPosition
+    2137:2141:void startInterceptRequestLayout() -> startInterceptRequestLayout
+    11538:11538:boolean startNestedScroll(int) -> startNestedScroll
+    11543:11543:boolean startNestedScroll(int,int) -> startNestedScroll
+    2154:2185:void stopInterceptRequestLayout(boolean) -> stopInterceptRequestLayout
+    11548:11549:void stopNestedScroll() -> stopNestedScroll
+    11553:11554:void stopNestedScroll(int) -> stopNestedScroll
+    2493:2495:void stopScroll() -> stopScroll
+    2501:2505:void stopScrollersInternal() -> stopScrollersInternal
+    2214:2232:void suppressLayout(boolean) -> suppressLayout
+    1144:1148:void swapAdapter(androidx.recyclerview.widget.RecyclerView$Adapter,boolean) -> swapAdapter
+    4652:4671:void viewRangeUpdate(int,int,java.lang.Object) -> viewRangeUpdate
+androidx.recyclerview.widget.RecyclerView$1 -> androidx.recyclerview.widget.RecyclerView$1:
+    398:398:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    401:415:void run() -> run
+androidx.recyclerview.widget.RecyclerView$2 -> androidx.recyclerview.widget.RecyclerView$2:
+    588:588:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    591:595:void run() -> run
+androidx.recyclerview.widget.RecyclerView$3 -> androidx.recyclerview.widget.RecyclerView$3:
+    598:598:void <init>() -> <init>
+    601:602:float getInterpolation(float) -> getInterpolation
+androidx.recyclerview.widget.RecyclerView$4 -> androidx.recyclerview.widget.RecyclerView$4:
+    610:610:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    620:621:void processAppeared(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> processAppeared
+    614:616:void processDisappeared(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> processDisappeared
+    626:638:void processPersistent(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> processPersistent
+    641:642:void unused(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> unused
+androidx.recyclerview.widget.RecyclerView$5 -> androidx.recyclerview.widget.RecyclerView$5:
+    845:845:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    856:861:void addView(android.view.View,int) -> addView
+    916:928:void attachViewToParent(android.view.View,int,android.view.ViewGroup$LayoutParams) -> attachViewToParent
+    932:947:void detachViewFromParent(int) -> detachViewFromParent
+    890:890:android.view.View getChildAt(int) -> getChildAt
+    848:848:int getChildCount() -> getChildCount
+    910:910:androidx.recyclerview.widget.RecyclerView$ViewHolder getChildViewHolder(android.view.View) -> getChildViewHolder
+    865:865:int indexOfChild(android.view.View) -> indexOfChild
+    951:955:void onEnteredHiddenState(android.view.View) -> onEnteredHiddenState
+    959:963:void onLeftHiddenState(android.view.View) -> onLeftHiddenState
+    895:906:void removeAllViews() -> removeAllViews
+    870:886:void removeViewAt(int) -> removeViewAt
+androidx.recyclerview.widget.RecyclerView$6 -> androidx.recyclerview.widget.RecyclerView$6:
+    968:968:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    1013:1028:void dispatchUpdate(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> dispatchUpdate
+    971:983:androidx.recyclerview.widget.RecyclerView$ViewHolder findViewHolder(int) -> findViewHolder
+    1003:1005:void markViewHoldersUpdated(int,int,java.lang.Object) -> markViewHoldersUpdated
+    1037:1039:void offsetPositionsForAdd(int,int) -> offsetPositionsForAdd
+    1043:1046:void offsetPositionsForMove(int,int) -> offsetPositionsForMove
+    988:991:void offsetPositionsForRemovingInvisible(int,int) -> offsetPositionsForRemovingInvisible
+    996:998:void offsetPositionsForRemovingLaidOutOrNewView(int,int) -> offsetPositionsForRemovingLaidOutOrNewView
+    1009:1010:void onDispatchFirstPass(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> onDispatchFirstPass
+    1032:1033:void onDispatchSecondPass(androidx.recyclerview.widget.AdapterHelper$UpdateOp) -> onDispatchSecondPass
+androidx.recyclerview.widget.RecyclerView$Adapter -> androidx.recyclerview.widget.RecyclerView$Adapter:
+    6984:6986:void <init>() -> <init>
+    7099:7114:void bindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> bindViewHolder
+    7077:7088:androidx.recyclerview.widget.RecyclerView$ViewHolder createViewHolder(android.view.ViewGroup,int) -> createViewHolder
+    7157:7157:long getItemId(int) -> getItemId
+    7129:7129:int getItemViewType(int) -> getItemViewType
+    7267:7267:boolean hasObservers() -> hasObservers
+    7175:7175:boolean hasStableIds() -> hasStableIds
+    7354:7355:void notifyDataSetChanged() -> notifyDataSetChanged
+    7370:7371:void notifyItemChanged(int) -> notifyItemChanged
+    7398:7399:void notifyItemChanged(int,java.lang.Object) -> notifyItemChanged
+    7464:7465:void notifyItemInserted(int) -> notifyItemInserted
+    7479:7480:void notifyItemMoved(int,int) -> notifyItemMoved
+    7416:7417:void notifyItemRangeChanged(int,int) -> notifyItemRangeChanged
+    7447:7448:void notifyItemRangeChanged(int,int,java.lang.Object) -> notifyItemRangeChanged
+    7498:7499:void notifyItemRangeInserted(int,int) -> notifyItemRangeInserted
+    7532:7533:void notifyItemRangeRemoved(int,int) -> notifyItemRangeRemoved
+    7515:7516:void notifyItemRemoved(int) -> notifyItemRemoved
+    7313:7313:void onAttachedToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> onAttachedToRecyclerView
+    7065:7066:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,java.util.List) -> onBindViewHolder
+    7322:7322:void onDetachedFromRecyclerView(androidx.recyclerview.widget.RecyclerView) -> onDetachedFromRecyclerView
+    7233:7233:boolean onFailedToRecycleView(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onFailedToRecycleView
+    7247:7247:void onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewAttachedToWindow
+    7259:7259:void onViewDetachedFromWindow(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewDetachedFromWindow
+    7196:7196:void onViewRecycled(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewRecycled
+    7287:7288:void registerAdapterDataObserver(androidx.recyclerview.widget.RecyclerView$AdapterDataObserver) -> registerAdapterDataObserver
+    7141:7146:void setHasStableIds(boolean) -> setHasStableIds
+    7301:7302:void unregisterAdapterDataObserver(androidx.recyclerview.widget.RecyclerView$AdapterDataObserver) -> unregisterAdapterDataObserver
+androidx.recyclerview.widget.RecyclerView$AdapterDataObservable -> androidx.recyclerview.widget.RecyclerView$AdapterDataObservable:
+    12242:12242:void <init>() -> <init>
+    12244:12244:boolean hasObservers() -> hasObservers
+    12252:12255:void notifyChanged() -> notifyChanged
+    12293:12296:void notifyItemMoved(int,int) -> notifyItemMoved
+    12258:12259:void notifyItemRangeChanged(int,int) -> notifyItemRangeChanged
+    12267:12270:void notifyItemRangeChanged(int,int,java.lang.Object) -> notifyItemRangeChanged
+    12277:12280:void notifyItemRangeInserted(int,int) -> notifyItemRangeInserted
+    12287:12290:void notifyItemRangeRemoved(int,int) -> notifyItemRangeRemoved
+androidx.recyclerview.widget.RecyclerView$AdapterDataObserver -> androidx.recyclerview.widget.RecyclerView$AdapterDataObserver:
+    11721:11721:void <init>() -> <init>
+    11724:11724:void onChanged() -> onChanged
+    11728:11728:void onItemRangeChanged(int,int) -> onItemRangeChanged
+    11733:11734:void onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    11738:11738:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    11746:11746:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    11742:11742:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+androidx.recyclerview.widget.RecyclerView$EdgeEffectFactory -> androidx.recyclerview.widget.RecyclerView$EdgeEffectFactory:
+    5592:5592:void <init>() -> <init>
+    5623:5623:android.widget.EdgeEffect createEdgeEffect(androidx.recyclerview.widget.RecyclerView,int) -> createEdgeEffect
+androidx.recyclerview.widget.RecyclerView$ItemAnimator -> androidx.recyclerview.widget.RecyclerView$ItemAnimator:
+    12728:12791:void <init>() -> <init>
+    13113:13124:int buildAdapterChangeFlagsForAnimations(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> buildAdapterChangeFlagsForAnimations
+    13302:13302:boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> canReuseUpdatedViewHolder
+    13332:13332:boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,java.util.List) -> canReuseUpdatedViewHolder
+    13197:13201:void dispatchAnimationFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchAnimationFinished
+    13238:13239:void dispatchAnimationStarted(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchAnimationStarted
+    13340:13345:void dispatchAnimationsFinished() -> dispatchAnimationsFinished
+    12817:12817:long getAddDuration() -> getAddDuration
+    12853:12853:long getChangeDuration() -> getChangeDuration
+    12799:12799:long getMoveDuration() -> getMoveDuration
+    12835:12835:long getRemoveDuration() -> getRemoveDuration
+    13269:13277:boolean isRunning(androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemAnimatorFinishedListener) -> isRunning
+    13358:13358:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo obtainHolderInfo() -> obtainHolderInfo
+    13212:13212:void onAnimationFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onAnimationFinished
+    13250:13250:void onAnimationStarted(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onAnimationStarted
+    12942:12942:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo recordPostLayoutInformation(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> recordPostLayoutInformation
+    12913:12913:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo recordPreLayoutInformation(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,java.util.List) -> recordPreLayoutInformation
+    12826:12827:void setAddDuration(long) -> setAddDuration
+    12862:12863:void setChangeDuration(long) -> setChangeDuration
+    12874:12875:void setListener(androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemAnimatorListener) -> setListener
+    12808:12809:void setMoveDuration(long) -> setMoveDuration
+    12844:12845:void setRemoveDuration(long) -> setRemoveDuration
+androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo -> androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo:
+    13425:13426:void <init>() -> <init>
+    13437:13437:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo setFrom(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> setFrom
+    13453:13458:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo setFrom(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> setFrom
+androidx.recyclerview.widget.RecyclerView$ItemAnimatorRestoreListener -> androidx.recyclerview.widget.RecyclerView$ItemAnimatorRestoreListener:
+    12686:12687:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    12691:12703:void onAnimationFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onAnimationFinished
+androidx.recyclerview.widget.RecyclerView$ItemDecoration -> androidx.recyclerview.widget.RecyclerView$ItemDecoration:
+    10705:10705:void <init>() -> <init>
+    10757:10758:void getItemOffsets(android.graphics.Rect,int,androidx.recyclerview.widget.RecyclerView) -> getItemOffsets
+    10782:10784:void getItemOffsets(android.graphics.Rect,android.view.View,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> getItemOffsets
+    10716:10717:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDraw
+    10725:10725:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView) -> onDraw
+    10738:10739:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    10747:10747:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView) -> onDrawOver
+androidx.recyclerview.widget.RecyclerView$LayoutManager -> androidx.recyclerview.widget.RecyclerView$LayoutManager:
+    7582:7688:void <init>() -> <init>
+    8518:8519:void addDisappearingView(android.view.View) -> addDisappearingView
+    8536:8537:void addDisappearingView(android.view.View,int) -> addDisappearingView
+    8547:8548:void addView(android.view.View) -> addView
+    8559:8560:void addView(android.view.View,int) -> addView
+    8563:8614:void addViewInt(android.view.View,int,boolean) -> addViewInt
+    7860:7863:void assertInLayoutOrScroll(java.lang.String) -> assertInLayoutOrScroll
+    7897:7900:void assertNotInLayoutOrScroll(java.lang.String) -> assertNotInLayoutOrScroll
+    8804:8814:void attachView(android.view.View,int,androidx.recyclerview.widget.RecyclerView$LayoutParams) -> attachView
+    8825:8826:void attachView(android.view.View,int) -> attachView
+    8836:8837:void attachView(android.view.View) -> attachView
+    9707:9713:void calculateItemDecorationsForChild(android.view.View,android.graphics.Rect) -> calculateItemDecorationsForChild
+    8415:8415:boolean canScrollHorizontally() -> canScrollHorizontally
+    8425:8425:boolean canScrollVertically() -> canScrollVertically
+    8330:8330:boolean checkLayoutParams(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> checkLayoutParams
+    7876:7885:int chooseSize(int,int,int) -> chooseSize
+    8082:8082:void collectAdjacentPrefetchPositions(int,int,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectAdjacentPrefetchPositions
+    8110:8110:void collectInitialPrefetchPositions(int,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectInitialPrefetchPositions
+    10153:10153:int computeHorizontalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollExtent
+    10168:10168:int computeHorizontalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollOffset
+    10183:10183:int computeHorizontalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollRange
+    10198:10198:int computeVerticalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollExtent
+    10213:10213:int computeVerticalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollOffset
+    10228:10228:int computeVerticalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollRange
+    9192:9197:void detachAndScrapAttachedViews(androidx.recyclerview.widget.RecyclerView$Recycler) -> detachAndScrapAttachedViews
+    8875:8877:void detachAndScrapView(android.view.View,androidx.recyclerview.widget.RecyclerView$Recycler) -> detachAndScrapView
+    8889:8891:void detachAndScrapViewAt(int,androidx.recyclerview.widget.RecyclerView$Recycler) -> detachAndScrapViewAt
+    8762:8766:void detachView(android.view.View) -> detachView
+    8784:8785:void detachViewAt(int) -> detachViewAt
+    8791:8792:void detachViewInternal(int,android.view.View) -> detachViewInternal
+    8113:8115:void dispatchAttachedToWindow(androidx.recyclerview.widget.RecyclerView) -> dispatchAttachedToWindow
+    8118:8120:void dispatchDetachedFromWindow(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$Recycler) -> dispatchDetachedFromWindow
+    8499:8502:void endAnimation(android.view.View) -> endAnimation
+    8703:8713:android.view.View findContainingItemView(android.view.View) -> findContainingItemView
+    8731:8743:android.view.View findViewByPosition(int) -> findViewByPosition
+    8347:8352:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    8371:8371:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.content.Context,android.util.AttributeSet) -> generateLayoutParams
+    8662:8662:int getBaseline() -> getBaseline
+    9742:9742:int getBottomDecorationHeight(android.view.View) -> getBottomDecorationHeight
+    8933:8933:android.view.View getChildAt(int) -> getChildAt
+    8923:8923:int getChildCount() -> getChildCount
+    9403:9429:int getChildMeasureSpec(int,int,int,boolean) -> getChildMeasureSpec
+    9446:9487:int getChildMeasureSpec(int,int,int,int,boolean) -> getChildMeasureSpec
+    9834:9867:int[] getChildRectangleOnScreenScrollAmount(android.view.View,android.graphics.Rect) -> getChildRectangleOnScreenScrollAmount
+    8230:8230:boolean getClipToPadding() -> getClipToPadding
+    10528:10531:int getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getColumnCountForAccessibility
+    9686:9686:int getDecoratedBottom(android.view.View) -> getDecoratedBottom
+    9638:9639:void getDecoratedBoundsWithMargins(android.view.View,android.graphics.Rect) -> getDecoratedBoundsWithMargins
+    9650:9650:int getDecoratedLeft(android.view.View) -> getDecoratedLeft
+    9514:9515:int getDecoratedMeasuredHeight(android.view.View) -> getDecoratedMeasuredHeight
+    9500:9501:int getDecoratedMeasuredWidth(android.view.View) -> getDecoratedMeasuredWidth
+    9674:9674:int getDecoratedRight(android.view.View) -> getDecoratedRight
+    9662:9662:int getDecoratedTop(android.view.View) -> getDecoratedTop
+    9089:9096:android.view.View getFocusedChild() -> getFocusedChild
+    8999:8999:int getHeight() -> getHeight
+    8967:8967:int getHeightMode() -> getHeightMode
+    9112:9113:int getItemCount() -> getItemCount
+    8683:8683:int getItemViewType(android.view.View) -> getItemViewType
+    8489:8489:int getLayoutDirection() -> getLayoutDirection
+    9757:9757:int getLeftDecorationWidth(android.view.View) -> getLeftDecorationWidth
+    10283:10283:int getMinimumHeight() -> getMinimumHeight
+    10275:10275:int getMinimumWidth() -> getMinimumWidth
+    9039:9039:int getPaddingBottom() -> getPaddingBottom
+    9059:9059:int getPaddingEnd() -> getPaddingEnd
+    9009:9009:int getPaddingLeft() -> getPaddingLeft
+    9029:9029:int getPaddingRight() -> getPaddingRight
+    9049:9049:int getPaddingStart() -> getPaddingStart
+    9019:9019:int getPaddingTop() -> getPaddingTop
+    8673:8673:int getPosition(android.view.View) -> getPosition
+    10635:10644:androidx.recyclerview.widget.RecyclerView$LayoutManager$Properties getProperties(android.content.Context,android.util.AttributeSet,int,int) -> getProperties
+    9772:9772:int getRightDecorationWidth(android.view.View) -> getRightDecorationWidth
+    10508:10511:int getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getRowCountForAccessibility
+    10492:10492:int getSelectionModeForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getSelectionModeForAccessibility
+    9727:9727:int getTopDecorationHeight(android.view.View) -> getTopDecorationHeight
+    9605:9628:void getTransformedBoundingBox(android.view.View,boolean,android.graphics.Rect) -> getTransformedBoundingBox
+    8983:8983:int getWidth() -> getWidth
+    8950:8950:int getWidthMode() -> getWidthMode
+    10669:10677:boolean hasFlexibleChildInBothOrientations() -> hasFlexibleChildInBothOrientations
+    9079:9079:boolean hasFocus() -> hasFocus
+    9157:9166:void ignoreView(android.view.View) -> ignoreView
+    8130:8130:boolean isAttachedToWindow() -> isAttachedToWindow
+    7991:7991:boolean isAutoMeasureEnabled() -> isAutoMeasureEnabled
+    9069:9069:boolean isFocused() -> isFocused
+    9966:9981:boolean isFocusedChildVisibleAfterScrolling(androidx.recyclerview.widget.RecyclerView,int,int) -> isFocusedChildVisibleAfterScrolling
+    8058:8058:boolean isItemPrefetchEnabled() -> isItemPrefetchEnabled
+    10545:10545:boolean isLayoutHierarchical(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> isLayoutHierarchical
+    9324:9324:boolean isMeasurementCacheEnabled() -> isMeasurementCacheEnabled
+    9340:9353:boolean isMeasurementUpToDate(int,int,int) -> isMeasurementUpToDate
+    8477:8477:boolean isSmoothScrolling() -> isSmoothScrolling
+    9944:9952:boolean isViewPartiallyVisible(android.view.View,boolean,boolean) -> isViewPartiallyVisible
+    9549:9552:void layoutDecorated(android.view.View,int,int,int,int) -> layoutDecorated
+    9585:9590:void layoutDecoratedWithMargins(android.view.View,int,int,int,int) -> layoutDecoratedWithMargins
+    9270:9284:void measureChild(android.view.View,int,int) -> measureChild
+    9369:9386:void measureChildWithMargins(android.view.View,int,int) -> measureChildWithMargins
+    8856:8863:void moveView(int,int) -> moveView
+    9123:9126:void offsetChildrenHorizontal(int) -> offsetChildrenHorizontal
+    9135:9138:void offsetChildrenVertical(int) -> offsetChildrenVertical
+    10031:10031:void onAdapterChanged(androidx.recyclerview.widget.RecyclerView$Adapter,androidx.recyclerview.widget.RecyclerView$Adapter) -> onAdapterChanged
+    10059:10059:boolean onAddFocusables(androidx.recyclerview.widget.RecyclerView,java.util.ArrayList,int,int) -> onAddFocusables
+    8185:8185:void onAttachedToWindow(androidx.recyclerview.widget.RecyclerView) -> onAttachedToWindow
+    8194:8194:void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView) -> onDetachedFromWindow
+    8221:8222:void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$Recycler) -> onDetachedFromWindow
+    9800:9800:android.view.View onFocusSearchFailed(android.view.View,int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onFocusSearchFailed
+    10397:10398:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    10413:10424:void onInitializeAccessibilityEvent(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    10348:10349:void onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    10378:10393:void onInitializeAccessibilityNodeInfo(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    10428:10434:void onInitializeAccessibilityNodeInfoForItem(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfoForItem
+    10453:10459:void onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfoForItem
+    9821:9821:android.view.View onInterceptFocusSearch(android.view.View,int) -> onInterceptFocusSearch
+    10083:10083:void onItemsAdded(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsAdded
+    10070:10070:void onItemsChanged(androidx.recyclerview.widget.RecyclerView) -> onItemsChanged
+    10138:10138:void onItemsMoved(androidx.recyclerview.widget.RecyclerView,int,int,int) -> onItemsMoved
+    10094:10094:void onItemsRemoved(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsRemoved
+    10107:10107:void onItemsUpdated(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsUpdated
+    10120:10121:void onItemsUpdated(androidx.recyclerview.widget.RecyclerView,int,int,java.lang.Object) -> onItemsUpdated
+    8285:8286:void onLayoutChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onLayoutChildren
+    8300:8300:void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView$State) -> onLayoutCompleted
+    10256:10257:void onMeasure(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,int) -> onMeasure
+    9991:9991:boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView,android.view.View,android.view.View) -> onRequestChildFocus
+    10013:10013:boolean onRequestChildFocus(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State,android.view.View,android.view.View) -> onRequestChildFocus
+    10303:10303:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    10297:10297:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    10323:10323:void onScrollStateChanged(int) -> onScrollStateChanged
+    10312:10315:void onSmoothScrollerStopped(androidx.recyclerview.widget.RecyclerView$SmoothScroller) -> onSmoothScrollerStopped
+    10550:10550:boolean performAccessibilityAction(int,android.os.Bundle) -> performAccessibilityAction
+    10566:10592:boolean performAccessibilityAction(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,android.os.Bundle) -> performAccessibilityAction
+    10598:10598:boolean performAccessibilityActionForItem(android.view.View,int,android.os.Bundle) -> performAccessibilityActionForItem
+    10619:10619:boolean performAccessibilityActionForItem(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,android.view.View,int,android.os.Bundle) -> performAccessibilityActionForItem
+    8144:8147:void postOnAnimation(java.lang.Runnable) -> postOnAnimation
+    8649:8653:void removeAllViews() -> removeAllViews
+    10338:10344:void removeAndRecycleAllViews(androidx.recyclerview.widget.RecyclerView$Recycler) -> removeAndRecycleAllViews
+    9228:9255:void removeAndRecycleScrapInt(androidx.recyclerview.widget.RecyclerView$Recycler) -> removeAndRecycleScrapInt
+    8900:8902:void removeAndRecycleView(android.view.View,androidx.recyclerview.widget.RecyclerView$Recycler) -> removeAndRecycleView
+    8911:8914:void removeAndRecycleViewAt(int,androidx.recyclerview.widget.RecyclerView$Recycler) -> removeAndRecycleViewAt
+    8164:8167:boolean removeCallbacks(java.lang.Runnable) -> removeCallbacks
+    8846:8847:void removeDetachedView(android.view.View) -> removeDetachedView
+    8625:8626:void removeView(android.view.View) -> removeView
+    8637:8641:void removeViewAt(int) -> removeViewAt
+    9886:9886:boolean requestChildRectangleOnScreen(androidx.recyclerview.widget.RecyclerView,android.view.View,android.graphics.Rect,boolean) -> requestChildRectangleOnScreen
+    9906:9920:boolean requestChildRectangleOnScreen(androidx.recyclerview.widget.RecyclerView,android.view.View,android.graphics.Rect,boolean,boolean) -> requestChildRectangleOnScreen
+    7847:7850:void requestLayout() -> requestLayout
+    10472:10473:void requestSimpleAnimationsInNextLayout() -> requestSimpleAnimationsInNextLayout
+    9200:9216:void scrapOrRecycleView(androidx.recyclerview.widget.RecyclerView$Recycler,int,android.view.View) -> scrapOrRecycleView
+    8388:8388:int scrollHorizontallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollHorizontallyBy
+    8438:8438:void scrollToPosition(int) -> scrollToPosition
+    8405:8405:int scrollVerticallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollVerticallyBy
+    7918:7919:void setAutoMeasureEnabled(boolean) -> setAutoMeasureEnabled
+    10648:10652:void setExactMeasureSpecsFrom(androidx.recyclerview.widget.RecyclerView) -> setExactMeasureSpecsFrom
+    8040:8047:void setItemPrefetchEnabled(boolean) -> setItemPrefetchEnabled
+    7757:7768:void setMeasureSpecs(int,int) -> setMeasureSpecs
+    7836:7841:void setMeasuredDimension(android.graphics.Rect,int,int) -> setMeasuredDimension
+    10267:10268:void setMeasuredDimension(int,int) -> setMeasuredDimension
+    7784:7813:void setMeasuredDimensionFromChildren(int,int) -> setMeasuredDimensionFromChildren
+    9336:9337:void setMeasurementCacheEnabled(boolean) -> setMeasurementCacheEnabled
+    7741:7754:void setRecyclerView(androidx.recyclerview.widget.RecyclerView) -> setRecyclerView
+    9307:9310:boolean shouldMeasureChild(android.view.View,int,int,androidx.recyclerview.widget.RecyclerView$LayoutParams) -> shouldMeasureChild
+    10665:10665:boolean shouldMeasureTwice() -> shouldMeasureTwice
+    9293:9295:boolean shouldReMeasureChild(android.view.View,int,int,androidx.recyclerview.widget.RecyclerView$LayoutParams) -> shouldReMeasureChild
+    8451:8452:void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State,int) -> smoothScrollToPosition
+    8465:8471:void startSmoothScroll(androidx.recyclerview.widget.RecyclerView$SmoothScroller) -> startSmoothScroll
+    9178:9182:void stopIgnoringView(android.view.View) -> stopIgnoringView
+    10306:10309:void stopSmoothScroller() -> stopSmoothScroller
+    8017:8017:boolean supportsPredictiveItemAnimations() -> supportsPredictiveItemAnimations
+androidx.recyclerview.widget.RecyclerView$LayoutManager$1 -> androidx.recyclerview.widget.RecyclerView$LayoutManager$1:
+    7591:7591:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> <init>
+    7594:7594:android.view.View getChildAt(int) -> getChildAt
+    7616:7618:int getChildEnd(android.view.View) -> getChildEnd
+    7609:7611:int getChildStart(android.view.View) -> getChildStart
+    7604:7604:int getParentEnd() -> getParentEnd
+    7599:7599:int getParentStart() -> getParentStart
+androidx.recyclerview.widget.RecyclerView$LayoutManager$2 -> androidx.recyclerview.widget.RecyclerView$LayoutManager$2:
+    7627:7627:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> <init>
+    7630:7630:android.view.View getChildAt(int) -> getChildAt
+    7653:7655:int getChildEnd(android.view.View) -> getChildEnd
+    7646:7648:int getChildStart(android.view.View) -> getChildStart
+    7640:7641:int getParentEnd() -> getParentEnd
+    7635:7635:int getParentStart() -> getParentStart
+androidx.recyclerview.widget.RecyclerView$LayoutManager$Properties -> androidx.recyclerview.widget.RecyclerView$LayoutManager$Properties:
+    10683:10683:void <init>() -> <init>
+androidx.recyclerview.widget.RecyclerView$LayoutParams -> androidx.recyclerview.widget.RecyclerView$LayoutParams:
+    11617:11626:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    11617:11630:void <init>(int,int) -> <init>
+    11617:11634:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    11617:11638:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    11617:11642:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> <init>
+    11713:11713:int getViewAdapterPosition() -> getViewAdapterPosition
+    11701:11701:int getViewLayoutPosition() -> getViewLayoutPosition
+    11691:11691:int getViewPosition() -> getViewPosition
+    11683:11683:boolean isItemChanged() -> isItemChanged
+    11672:11672:boolean isItemRemoved() -> isItemRemoved
+    11661:11661:boolean isViewInvalid() -> isViewInvalid
+    11651:11651:boolean viewNeedsUpdate() -> viewNeedsUpdate
+androidx.recyclerview.widget.RecyclerView$OnFlingListener -> androidx.recyclerview.widget.RecyclerView$OnFlingListener:
+    12663:12663:void <init>() -> <init>
+androidx.recyclerview.widget.RecyclerView$OnScrollListener -> androidx.recyclerview.widget.RecyclerView$OnScrollListener:
+    10870:10870:void <init>() -> <init>
+    10878:10878:void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView,int) -> onScrollStateChanged
+    10891:10891:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+androidx.recyclerview.widget.RecyclerView$RecycledViewPool -> androidx.recyclerview.widget.RecyclerView$RecycledViewPool:
+    5635:5660:void <init>() -> <init>
+    5782:5783:void attach() -> attach
+    5666:5670:void clear() -> clear
+    5786:5787:void detach() -> detach
+    5766:5769:void factorInBindTime(int,long) -> factorInBindTime
+    5760:5763:void factorInCreateTime(int,long) -> factorInCreateTime
+    5704:5713:androidx.recyclerview.widget.RecyclerView$ViewHolder getRecycledView(int) -> getRecycledView
+    5691:5691:int getRecycledViewCount(int) -> getRecycledViewCount
+    5815:5820:androidx.recyclerview.widget.RecyclerView$RecycledViewPool$ScrapData getScrapDataForType(int) -> getScrapDataForType
+    5803:5812:void onAdapterChanged(androidx.recyclerview.widget.RecyclerView$Adapter,androidx.recyclerview.widget.RecyclerView$Adapter,boolean) -> onAdapterChanged
+    5740:5750:void putRecycledView(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> putRecycledView
+    5753:5756:long runningAverage(long,long) -> runningAverage
+    5679:5685:void setMaxRecycledViews(int,int) -> setMaxRecycledViews
+    5722:5729:int size() -> size
+    5777:5778:boolean willBindInTime(int,long,long) -> willBindInTime
+    5772:5773:boolean willCreateInTime(int,long,long) -> willCreateInTime
+androidx.recyclerview.widget.RecyclerView$RecycledViewPool$ScrapData -> androidx.recyclerview.widget.RecyclerView$RecycledViewPool$ScrapData:
+    5652:5656:void <init>() -> <init>
+androidx.recyclerview.widget.RecyclerView$Recycler -> androidx.recyclerview.widget.RecyclerView$Recycler:
+    5896:5906:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    6524:6542:void addViewHolderToRecycledViewPool(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> addViewHolderToRecycledViewPool
+    6299:6318:void attachAccessibilityDelegateOnBind(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> attachAccessibilityDelegateOnBind
+    6038:6067:void bindViewToPosition(android.view.View,int) -> bindViewToPosition
+    5919:5921:void clear() -> clear
+    6911:6926:void clearOldPositions() -> clearOldPositions
+    6612:6616:void clearScrap() -> clearScrap
+    6088:6095:int convertPreLayoutPositionToPostLayout(int) -> convertPreLayoutPositionToPostLayout
+    6765:6775:void dispatchViewRecycled(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchViewRecycled
+    6621:6646:androidx.recyclerview.widget.RecyclerView$ViewHolder getChangedScrapViewForPosition(int) -> getChangedScrapViewForPosition
+    6869:6872:androidx.recyclerview.widget.RecyclerView$RecycledViewPool getRecycledViewPool() -> getRecycledViewPool
+    6604:6604:int getScrapCount() -> getScrapCount
+    5951:5951:java.util.List getScrapList() -> getScrapList
+    6712:6760:androidx.recyclerview.widget.RecyclerView$ViewHolder getScrapOrCachedViewForId(long,int,boolean) -> getScrapOrCachedViewForId
+    6657:6707:androidx.recyclerview.widget.RecyclerView$ViewHolder getScrapOrHiddenOrCachedHolderForPosition(int,boolean) -> getScrapOrHiddenOrCachedHolderForPosition
+    6608:6608:android.view.View getScrapViewAt(int) -> getScrapViewAt
+    6114:6114:android.view.View getViewForPosition(int) -> getViewForPosition
+    6118:6118:android.view.View getViewForPosition(int,boolean) -> getViewForPosition
+    6321:6324:void invalidateDisplayListInt(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> invalidateDisplayListInt
+    6327:6345:void invalidateDisplayListInt(android.view.ViewGroup,boolean) -> invalidateDisplayListInt
+    6929:6937:void markItemDecorInsetsDirty() -> markItemDecorInsetsDirty
+    6895:6908:void markKnownViewsInvalid() -> markKnownViewsInvalid
+    6813:6824:void offsetPositionRecordsForInsert(int,int) -> offsetPositionRecordsForInsert
+    6785:6810:void offsetPositionRecordsForMove(int,int) -> offsetPositionRecordsForMove
+    6833:6852:void offsetPositionRecordsForRemove(int,int,boolean) -> offsetPositionRecordsForRemove
+    6779:6781:void onAdapterChanged(androidx.recyclerview.widget.RecyclerView$Adapter,androidx.recyclerview.widget.RecyclerView$Adapter,boolean) -> onAdapterChanged
+    6550:6555:void quickRecycleScrapView(android.view.View) -> quickRecycleScrapView
+    6390:6398:void recycleAndClearCachedViews() -> recycleAndClearCachedViews
+    6415:6421:void recycleCachedViewAt(int) -> recycleCachedViewAt
+    6360:6387:void recycleView(android.view.View) -> recycleView
+    6429:6513:void recycleViewHolderInternal(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> recycleViewHolderInternal
+    6567:6584:void scrapView(android.view.View) -> scrapView
+    6859:6866:void setRecycledViewPool(androidx.recyclerview.widget.RecyclerView$RecycledViewPool) -> setRecycledViewPool
+    6855:6856:void setViewCacheExtension(androidx.recyclerview.widget.RecyclerView$ViewCacheExtension) -> setViewCacheExtension
+    5929:5931:void setViewCacheSize(int) -> setViewCacheSize
+    6004:6019:boolean tryBindViewHolderByDeadline(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,long) -> tryBindViewHolderByDeadline
+    6142:6295:androidx.recyclerview.widget.RecyclerView$ViewHolder tryGetViewHolderForPositionByDeadline(int,boolean,long) -> tryGetViewHolderForPositionByDeadline
+    6593:6601:void unscrapView(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> unscrapView
+    5934:5942:void updateViewCacheSize() -> updateViewCacheSize
+    5965:5986:boolean validateViewHolderForOffsetPosition(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> validateViewHolderForOffsetPosition
+    6876:6892:void viewRangeUpdate(int,int) -> viewRangeUpdate
+androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver -> androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver:
+    5531:5532:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    5536:5543:void onChanged() -> onChanged
+    5547:5551:void onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    5555:5559:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    5571:5575:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    5563:5567:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+    5578:5584:void triggerUpdateProcessor() -> triggerUpdateProcessor
+androidx.recyclerview.widget.RecyclerView$SavedState -> androidx.recyclerview.widget.RecyclerView$SavedState:
+    12334:12334:void <clinit>() -> <clinit>
+    12312:12315:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    12321:12322:void <init>(android.os.Parcelable) -> <init>
+    12331:12332:void copyFrom(androidx.recyclerview.widget.RecyclerView$SavedState) -> copyFrom
+    12326:12328:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.recyclerview.widget.RecyclerView$SavedState$1 -> androidx.recyclerview.widget.RecyclerView$SavedState$1:
+    12334:12334:void <init>() -> <init>
+    12334:12334:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    12334:12334:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    12337:12337:androidx.recyclerview.widget.RecyclerView$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    12342:12342:androidx.recyclerview.widget.RecyclerView$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    12334:12334:java.lang.Object[] newArray(int) -> newArray
+    12347:12347:androidx.recyclerview.widget.RecyclerView$SavedState[] newArray(int) -> newArray
+androidx.recyclerview.widget.RecyclerView$SimpleOnItemTouchListener -> androidx.recyclerview.widget.RecyclerView$SimpleOnItemTouchListener:
+    10846:10846:void <init>() -> <init>
+    10849:10849:boolean onInterceptTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onInterceptTouchEvent
+    10858:10858:void onRequestDisallowInterceptTouchEvent(boolean) -> onRequestDisallowInterceptTouchEvent
+    10854:10854:void onTouchEvent(androidx.recyclerview.widget.RecyclerView,android.view.MotionEvent) -> onTouchEvent
+androidx.recyclerview.widget.RecyclerView$SmoothScroller -> androidx.recyclerview.widget.RecyclerView$SmoothScroller:
+    11760:11778:void <init>() -> <init>
+    11835:11842:android.graphics.PointF computeScrollVectorForPosition(int) -> computeScrollVectorForPosition
+    11972:11972:android.view.View findViewByPosition(int) -> findViewByPosition
+    11965:11965:int getChildCount() -> getChildCount
+    11958:11958:int getChildPosition(android.view.View) -> getChildPosition
+    11851:11851:androidx.recyclerview.widget.RecyclerView$LayoutManager getLayoutManager() -> getLayoutManager
+    11903:11903:int getTargetPosition() -> getTargetPosition
+    11981:11982:void instantScrollToPosition(int) -> instantScrollToPosition
+    11885:11885:boolean isPendingInitialRun() -> isPendingInitialRun
+    11893:11893:boolean isRunning() -> isRunning
+    11998:12002:void normalize(android.graphics.PointF) -> normalize
+    11907:11952:void onAnimation(int,int) -> onAnimation
+    11985:11991:void onChildAttachedToWindow(android.view.View) -> onChildAttachedToWindow
+    11820:11821:void setTargetPosition(int) -> setTargetPosition
+    11795:11817:void start(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$LayoutManager) -> start
+    11861:11875:void stop() -> stop
+androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action -> androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action:
+    12070:12071:void <init>(int,int) -> <init>
+    12079:12080:void <init>(int,int,int) -> <init>
+    12055:12095:void <init>(int,int,int,android.view.animation.Interpolator) -> <init>
+    12174:12174:int getDuration() -> getDuration
+    12155:12155:int getDx() -> getDx
+    12165:12165:int getDy() -> getDy
+    12184:12184:android.view.animation.Interpolator getInterpolator() -> getInterpolator
+    12117:12117:boolean hasJumpTarget() -> hasJumpTarget
+    12113:12114:void jumpTo(int) -> jumpTo
+    12121:12142:void runIfNecessary(androidx.recyclerview.widget.RecyclerView) -> runIfNecessary
+    12178:12180:void setDuration(int) -> setDuration
+    12159:12161:void setDx(int) -> setDx
+    12169:12171:void setDy(int) -> setDy
+    12194:12196:void setInterpolator(android.view.animation.Interpolator) -> setInterpolator
+    12208:12213:void update(int,int,int,android.view.animation.Interpolator) -> update
+    12145:12151:void validate() -> validate
+androidx.recyclerview.widget.RecyclerView$State -> androidx.recyclerview.widget.RecyclerView$State:
+    12362:12433:void <init>() -> <init>
+    12368:12373:void assertLayoutStep(int) -> assertLayoutStep
+    12583:12583:boolean didStructureChange() -> didStructureChange
+    12537:12540:java.lang.Object get(int) -> get
+    12611:12611:int getItemCount() -> getItemCount
+    12624:12624:int getRemainingScrollHorizontal() -> getRemainingScrollHorizontal
+    12635:12635:int getRemainingScrollVertical() -> getRemainingScrollVertical
+    12566:12566:int getTargetScrollPosition() -> getTargetScrollPosition
+    12575:12575:boolean hasTargetScrollPosition() -> hasTargetScrollPosition
+    12481:12481:boolean isMeasuring() -> isMeasuring
+    12490:12490:boolean isPreLayout() -> isPreLayout
+    12459:12464:void prepareForNestedPrefetch(androidx.recyclerview.widget.RecyclerView$Adapter) -> prepareForNestedPrefetch
+    12552:12556:void put(int,java.lang.Object) -> put
+    12521:12525:void remove(int) -> remove
+    12640:12640:java.lang.String toString() -> toString
+    12501:12501:boolean willRunPredictiveAnimations() -> willRunPredictiveAnimations
+    12512:12512:boolean willRunSimpleAnimations() -> willRunSimpleAnimations
+androidx.recyclerview.widget.RecyclerView$ViewCacheExtension -> androidx.recyclerview.widget.RecyclerView$ViewCacheExtension:
+    6953:6953:void <init>() -> <init>
+androidx.recyclerview.widget.RecyclerView$ViewFlinger -> androidx.recyclerview.widget.RecyclerView$ViewFlinger:
+    5238:5248:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    5483:5501:int computeScrollDuration(int,int,int,int) -> computeScrollDuration
+    5477:5479:float distanceInfluenceForSnapDuration(float) -> distanceInfluenceForSnapDuration
+    5416:5428:void fling(int,int) -> fling
+    5411:5413:void internalPostOnAnimation() -> internalPostOnAnimation
+    5403:5408:void postOnAnimation() -> postOnAnimation
+    5252:5400:void run() -> run
+    5445:5474:void smoothScrollBy(int,int,int,android.view.animation.Interpolator) -> smoothScrollBy
+    5505:5507:void stop() -> stop
+androidx.recyclerview.widget.RecyclerView$ViewHolder -> androidx.recyclerview.widget.RecyclerView$ViewHolder:
+    11059:11059:void <clinit>() -> <clinit>
+    10953:11091:void <init>(android.view.View) -> <init>
+    11300:11306:void addChangePayload(java.lang.Object) -> addChangePayload
+    11296:11297:void addFlags(int) -> addFlags
+    11116:11118:void clearOldPosition() -> clearOldPosition
+    11316:11320:void clearPayload() -> clearPayload
+    11243:11244:void clearReturnedFromScrapFlag() -> clearReturnedFromScrapFlag
+    11247:11248:void clearTmpDetachFlag() -> clearTmpDetachFlag
+    11309:11313:void createPayloadsIfNeeded() -> createPayloadsIfNeeded
+    11456:11456:boolean doesTransientStatePreventRecycling() -> doesTransientStatePreventRecycling
+    11094:11097:void flagRemovedAndOffsetPosition(int,int,boolean) -> flagRemovedAndOffsetPosition
+    11192:11195:int getAdapterPosition() -> getAdapterPosition
+    11220:11220:long getItemId() -> getItemId
+    11227:11227:int getItemViewType() -> getItemViewType
+    11166:11166:int getLayoutPosition() -> getLayoutPosition
+    11210:11210:int getOldPosition() -> getOldPosition
+    11140:11140:int getPosition() -> getPosition
+    11323:11332:java.util.List getUnmodifiedPayloads() -> getUnmodifiedPayloads
+    11276:11276:boolean hasAnyOfTheFlags(int) -> hasAnyOfTheFlags
+    11288:11288:boolean isAdapterPositionUnknown() -> isAdapterPositionUnknown
+    11284:11284:boolean isAttachedToTransitionOverlay() -> isAttachedToTransitionOverlay
+    11268:11268:boolean isBound() -> isBound
+    11260:11260:boolean isInvalid() -> isInvalid
+    11439:11440:boolean isRecyclable() -> isRecyclable
+    11272:11272:boolean isRemoved() -> isRemoved
+    11231:11231:boolean isScrap() -> isScrap
+    11280:11280:boolean isTmpDetached() -> isTmpDetached
+    11460:11460:boolean isUpdated() -> isUpdated
+    11264:11264:boolean needsUpdate() -> needsUpdate
+    11100:11113:void offsetPosition(int,boolean) -> offsetPosition
+    11356:11364:void onEnteredHiddenState(androidx.recyclerview.widget.RecyclerView) -> onEnteredHiddenState
+    11370:11373:void onLeftHiddenState(androidx.recyclerview.widget.RecyclerView) -> onLeftHiddenState
+    11337:11349:void resetInternal() -> resetInternal
+    11121:11124:void saveOldPosition() -> saveOldPosition
+    11292:11293:void setFlags(int,int) -> setFlags
+    11414:11431:void setIsRecyclable(boolean) -> setIsRecyclable
+    11255:11257:void setScrapContainer(androidx.recyclerview.widget.RecyclerView$Recycler,boolean) -> setScrapContainer
+    11448:11448:boolean shouldBeKeptAsChild() -> shouldBeKeptAsChild
+    11127:11127:boolean shouldIgnore() -> shouldIgnore
+    11251:11252:void stopIgnoring() -> stopIgnoring
+    11377:11397:java.lang.String toString() -> toString
+    11235:11236:void unScrap() -> unScrap
+    11239:11239:boolean wasReturnedFromScrap() -> wasReturnedFromScrap
+androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate -> androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate:
+    44:52:void <init>(androidx.recyclerview.widget.RecyclerView) -> <init>
+    99:99:androidx.core.view.AccessibilityDelegateCompat getItemDelegate() -> getItemDelegate
+    80:87:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    72:76:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    60:67:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+    55:55:boolean shouldIgnore() -> shouldIgnore
+androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate$ItemDelegate -> androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate$ItemDelegate:
+    112:121:void <init>(androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate) -> <init>
+    201:205:boolean dispatchPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    245:249:androidx.core.view.accessibility.AccessibilityNodeProviderCompat getAccessibilityNodeProvider(android.view.View) -> getAccessibilityNodeProvider
+    138:138:androidx.core.view.AccessibilityDelegateCompat getAndRemoveOriginalDelegateForItem(android.view.View) -> getAndRemoveOriginalDelegateForItem
+    223:229:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    143:156:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    212:218:void onPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+    234:238:boolean onRequestSendAccessibilityEvent(android.view.ViewGroup,android.view.View,android.view.accessibility.AccessibilityEvent) -> onRequestSendAccessibilityEvent
+    160:173:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+    128:132:void saveOriginalDelegate(android.view.View) -> saveOriginalDelegate
+    179:185:void sendAccessibilityEvent(android.view.View,int) -> sendAccessibilityEvent
+    190:196:void sendAccessibilityEventUnchecked(android.view.View,android.view.accessibility.AccessibilityEvent) -> sendAccessibilityEventUnchecked
+androidx.recyclerview.widget.ScrollbarHelper -> androidx.recyclerview.widget.ScrollbarHelper:
+    99:100:void <init>() -> <init>
+    63:72:int computeScrollExtent(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.OrientationHelper,android.view.View,android.view.View,androidx.recyclerview.widget.RecyclerView$LayoutManager,boolean) -> computeScrollExtent
+    32:53:int computeScrollOffset(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.OrientationHelper,android.view.View,android.view.View,androidx.recyclerview.widget.RecyclerView$LayoutManager,boolean,boolean) -> computeScrollOffset
+    82:96:int computeScrollRange(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.OrientationHelper,android.view.View,android.view.View,androidx.recyclerview.widget.RecyclerView$LayoutManager,boolean) -> computeScrollRange
+androidx.recyclerview.widget.SimpleItemAnimator -> androidx.recyclerview.widget.SimpleItemAnimator:
+    35:41:void <init>() -> <init>
+    114:126:boolean animateAppearance(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animateAppearance
+    151:161:boolean animateChange(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animateChange
+    90:107:boolean animateDisappearance(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animateDisappearance
+    133:142:boolean animatePersistence(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> animatePersistence
+    84:84:boolean canReuseUpdatedViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> canReuseUpdatedViewHolder
+    301:303:void dispatchAddFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchAddFinished
+    344:345:void dispatchAddStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchAddStarting
+    316:318:void dispatchChangeFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> dispatchChangeFinished
+    357:358:void dispatchChangeStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> dispatchChangeStarting
+    291:293:void dispatchMoveFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchMoveFinished
+    335:336:void dispatchMoveStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchMoveStarting
+    276:278:void dispatchRemoveFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchRemoveFinished
+    326:327:void dispatchRemoveStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> dispatchRemoveStarting
+    50:50:boolean getSupportsChangeAnimations() -> getSupportsChangeAnimations
+    404:404:void onAddFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onAddFinished
+    393:393:void onAddStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onAddStarting
+    454:454:void onChangeFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> onChangeFinished
+    441:441:void onChangeStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> onChangeStarting
+    427:427:void onMoveFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onMoveFinished
+    416:416:void onMoveStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onMoveStarting
+    381:381:void onRemoveFinished(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onRemoveFinished
+    370:370:void onRemoveStarting(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onRemoveStarting
+    71:72:void setSupportsChangeAnimations(boolean) -> setSupportsChangeAnimations
+androidx.recyclerview.widget.SnapHelper -> androidx.recyclerview.widget.SnapHelper:
+    34:42:void <init>() -> <init>
+    93:106:void attachToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> attachToRecyclerView
+    137:142:int[] calculateScrollDistance(int,int) -> calculateScrollDistance
+    209:209:androidx.recyclerview.widget.RecyclerView$SmoothScroller createScroller(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> createScroller
+    224:227:androidx.recyclerview.widget.LinearSmoothScroller createSnapScroller(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> createSnapScroller
+    123:125:void destroyCallbacks() -> destroyCallbacks
+    65:75:boolean onFling(int,int) -> onFling
+    112:117:void setupCallbacks() -> setupCallbacks
+    157:173:boolean snapFromFling(androidx.recyclerview.widget.RecyclerView$LayoutManager,int,int) -> snapFromFling
+    182:197:void snapToTargetExistingView() -> snapToTargetExistingView
+androidx.recyclerview.widget.SnapHelper$1 -> androidx.recyclerview.widget.SnapHelper$1:
+    43:44:void <init>(androidx.recyclerview.widget.SnapHelper) -> <init>
+    48:53:void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView,int) -> onScrollStateChanged
+    57:60:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+androidx.recyclerview.widget.SnapHelper$2 -> androidx.recyclerview.widget.SnapHelper$2:
+    227:227:void <init>(androidx.recyclerview.widget.SnapHelper,android.content.Context) -> <init>
+    246:246:float calculateSpeedPerPixel(android.util.DisplayMetrics) -> calculateSpeedPerPixel
+    230:242:void onTargetFound(android.view.View,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$SmoothScroller$Action) -> onTargetFound
+androidx.recyclerview.widget.SortedList -> androidx.recyclerview.widget.SortedList:
+    91:92:void <init>(java.lang.Class,androidx.recyclerview.widget.SortedList$Callback) -> <init>
+    101:106:void <init>(java.lang.Class,androidx.recyclerview.widget.SortedList$Callback,int) -> <init>
+    143:144:int add(java.lang.Object) -> add
+    542:563:int add(java.lang.Object,boolean) -> add
+    162:172:void addAll(java.lang.Object[],boolean) -> addAll
+    182:183:void addAll(java.lang.Object[]) -> addAll
+    193:195:void addAll(java.util.Collection) -> addAll
+    252:265:void addAllInternal(java.lang.Object[]) -> addAllInternal
+    793:810:void addToData(int,java.lang.Object) -> addToData
+    518:526:void beginBatchedUpdates() -> beginBatchedUpdates
+    822:830:void clear() -> clear
+    813:815:java.lang.Object[] copyArray(java.lang.Object[]) -> copyArray
+    532:539:void endBatchedUpdates() -> endBatchedUpdates
+    743:764:int findIndexOf(java.lang.Object,java.lang.Object[],int,int,int) -> findIndexOf
+    396:401:int findSameItem(java.lang.Object,java.lang.Object[],int,int) -> findSameItem
+    705:716:java.lang.Object get(int) -> get
+    728:739:int indexOf(java.lang.Object) -> indexOf
+    769:789:int linearEqualitySearch(java.lang.Object,int,int,int) -> linearEqualitySearch
+    408:472:void merge(java.lang.Object[],int) -> merge
+    685:693:void recalculatePositionOfItemAt(int) -> recalculatePositionOfItemAt
+    574:575:boolean remove(java.lang.Object) -> remove
+    593:598:boolean remove(java.lang.Object,boolean) -> remove
+    586:589:java.lang.Object removeItemAt(int) -> removeItemAt
+    602:608:void removeItemAtIndex(int,boolean) -> removeItemAtIndex
+    217:224:void replaceAll(java.lang.Object[],boolean) -> replaceAll
+    235:236:void replaceAll(java.lang.Object[]) -> replaceAll
+    247:249:void replaceAll(java.util.Collection) -> replaceAll
+    334:338:void replaceAllInsert(java.lang.Object) -> replaceAllInsert
+    268:331:void replaceAllInternal(java.lang.Object[]) -> replaceAllInternal
+    341:344:void replaceAllRemove() -> replaceAllRemove
+    114:114:int size() -> size
+    353:391:int sortAndDedup(java.lang.Object[]) -> sortAndDedup
+    479:483:void throwIfInMutationOperation() -> throwIfInMutationOperation
+    631:655:void updateItemAt(int,java.lang.Object) -> updateItemAt
+androidx.recyclerview.widget.SortedList$BatchedCallback -> androidx.recyclerview.widget.SortedList$BatchedCallback:
+    951:954:void <init>(androidx.recyclerview.widget.SortedList$Callback) -> <init>
+    988:988:boolean areContentsTheSame(java.lang.Object,java.lang.Object) -> areContentsTheSame
+    993:993:boolean areItemsTheSame(java.lang.Object,java.lang.Object) -> areItemsTheSame
+    958:958:int compare(java.lang.Object,java.lang.Object) -> compare
+    1007:1008:void dispatchLastEvent() -> dispatchLastEvent
+    999:999:java.lang.Object getChangePayload(java.lang.Object,java.lang.Object) -> getChangePayload
+    978:979:void onChanged(int,int) -> onChanged
+    983:984:void onChanged(int,int,java.lang.Object) -> onChanged
+    963:964:void onInserted(int,int) -> onInserted
+    973:974:void onMoved(int,int) -> onMoved
+    968:969:void onRemoved(int,int) -> onRemoved
+androidx.recyclerview.widget.SortedList$Callback -> androidx.recyclerview.widget.SortedList$Callback:
+    840:840:void <init>() -> <init>
+    920:920:java.lang.Object getChangePayload(java.lang.Object,java.lang.Object) -> getChangePayload
+    866:867:void onChanged(int,int,java.lang.Object) -> onChanged
+androidx.recyclerview.widget.SortedListAdapterCallback -> androidx.recyclerview.widget.SortedListAdapterCallback:
+    33:35:void <init>(androidx.recyclerview.widget.RecyclerView$Adapter) -> <init>
+    54:55:void onChanged(int,int) -> onChanged
+    59:60:void onChanged(int,int,java.lang.Object) -> onChanged
+    39:40:void onInserted(int,int) -> onInserted
+    49:50:void onMoved(int,int) -> onMoved
+    44:45:void onRemoved(int,int) -> onRemoved
+androidx.recyclerview.widget.StaggeredGridLayoutManager -> androidx.recyclerview.widget.StaggeredGridLayoutManager:
+    107:236:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    107:250:void <init>(int,int) -> <init>
+    1806:1809:void appendViewToAllSpans(android.view.View) -> appendViewToAllSpans
+    786:819:void applyPendingSavedState(androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo) -> applyPendingSavedState
+    1865:1871:boolean areAllEndsEqual() -> areAllEndsEqual
+    1875:1881:boolean areAllStartsEqual() -> areAllStartsEqual
+    528:531:void assertNotInLayoutOrScroll(java.lang.String) -> assertNotInLayoutOrScroll
+    1750:1763:void attachViewToSpans(android.view.View,androidx.recyclerview.widget.StaggeredGridLayoutManager$LayoutParams,androidx.recyclerview.widget.LayoutState) -> attachViewToSpans
+    2043:2047:int calculateScrollDirectionForPosition(int) -> calculateScrollDirectionForPosition
+    2027:2027:boolean canScrollHorizontally() -> canScrollHorizontally
+    2022:2022:boolean canScrollVertically() -> canScrollVertically
+    270:311:boolean checkForGaps() -> checkForGaps
+    2273:2273:boolean checkLayoutParams(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> checkLayoutParams
+    403:416:boolean checkSpanForGap(androidx.recyclerview.widget.StaggeredGridLayoutManager$Span) -> checkSpanForGap
+    2123:2155:void collectAdjacentPrefetchPositions(int,int,androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.RecyclerView$LayoutManager$LayoutPrefetchRegistry) -> collectAdjacentPrefetchPositions
+    1088:1088:int computeHorizontalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollExtent
+    1068:1068:int computeHorizontalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollOffset
+    1108:1108:int computeHorizontalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeHorizontalScrollRange
+    1092:1097:int computeScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollExtent
+    1072:1077:int computeScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollOffset
+    1112:1117:int computeScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeScrollRange
+    2052:2064:android.graphics.PointF computeScrollVectorForPosition(int) -> computeScrollVectorForPosition
+    1103:1103:int computeVerticalScrollExtent(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollExtent
+    1083:1083:int computeVerticalScrollOffset(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollOffset
+    1123:1123:int computeVerticalScrollRange(androidx.recyclerview.widget.RecyclerView$State) -> computeVerticalScrollRange
+    2392:2425:int convertFocusDirectionToLayoutDirection(int) -> convertFocusDirectionToLayoutDirection
+    1732:1737:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem createFullSpanItemFromEnd(int) -> createFullSpanItemFromEnd
+    1741:1746:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem createFullSpanItemFromStart(int) -> createFullSpanItemFromStart
+    258:261:void createOrientationHelpers() -> createOrientationHelpers
+    1575:1728:int fill(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.LayoutState,androidx.recyclerview.widget.RecyclerView$State) -> fill
+    990:999:int[] findFirstCompletelyVisibleItemPositions(int[]) -> findFirstCompletelyVisibleItemPositions
+    2218:2226:int findFirstReferenceChildPosition(int) -> findFirstReferenceChildPosition
+    1387:1406:android.view.View findFirstVisibleItemClosestToEnd(boolean) -> findFirstVisibleItemClosestToEnd
+    1357:1377:android.view.View findFirstVisibleItemClosestToStart(boolean) -> findFirstVisibleItemClosestToStart
+    1327:1329:int findFirstVisibleItemPositionInt() -> findFirstVisibleItemPositionInt
+    958:967:int[] findFirstVisibleItemPositions(int[]) -> findFirstVisibleItemPositions
+    1054:1063:int[] findLastCompletelyVisibleItemPositions(int[]) -> findLastCompletelyVisibleItemPositions
+    2235:2242:int findLastReferenceChildPosition(int) -> findLastReferenceChildPosition
+    1022:1031:int[] findLastVisibleItemPositions(int[]) -> findLastVisibleItemPositions
+    1411:1426:void fixEndGap(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,boolean) -> fixEndGap
+    1430:1445:void fixStartGap(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,boolean) -> fixStartGap
+    2248:2252:androidx.recyclerview.widget.RecyclerView$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    2259:2259:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.content.Context,android.util.AttributeSet) -> generateLayoutParams
+    2264:2267:androidx.recyclerview.widget.RecyclerView$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1344:1347:int getColumnCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getColumnCountForAccessibility
+    2208:2209:int getFirstChildPosition() -> getFirstChildPosition
+    500:500:int getGapStrategy() -> getGapStrategy
+    2203:2204:int getLastChildPosition() -> getLastChildPosition
+    1885:1892:int getMaxEnd(int) -> getMaxEnd
+    1843:1850:int getMaxStart(int) -> getMaxStart
+    1896:1903:int getMinEnd(int) -> getMinEnd
+    1854:1861:int getMinStart(int) -> getMinStart
+    1980:2016:androidx.recyclerview.widget.StaggeredGridLayoutManager$Span getNextSpan(androidx.recyclerview.widget.LayoutState) -> getNextSpan
+    2277:2277:int getOrientation() -> getOrientation
+    580:580:boolean getReverseLayout() -> getReverseLayout
+    1335:1338:int getRowCountForAccessibility(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> getRowCountForAccessibility
+    539:539:int getSpanCount() -> getSpanCount
+    1531:1571:void handleUpdate(int,int,int) -> handleUpdate
+    339:399:android.view.View hasGapsToFix() -> hasGapsToFix
+    549:551:void invalidateSpanAssignments() -> invalidateSpanAssignments
+    254:254:boolean isAutoMeasureEnabled() -> isAutoMeasureEnabled
+    568:568:boolean isLayoutRTL() -> isLayoutRTL
+    1128:1189:void measureChildWithDecorationsAndMargin(android.view.View,androidx.recyclerview.widget.StaggeredGridLayoutManager$LayoutParams,boolean) -> measureChildWithDecorationsAndMargin
+    1193:1206:void measureChildWithDecorationsAndMargin(android.view.View,int,int,boolean) -> measureChildWithDecorationsAndMargin
+    1486:1490:void offsetChildrenHorizontal(int) -> offsetChildrenHorizontal
+    1494:1498:void offsetChildrenVertical(int) -> offsetChildrenVertical
+    323:331:void onDetachedFromWindow(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$Recycler) -> onDetachedFromWindow
+    2284:2378:android.view.View onFocusSearchFailed(android.view.View,int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onFocusSearchFailed
+    1302:1319:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    1283:1298:void onInitializeAccessibilityNodeInfoForItem(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfoForItem
+    1507:1508:void onItemsAdded(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsAdded
+    1512:1514:void onItemsChanged(androidx.recyclerview.widget.RecyclerView) -> onItemsChanged
+    1518:1519:void onItemsMoved(androidx.recyclerview.widget.RecyclerView,int,int,int) -> onItemsMoved
+    1502:1503:void onItemsRemoved(androidx.recyclerview.widget.RecyclerView,int,int) -> onItemsRemoved
+    1524:1525:void onItemsUpdated(androidx.recyclerview.widget.RecyclerView,int,int,java.lang.Object) -> onItemsUpdated
+    605:606:void onLayoutChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> onLayoutChildren
+    611:722:void onLayoutChildren(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,boolean) -> onLayoutChildren
+    726:731:void onLayoutCompleted(androidx.recyclerview.widget.RecyclerView$State) -> onLayoutCompleted
+    1222:1228:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1232:1277:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    316:319:void onScrollStateChanged(int) -> onScrollStateChanged
+    1970:1973:boolean preferLastSpan(int) -> preferLastSpan
+    2160:2172:void prepareLayoutStateForDelta(int,androidx.recyclerview.widget.RecyclerView$State) -> prepareLayoutStateForDelta
+    1813:1816:void prependViewToAllSpans(android.view.View) -> prependViewToAllSpans
+    1766:1802:void recycle(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.LayoutState) -> recycle
+    1936:1964:void recycleFromEnd(androidx.recyclerview.widget.RecyclerView$Recycler,int) -> recycleFromEnd
+    1907:1933:void recycleFromStart(androidx.recyclerview.widget.RecyclerView$Recycler,int) -> recycleFromStart
+    734:780:void repositionToWrapContentIfNecessary() -> repositionToWrapContentIfNecessary
+    560:565:void resolveShouldLayoutReverse() -> resolveShouldLayoutReverse
+    2175:2199:int scrollBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollBy
+    2033:2033:int scrollHorizontallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollHorizontallyBy
+    2077:2083:void scrollToPosition(int) -> scrollToPosition
+    2099:2105:void scrollToPositionWithOffset(int,int) -> scrollToPositionWithOffset
+    2039:2039:int scrollVerticallyBy(int,androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State) -> scrollVerticallyBy
+    513:524:void setGapStrategy(int) -> setGapStrategy
+    1479:1482:void setLayoutStateDirection(int) -> setLayoutStateDirection
+    587:601:void setMeasuredDimension(android.graphics.Rect,int,int) -> setMeasuredDimension
+    449:461:void setOrientation(int) -> setOrientation
+    477:483:void setReverseLayout(boolean) -> setReverseLayout
+    429:440:void setSpanCount(int) -> setSpanCount
+    2070:2073:void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State,int) -> smoothScrollToPosition
+    935:935:boolean supportsPredictiveItemAnimations() -> supportsPredictiveItemAnimations
+    1819:1825:void updateAllRemainingSpans(int,int) -> updateAllRemainingSpans
+    840:844:boolean updateAnchorFromChildren(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo) -> updateAnchorFromChildren
+    849:923:boolean updateAnchorFromPendingData(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo) -> updateAnchorFromPendingData
+    822:833:void updateAnchorInfoForLayout(androidx.recyclerview.widget.RecyclerView$State,androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo) -> updateAnchorInfoForLayout
+    1448:1476:void updateLayoutState(int,androidx.recyclerview.widget.RecyclerView$State) -> updateLayoutState
+    927:931:void updateMeasureSpecs(int) -> updateMeasureSpecs
+    1828:1840:void updateRemainingSpans(androidx.recyclerview.widget.StaggeredGridLayoutManager$Span,int,int) -> updateRemainingSpans
+    1209:1217:int updateSpecWithExtra(int,int,int) -> updateSpecWithExtra
+androidx.recyclerview.widget.StaggeredGridLayoutManager$1 -> androidx.recyclerview.widget.StaggeredGridLayoutManager$1:
+    216:216:void <init>(androidx.recyclerview.widget.StaggeredGridLayoutManager) -> <init>
+    219:220:void run() -> run
+androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo -> androidx.recyclerview.widget.StaggeredGridLayoutManager$AnchorInfo:
+    3267:3269:void <init>(androidx.recyclerview.widget.StaggeredGridLayoutManager) -> <init>
+    3294:3296:void assignCoordinateFromPadding() -> assignCoordinateFromPadding
+    3299:3304:void assignCoordinateFromPadding(int) -> assignCoordinateFromPadding
+    3272:3280:void reset() -> reset
+    3283:3291:void saveSpanReferenceLines(androidx.recyclerview.widget.StaggeredGridLayoutManager$Span[]) -> saveSpanReferenceLines
+androidx.recyclerview.widget.StaggeredGridLayoutManager$LayoutParams -> androidx.recyclerview.widget.StaggeredGridLayoutManager$LayoutParams:
+    2450:2451:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2454:2455:void <init>(int,int) -> <init>
+    2458:2459:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    2462:2463:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    2466:2467:void <init>(androidx.recyclerview.widget.RecyclerView$LayoutParams) -> <init>
+    2498:2501:int getSpanIndex() -> getSpanIndex
+    2488:2488:boolean isFullSpan() -> isFullSpan
+    2478:2479:void setFullSpan(boolean) -> setFullSpan
+androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup -> androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup:
+    2838:2838:void <init>() -> <init>
+    3007:3027:void addFullSpanItem(androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem) -> addFullSpanItem
+    2915:2919:void clear() -> clear
+    2903:2912:void ensureSize(int) -> ensureSize
+    2849:2857:int forceInvalidateAfter(int) -> forceInvalidateAfter
+    3051:3066:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem getFirstFullSpanItemInRange(int,int,int,boolean) -> getFirstFullSpanItemInRange
+    3030:3039:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem getFullSpanItem(int) -> getFullSpanItem
+    2882:2885:int getSpan(int) -> getSpan
+    2864:2877:int invalidateAfter(int) -> invalidateAfter
+    2981:3003:int invalidateFullSpansAfter(int) -> invalidateFullSpansAfter
+    2952:2961:void offsetForAddition(int,int) -> offsetForAddition
+    2922:2931:void offsetForRemoval(int,int) -> offsetForRemoval
+    2964:2974:void offsetFullSpansForAddition(int,int) -> offsetFullSpansForAddition
+    2934:2949:void offsetFullSpansForRemoval(int,int) -> offsetFullSpansForRemoval
+    2890:2892:void setSpan(int,androidx.recyclerview.widget.StaggeredGridLayoutManager$Span) -> setSpan
+    2895:2899:int sizeForPosition(int) -> sizeForPosition
+androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem -> androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem:
+    3129:3129:void <clinit>() -> <clinit>
+    3083:3092:void <init>(android.os.Parcel) -> <init>
+    3094:3095:void <init>() -> <init>
+    3103:3103:int describeContents() -> describeContents
+    3098:3098:int getGapForSpan(int) -> getGapForSpan
+    3121:3125:java.lang.String toString() -> toString
+    3108:3117:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem$1 -> androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem$1:
+    3130:3130:void <init>() -> <init>
+    3130:3130:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    3133:3133:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem createFromParcel(android.os.Parcel) -> createFromParcel
+    3130:3130:java.lang.Object[] newArray(int) -> newArray
+    3138:3138:androidx.recyclerview.widget.StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem[] newArray(int) -> newArray
+androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState -> androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState:
+    3239:3239:void <clinit>() -> <clinit>
+    3162:3163:void <init>() -> <init>
+    3165:3186:void <init>(android.os.Parcel) -> <init>
+    3188:3199:void <init>(androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState) -> <init>
+    3218:3218:int describeContents() -> describeContents
+    3210:3214:void invalidateAnchorPositionInfo() -> invalidateAnchorPositionInfo
+    3202:3207:void invalidateSpanInfo() -> invalidateSpanInfo
+    3223:3237:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState$1 -> androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState$1:
+    3240:3240:void <init>() -> <init>
+    3240:3240:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    3243:3243:androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    3240:3240:java.lang.Object[] newArray(int) -> newArray
+    3248:3248:androidx.recyclerview.widget.StaggeredGridLayoutManager$SavedState[] newArray(int) -> newArray
+androidx.recyclerview.widget.StaggeredGridLayoutManager$Span -> androidx.recyclerview.widget.StaggeredGridLayoutManager$Span:
+    2509:2517:void <init>(androidx.recyclerview.widget.StaggeredGridLayoutManager,int) -> <init>
+    2600:2610:void appendToSpan(android.view.View) -> appendToSpan
+    2615:2632:void cacheReferenceLineAndClear(boolean,int) -> cacheReferenceLineAndClear
+    2565:2575:void calculateCachedEnd() -> calculateCachedEnd
+    2531:2541:void calculateCachedStart() -> calculateCachedStart
+    2635:2638:void clear() -> clear
+    2706:2708:int findFirstCompletelyVisibleItemPosition() -> findFirstCompletelyVisibleItemPosition
+    2700:2702:int findFirstPartiallyVisibleItemPosition() -> findFirstPartiallyVisibleItemPosition
+    2694:2696:int findFirstVisibleItemPosition() -> findFirstVisibleItemPosition
+    2724:2726:int findLastCompletelyVisibleItemPosition() -> findLastCompletelyVisibleItemPosition
+    2718:2720:int findLastPartiallyVisibleItemPosition() -> findLastPartiallyVisibleItemPosition
+    2712:2714:int findLastVisibleItemPosition() -> findLastVisibleItemPosition
+    2756:2783:int findOnePartiallyOrCompletelyVisibleChild(int,int,boolean,boolean,boolean) -> findOnePartiallyOrCompletelyVisibleChild
+    2793:2793:int findOnePartiallyVisibleChild(int,int,boolean) -> findOnePartiallyVisibleChild
+    2787:2787:int findOneVisibleChild(int,int,boolean) -> findOneVisibleChild
+    2677:2677:int getDeletedSize() -> getDeletedSize
+    2553:2561:int getEndLine(int) -> getEndLine
+    2579:2583:int getEndLine() -> getEndLine
+    2801:2830:android.view.View getFocusableViewAfter(int,int) -> getFocusableViewAfter
+    2681:2681:androidx.recyclerview.widget.StaggeredGridLayoutManager$LayoutParams getLayoutParams(android.view.View) -> getLayoutParams
+    2520:2527:int getStartLine(int) -> getStartLine
+    2545:2549:int getStartLine() -> getStartLine
+    2641:2643:void invalidateCache() -> invalidateCache
+    2685:2691:void onOffset(int) -> onOffset
+    2650:2661:void popEnd() -> popEnd
+    2664:2674:void popStart() -> popStart
+    2587:2597:void prependToSpan(android.view.View) -> prependToSpan
+    2646:2647:void setLine(int) -> setLine
+androidx.recyclerview.widget.TileList -> androidx.recyclerview.widget.TileList:
+    31:37:void <init>(int) -> <init>
+    64:74:androidx.recyclerview.widget.TileList$Tile addOrReplace(androidx.recyclerview.widget.TileList$Tile) -> addOrReplace
+    56:57:void clear() -> clear
+    60:60:androidx.recyclerview.widget.TileList$Tile getAtIndex(int) -> getAtIndex
+    40:48:java.lang.Object getItemAt(int) -> getItemAt
+    78:83:androidx.recyclerview.widget.TileList$Tile removeAtPos(int) -> removeAtPos
+    52:52:int size() -> size
+androidx.recyclerview.widget.TileList$Tile -> androidx.recyclerview.widget.TileList$Tile:
+    92:96:void <init>(java.lang.Class,int) -> <init>
+    99:99:boolean containsPosition(int) -> containsPosition
+    103:103:java.lang.Object getByPosition(int) -> getByPosition
+androidx.recyclerview.widget.ViewBoundsCheck -> androidx.recyclerview.widget.ViewBoundsCheck:
+    131:134:void <init>(androidx.recyclerview.widget.ViewBoundsCheck$Callback) -> <init>
+    213:238:android.view.View findOneViewWithinBoundFlags(int,int,int,int) -> findOneViewWithinBoundFlags
+    248:255:boolean isViewWithinBoundFlags(android.view.View,int) -> isViewWithinBoundFlags
+androidx.recyclerview.widget.ViewBoundsCheck$BoundFlags -> androidx.recyclerview.widget.ViewBoundsCheck$BoundFlags:
+    136:137:void <init>() -> <init>
+    148:149:void addFlags(int) -> addFlags
+    166:189:boolean boundsMatch() -> boundsMatch
+    156:162:int compare(int,int) -> compare
+    152:153:void resetFlags() -> resetFlags
+    141:145:void setBounds(int,int,int,int) -> setBounds
+androidx.recyclerview.widget.ViewInfoStore -> androidx.recyclerview.widget.ViewInfoStore:
+    36:47:void <init>() -> <init>
+    145:152:void addToAppearedInPreLayoutHolders(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> addToAppearedInPreLayoutHolders
+    198:204:void addToDisappearedInLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> addToDisappearedInLayout
+    132:133:void addToOldChangeHolders(long,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> addToOldChangeHolders
+    182:189:void addToPostLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> addToPostLayout
+    64:71:void addToPreLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo) -> addToPreLayout
+    54:56:void clear() -> clear
+    173:173:androidx.recyclerview.widget.RecyclerView$ViewHolder getFromOldChangeHolders(long) -> getFromOldChangeHolders
+    74:75:boolean isDisappearing(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> isDisappearing
+    161:162:boolean isInPreLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> isInPreLayout
+    273:274:void onDetach() -> onDetach
+    277:278:void onViewDetached(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewDetached
+    101:123:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo popFromLayoutStep(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> popFromLayoutStep
+    97:97:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo popFromPostLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> popFromPostLayout
+    86:86:androidx.recyclerview.widget.RecyclerView$ItemAnimator$ItemHolderInfo popFromPreLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> popFromPreLayout
+    219:253:void process(androidx.recyclerview.widget.ViewInfoStore$ProcessCallback) -> process
+    211:216:void removeFromDisappearedInLayout(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> removeFromDisappearedInLayout
+    260:270:void removeViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> removeViewHolder
+androidx.recyclerview.widget.ViewInfoStore$InfoRecord -> androidx.recyclerview.widget.ViewInfoStore$InfoRecord:
+    307:307:void <clinit>() -> <clinit>
+    309:310:void <init>() -> <init>
+    326:327:void drainCache() -> drainCache
+    313:314:androidx.recyclerview.widget.ViewInfoStore$InfoRecord obtain() -> obtain
+    318:322:void recycle(androidx.recyclerview.widget.ViewInfoStore$InfoRecord) -> recycle
+androidx.savedstate.Recreator -> androidx.savedstate.Recreator:
+    42:44:void <init>(androidx.savedstate.SavedStateRegistryOwner) -> <init>
+    48:66:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+    71:93:void reflectiveNew(java.lang.String) -> reflectiveNew
+androidx.savedstate.Recreator$SavedStateProvider -> androidx.savedstate.Recreator$SavedStateProvider:
+    96:101:void <init>(androidx.savedstate.SavedStateRegistry) -> <init>
+    112:113:void add(java.lang.String) -> add
+    106:108:android.os.Bundle saveState() -> saveState
+androidx.savedstate.SavedStateRegistry -> androidx.savedstate.SavedStateRegistry:
+    44:53:void <init>() -> <init>
+    76:88:android.os.Bundle consumeRestoredStateForKey(java.lang.String) -> consumeRestoredStateForKey
+    134:134:boolean isRestored() -> isRestored
+    190:209:void performRestore(androidx.lifecycle.Lifecycle,android.os.Bundle) -> performRestore
+    220:230:void performSave(android.os.Bundle) -> performSave
+    109:114:void registerSavedStateProvider(java.lang.String,androidx.savedstate.SavedStateRegistry$SavedStateProvider) -> registerSavedStateProvider
+    167:181:void runOnNextRecreation(java.lang.Class) -> runOnNextRecreation
+    123:124:void unregisterSavedStateProvider(java.lang.String) -> unregisterSavedStateProvider
+androidx.savedstate.SavedStateRegistry$1 -> androidx.savedstate.SavedStateRegistry$1:
+    197:197:void <init>(androidx.savedstate.SavedStateRegistry) -> <init>
+    200:205:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.savedstate.SavedStateRegistryController -> androidx.savedstate.SavedStateRegistryController:
+    36:39:void <init>(androidx.savedstate.SavedStateRegistryOwner) -> <init>
+    84:84:androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner) -> create
+    46:46:androidx.savedstate.SavedStateRegistry getSavedStateRegistry() -> getSavedStateRegistry
+    56:63:void performRestore(android.os.Bundle) -> performRestore
+    74:75:void performSave(android.os.Bundle) -> performSave
+androidx.savedstate.ViewTreeSavedStateRegistryOwner -> androidx.savedstate.ViewTreeSavedStateRegistryOwner:
+    30:32:void <init>() -> <init>
+    70:80:androidx.savedstate.SavedStateRegistryOwner get(android.view.View) -> get
+    53:54:void set(android.view.View,androidx.savedstate.SavedStateRegistryOwner) -> set
+androidx.swiperefreshlayout.widget.CircleImageView -> androidx.swiperefreshlayout.widget.CircleImageView:
+    58:90:void <init>(android.content.Context) -> <init>
+    93:93:boolean elevationSupported() -> elevationSupported
+    134:134:int getBackgroundColor() -> getBackgroundColor
+    119:123:void onAnimationEnd() -> onAnimationEnd
+    111:115:void onAnimationStart() -> onAnimationStart
+    98:103:void onMeasure(int,int) -> onMeasure
+    106:107:void setAnimationListener(android.view.animation.Animation$AnimationListener) -> setAnimationListener
+    127:131:void setBackgroundColor(int) -> setBackgroundColor
+androidx.swiperefreshlayout.widget.CircleImageView$OvalShadow -> androidx.swiperefreshlayout.widget.CircleImageView$OvalShadow:
+    143:148:void <init>(androidx.swiperefreshlayout.widget.CircleImageView,int) -> <init>
+    158:162:void draw(android.graphics.Canvas,android.graphics.Paint) -> draw
+    152:154:void onResize(float,float) -> onResize
+    165:172:void updateRadialGradient(int) -> updateRadialGradient
+androidx.swiperefreshlayout.widget.CircularProgressDrawable -> androidx.swiperefreshlayout.widget.CircularProgressDrawable:
+    67:97:void <clinit>() -> <clinit>
+    138:146:void <init>(android.content.Context) -> <init>
+    519:530:void applyFinishTranslation(float,androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring) -> applyFinishTranslation
+    537:566:void applyTransformation(float,androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring,boolean) -> applyTransformation
+    399:404:void draw(android.graphics.Canvas) -> draw
+    479:489:int evaluateColorChange(float,int,int) -> evaluateColorChange
+    414:414:int getAlpha() -> getAlpha
+    271:271:boolean getArrowEnabled() -> getArrowEnabled
+    251:251:float getArrowHeight() -> getArrowHeight
+    290:290:float getArrowScale() -> getArrowScale
+    242:242:float getArrowWidth() -> getArrowWidth
+    360:360:int getBackgroundColor() -> getBackgroundColor
+    202:202:float getCenterRadius() -> getCenterRadius
+    382:382:int[] getColorSchemeColors() -> getColorSchemeColors
+    318:318:float getEndTrim() -> getEndTrim
+    436:436:int getOpacity() -> getOpacity
+    341:341:float getProgressRotation() -> getProgressRotation
+    429:429:float getRotation() -> getRotation
+    309:309:float getStartTrim() -> getStartTrim
+    233:233:android.graphics.Paint$Cap getStrokeCap() -> getStrokeCap
+    183:183:float getStrokeWidth() -> getStrokeWidth
+    441:441:boolean isRunning() -> isRunning
+    408:410:void setAlpha(int) -> setAlpha
+    261:263:void setArrowDimensions(float,float) -> setArrowDimensions
+    280:282:void setArrowEnabled(boolean) -> setArrowEnabled
+    299:301:void setArrowScale(float) -> setArrowScale
+    371:373:void setBackgroundColor(int) -> setBackgroundColor
+    212:214:void setCenterRadius(float) -> setCenterRadius
+    419:421:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    392:395:void setColorSchemeColors(int[]) -> setColorSchemeColors
+    350:352:void setProgressRotation(float) -> setProgressRotation
+    424:425:void setRotation(float) -> setRotation
+    151:159:void setSizeParameters(float,float,float,float) -> setSizeParameters
+    330:333:void setStartEndTrim(float,float) -> setStartEndTrim
+    222:224:void setStrokeCap(android.graphics.Paint$Cap) -> setStrokeCap
+    192:194:void setStrokeWidth(float) -> setStrokeWidth
+    168:175:void setStyle(int) -> setStyle
+    569:619:void setupAnimators() -> setupAnimators
+    449:462:void start() -> start
+    469:475:void stop() -> stop
+    502:509:void updateRingColor(float,androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring) -> updateRingColor
+androidx.swiperefreshlayout.widget.CircularProgressDrawable$1 -> androidx.swiperefreshlayout.widget.CircularProgressDrawable$1:
+    571:571:void <init>(androidx.swiperefreshlayout.widget.CircularProgressDrawable,androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring) -> <init>
+    574:578:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+androidx.swiperefreshlayout.widget.CircularProgressDrawable$2 -> androidx.swiperefreshlayout.widget.CircularProgressDrawable$2:
+    583:583:void <init>(androidx.swiperefreshlayout.widget.CircularProgressDrawable,androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring) -> <init>
+    598:598:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    593:593:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    602:616:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    587:588:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring -> androidx.swiperefreshlayout.widget.CircularProgressDrawable$Ring:
+    626:662:void <init>() -> <init>
+    695:724:void draw(android.graphics.Canvas,android.graphics.Rect) -> draw
+    727:756:void drawTriangle(android.graphics.Canvas,float,float,android.graphics.RectF) -> drawTriangle
+    838:838:int getAlpha() -> getAlpha
+    688:688:float getArrowHeight() -> getArrowHeight
+    923:923:float getArrowScale() -> getArrowScale
+    684:684:float getArrowWidth() -> getArrowWidth
+    792:792:int getBackgroundColor() -> getBackgroundColor
+    897:897:float getCenterRadius() -> getCenterRadius
+    770:770:int[] getColors() -> getColors
+    878:878:float getEndTrim() -> getEndTrim
+    808:808:int getNextColor() -> getNextColor
+    812:812:int getNextColorIndex() -> getNextColorIndex
+    886:886:float getRotation() -> getRotation
+    910:910:boolean getShowArrow() -> getShowArrow
+    858:858:float getStartTrim() -> getStartTrim
+    870:870:int getStartingColor() -> getStartingColor
+    866:866:float getStartingEndTrim() -> getStartingEndTrim
+    930:930:float getStartingRotation() -> getStartingRotation
+    862:862:float getStartingStartTrim() -> getStartingStartTrim
+    680:680:android.graphics.Paint$Cap getStrokeCap() -> getStrokeCap
+    850:850:float getStrokeWidth() -> getStrokeWidth
+    820:821:void goToNextColor() -> goToNextColor
+    947:953:void resetOriginals() -> resetOriginals
+    831:832:void setAlpha(int) -> setAlpha
+    671:673:void setArrowDimensions(float,float) -> setArrowDimensions
+    917:920:void setArrowScale(float) -> setArrowScale
+    788:789:void setBackgroundColor(int) -> setBackgroundColor
+    893:894:void setCenterRadius(float) -> setCenterRadius
+    781:782:void setColor(int) -> setColor
+    824:825:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    800:802:void setColorIndex(int) -> setColorIndex
+    764:767:void setColors(int[]) -> setColors
+    874:875:void setEndTrim(float) -> setEndTrim
+    882:883:void setRotation(float) -> setRotation
+    904:907:void setShowArrow(boolean) -> setShowArrow
+    854:855:void setStartTrim(float) -> setStartTrim
+    676:677:void setStrokeCap(android.graphics.Paint$Cap) -> setStrokeCap
+    845:847:void setStrokeWidth(float) -> setStrokeWidth
+    938:941:void storeOriginals() -> storeOriginals
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout:
+    92:150:void <clinit>() -> <clinit>
+    404:405:void <init>(android.content.Context) -> <init>
+    118:1367:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1317:1326:void animateOffsetToCorrectPosition(int,android.view.animation.Animation$AnimationListener) -> animateOffsetToCorrectPosition
+    1329:1343:void animateOffsetToStartPosition(int,android.view.animation.Animation$AnimationListener) -> animateOffsetToStartPosition
+    736:742:boolean canChildScrollUp() -> canChildScrollUp
+    462:468:void createProgressView() -> createProgressView
+    1128:1128:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    1133:1133:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    1082:1082:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    1122:1122:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    1047:1051:void dispatchNestedScroll(int,int,int,int,int[],int,int[]) -> dispatchNestedScroll
+    1075:1075:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    1116:1116:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    651:660:void ensureTarget() -> ensureTarget
+    1193:1223:void finishSpinner(float) -> finishSpinner
+    447:457:int getChildDrawingOrder(int,int) -> getChildDrawingOrder
+    1005:1005:int getNestedScrollAxes() -> getNestedScrollAxes
+    728:728:int getProgressCircleDiameter() -> getProgressCircleDiameter
+    344:344:int getProgressViewEndOffset() -> getProgressViewEndOffset
+    336:336:int getProgressViewStartOffset() -> getProgressViewStartOffset
+    1069:1069:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    1110:1110:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    1137:1137:boolean isAnimationRunning(android.view.animation.Animation) -> isAnimationRunning
+    1095:1095:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    645:645:boolean isRefreshing() -> isRefreshing
+    1141:1190:void moveSpinner(float) -> moveSpinner
+    1362:1365:void moveToStart(float) -> moveToStart
+    294:296:void onDetachedFromWindow() -> onDetachedFromWindow
+    756:809:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    673:694:void onLayout(boolean,int,int,int,int) -> onLayout
+    698:719:void onMeasure(int,int) -> onMeasure
+    1038:1038:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    1032:1032:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    948:951:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    975:1001:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    865:906:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    940:942:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    1025:1027:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    923:926:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    964:969:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    287:290:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    281:282:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1401:1409:void onSecondaryPointerUp(android.view.MotionEvent) -> onSecondaryPointerUp
+    912:915:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    957:957:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    932:935:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    1010:1020:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    1227:1304:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    843:857:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    219:230:void reset() -> reset
+    524:526:void setAnimationProgress(float) -> setAnimationProgress
+    609:610:void setColorScheme(int[]) -> setColorScheme
+    636:638:void setColorSchemeColors(int[]) -> setColorSchemeColors
+    620:626:void setColorSchemeResources(int[]) -> setColorSchemeResources
+    299:301:void setColorViewAlpha(int) -> setColorViewAlpha
+    668:669:void setDistanceToTriggerSync(int) -> setDistanceToTriggerSync
+    234:238:void setEnabled(boolean) -> setEnabled
+    835:836:void setLegacyRequestDisallowInterceptTouchEventEnabled(boolean) -> setLegacyRequestDisallowInterceptTouchEventEnabled
+    1090:1091:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    751:752:void setOnChildScrollUpCallback(androidx.swiperefreshlayout.widget.SwipeRefreshLayout$OnChildScrollUpCallback) -> setOnChildScrollUpCallback
+    475:476:void setOnRefreshListener(androidx.swiperefreshlayout.widget.SwipeRefreshLayout$OnRefreshListener) -> setOnRefreshListener
+    583:584:void setProgressBackgroundColor(int) -> setProgressBackgroundColor
+    601:602:void setProgressBackgroundColorSchemeColor(int) -> setProgressBackgroundColorSchemeColor
+    592:593:void setProgressBackgroundColorSchemeResource(int) -> setProgressBackgroundColorSchemeResource
+    361:364:void setProgressViewEndTarget(boolean,int) -> setProgressViewEndTarget
+    323:329:void setProgressViewOffset(boolean,int,int) -> setProgressViewOffset
+    485:500:void setRefreshing(boolean) -> setRefreshing
+    529:539:void setRefreshing(boolean,boolean) -> setRefreshing
+    381:396:void setSize(int) -> setSize
+    374:375:void setSlingshotDistance(int) -> setSlingshotDistance
+    1395:1398:void setTargetOffsetTopAndBottom(int) -> setTargetOffsetTopAndBottom
+    563:575:android.view.animation.Animation startAlphaAnimation(int,int) -> startAlphaAnimation
+    1308:1314:void startDragging(float) -> startDragging
+    1057:1057:boolean startNestedScroll(int,int) -> startNestedScroll
+    1100:1100:boolean startNestedScroll(int) -> startNestedScroll
+    559:560:void startProgressAlphaMaxAnimation() -> startProgressAlphaMaxAnimation
+    555:556:void startProgressAlphaStartAnimation() -> startProgressAlphaStartAnimation
+    542:552:void startScaleDownAnimation(android.view.animation.Animation$AnimationListener) -> startScaleDownAnimation
+    1376:1392:void startScaleDownReturnToStartAnimation(int,android.view.animation.Animation$AnimationListener) -> startScaleDownReturnToStartAnimation
+    503:517:void startScaleUpAnimation(android.view.animation.Animation$AnimationListener) -> startScaleUpAnimation
+    1062:1065:void stopNestedScroll(int) -> stopNestedScroll
+    1105:1106:void stopNestedScroll() -> stopNestedScroll
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$1 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$1:
+    191:191:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    202:215:void onAnimationEnd(android.view.animation.Animation) -> onAnimationEnd
+    198:198:void onAnimationRepeat(android.view.animation.Animation) -> onAnimationRepeat
+    194:194:void onAnimationStart(android.view.animation.Animation) -> onAnimationStart
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$2 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$2:
+    505:505:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    508:509:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$3 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$3:
+    542:542:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    545:546:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$4 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$4:
+    563:563:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout,int,int) -> <init>
+    566:568:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$5 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$5:
+    1201:1201:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    1209:1212:void onAnimationEnd(android.view.animation.Animation) -> onAnimationEnd
+    1216:1216:void onAnimationRepeat(android.view.animation.Animation) -> onAnimationRepeat
+    1205:1205:void onAnimationStart(android.view.animation.Animation) -> onAnimationStart
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$6 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$6:
+    1345:1345:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    1349:1358:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$7 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$7:
+    1367:1367:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    1370:1371:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$8 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$8:
+    1378:1378:void <init>(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) -> <init>
+    1381:1384:void applyTransformation(float,android.view.animation.Transformation) -> applyTransformation
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState:
+    265:265:void <clinit>() -> <clinit>
+    247:249:void <init>(android.os.Parcelable,boolean) -> <init>
+    255:257:void <init>(android.os.Parcel) -> <init>
+    261:263:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState$1 -> androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState$1:
+    266:266:void <init>() -> <init>
+    266:266:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    269:269:androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    266:266:java.lang.Object[] newArray(int) -> newArray
+    274:274:androidx.swiperefreshlayout.widget.SwipeRefreshLayout$SavedState[] newArray(int) -> newArray
+androidx.tracing.Trace -> androidx.tracing.Trace:
+    240:241:void <init>() -> <init>
+    111:118:void beginAsyncSection(java.lang.String,int) -> beginAsyncSection
+    177:191:void beginAsyncSectionFallback(java.lang.String,int) -> beginAsyncSectionFallback
+    80:83:void beginSection(java.lang.String) -> beginSection
+    131:138:void endAsyncSection(java.lang.String,int) -> endAsyncSection
+    194:208:void endAsyncSectionFallback(java.lang.String,int) -> endAsyncSectionFallback
+    93:96:void endSection() -> endSection
+    229:238:void handleException(java.lang.String,java.lang.Exception) -> handleException
+    61:66:boolean isEnabled() -> isEnabled
+    159:173:boolean isEnabledFallback() -> isEnabledFallback
+    149:156:void setCounter(java.lang.String,int) -> setCounter
+    211:226:void setCounterFallback(java.lang.String,int) -> setCounterFallback
+androidx.tracing.TraceApi18Impl -> androidx.tracing.TraceApi18Impl:
+    33:35:void <init>() -> <init>
+    49:50:void beginSection(java.lang.String) -> beginSection
+    60:61:void endSection() -> endSection
+androidx.tracing.TraceApi29Impl -> androidx.tracing.TraceApi29Impl:
+    33:35:void <init>() -> <init>
+    46:47:void beginAsyncSection(java.lang.String,int) -> beginAsyncSection
+    58:59:void endAsyncSection(java.lang.String,int) -> endAsyncSection
+    68:69:void setCounter(java.lang.String,int) -> setCounter
+androidx.transition.AnimatorUtils -> androidx.transition.AnimatorUtils:
+    81:82:void <init>() -> <init>
+    31:34:void addPauseListener(android.animation.Animator,android.animation.AnimatorListenerAdapter) -> addPauseListener
+    37:50:void pause(android.animation.Animator) -> pause
+    53:66:void resume(android.animation.Animator) -> resume
+androidx.transition.ArcMotion -> androidx.transition.ArcMotion:
+    55:56:void <clinit>() -> <clinit>
+    58:66:void <init>() -> <init>
+    58:86:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    173:173:float getMaximumAngle() -> getMaximumAngle
+    115:115:float getMinimumHorizontalAngle() -> getMinimumHorizontalAngle
+    146:146:float getMinimumVerticalAngle() -> getMinimumVerticalAngle
+    201:277:android.graphics.Path getPath(float,float,float,float) -> getPath
+    159:161:void setMaximumAngle(float) -> setMaximumAngle
+    100:102:void setMinimumHorizontalAngle(float) -> setMinimumHorizontalAngle
+    130:132:void setMinimumVerticalAngle(float) -> setMinimumVerticalAngle
+    177:180:float toTangent(float) -> toTangent
+androidx.transition.AutoTransition -> androidx.transition.AutoTransition:
+    37:39:void <init>() -> <init>
+    42:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:51:void init() -> init
+androidx.transition.CanvasUtils -> androidx.transition.CanvasUtils:
+    81:82:void <init>() -> <init>
+    41:79:void enableZ(android.graphics.Canvas,boolean) -> enableZ
+androidx.transition.ChangeBounds -> androidx.transition.ChangeBounds:
+    61:168:void <clinit>() -> <clinit>
+    164:171:void <init>() -> <init>
+    164:183:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    244:245:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    239:240:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    220:235:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    264:458:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    216:216:boolean getResizeClip() -> getResizeClip
+    188:188:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    248:257:boolean parentMatches(android.view.View,android.view.View) -> parentMatches
+    205:206:void setResizeClip(boolean) -> setResizeClip
+androidx.transition.ChangeBounds$1 -> androidx.transition.ChangeBounds$1:
+    70:71:void <init>(java.lang.Class,java.lang.String) -> <init>
+    70:70:java.lang.Object get(java.lang.Object) -> get
+    82:83:android.graphics.PointF get(android.graphics.drawable.Drawable) -> get
+    70:70:void set(java.lang.Object,java.lang.Object) -> set
+    75:78:void set(android.graphics.drawable.Drawable,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$10 -> androidx.transition.ChangeBounds$10:
+    448:448:void <init>(androidx.transition.ChangeBounds,android.view.ViewGroup,android.graphics.drawable.BitmapDrawable,android.view.View,float) -> <init>
+    451:453:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.transition.ChangeBounds$2 -> androidx.transition.ChangeBounds$2:
+    88:88:void <init>(java.lang.Class,java.lang.String) -> <init>
+    88:88:java.lang.Object get(java.lang.Object) -> get
+    96:96:android.graphics.PointF get(androidx.transition.ChangeBounds$ViewBounds) -> get
+    88:88:void set(java.lang.Object,java.lang.Object) -> set
+    91:92:void set(androidx.transition.ChangeBounds$ViewBounds,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$3 -> androidx.transition.ChangeBounds$3:
+    101:101:void <init>(java.lang.Class,java.lang.String) -> <init>
+    101:101:java.lang.Object get(java.lang.Object) -> get
+    109:109:android.graphics.PointF get(androidx.transition.ChangeBounds$ViewBounds) -> get
+    101:101:void set(java.lang.Object,java.lang.Object) -> set
+    104:105:void set(androidx.transition.ChangeBounds$ViewBounds,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$4 -> androidx.transition.ChangeBounds$4:
+    114:114:void <init>(java.lang.Class,java.lang.String) -> <init>
+    114:114:java.lang.Object get(java.lang.Object) -> get
+    126:126:android.graphics.PointF get(android.view.View) -> get
+    114:114:void set(java.lang.Object,java.lang.Object) -> set
+    117:122:void set(android.view.View,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$5 -> androidx.transition.ChangeBounds$5:
+    131:131:void <init>(java.lang.Class,java.lang.String) -> <init>
+    131:131:java.lang.Object get(java.lang.Object) -> get
+    143:143:android.graphics.PointF get(android.view.View) -> get
+    131:131:void set(java.lang.Object,java.lang.Object) -> set
+    134:139:void set(android.view.View,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$6 -> androidx.transition.ChangeBounds$6:
+    148:148:void <init>(java.lang.Class,java.lang.String) -> <init>
+    148:148:java.lang.Object get(java.lang.Object) -> get
+    160:160:android.graphics.PointF get(android.view.View) -> get
+    148:148:void set(java.lang.Object,java.lang.Object) -> set
+    151:156:void set(android.view.View,android.graphics.PointF) -> set
+androidx.transition.ChangeBounds$7 -> androidx.transition.ChangeBounds$7:
+    326:329:void <init>(androidx.transition.ChangeBounds,androidx.transition.ChangeBounds$ViewBounds) -> <init>
+androidx.transition.ChangeBounds$8 -> androidx.transition.ChangeBounds$8:
+    370:370:void <init>(androidx.transition.ChangeBounds,android.view.View,android.graphics.Rect,int,int,int,int) -> <init>
+    375:376:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    380:385:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.transition.ChangeBounds$9 -> androidx.transition.ChangeBounds$9:
+    394:395:void <init>(androidx.transition.ChangeBounds,android.view.ViewGroup) -> <init>
+    399:401:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    405:409:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    413:414:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    418:419:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+androidx.transition.ChangeBounds$ViewBounds -> androidx.transition.ChangeBounds$ViewBounds:
+    471:473:void <init>(android.view.View) -> <init>
+    485:491:void setBottomRight(android.graphics.PointF) -> setBottomRight
+    494:497:void setLeftTopRightBottom() -> setLeftTopRightBottom
+    476:482:void setTopLeft(android.graphics.PointF) -> setTopLeft
+androidx.transition.ChangeClipBounds -> androidx.transition.ChangeClipBounds:
+    42:42:void <clinit>() -> <clinit>
+    51:52:void <init>() -> <init>
+    55:56:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    79:80:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    74:75:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    59:70:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    85:119:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    48:48:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+androidx.transition.ChangeClipBounds$1 -> androidx.transition.ChangeClipBounds$1:
+    112:112:void <init>(androidx.transition.ChangeClipBounds,android.view.View) -> <init>
+    115:116:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.transition.ChangeImageTransform -> androidx.transition.ChangeImageTransform:
+    49:61:void <clinit>() -> <clinit>
+    74:75:void <init>() -> <init>
+    78:79:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    110:111:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    105:106:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    82:101:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    216:235:android.graphics.Matrix centerCropMatrix(android.widget.ImageView) -> centerCropMatrix
+    186:195:android.graphics.Matrix copyImageMatrix(android.widget.ImageView) -> copyImageMatrix
+    131:169:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    180:180:android.animation.ObjectAnimator createMatrixAnimator(android.widget.ImageView,android.graphics.Matrix,android.graphics.Matrix) -> createMatrixAnimator
+    174:174:android.animation.ObjectAnimator createNullAnimator(android.widget.ImageView) -> createNullAnimator
+    203:208:android.graphics.Matrix fitXYMatrix(android.widget.ImageView) -> fitXYMatrix
+    115:115:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+androidx.transition.ChangeImageTransform$1 -> androidx.transition.ChangeImageTransform$1:
+    54:54:void <init>() -> <init>
+    54:54:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    57:57:android.graphics.Matrix evaluate(float,android.graphics.Matrix,android.graphics.Matrix) -> evaluate
+androidx.transition.ChangeImageTransform$2 -> androidx.transition.ChangeImageTransform$2:
+    62:62:void <init>(java.lang.Class,java.lang.String) -> <init>
+    62:62:java.lang.Object get(java.lang.Object) -> get
+    70:70:android.graphics.Matrix get(android.widget.ImageView) -> get
+    62:62:void set(java.lang.Object,java.lang.Object) -> set
+    65:66:void set(android.widget.ImageView,android.graphics.Matrix) -> set
+androidx.transition.ChangeImageTransform$3 -> androidx.transition.ChangeImageTransform$3:
+    188:188:void <clinit>() -> <clinit>
+androidx.transition.ChangeScroll -> androidx.transition.ChangeScroll:
+    39:39:void <clinit>() -> <clinit>
+    44:44:void <init>() -> <init>
+    47:48:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    57:58:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    52:53:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    67:69:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    75:93:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    63:63:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+androidx.transition.ChangeTransform -> androidx.transition.ChangeTransform:
+    60:101:void <clinit>() -> <clinit>
+    103:109:void <init>() -> <init>
+    103:121:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    238:239:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    226:234:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    197:222:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    244:281:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    388:418:void createGhostView(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createGhostView
+    286:370:android.animation.ObjectAnimator createTransformAnimator(androidx.transition.TransitionValues,androidx.transition.TransitionValues,boolean) -> createTransformAnimator
+    175:175:boolean getReparent() -> getReparent
+    141:141:boolean getReparentWithOverlay() -> getReparentWithOverlay
+    193:193:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    374:383:boolean parentsMatch(android.view.ViewGroup,android.view.ViewGroup) -> parentsMatch
+    441:442:void setIdentityTransforms(android.view.View) -> setIdentityTransforms
+    421:437:void setMatricesForParent(androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> setMatricesForParent
+    188:189:void setReparent(boolean) -> setReparent
+    163:164:void setReparentWithOverlay(boolean) -> setReparentWithOverlay
+    448:456:void setTransforms(android.view.View,float,float,float,float,float,float,float,float) -> setTransforms
+androidx.transition.ChangeTransform$1 -> androidx.transition.ChangeTransform$1:
+    70:70:void <init>(java.lang.Class,java.lang.String) -> <init>
+    70:70:java.lang.Object get(java.lang.Object) -> get
+    73:73:float[] get(androidx.transition.ChangeTransform$PathAnimatorMatrix) -> get
+    70:70:void set(java.lang.Object,java.lang.Object) -> set
+    78:79:void set(androidx.transition.ChangeTransform$PathAnimatorMatrix,float[]) -> set
+androidx.transition.ChangeTransform$2 -> androidx.transition.ChangeTransform$2:
+    86:86:void <init>(java.lang.Class,java.lang.String) -> <init>
+    86:86:java.lang.Object get(java.lang.Object) -> get
+    89:89:android.graphics.PointF get(androidx.transition.ChangeTransform$PathAnimatorMatrix) -> get
+    86:86:void set(java.lang.Object,java.lang.Object) -> set
+    94:95:void set(androidx.transition.ChangeTransform$PathAnimatorMatrix,android.graphics.PointF) -> set
+androidx.transition.ChangeTransform$3 -> androidx.transition.ChangeTransform$3:
+    327:329:void <init>(androidx.transition.ChangeTransform,boolean,android.graphics.Matrix,android.view.View,androidx.transition.ChangeTransform$Transforms,androidx.transition.ChangeTransform$PathAnimatorMatrix) -> <init>
+    333:334:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    338:348:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    352:354:void onAnimationPause(android.animation.Animator) -> onAnimationPause
+    358:359:void onAnimationResume(android.animation.Animator) -> onAnimationResume
+    362:365:void setCurrentMatrix(android.graphics.Matrix) -> setCurrentMatrix
+androidx.transition.ChangeTransform$GhostListener -> androidx.transition.ChangeTransform$GhostListener:
+    521:524:void <init>(android.view.View,androidx.transition.GhostView) -> <init>
+    528:532:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    536:537:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    541:542:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+androidx.transition.ChangeTransform$PathAnimatorMatrix -> androidx.transition.ChangeTransform$PathAnimatorMatrix:
+    553:565:void <init>(android.view.View,float[]) -> <init>
+    586:586:android.graphics.Matrix getMatrix() -> getMatrix
+    579:583:void setAnimationMatrix() -> setAnimationMatrix
+    573:576:void setTranslation(android.graphics.PointF) -> setTranslation
+    568:570:void setValues(float[]) -> setValues
+androidx.transition.ChangeTransform$Transforms -> androidx.transition.ChangeTransform$Transforms:
+    469:478:void <init>(android.view.View) -> <init>
+    487:491:boolean equals(java.lang.Object) -> equals
+    503:511:int hashCode() -> hashCode
+    481:483:void restore(android.view.View) -> restore
+androidx.transition.CircularPropagation -> androidx.transition.CircularPropagation:
+    33:35:void <init>() -> <init>
+    101:103:float distance(float,float,float,float) -> distance
+    59:97:long getStartDelay(android.view.ViewGroup,androidx.transition.Transition,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> getStartDelay
+    50:54:void setPropagationSpeed(float) -> setPropagationSpeed
+androidx.transition.Explode -> androidx.transition.Explode:
+    44:45:void <clinit>() -> <clinit>
+    48:52:void <init>() -> <init>
+    48:57:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    173:173:float calculateDistance(float,float) -> calculateDistance
+    167:169:float calculateMaxDistance(android.view.View,int,int) -> calculateMaxDistance
+    128:164:void calculateOut(android.view.View,android.graphics.Rect,int[]) -> calculateOut
+    77:79:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    71:73:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    60:67:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    84:94:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    101:123:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+androidx.transition.Fade -> androidx.transition.Fade:
+    91:93:void <init>(int) -> <init>
+    98:99:void <init>() -> <init>
+    104:111:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    115:118:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    124:143:android.animation.Animator createAnimation(android.view.View,float,float) -> createAnimation
+    171:178:float getStartAlpha(androidx.transition.TransitionValues,float) -> getStartAlpha
+    155:159:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    165:167:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+androidx.transition.Fade$1 -> androidx.transition.Fade$1:
+    135:135:void <init>(androidx.transition.Fade,android.view.View) -> <init>
+    138:141:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+androidx.transition.Fade$FadeAnimatorListener -> androidx.transition.Fade$FadeAnimatorListener:
+    184:188:void <init>(android.view.View) -> <init>
+    201:205:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    192:197:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.transition.FloatArrayEvaluator -> androidx.transition.FloatArrayEvaluator:
+    39:41:void <init>(float[]) -> <init>
+    27:27:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    57:67:float[] evaluate(float,float[],float[]) -> evaluate
+androidx.transition.FragmentTransitionSupport -> androidx.transition.FragmentTransitionSupport:
+    42:42:void <init>() -> <init>
+    283:287:void addTarget(java.lang.Object,android.view.View) -> addTarget
+    102:123:void addTargets(java.lang.Object,java.util.ArrayList) -> addTargets
+    213:214:void beginDelayedTransition(android.view.ViewGroup,java.lang.Object) -> beginDelayedTransition
+    46:46:boolean canHandle(java.lang.Object) -> canHandle
+    51:55:java.lang.Object cloneTransition(java.lang.Object) -> cloneTransition
+    126:128:boolean hasSimpleTarget(androidx.transition.Transition) -> hasSimpleTarget
+    185:207:java.lang.Object mergeTransitionsInSequence(java.lang.Object,java.lang.Object,java.lang.Object) -> mergeTransitionsInSequence
+    134:144:java.lang.Object mergeTransitionsTogether(java.lang.Object,java.lang.Object,java.lang.Object) -> mergeTransitionsTogether
+    291:295:void removeTarget(java.lang.Object,android.view.View) -> removeTarget
+    257:279:void replaceTargets(java.lang.Object,java.util.ArrayList,java.util.ArrayList) -> replaceTargets
+    150:178:void scheduleHideFragmentView(java.lang.Object,android.view.View,java.util.ArrayList) -> scheduleHideFragmentView
+    221:241:void scheduleRemoveTargets(java.lang.Object,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList) -> scheduleRemoveTargets
+    86:98:void setEpicenter(java.lang.Object,android.view.View) -> setEpicenter
+    299:311:void setEpicenter(java.lang.Object,android.graphics.Rect) -> setEpicenter
+    71:82:void setSharedElementTargets(java.lang.Object,android.view.View,java.util.ArrayList) -> setSharedElementTargets
+    246:252:void swapSharedElementTargets(java.lang.Object,java.util.ArrayList,java.util.ArrayList) -> swapSharedElementTargets
+    60:65:java.lang.Object wrapTransitionInSet(java.lang.Object) -> wrapTransitionInSet
+androidx.transition.FragmentTransitionSupport$1 -> androidx.transition.FragmentTransitionSupport$1:
+    91:91:void <init>(androidx.transition.FragmentTransitionSupport,android.graphics.Rect) -> <init>
+    94:94:android.graphics.Rect onGetEpicenter(androidx.transition.Transition) -> onGetEpicenter
+androidx.transition.FragmentTransitionSupport$2 -> androidx.transition.FragmentTransitionSupport$2:
+    151:151:void <init>(androidx.transition.FragmentTransitionSupport,android.view.View,java.util.ArrayList) -> <init>
+    168:168:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    158:164:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    172:172:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    176:176:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+    154:154:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+androidx.transition.FragmentTransitionSupport$3 -> androidx.transition.FragmentTransitionSupport$3:
+    222:222:void <init>(androidx.transition.FragmentTransitionSupport,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList,java.lang.Object,java.util.ArrayList) -> <init>
+    238:239:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    225:234:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+androidx.transition.FragmentTransitionSupport$4 -> androidx.transition.FragmentTransitionSupport$4:
+    301:301:void <init>(androidx.transition.FragmentTransitionSupport,android.graphics.Rect) -> <init>
+    304:307:android.graphics.Rect onGetEpicenter(androidx.transition.Transition) -> onGetEpicenter
+androidx.transition.GhostViewHolder -> androidx.transition.GhostViewHolder:
+    38:44:void <init>(android.view.ViewGroup) -> <init>
+    88:97:void addGhostView(androidx.transition.GhostViewPort) -> addGhostView
+    69:69:androidx.transition.GhostViewHolder getHolder(android.view.ViewGroup) -> getHolder
+    105:121:int getInsertIndex(java.util.ArrayList) -> getInsertIndex
+    156:161:void getParents(android.view.View,java.util.ArrayList) -> getParents
+    132:149:boolean isOnTop(java.util.ArrayList,java.util.ArrayList) -> isOnTop
+    169:197:boolean isOnTop(android.view.View,android.view.View) -> isOnTop
+    48:52:void onViewAdded(android.view.View) -> onViewAdded
+    56:66:void onViewRemoved(android.view.View) -> onViewRemoved
+    73:80:void popToOverlayTop() -> popToOverlayTop
+androidx.transition.GhostViewPlatform -> androidx.transition.GhostViewPlatform:
+    73:75:void <init>(android.view.View) -> <init>
+    43:54:androidx.transition.GhostView addGhost(android.view.View,android.view.ViewGroup,android.graphics.Matrix) -> addGhost
+    99:110:void fetchAddGhostMethod() -> fetchAddGhostMethod
+    88:96:void fetchGhostViewClass() -> fetchGhostViewClass
+    113:123:void fetchRemoveGhostMethod() -> fetchRemoveGhostMethod
+    58:68:void removeGhost(android.view.View) -> removeGhost
+    85:85:void reserveEndViewTransition(android.view.ViewGroup,android.view.View) -> reserveEndViewTransition
+    79:80:void setVisibility(int) -> setVisibility
+androidx.transition.GhostViewPort -> androidx.transition.GhostViewPort:
+    51:72:void <init>(android.view.View) -> <init>
+    163:197:androidx.transition.GhostViewPort addGhost(android.view.View,android.view.ViewGroup,android.graphics.Matrix) -> addGhost
+    155:160:void calculateMatrix(android.view.View,android.view.ViewGroup,android.graphics.Matrix) -> calculateMatrix
+    139:144:void copySize(android.view.View,android.view.View) -> copySize
+    147:147:androidx.transition.GhostViewPort getGhostView(android.view.View) -> getGhostView
+    100:109:void onAttachedToWindow() -> onAttachedToWindow
+    113:120:void onDetachedFromWindow() -> onDetachedFromWindow
+    124:136:void onDraw(android.graphics.Canvas) -> onDraw
+    86:86:void onLayout(boolean,int,int,int,int) -> onLayout
+    201:209:void removeGhost(android.view.View) -> removeGhost
+    94:96:void reserveEndViewTransition(android.view.ViewGroup,android.view.View) -> reserveEndViewTransition
+    151:152:void setGhostView(android.view.View,androidx.transition.GhostViewPort) -> setGhostView
+    89:90:void setMatrix(android.graphics.Matrix) -> setMatrix
+    76:81:void setVisibility(int) -> setVisibility
+androidx.transition.GhostViewPort$1 -> androidx.transition.GhostViewPort$1:
+    52:52:void <init>(androidx.transition.GhostViewPort) -> <init>
+    56:63:boolean onPreDraw() -> onPreDraw
+androidx.transition.GhostViewUtils -> androidx.transition.GhostViewUtils:
+    49:50:void <init>() -> <init>
+    32:36:androidx.transition.GhostView addGhost(android.view.View,android.view.ViewGroup,android.graphics.Matrix) -> addGhost
+    41:47:void removeGhost(android.view.View) -> removeGhost
+androidx.transition.ImageViewUtils -> androidx.transition.ImageViewUtils:
+    36:36:void <clinit>() -> <clinit>
+    111:112:void <init>() -> <init>
+    45:83:void animateTransform(android.widget.ImageView,android.graphics.Matrix) -> animateTransform
+    100:109:void fetchDrawMatrixField() -> fetchDrawMatrixField
+    88:97:void hiddenAnimateTransform(android.widget.ImageView,android.graphics.Matrix) -> hiddenAnimateTransform
+androidx.transition.MatrixUtils -> androidx.transition.MatrixUtils:
+    24:24:void <clinit>() -> <clinit>
+    207:208:void <init>() -> <init>
+androidx.transition.MatrixUtils$1 -> androidx.transition.MatrixUtils$1:
+    24:24:void <init>() -> <init>
+    27:27:void oops() -> oops
+    183:184:boolean postConcat(android.graphics.Matrix) -> postConcat
+    159:160:boolean postRotate(float,float,float) -> postRotate
+    165:166:boolean postRotate(float) -> postRotate
+    147:148:boolean postScale(float,float,float,float) -> postScale
+    153:154:boolean postScale(float,float) -> postScale
+    171:172:boolean postSkew(float,float,float,float) -> postSkew
+    177:178:boolean postSkew(float,float) -> postSkew
+    141:142:boolean postTranslate(float,float) -> postTranslate
+    135:136:boolean preConcat(android.graphics.Matrix) -> preConcat
+    111:112:boolean preRotate(float,float,float) -> preRotate
+    117:118:boolean preRotate(float) -> preRotate
+    99:100:boolean preScale(float,float,float,float) -> preScale
+    105:106:boolean preScale(float,float) -> preScale
+    123:124:boolean preSkew(float,float,float,float) -> preSkew
+    129:130:boolean preSkew(float,float) -> preSkew
+    93:94:boolean preTranslate(float,float) -> preTranslate
+    37:38:void reset() -> reset
+    32:33:void set(android.graphics.Matrix) -> set
+    87:88:boolean setConcat(android.graphics.Matrix,android.graphics.Matrix) -> setConcat
+    196:197:boolean setPolyToPoly(float[],int,float[],int,int) -> setPolyToPoly
+    189:190:boolean setRectToRect(android.graphics.RectF,android.graphics.RectF,android.graphics.Matrix$ScaleToFit) -> setRectToRect
+    57:58:void setRotate(float,float,float) -> setRotate
+    62:63:void setRotate(float) -> setRotate
+    47:48:void setScale(float,float,float,float) -> setScale
+    52:53:void setScale(float,float) -> setScale
+    67:68:void setSinCos(float,float,float,float) -> setSinCos
+    72:73:void setSinCos(float,float) -> setSinCos
+    77:78:void setSkew(float,float,float,float) -> setSkew
+    82:83:void setSkew(float,float) -> setSkew
+    42:43:void setTranslate(float,float) -> setTranslate
+    202:203:void setValues(float[]) -> setValues
+androidx.transition.ObjectAnimatorUtils -> androidx.transition.ObjectAnimatorUtils:
+    34:35:void <init>() -> <init>
+    28:29:android.animation.ObjectAnimator ofPointF(java.lang.Object,android.util.Property,android.graphics.Path) -> ofPointF
+androidx.transition.PathMotion -> androidx.transition.PathMotion:
+    43:44:void <init>() -> <init>
+    46:47:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+androidx.transition.PathProperty -> androidx.transition.PathProperty:
+    40:49:void <init>(android.util.Property,android.graphics.Path) -> <init>
+    35:35:java.lang.Object get(java.lang.Object) -> get
+    53:53:java.lang.Float get(java.lang.Object) -> get
+    35:35:void set(java.lang.Object,java.lang.Object) -> set
+    58:63:void set(java.lang.Object,java.lang.Float) -> set
+androidx.transition.PatternPathMotion -> androidx.transition.PatternPathMotion:
+    47:57:void <init>() -> <init>
+    47:74:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:86:void <init>(android.graphics.Path) -> <init>
+    149:149:float distance(float,float) -> distance
+    135:145:android.graphics.Path getPath(float,float,float,float) -> getPath
+    96:96:android.graphics.Path getPatternPath() -> getPatternPath
+    107:131:void setPatternPath(android.graphics.Path) -> setPatternPath
+androidx.transition.PropertyValuesHolderUtils -> androidx.transition.PropertyValuesHolderUtils:
+    44:45:void <init>() -> <init>
+    38:39:android.animation.PropertyValuesHolder ofPointF(android.util.Property,android.graphics.Path) -> ofPointF
+androidx.transition.RectEvaluator -> androidx.transition.RectEvaluator:
+    39:40:void <init>() -> <init>
+    52:54:void <init>(android.graphics.Rect) -> <init>
+    25:25:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    75:83:android.graphics.Rect evaluate(float,android.graphics.Rect,android.graphics.Rect) -> evaluate
+androidx.transition.Scene -> androidx.transition.Scene:
+    39:91:void <init>(android.view.ViewGroup) -> <init>
+    39:112:void <init>(android.view.ViewGroup,int,android.content.Context) -> <init>
+    39:127:void <init>(android.view.ViewGroup,android.view.View) -> <init>
+    168:185:void enter() -> enter
+    149:154:void exit() -> exit
+    209:209:androidx.transition.Scene getCurrentScene(android.view.ViewGroup) -> getCurrentScene
+    63:75:androidx.transition.Scene getSceneForLayout(android.view.ViewGroup,int,android.content.Context) -> getSceneForLayout
+    138:138:android.view.ViewGroup getSceneRoot() -> getSceneRoot
+    259:259:boolean isCreatedFromLayoutResource() -> isCreatedFromLayoutResource
+    196:197:void setCurrentScene(android.view.ViewGroup,androidx.transition.Scene) -> setCurrentScene
+    230:231:void setEnterAction(java.lang.Runnable) -> setEnterAction
+    250:251:void setExitAction(java.lang.Runnable) -> setExitAction
+androidx.transition.SidePropagation -> androidx.transition.SidePropagation:
+    34:37:void <init>() -> <init>
+    125:151:int distance(android.view.View,int,int,int,int,int,int,int,int) -> distance
+    155:162:int getMaxDistance(android.view.ViewGroup) -> getMaxDistance
+    76:119:long getStartDelay(android.view.ViewGroup,androidx.transition.Transition,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> getStartDelay
+    67:71:void setPropagationSpeed(float) -> setPropagationSpeed
+    51:52:void setSide(int) -> setSide
+androidx.transition.Slide -> androidx.transition.Slide:
+    55:144:void <clinit>() -> <clinit>
+    58:157:void <init>() -> <init>
+    58:164:void <init>(int) -> <init>
+    58:176:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    193:195:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    187:189:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    179:183:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    244:244:int getSlideEdge() -> getSlideEdge
+    250:259:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    266:275:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    206:232:void setSlideEdge(int) -> setSlideEdge
+androidx.transition.Slide$1 -> androidx.transition.Slide$1:
+    93:93:void <init>() -> <init>
+    96:96:float getGoneX(android.view.ViewGroup,android.view.View) -> getGoneX
+androidx.transition.Slide$2 -> androidx.transition.Slide$2:
+    100:100:void <init>() -> <init>
+    103:111:float getGoneX(android.view.ViewGroup,android.view.View) -> getGoneX
+androidx.transition.Slide$3 -> androidx.transition.Slide$3:
+    115:115:void <init>() -> <init>
+    118:118:float getGoneY(android.view.ViewGroup,android.view.View) -> getGoneY
+androidx.transition.Slide$4 -> androidx.transition.Slide$4:
+    122:122:void <init>() -> <init>
+    125:125:float getGoneX(android.view.ViewGroup,android.view.View) -> getGoneX
+androidx.transition.Slide$5 -> androidx.transition.Slide$5:
+    129:129:void <init>() -> <init>
+    132:140:float getGoneX(android.view.ViewGroup,android.view.View) -> getGoneX
+androidx.transition.Slide$6 -> androidx.transition.Slide$6:
+    144:144:void <init>() -> <init>
+    147:147:float getGoneY(android.view.ViewGroup,android.view.View) -> getGoneY
+androidx.transition.Slide$CalculateSlideHorizontal -> androidx.transition.Slide$CalculateSlideHorizontal:
+    77:77:void <init>() -> <init>
+    77:77:void <init>(androidx.transition.Slide$1) -> <init>
+    81:81:float getGoneY(android.view.ViewGroup,android.view.View) -> getGoneY
+androidx.transition.Slide$CalculateSlideVertical -> androidx.transition.Slide$CalculateSlideVertical:
+    85:85:void <init>() -> <init>
+    85:85:void <init>(androidx.transition.Slide$1) -> <init>
+    89:89:float getGoneX(android.view.ViewGroup,android.view.View) -> getGoneX
+androidx.transition.Styleable -> androidx.transition.Styleable:
+    30:169:void <clinit>() -> <clinit>
+    178:179:void <init>() -> <init>
+androidx.transition.Transition -> androidx.transition.Transition:
+    164:205:void <clinit>() -> <clinit>
+    181:264:void <init>() -> <init>
+    181:301:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2042:2046:androidx.transition.Transition addListener(androidx.transition.Transition$TransitionListener) -> addListener
+    1000:1001:androidx.transition.Transition addTarget(android.view.View) -> addTarget
+    1024:1027:androidx.transition.Transition addTarget(int) -> addTarget
+    1049:1053:androidx.transition.Transition addTarget(java.lang.String) -> addTarget
+    1079:1083:androidx.transition.Transition addTarget(java.lang.Class) -> addTarget
+    647:663:void addUnmatched(androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> addUnmatched
+    1532:1569:void addViewValues(androidx.transition.TransitionValuesMaps,android.view.View,androidx.transition.TransitionValues) -> addViewValues
+    531:537:boolean alreadyContains(int[],int) -> alreadyContains
+    1899:1920:void animate(android.animation.Animator) -> animate
+    2017:2030:void cancel() -> cancel
+    1599:1653:void captureHierarchy(android.view.View,boolean) -> captureHierarchy
+    2189:2205:void capturePropagationValues(androidx.transition.TransitionValues) -> capturePropagationValues
+    1471:1528:void captureValues(android.view.ViewGroup,boolean) -> captureValues
+    1577:1586:void clearValues(boolean) -> clearValues
+    120:120:java.lang.Object clone() -> clone
+    2224:2232:androidx.transition.Transition clone() -> clone
+    489:489:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    710:803:void createAnimators(android.view.ViewGroup,androidx.transition.TransitionValuesMaps,androidx.transition.TransitionValuesMaps,java.util.ArrayList,java.util.ArrayList) -> createAnimators
+    1958:1982:void end() -> end
+    1271:1272:androidx.transition.Transition excludeChildren(android.view.View,boolean) -> excludeChildren
+    1301:1302:androidx.transition.Transition excludeChildren(int,boolean) -> excludeChildren
+    1384:1385:androidx.transition.Transition excludeChildren(java.lang.Class,boolean) -> excludeChildren
+    1310:1317:java.util.ArrayList excludeId(java.util.ArrayList,int,boolean) -> excludeId
+    1161:1168:java.util.ArrayList excludeObject(java.util.ArrayList,java.lang.Object,boolean) -> excludeObject
+    1193:1194:androidx.transition.Transition excludeTarget(android.view.View,boolean) -> excludeTarget
+    1219:1220:androidx.transition.Transition excludeTarget(int,boolean) -> excludeTarget
+    1245:1246:androidx.transition.Transition excludeTarget(java.lang.String,boolean) -> excludeTarget
+    1357:1358:androidx.transition.Transition excludeTarget(java.lang.Class,boolean) -> excludeTarget
+    1394:1401:java.util.ArrayList excludeType(java.util.ArrayList,java.lang.Class,boolean) -> excludeType
+    1325:1332:java.util.ArrayList excludeView(java.util.ArrayList,android.view.View,boolean) -> excludeView
+    1991:2008:void forceToEnd(android.view.ViewGroup) -> forceToEnd
+    357:357:long getDuration() -> getDuration
+    2146:2149:android.graphics.Rect getEpicenter() -> getEpicenter
+    2133:2133:androidx.transition.Transition$EpicenterCallback getEpicenterCallback() -> getEpicenterCallback
+    412:412:android.animation.TimeInterpolator getInterpolator() -> getInterpolator
+    1682:1707:androidx.transition.TransitionValues getMatchedTransitionValues(android.view.View,boolean) -> getMatchedTransitionValues
+    2250:2250:java.lang.String getName() -> getName
+    2103:2103:androidx.transition.PathMotion getPathMotion() -> getPathMotion
+    2181:2181:androidx.transition.TransitionPropagation getPropagation() -> getPropagation
+    859:864:androidx.collection.ArrayMap getRunningAnimators() -> getRunningAnimators
+    384:384:long getStartDelay() -> getStartDelay
+    1415:1415:java.util.List getTargetIds() -> getTargetIds
+    1444:1444:java.util.List getTargetNames() -> getTargetNames
+    1459:1459:java.util.List getTargetTypes() -> getTargetTypes
+    1429:1429:java.util.List getTargets() -> getTargets
+    438:438:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    1663:1667:androidx.transition.TransitionValues getTransitionValues(android.view.View,boolean) -> getTransitionValues
+    1840:1861:boolean isTransitionRequired(androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> isTransitionRequired
+    527:527:boolean isValidMatch(int) -> isValidMatch
+    816:855:boolean isValidTarget(android.view.View) -> isValidTarget
+    1866:1884:boolean isValueChanged(androidx.transition.TransitionValues,androidx.transition.TransitionValues,java.lang.String) -> isValueChanged
+    594:611:void matchIds(androidx.collection.ArrayMap,androidx.collection.ArrayMap,android.util.SparseArray,android.util.SparseArray) -> matchIds
+    546:557:void matchInstances(androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> matchInstances
+    567:584:void matchItemIds(androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.LongSparseArray,androidx.collection.LongSparseArray) -> matchItemIds
+    621:638:void matchNames(androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> matchNames
+    667:690:void matchStartAndEnd(androidx.transition.TransitionValuesMaps,androidx.transition.TransitionValuesMaps) -> matchStartAndEnd
+    305:330:int[] parseMatchOrder(java.lang.String) -> parseMatchOrder
+    1719:1740:void pause(android.view.View) -> pause
+    1782:1823:void playTransition(android.view.ViewGroup) -> playTransition
+    2058:2065:androidx.transition.Transition removeListener(androidx.transition.Transition$TransitionListener) -> removeListener
+    1098:1099:androidx.transition.Transition removeTarget(android.view.View) -> removeTarget
+    1114:1117:androidx.transition.Transition removeTarget(int) -> removeTarget
+    1132:1135:androidx.transition.Transition removeTarget(java.lang.String) -> removeTarget
+    1150:1153:androidx.transition.Transition removeTarget(java.lang.Class) -> removeTarget
+    1751:1774:void resume(android.view.View) -> resume
+    896:912:void runAnimator(android.animation.Animator,androidx.collection.ArrayMap) -> runAnimator
+    878:892:void runAnimators() -> runAnimators
+    2213:2214:void setCanRemoveViews(boolean) -> setCanRemoveViews
+    344:345:androidx.transition.Transition setDuration(long) -> setDuration
+    2118:2119:void setEpicenterCallback(androidx.transition.Transition$EpicenterCallback) -> setEpicenterCallback
+    398:399:androidx.transition.Transition setInterpolator(android.animation.TimeInterpolator) -> setInterpolator
+    510:524:void setMatchOrder(int[]) -> setMatchOrder
+    2085:2090:void setPathMotion(androidx.transition.PathMotion) -> setPathMotion
+    2164:2165:void setPropagation(androidx.transition.TransitionPropagation) -> setPropagation
+    2208:2209:androidx.transition.Transition setSceneRoot(android.view.ViewGroup) -> setSceneRoot
+    371:372:androidx.transition.Transition setStartDelay(long) -> setStartDelay
+    1931:1943:void start() -> start
+    2218:2218:java.lang.String toString() -> toString
+    2254:2285:java.lang.String toString(java.lang.String) -> toString
+androidx.transition.Transition$1 -> androidx.transition.Transition$1:
+    171:171:void <init>() -> <init>
+    174:177:android.graphics.Path getPath(float,float,float,float) -> getPath
+androidx.transition.Transition$2 -> androidx.transition.Transition$2:
+    898:898:void <init>(androidx.transition.Transition,androidx.collection.ArrayMap) -> <init>
+    906:908:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    901:902:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.transition.Transition$3 -> androidx.transition.Transition$3:
+    1911:1911:void <init>(androidx.transition.Transition) -> <init>
+    1914:1916:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+androidx.transition.Transition$AnimationInfo -> androidx.transition.Transition$AnimationInfo:
+    2368:2374:void <init>(android.view.View,java.lang.String,androidx.transition.Transition,androidx.transition.WindowIdImpl,androidx.transition.TransitionValues) -> <init>
+androidx.transition.Transition$ArrayListManager -> androidx.transition.Transition$ArrayListManager:
+    2387:2387:void <init>() -> <init>
+    2398:2404:java.util.ArrayList add(java.util.ArrayList,java.lang.Object) -> add
+    2413:2419:java.util.ArrayList remove(java.util.ArrayList,java.lang.Object) -> remove
+androidx.transition.Transition$EpicenterCallback -> androidx.transition.Transition$EpicenterCallback:
+    2431:2431:void <init>() -> <init>
+androidx.transition.TransitionInflater -> androidx.transition.TransitionInflater:
+    44:46:void <clinit>() -> <clinit>
+    50:52:void <init>(android.content.Context) -> <init>
+    194:217:java.lang.Object createCustom(android.util.AttributeSet,java.lang.Class,java.lang.String) -> createCustom
+    117:190:androidx.transition.Transition createTransitionFromXml(org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,androidx.transition.Transition) -> createTransitionFromXml
+    288:307:androidx.transition.TransitionManager createTransitionManagerFromXml(org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.view.ViewGroup) -> createTransitionManagerFromXml
+    58:58:androidx.transition.TransitionInflater from(android.content.Context) -> from
+    229:277:void getTargetIds(org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,androidx.transition.Transition) -> getTargetIds
+    70:80:androidx.transition.Transition inflateTransition(int) -> inflateTransition
+    92:107:androidx.transition.TransitionManager inflateTransitionManager(int,android.view.ViewGroup) -> inflateTransitionManager
+    315:340:void loadTransition(android.util.AttributeSet,org.xmlpull.v1.XmlPullParser,android.view.ViewGroup,androidx.transition.TransitionManager) -> loadTransition
+androidx.transition.TransitionListenerAdapter -> androidx.transition.TransitionListenerAdapter:
+    27:27:void <init>() -> <init>
+    39:39:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    35:35:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    43:43:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    47:47:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+    31:31:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+androidx.transition.TransitionManager -> androidx.transition.TransitionManager:
+    83:90:void <clinit>() -> <clinit>
+    79:86:void <init>() -> <init>
+    380:381:void beginDelayedTransition(android.view.ViewGroup) -> beginDelayedTransition
+    408:422:void beginDelayedTransition(android.view.ViewGroup,androidx.transition.Transition) -> beginDelayedTransition
+    169:197:void changeScene(androidx.transition.Scene,androidx.transition.Transition) -> changeScene
+    430:440:void endTransitions(android.view.ViewGroup) -> endTransitions
+    200:211:androidx.collection.ArrayMap getRunningTransitions() -> getRunningTransitions
+    139:155:androidx.transition.Transition getTransition(androidx.transition.Scene) -> getTransition
+    349:350:void go(androidx.transition.Scene) -> go
+    367:368:void go(androidx.transition.Scene,androidx.transition.Transition) -> go
+    216:221:void sceneChangeRunTransition(android.view.ViewGroup,androidx.transition.Transition) -> sceneChangeRunTransition
+    309:326:void sceneChangeSetup(android.view.ViewGroup,androidx.transition.Transition) -> sceneChangeSetup
+    102:103:void setTransition(androidx.transition.Scene,androidx.transition.Transition) -> setTransition
+    119:125:void setTransition(androidx.transition.Scene,androidx.transition.Scene,androidx.transition.Transition) -> setTransition
+    339:340:void transitionTo(androidx.transition.Scene) -> transitionTo
+androidx.transition.TransitionManager$MultiListener -> androidx.transition.TransitionManager$MultiListener:
+    238:241:void <init>(androidx.transition.Transition,android.view.ViewGroup) -> <init>
+    268:303:boolean onPreDraw() -> onPreDraw
+    250:250:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    254:264:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+    244:246:void removeListeners() -> removeListeners
+androidx.transition.TransitionManager$MultiListener$1 -> androidx.transition.TransitionManager$MultiListener$1:
+    287:287:void <init>(androidx.transition.TransitionManager$MultiListener,androidx.collection.ArrayMap) -> <init>
+    290:293:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+androidx.transition.TransitionPropagation -> androidx.transition.TransitionPropagation:
+    32:32:void <init>() -> <init>
+androidx.transition.TransitionSet -> androidx.transition.TransitionSet:
+    80:111:void <init>() -> <init>
+    80:123:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    62:62:androidx.transition.Transition addListener(androidx.transition.Transition$TransitionListener) -> addListener
+    307:307:androidx.transition.TransitionSet addListener(androidx.transition.Transition$TransitionListener) -> addListener
+    62:62:androidx.transition.Transition addTarget(int) -> addTarget
+    62:62:androidx.transition.Transition addTarget(android.view.View) -> addTarget
+    62:62:androidx.transition.Transition addTarget(java.lang.Class) -> addTarget
+    62:62:androidx.transition.Transition addTarget(java.lang.String) -> addTarget
+    271:274:androidx.transition.TransitionSet addTarget(android.view.View) -> addTarget
+    280:283:androidx.transition.TransitionSet addTarget(int) -> addTarget
+    289:292:androidx.transition.TransitionSet addTarget(java.lang.String) -> addTarget
+    298:301:androidx.transition.TransitionSet addTarget(java.lang.Class) -> addTarget
+    179:195:androidx.transition.TransitionSet addTransition(androidx.transition.Transition) -> addTransition
+    199:201:void addTransitionInternal(androidx.transition.Transition) -> addTransitionInternal
+    581:586:void cancel() -> cancel
+    536:544:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    548:553:void capturePropagationValues(androidx.transition.TransitionValues) -> capturePropagationValues
+    524:532:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    62:62:java.lang.Object clone() -> clone
+    649:655:androidx.transition.Transition clone() -> clone
+    466:483:void createAnimators(android.view.ViewGroup,androidx.transition.TransitionValuesMaps,androidx.transition.TransitionValuesMaps,java.util.ArrayList,java.util.ArrayList) -> createAnimators
+    349:352:androidx.transition.Transition excludeTarget(android.view.View,boolean) -> excludeTarget
+    358:361:androidx.transition.Transition excludeTarget(java.lang.String,boolean) -> excludeTarget
+    367:370:androidx.transition.Transition excludeTarget(int,boolean) -> excludeTarget
+    376:379:androidx.transition.Transition excludeTarget(java.lang.Class,boolean) -> excludeTarget
+    592:597:void forceToEnd(android.view.ViewGroup) -> forceToEnd
+    158:158:int getOrdering() -> getOrdering
+    223:226:androidx.transition.Transition getTransitionAt(int) -> getTransitionAt
+    211:211:int getTransitionCount() -> getTransitionCount
+    559:564:void pause(android.view.View) -> pause
+    62:62:androidx.transition.Transition removeListener(androidx.transition.Transition$TransitionListener) -> removeListener
+    385:385:androidx.transition.TransitionSet removeListener(androidx.transition.Transition$TransitionListener) -> removeListener
+    62:62:androidx.transition.Transition removeTarget(int) -> removeTarget
+    62:62:androidx.transition.Transition removeTarget(android.view.View) -> removeTarget
+    62:62:androidx.transition.Transition removeTarget(java.lang.Class) -> removeTarget
+    62:62:androidx.transition.Transition removeTarget(java.lang.String) -> removeTarget
+    313:316:androidx.transition.TransitionSet removeTarget(int) -> removeTarget
+    322:325:androidx.transition.TransitionSet removeTarget(android.view.View) -> removeTarget
+    331:334:androidx.transition.TransitionSet removeTarget(java.lang.Class) -> removeTarget
+    340:343:androidx.transition.TransitionSet removeTarget(java.lang.String) -> removeTarget
+    407:409:androidx.transition.TransitionSet removeTransition(androidx.transition.Transition) -> removeTransition
+    570:575:void resume(android.view.View) -> resume
+    491:520:void runAnimators() -> runAnimators
+    611:616:void setCanRemoveViews(boolean) -> setCanRemoveViews
+    62:62:androidx.transition.Transition setDuration(long) -> setDuration
+    239:246:androidx.transition.TransitionSet setDuration(long) -> setDuration
+    630:636:void setEpicenterCallback(androidx.transition.Transition$EpicenterCallback) -> setEpicenterCallback
+    62:62:androidx.transition.Transition setInterpolator(android.animation.TimeInterpolator) -> setInterpolator
+    258:265:androidx.transition.TransitionSet setInterpolator(android.animation.TimeInterpolator) -> setInterpolator
+    135:146:androidx.transition.TransitionSet setOrdering(int) -> setOrdering
+    390:397:void setPathMotion(androidx.transition.PathMotion) -> setPathMotion
+    620:626:void setPropagation(androidx.transition.TransitionPropagation) -> setPropagation
+    62:62:androidx.transition.Transition setSceneRoot(android.view.ViewGroup) -> setSceneRoot
+    601:606:androidx.transition.TransitionSet setSceneRoot(android.view.ViewGroup) -> setSceneRoot
+    62:62:androidx.transition.Transition setStartDelay(long) -> setStartDelay
+    252:252:androidx.transition.TransitionSet setStartDelay(long) -> setStartDelay
+    418:423:void setupStartEndListeners() -> setupStartEndListeners
+    640:644:java.lang.String toString(java.lang.String) -> toString
+androidx.transition.TransitionSet$1 -> androidx.transition.TransitionSet$1:
+    503:503:void <init>(androidx.transition.TransitionSet,androidx.transition.Transition) -> <init>
+    506:508:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+androidx.transition.TransitionSet$TransitionSetListener -> androidx.transition.TransitionSet$TransitionSetListener:
+    433:435:void <init>(androidx.transition.TransitionSet) -> <init>
+    447:454:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    439:443:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+androidx.transition.TransitionUtils -> androidx.transition.TransitionUtils:
+    35:39:void <clinit>() -> <clinit>
+    177:178:void <init>() -> <init>
+    51:72:android.view.View copyViewImage(android.view.ViewGroup,android.view.View,android.view.View) -> copyViewImage
+    93:140:android.graphics.Bitmap createViewBitmap(android.view.View,android.graphics.Matrix,android.graphics.RectF,android.view.ViewGroup) -> createViewBitmap
+    144:151:android.animation.Animator mergeAnimators(android.animation.Animator,android.animation.Animator) -> mergeAnimators
+androidx.transition.TransitionUtils$MatrixEvaluator -> androidx.transition.TransitionUtils$MatrixEvaluator:
+    155:161:void <init>() -> <init>
+    155:155:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    165:172:android.graphics.Matrix evaluate(float,android.graphics.Matrix,android.graphics.Matrix) -> evaluate
+androidx.transition.TransitionValues -> androidx.transition.TransitionValues:
+    49:70:void <init>() -> <init>
+    52:70:void <init>(android.view.View) -> <init>
+    74:81:boolean equals(java.lang.Object) -> equals
+    86:86:int hashCode() -> hashCode
+    91:97:java.lang.String toString() -> toString
+androidx.transition.TransitionValuesMaps -> androidx.transition.TransitionValuesMaps:
+    25:33:void <init>() -> <init>
+androidx.transition.TranslationAnimationCreator -> androidx.transition.TranslationAnimationCreator:
+    160:161:void <init>() -> <init>
+    56:82:android.animation.Animator createAnimation(android.view.View,androidx.transition.TransitionValues,int,int,float,float,float,float,android.animation.TimeInterpolator,androidx.transition.Transition) -> createAnimation
+androidx.transition.TranslationAnimationCreator$TransitionPositionListener -> androidx.transition.TranslationAnimationCreator$TransitionPositionListener:
+    99:110:void <init>(android.view.View,android.view.View,int,int,float,float) -> <init>
+    114:120:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    124:128:void onAnimationPause(android.animation.Animator) -> onAnimationPause
+    132:134:void onAnimationResume(android.animation.Animator) -> onAnimationResume
+    149:149:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    142:145:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    153:153:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    157:157:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+    138:138:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+androidx.transition.ViewGroupOverlayApi14 -> androidx.transition.ViewGroupOverlayApi14:
+    28:29:void <init>(android.content.Context,android.view.ViewGroup,android.view.View) -> <init>
+    37:38:void add(android.view.View) -> add
+    32:32:androidx.transition.ViewGroupOverlayApi14 createFrom(android.view.ViewGroup) -> createFrom
+    42:43:void remove(android.view.View) -> remove
+androidx.transition.ViewGroupOverlayApi18 -> androidx.transition.ViewGroupOverlayApi18:
+    32:34:void <init>(android.view.ViewGroup) -> <init>
+    38:39:void add(android.graphics.drawable.Drawable) -> add
+    48:49:void add(android.view.View) -> add
+    43:44:void remove(android.graphics.drawable.Drawable) -> remove
+    53:54:void remove(android.view.View) -> remove
+androidx.transition.ViewGroupUtils -> androidx.transition.ViewGroupUtils:
+    37:37:void <clinit>() -> <clinit>
+    110:111:void <init>() -> <init>
+    83:105:int getChildDrawingOrder(android.view.ViewGroup,int) -> getChildDrawingOrder
+    46:47:androidx.transition.ViewGroupOverlayImpl getOverlay(android.view.ViewGroup) -> getOverlay
+    68:77:void hiddenSuppressLayout(android.view.ViewGroup,boolean) -> hiddenSuppressLayout
+    56:63:void suppressLayout(android.view.ViewGroup,boolean) -> suppressLayout
+androidx.transition.ViewGroupUtilsApi14 -> androidx.transition.ViewGroupUtilsApi14:
+    129:130:void <init>() -> <init>
+    109:127:void cancelLayoutTransition(android.animation.LayoutTransition) -> cancelLayoutTransition
+    45:106:void suppressLayout(android.view.ViewGroup,boolean) -> suppressLayout
+androidx.transition.ViewGroupUtilsApi14$1 -> androidx.transition.ViewGroupUtilsApi14$1:
+    46:46:void <init>() -> <init>
+    49:49:boolean isChangingLayout() -> isChangingLayout
+androidx.transition.ViewOverlayApi14 -> androidx.transition.ViewOverlayApi14:
+    47:49:void <init>(android.content.Context,android.view.ViewGroup,android.view.View) -> <init>
+    81:82:void add(android.graphics.drawable.Drawable) -> add
+    65:76:androidx.transition.ViewOverlayApi14 createFrom(android.view.View) -> createFrom
+    52:61:android.view.ViewGroup getContentView(android.view.View) -> getContentView
+    86:87:void remove(android.graphics.drawable.Drawable) -> remove
+androidx.transition.ViewOverlayApi14$OverlayViewGroup -> androidx.transition.ViewOverlayApi14$OverlayViewGroup:
+    116:121:void <clinit>() -> <clinit>
+    132:149:void <init>(android.content.Context,android.view.ViewGroup,android.view.View,androidx.transition.ViewOverlayApi14) -> <init>
+    158:169:void add(android.graphics.drawable.Drawable) -> add
+    186:211:void add(android.view.View) -> add
+    219:223:void assertNotDisposed() -> assertNotDisposed
+    239:252:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    154:154:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    226:230:void disposeIfEmpty() -> disposeIfEmpty
+    269:275:void getOffset(int[]) -> getOffset
+    299:313:android.view.ViewParent invalidateChildInParent(int[],android.graphics.Rect) -> invalidateChildInParent
+    282:293:android.view.ViewParent invalidateChildInParentFast(int,int,android.graphics.Rect) -> invalidateChildInParentFast
+    234:235:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    257:257:void onLayout(boolean,int,int,int,int) -> onLayout
+    172:178:void remove(android.graphics.drawable.Drawable) -> remove
+    214:216:void remove(android.view.View) -> remove
+    182:182:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+androidx.transition.ViewOverlayApi18 -> androidx.transition.ViewOverlayApi18:
+    31:33:void <init>(android.view.View) -> <init>
+    37:38:void add(android.graphics.drawable.Drawable) -> add
+    42:43:void remove(android.graphics.drawable.Drawable) -> remove
+androidx.transition.ViewUtils -> androidx.transition.ViewUtils:
+    38:71:void <clinit>() -> <clinit>
+    202:203:void <init>() -> <init>
+    128:129:void clearNonTransitionAlpha(android.view.View) -> clearNonTransitionAlpha
+    90:91:androidx.transition.ViewOverlayImpl getOverlay(android.view.View) -> getOverlay
+    111:111:float getTransitionAlpha(android.view.View) -> getTransitionAlpha
+    100:101:androidx.transition.WindowIdImpl getWindowId(android.view.View) -> getWindowId
+    119:120:void saveNonTransitionAlpha(android.view.View) -> saveNonTransitionAlpha
+    187:188:void setAnimationMatrix(android.view.View,android.graphics.Matrix) -> setAnimationMatrix
+    199:200:void setLeftTopRightBottom(android.view.View,int,int,int,int) -> setLeftTopRightBottom
+    107:108:void setTransitionAlpha(android.view.View,float) -> setTransitionAlpha
+    145:146:void setTransitionVisibility(android.view.View,int) -> setTransitionVisibility
+    161:162:void transformMatrixToGlobal(android.view.View,android.graphics.Matrix) -> transformMatrixToGlobal
+    177:178:void transformMatrixToLocal(android.view.View,android.graphics.Matrix) -> transformMatrixToLocal
+androidx.transition.ViewUtils$1 -> androidx.transition.ViewUtils$1:
+    57:57:void <init>(java.lang.Class,java.lang.String) -> <init>
+    57:57:java.lang.Object get(java.lang.Object) -> get
+    61:61:java.lang.Float get(android.view.View) -> get
+    57:57:void set(java.lang.Object,java.lang.Object) -> set
+    66:67:void set(android.view.View,java.lang.Float) -> set
+androidx.transition.ViewUtils$2 -> androidx.transition.ViewUtils$2:
+    72:72:void <init>(java.lang.Class,java.lang.String) -> <init>
+    72:72:java.lang.Object get(java.lang.Object) -> get
+    76:76:android.graphics.Rect get(android.view.View) -> get
+    72:72:void set(java.lang.Object,java.lang.Object) -> set
+    81:82:void set(android.view.View,android.graphics.Rect) -> set
+androidx.transition.ViewUtilsApi19 -> androidx.transition.ViewUtilsApi19:
+    31:31:void <clinit>() -> <clinit>
+    26:26:void <init>() -> <init>
+    72:72:void clearNonTransitionAlpha(android.view.View) -> clearNonTransitionAlpha
+    52:61:float getTransitionAlpha(android.view.View) -> getTransitionAlpha
+    67:67:void saveNonTransitionAlpha(android.view.View) -> saveNonTransitionAlpha
+    36:47:void setTransitionAlpha(android.view.View,float) -> setTransitionAlpha
+androidx.transition.ViewUtilsApi21 -> androidx.transition.ViewUtilsApi21:
+    33:41:void <clinit>() -> <clinit>
+    28:28:void <init>() -> <init>
+    74:83:void setAnimationMatrix(android.view.View,android.graphics.Matrix) -> setAnimationMatrix
+    46:55:void transformMatrixToGlobal(android.view.View,android.graphics.Matrix) -> transformMatrixToGlobal
+    60:69:void transformMatrixToLocal(android.view.View,android.graphics.Matrix) -> transformMatrixToLocal
+androidx.transition.ViewUtilsApi22 -> androidx.transition.ViewUtilsApi22:
+    31:31:void <clinit>() -> <clinit>
+    26:26:void <init>() -> <init>
+    36:45:void setLeftTopRightBottom(android.view.View,int,int,int,int) -> setLeftTopRightBottom
+androidx.transition.ViewUtilsApi23 -> androidx.transition.ViewUtilsApi23:
+    32:32:void <clinit>() -> <clinit>
+    27:27:void <init>() -> <init>
+    38:51:void setTransitionVisibility(android.view.View,int) -> setTransitionVisibility
+androidx.transition.ViewUtilsApi29 -> androidx.transition.ViewUtilsApi29:
+    27:27:void <init>() -> <init>
+    36:36:float getTransitionAlpha(android.view.View) -> getTransitionAlpha
+    61:62:void setAnimationMatrix(android.view.View,android.graphics.Matrix) -> setAnimationMatrix
+    46:47:void setLeftTopRightBottom(android.view.View,int,int,int,int) -> setLeftTopRightBottom
+    31:32:void setTransitionAlpha(android.view.View,float) -> setTransitionAlpha
+    41:42:void setTransitionVisibility(android.view.View,int) -> setTransitionVisibility
+    51:52:void transformMatrixToGlobal(android.view.View,android.graphics.Matrix) -> transformMatrixToGlobal
+    56:57:void transformMatrixToLocal(android.view.View,android.graphics.Matrix) -> transformMatrixToLocal
+androidx.transition.ViewUtilsBase -> androidx.transition.ViewUtilsBase:
+    32:32:void <init>() -> <init>
+    72:75:void clearNonTransitionAlpha(android.view.View) -> clearNonTransitionAlpha
+    176:186:void fetchSetFrame() -> fetchSetFrame
+    55:59:float getTransitionAlpha(android.view.View) -> getTransitionAlpha
+    64:67:void saveNonTransitionAlpha(android.view.View) -> saveNonTransitionAlpha
+    109:139:void setAnimationMatrix(android.view.View,android.graphics.Matrix) -> setAnimationMatrix
+    142:152:void setLeftTopRightBottom(android.view.View,int,int,int,int) -> setLeftTopRightBottom
+    46:52:void setTransitionAlpha(android.view.View,float) -> setTransitionAlpha
+    155:172:void setTransitionVisibility(android.view.View,int) -> setTransitionVisibility
+    78:89:void transformMatrixToGlobal(android.view.View,android.graphics.Matrix) -> transformMatrixToGlobal
+    92:106:void transformMatrixToLocal(android.view.View,android.graphics.Matrix) -> transformMatrixToLocal
+androidx.transition.Visibility -> androidx.transition.Visibility:
+    81:81:void <clinit>() -> <clinit>
+    98:101:void <init>() -> <init>
+    98:116:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    165:166:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    160:161:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    150:156:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    250:262:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    140:140:int getMode() -> getMode
+    146:146:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    195:243:androidx.transition.Visibility$VisibilityInfo getVisibilityChangeInfo(androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> getVisibilityChangeInfo
+    507:518:boolean isTransitionRequired(androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> isTransitionRequired
+    184:190:boolean isVisible(androidx.transition.TransitionValues) -> isVisible
+    283:297:android.animation.Animator onAppear(android.view.ViewGroup,androidx.transition.TransitionValues,int,androidx.transition.TransitionValues,int) -> onAppear
+    319:319:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    340:481:android.animation.Animator onDisappear(android.view.ViewGroup,androidx.transition.TransitionValues,int,androidx.transition.TransitionValues,int) -> onDisappear
+    502:502:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    126:130:void setMode(int) -> setMode
+androidx.transition.Visibility$1 -> androidx.transition.Visibility$1:
+    438:438:void <init>(androidx.transition.Visibility,android.view.ViewGroup,android.view.View,android.view.View) -> <init>
+    456:459:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    442:443:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    447:452:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+androidx.transition.Visibility$DisappearListener -> androidx.transition.Visibility$DisappearListener:
+    531:540:void <init>(android.view.View,int,boolean) -> <init>
+    604:613:void hideViewWhenNotCanceled() -> hideViewWhenNotCanceled
+    562:563:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    575:576:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    546:549:void onAnimationPause(android.animation.Animator) -> onAnimationPause
+    567:567:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    555:558:void onAnimationResume(android.animation.Animator) -> onAnimationResume
+    571:571:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    591:591:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    585:587:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    595:596:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    600:601:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+    581:581:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+    616:620:void suppressLayout(boolean) -> suppressLayout
+androidx.transition.Visibility$VisibilityInfo -> androidx.transition.Visibility$VisibilityInfo:
+    87:88:void <init>() -> <init>
+androidx.transition.VisibilityPropagation -> androidx.transition.VisibilityPropagation:
+    38:38:void <clinit>() -> <clinit>
+    25:25:void <init>() -> <init>
+    45:58:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    62:62:java.lang.String[] getPropagationProperties() -> getPropagationProperties
+    106:115:int getViewCoordinate(androidx.transition.TransitionValues,int) -> getViewCoordinate
+    73:80:int getViewVisibility(androidx.transition.TransitionValues) -> getViewVisibility
+    91:91:int getViewX(androidx.transition.TransitionValues) -> getViewX
+    102:102:int getViewY(androidx.transition.TransitionValues) -> getViewY
+androidx.transition.WindowIdApi14 -> androidx.transition.WindowIdApi14:
+    25:27:void <init>(android.os.IBinder) -> <init>
+    31:31:boolean equals(java.lang.Object) -> equals
+    36:36:int hashCode() -> hashCode
+androidx.transition.WindowIdApi18 -> androidx.transition.WindowIdApi18:
+    29:31:void <init>(android.view.View) -> <init>
+    35:35:boolean equals(java.lang.Object) -> equals
+    40:40:int hashCode() -> hashCode
+androidx.vectordrawable.graphics.drawable.AndroidResources -> androidx.vectordrawable.graphics.drawable.AndroidResources:
+    22:134:void <clinit>() -> <clinit>
+    151:152:void <init>() -> <init>
+androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback -> androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback:
+    57:57:void <init>() -> <init>
+    77:90:android.graphics.drawable.Animatable2$AnimationCallback getPlatformCallback() -> getPlatformCallback
+    69:69:void onAnimationEnd(android.graphics.drawable.Drawable) -> onAnimationEnd
+    63:63:void onAnimationStart(android.graphics.drawable.Drawable) -> onAnimationStart
+androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback$1 -> androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback$1:
+    78:78:void <init>(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> <init>
+    86:87:void onAnimationEnd(android.graphics.drawable.Drawable) -> onAnimationEnd
+    81:82:void onAnimationStart(android.graphics.drawable.Drawable) -> onAnimationStart
+androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat -> androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat:
+    168:169:void <init>() -> <init>
+    172:173:void <init>(android.content.Context) -> <init>
+    156:733:void <init>(android.content.Context,androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableCompatState,android.content.res.Resources) -> <init>
+    522:527:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    532:536:boolean canApplyTheme() -> canApplyTheme
+    856:867:void clearAnimationCallbacks() -> clearAnimationCallbacks
+    920:929:void clearAnimationCallbacks(android.graphics.drawable.Drawable) -> clearAnimationCallbacks
+    143:143:void clearColorFilter() -> clearColorFilter
+    212:219:androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat create(android.content.Context,int) -> create
+    253:255:androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat createFromXmlInner(android.content.Context,android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+    284:292:void draw(android.graphics.Canvas) -> draw
+    321:324:int getAlpha() -> getAlpha
+    276:279:int getChangingConfigurations() -> getChangingConfigurations
+    347:350:android.graphics.ColorFilter getColorFilter() -> getColorFilter
+    265:271:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    143:143:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    420:423:int getIntrinsicHeight() -> getIntrinsicHeight
+    412:415:int getIntrinsicWidth() -> getIntrinsicWidth
+    143:143:int getMinimumHeight() -> getMinimumHeight
+    143:143:int getMinimumWidth() -> getMinimumWidth
+    404:407:int getOpacity() -> getOpacity
+    143:143:boolean getPadding(android.graphics.Rect) -> getPadding
+    143:143:int[] getState() -> getState
+    143:143:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    446:512:void inflate(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    517:518:void inflate(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet) -> inflate
+    428:431:boolean isAutoMirrored() -> isAutoMirrored
+    700:704:boolean isRunning() -> isRunning
+    394:397:boolean isStateful() -> isStateful
+    143:143:void jumpToCurrentState() -> jumpToCurrentState
+    193:198:android.graphics.drawable.Drawable mutate() -> mutate
+    296:301:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    313:316:boolean onLevelChange(int) -> onLevelChange
+    305:308:boolean onStateChange(int[]) -> onStateChange
+    763:811:void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimationCallback
+    877:889:void registerAnimationCallback(android.graphics.drawable.Drawable,androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimationCallback
+    820:821:void registerPlatformCallback(android.graphics.drawable.AnimatedVectorDrawable,androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerPlatformCallback
+    827:831:void removeAnimatorSetListener() -> removeAnimatorSetListener
+    329:334:void setAlpha(int) -> setAlpha
+    436:441:void setAutoMirrored(boolean) -> setAutoMirrored
+    143:143:void setChangingConfigurations(int) -> setChangingConfigurations
+    143:143:void setColorFilter(int,android.graphics.PorterDuff$Mode) -> setColorFilter
+    338:343:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    143:143:void setFilterBitmap(boolean) -> setFilterBitmap
+    143:143:void setHotspot(float,float) -> setHotspot
+    143:143:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    143:143:boolean setState(int[]) -> setState
+    355:361:void setTint(int) -> setTint
+    365:371:void setTintList(android.content.res.ColorStateList) -> setTintList
+    375:381:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    385:389:boolean setVisible(boolean,boolean) -> setVisible
+    682:696:void setupAnimatorsForTarget(java.lang.String,android.animation.Animator) -> setupAnimatorsForTarget
+    661:679:void setupColorAnimator(android.animation.Animator) -> setupColorAnimator
+    709:721:void start() -> start
+    725:731:void stop() -> stop
+    836:851:boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterAnimationCallback
+    899:907:boolean unregisterAnimationCallback(android.graphics.drawable.Drawable,androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterAnimationCallback
+    757:757:boolean unregisterPlatformCallback(android.graphics.drawable.AnimatedVectorDrawable,androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterPlatformCallback
+androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$1 -> androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$1:
+    733:733:void <init>(androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat) -> <init>
+    736:737:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    741:742:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    746:747:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$2 -> androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$2:
+    788:788:void <init>(androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat) -> <init>
+    801:807:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    791:797:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableCompatState -> androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableCompatState:
+    599:630:void <init>(android.content.Context,androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableCompatState,android.graphics.drawable.Drawable$Callback,android.content.res.Resources) -> <init>
+    644:644:int getChangingConfigurations() -> getChangingConfigurations
+    634:634:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    639:639:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+    648:652:void setupAnimatorSet() -> setupAnimatorSet
+androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableDelegateState -> androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat$AnimatedVectorDrawableDelegateState:
+    548:550:void <init>(android.graphics.drawable.Drawable$ConstantState) -> <init>
+    581:581:boolean canApplyTheme() -> canApplyTheme
+    586:586:int getChangingConfigurations() -> getChangingConfigurations
+    554:558:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    563:567:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+    572:576:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources,android.content.res.Resources$Theme) -> newDrawable
+androidx.vectordrawable.graphics.drawable.AnimationUtilsCompat -> androidx.vectordrawable.graphics.drawable.AnimationUtilsCompat:
+    149:150:void <init>() -> <init>
+    105:146:android.view.animation.Interpolator createInterpolatorFromXml(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser) -> createInterpolatorFromXml
+    67:68:android.view.animation.Interpolator loadInterpolator(android.content.Context,int) -> loadInterpolator
+androidx.vectordrawable.graphics.drawable.AnimatorInflaterCompat -> androidx.vectordrawable.graphics.drawable.AnimatorInflaterCompat:
+    921:922:void <init>() -> <init>
+    501:501:android.animation.Animator createAnimatorFromXml(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser,float) -> createAnimatorFromXml
+    509:571:android.animation.Animator createAnimatorFromXml(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.animation.AnimatorSet,int,float) -> createAnimatorFromXml
+    779:783:android.animation.Keyframe createNewKeyframe(android.animation.Keyframe,float) -> createNewKeyframe
+    806:811:void distributeKeyframes(android.animation.Keyframe[],float,int,int) -> distributeKeyframes
+    673:684:void dumpKeyframes(java.lang.Object[],java.lang.String) -> dumpKeyframes
+    207:331:android.animation.PropertyValuesHolder getPVH(android.content.res.TypedArray,int,int,int,java.lang.String) -> getPVH
+    655:669:int inferValueTypeFromValues(android.content.res.TypedArray,int,int) -> inferValueTypeFromValues
+    636:650:int inferValueTypeOfKeyframe(android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,org.xmlpull.v1.XmlPullParser) -> inferValueTypeOfKeyframe
+    917:917:boolean isColorType(int) -> isColorType
+    100:105:android.animation.Animator loadAnimator(android.content.Context,int) -> loadAnimator
+    119:119:android.animation.Animator loadAnimator(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,int) -> loadAnimator
+    129:148:android.animation.Animator loadAnimator(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,int,float) -> loadAnimator
+    890:913:android.animation.ValueAnimator loadAnimator(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,android.animation.ValueAnimator,float,org.xmlpull.v1.XmlPullParser) -> loadAnimator
+    818:866:android.animation.Keyframe loadKeyframe(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,int,org.xmlpull.v1.XmlPullParser) -> loadKeyframe
+    872:876:android.animation.ObjectAnimator loadObjectAnimator(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,float,org.xmlpull.v1.XmlPullParser) -> loadObjectAnimator
+    692:775:android.animation.PropertyValuesHolder loadPvh(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser,java.lang.String,int) -> loadPvh
+    576:627:android.animation.PropertyValuesHolder[] loadValues(android.content.Context,android.content.res.Resources,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet) -> loadValues
+    345:378:void parseAnimatorFromTypeArray(android.animation.ValueAnimator,android.content.res.TypedArray,android.content.res.TypedArray,float,org.xmlpull.v1.XmlPullParser) -> parseAnimatorFromTypeArray
+    390:429:void setupObjectAnimator(android.animation.ValueAnimator,android.content.res.TypedArray,int,float,org.xmlpull.v1.XmlPullParser) -> setupObjectAnimator
+    436:495:void setupPathMotion(android.graphics.Path,android.animation.ObjectAnimator,float,java.lang.String,java.lang.String) -> setupPathMotion
+androidx.vectordrawable.graphics.drawable.AnimatorInflaterCompat$PathDataEvaluator -> androidx.vectordrawable.graphics.drawable.AnimatorInflaterCompat$PathDataEvaluator:
+    166:167:void <init>() -> <init>
+    177:179:void <init>(androidx.core.graphics.PathParser$PathDataNode[]) -> <init>
+    157:157:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    185:199:androidx.core.graphics.PathParser$PathDataNode[] evaluate(float,androidx.core.graphics.PathParser$PathDataNode[],androidx.core.graphics.PathParser$PathDataNode[]) -> evaluate
+androidx.vectordrawable.graphics.drawable.ArgbEvaluator -> androidx.vectordrawable.graphics.drawable.ArgbEvaluator:
+    33:33:void <clinit>() -> <clinit>
+    32:32:void <init>() -> <init>
+    64:97:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    43:43:androidx.vectordrawable.graphics.drawable.ArgbEvaluator getInstance() -> getInstance
+androidx.vectordrawable.graphics.drawable.PathInterpolatorCompat -> androidx.vectordrawable.graphics.drawable.PathInterpolatorCompat:
+    68:69:void <init>(android.content.Context,android.util.AttributeSet,org.xmlpull.v1.XmlPullParser) -> <init>
+    72:77:void <init>(android.content.res.Resources,android.content.res.Resources$Theme,android.util.AttributeSet,org.xmlpull.v1.XmlPullParser) -> <init>
+    195:223:float getInterpolation(float) -> getInterpolation
+    130:134:void initCubic(float,float,float,float) -> initCubic
+    137:181:void initPath(android.graphics.Path) -> initPath
+    123:127:void initQuad(float,float) -> initQuad
+    82:120:void parseInterpolatorFromTypeArray(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser) -> parseInterpolatorFromTypeArray
+androidx.vectordrawable.graphics.drawable.VectorDrawableCommon -> androidx.vectordrawable.graphics.drawable.VectorDrawableCommon:
+    29:29:void <init>() -> <init>
+    95:99:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    103:108:void clearColorFilter() -> clearColorFilter
+    112:115:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    128:131:int getMinimumHeight() -> getMinimumHeight
+    120:123:int getMinimumWidth() -> getMinimumWidth
+    136:139:boolean getPadding(android.graphics.Rect) -> getPadding
+    144:147:int[] getState() -> getState
+    153:156:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    86:90:void jumpToCurrentState() -> jumpToCurrentState
+    53:58:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    45:48:boolean onLevelChange(int) -> onLevelChange
+    161:166:void setChangingConfigurations(int) -> setChangingConfigurations
+    36:41:void setColorFilter(int,android.graphics.PorterDuff$Mode) -> setColorFilter
+    78:82:void setFilterBitmap(boolean) -> setFilterBitmap
+    62:65:void setHotspot(float,float) -> setHotspot
+    70:74:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    170:173:boolean setState(int[]) -> setState
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat:
+    280:280:void <clinit>() -> <clinit>
+    311:323:void <init>() -> <init>
+    311:328:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableCompatState) -> <init>
+    687:690:int applyAlpha(int,float) -> applyAlpha
+    277:277:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    587:591:boolean canApplyTheme() -> canApplyTheme
+    277:277:void clearColorFilter() -> clearColorFilter
+    645:650:androidx.vectordrawable.graphics.drawable.VectorDrawableCompat create(android.content.res.Resources,int,android.content.res.Resources$Theme) -> create
+    681:683:androidx.vectordrawable.graphics.drawable.VectorDrawableCompat createFromXmlInner(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> createFromXmlInner
+    360:428:void draw(android.graphics.Canvas) -> draw
+    432:436:int getAlpha() -> getAlpha
+    925:928:int getChangingConfigurations() -> getChangingConfigurations
+    465:468:android.graphics.ColorFilter getColorFilter() -> getColorFilter
+    350:355:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    277:277:android.graphics.drawable.Drawable getCurrent() -> getCurrent
+    577:581:int getIntrinsicHeight() -> getIntrinsicHeight
+    568:572:int getIntrinsicWidth() -> getIntrinsicWidth
+    277:277:int getMinimumHeight() -> getMinimumHeight
+    277:277:int getMinimumWidth() -> getMinimumWidth
+    559:563:int getOpacity() -> getOpacity
+    277:277:boolean getPadding(android.graphics.Rect) -> getPadding
+    618:631:float getPixelSize() -> getPixelSize
+    277:277:int[] getState() -> getState
+    345:345:java.lang.Object getTargetByName(java.lang.String) -> getTargetByName
+    277:277:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    696:702:void inflate(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet) -> inflate
+    707:726:void inflate(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflate
+    816:879:void inflateInternal(android.content.res.Resources,org.xmlpull.v1.XmlPullParser,android.util.AttributeSet,android.content.res.Resources$Theme) -> inflateInternal
+    933:938:void invalidateSelf() -> invalidateSelf
+    596:599:boolean isAutoMirrored() -> isAutoMirrored
+    528:534:boolean isStateful() -> isStateful
+    277:277:void jumpToCurrentState() -> jumpToCurrentState
+    332:341:android.graphics.drawable.Drawable mutate() -> mutate
+    907:909:boolean needMirroring() -> needMirroring
+    918:921:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    539:554:boolean onStateChange(int[]) -> onStateChange
+    734:748:android.graphics.PorterDuff$Mode parseTintModeCompat(int,android.graphics.PorterDuff$Mode) -> parseTintModeCompat
+    882:899:void printGroupTree(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup,int) -> printGroupTree
+    942:947:void scheduleSelf(java.lang.Runnable,long) -> scheduleSelf
+    902:903:void setAllowCaching(boolean) -> setAllowCaching
+    441:450:void setAlpha(int) -> setAlpha
+    604:609:void setAutoMirrored(boolean) -> setAutoMirrored
+    277:277:void setChangingConfigurations(int) -> setChangingConfigurations
+    277:277:void setColorFilter(int,android.graphics.PorterDuff$Mode) -> setColorFilter
+    454:461:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    277:277:void setFilterBitmap(boolean) -> setFilterBitmap
+    277:277:void setHotspot(float,float) -> setHotspot
+    277:277:void setHotspotBounds(int,int,int,int) -> setHotspotBounds
+    277:277:boolean setState(int[]) -> setState
+    488:494:void setTint(int) -> setTint
+    498:509:void setTintList(android.content.res.ColorStateList) -> setTintList
+    513:524:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    951:954:boolean setVisible(boolean,boolean) -> setVisible
+    959:964:void unscheduleSelf(java.lang.Runnable) -> unscheduleSelf
+    754:812:void updateStateFromTypedArray(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme) -> updateStateFromTypedArray
+    477:483:android.graphics.PorterDuffColorFilter updateTintFilter(android.graphics.PorterDuffColorFilter,android.content.res.ColorStateList,android.graphics.PorterDuff$Mode) -> updateTintFilter
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VClipPath -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VClipPath:
+    1768:1770:void <init>() -> <init>
+    1773:1774:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VClipPath) -> <init>
+    1778:1786:void inflate(android.content.res.Resources,android.util.AttributeSet,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser) -> inflate
+    1810:1810:boolean isClipPath() -> isClipPath
+    1792:1806:void updateStateFromTypedArray(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser) -> updateStateFromTypedArray
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VFullPath -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VFullPath:
+    1822:1837:void <init>() -> <init>
+    1822:1856:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VFullPath) -> <init>
+    1972:1973:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    1886:1886:boolean canApplyTheme() -> canApplyTheme
+    2028:2028:float getFillAlpha() -> getFillAlpha
+    2018:2018:int getFillColor() -> getFillColor
+    2007:2007:float getStrokeAlpha() -> getStrokeAlpha
+    1987:1987:int getStrokeColor() -> getStrokeColor
+    1859:1867:android.graphics.Paint$Cap getStrokeLineCap(int,android.graphics.Paint$Cap) -> getStrokeLineCap
+    1872:1880:android.graphics.Paint$Join getStrokeLineJoin(int,android.graphics.Paint$Join) -> getStrokeLineJoin
+    1997:1997:float getStrokeWidth() -> getStrokeWidth
+    2048:2048:float getTrimPathEnd() -> getTrimPathEnd
+    2058:2058:float getTrimPathOffset() -> getTrimPathOffset
+    2038:2038:float getTrimPathStart() -> getTrimPathStart
+    1890:1894:void inflate(android.content.res.Resources,android.util.AttributeSet,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser) -> inflate
+    1960:1960:boolean isStateful() -> isStateful
+    1965:1967:boolean onStateChanged(int[]) -> onStateChanged
+    2033:2034:void setFillAlpha(float) -> setFillAlpha
+    2023:2024:void setFillColor(int) -> setFillColor
+    2012:2013:void setStrokeAlpha(float) -> setStrokeAlpha
+    1992:1993:void setStrokeColor(int) -> setStrokeColor
+    2002:2003:void setStrokeWidth(float) -> setStrokeWidth
+    2053:2054:void setTrimPathEnd(float) -> setTrimPathEnd
+    2063:2064:void setTrimPathOffset(float) -> setTrimPathOffset
+    2043:2044:void setTrimPathStart(float) -> setTrimPathStart
+    1901:1956:void updateStateFromTypedArray(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser,android.content.res.Resources$Theme) -> updateStateFromTypedArray
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup:
+    1445:1504:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup,androidx.collection.ArrayMap) -> <init>
+    1445:1507:void <init>() -> <init>
+    1510:1510:java.lang.String getGroupName() -> getGroupName
+    1514:1514:android.graphics.Matrix getLocalMatrix() -> getLocalMatrix
+    1586:1586:float getPivotX() -> getPivotX
+    1599:1599:float getPivotY() -> getPivotY
+    1573:1573:float getRotation() -> getRotation
+    1612:1612:float getScaleX() -> getScaleX
+    1625:1625:float getScaleY() -> getScaleY
+    1638:1638:float getTranslateX() -> getTranslateX
+    1651:1651:float getTranslateY() -> getTranslateY
+    1518:1522:void inflate(android.content.res.Resources,android.util.AttributeSet,android.content.res.Resources$Theme,org.xmlpull.v1.XmlPullParser) -> inflate
+    1664:1669:boolean isStateful() -> isStateful
+    1674:1678:boolean onStateChanged(int[]) -> onStateChanged
+    1591:1595:void setPivotX(float) -> setPivotX
+    1604:1608:void setPivotY(float) -> setPivotY
+    1578:1582:void setRotation(float) -> setRotation
+    1617:1621:void setScaleX(float) -> setScaleX
+    1630:1634:void setScaleY(float) -> setScaleY
+    1643:1647:void setTranslateX(float) -> setTranslateX
+    1656:1660:void setTranslateY(float) -> setTranslateY
+    1563:1568:void updateLocalMatrix() -> updateLocalMatrix
+    1529:1558:void updateStateFromTypedArray(android.content.res.TypedArray,org.xmlpull.v1.XmlPullParser) -> updateStateFromTypedArray
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VObject -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VObject:
+    1423:1423:void <init>() -> <init>
+    1423:1423:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$1) -> <init>
+    1430:1430:boolean isStateful() -> isStateful
+    1438:1438:boolean onStateChanged(int[]) -> onStateChanged
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPath -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPath:
+    1687:1695:void <init>() -> <init>
+    1687:1723:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPath) -> <init>
+    1741:1741:void applyTheme(android.content.res.Resources$Theme) -> applyTheme
+    1737:1737:boolean canApplyTheme() -> canApplyTheme
+    1750:1750:androidx.core.graphics.PathParser$PathDataNode[] getPathData() -> getPathData
+    1733:1733:java.lang.String getPathName() -> getPathName
+    1744:1744:boolean isClipPath() -> isClipPath
+    1708:1716:java.lang.String nodesToString(androidx.core.graphics.PathParser$PathDataNode[]) -> nodesToString
+    1698:1705:void printVPath(int) -> printVPath
+    1755:1761:void setPathData(androidx.core.graphics.PathParser$PathDataNode[]) -> setPathData
+    1726:1730:void toPath(android.graphics.Path) -> toPath
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPathRenderer -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPathRenderer:
+    1170:1170:void <clinit>() -> <clinit>
+    1171:1195:void <init>() -> <init>
+    1171:1231:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPathRenderer) -> <init>
+    1379:1379:float cross(float,float,float,float) -> cross
+    1264:1265:void draw(android.graphics.Canvas,int,int,android.graphics.ColorFilter) -> draw
+    1239:1260:void drawGroupTree(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup,android.graphics.Matrix,android.graphics.Canvas,int,int,android.graphics.ColorFilter) -> drawGroupTree
+    1269:1376:void drawPath(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup,androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VPath,android.graphics.Canvas,int,int,android.graphics.ColorFilter) -> drawPath
+    1213:1213:float getAlpha() -> getAlpha
+    1393:1408:float getMatrixScale(android.graphics.Matrix) -> getMatrixScale
+    1202:1202:int getRootAlpha() -> getRootAlpha
+    1412:1415:boolean isStateful() -> isStateful
+    1419:1419:boolean onStateChanged(int[]) -> onStateChanged
+    1208:1209:void setAlpha(float) -> setAlpha
+    1198:1199:void setRootAlpha(int) -> setRootAlpha
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableCompatState -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableCompatState:
+    1015:1047:void <init>(androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableCompatState) -> <init>
+    1015:1123:void <init>() -> <init>
+    1093:1097:boolean canReuseBitmap(int,int) -> canReuseBitmap
+    1101:1108:boolean canReuseCache() -> canReuseCache
+    1084:1090:void createCachedBitmapIfNeeded(int,int) -> createCachedBitmapIfNeeded
+    1052:1054:void drawCachedBitmapWithRootAlpha(android.graphics.Canvas,android.graphics.ColorFilter,android.graphics.Rect) -> drawCachedBitmapWithRootAlpha
+    1139:1139:int getChangingConfigurations() -> getChangingConfigurations
+    1064:1074:android.graphics.Paint getPaint(android.graphics.ColorFilter) -> getPaint
+    1057:1057:boolean hasTranslucentRoot() -> hasTranslucentRoot
+    1143:1143:boolean isStateful() -> isStateful
+    1128:1128:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    1134:1134:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+    1147:1149:boolean onStateChanged(int[]) -> onStateChanged
+    1114:1119:void updateCacheStates() -> updateCacheStates
+    1078:1081:void updateCachedBitmap(int,int) -> updateCachedBitmap
+androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableDelegateState -> androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableDelegateState:
+    975:977:void <init>(android.graphics.drawable.Drawable$ConstantState) -> <init>
+    1003:1003:boolean canApplyTheme() -> canApplyTheme
+    1008:1008:int getChangingConfigurations() -> getChangingConfigurations
+    981:983:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    988:990:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources) -> newDrawable
+    995:998:android.graphics.drawable.Drawable newDrawable(android.content.res.Resources,android.content.res.Resources$Theme) -> newDrawable
+androidx.versionedparcelable.CustomVersionedParcelable -> androidx.versionedparcelable.CustomVersionedParcelable:
+    27:27:void <init>() -> <init>
+    45:45:void onPostParceling() -> onPostParceling
+    36:36:void onPreParceling(boolean) -> onPreParceling
+androidx.versionedparcelable.ParcelImpl -> androidx.versionedparcelable.ParcelImpl:
+    60:60:void <clinit>() -> <clinit>
+    34:36:void <init>(androidx.versionedparcelable.VersionedParcelable) -> <init>
+    38:40:void <init>(android.os.Parcel) -> <init>
+    51:51:int describeContents() -> describeContents
+    46:46:androidx.versionedparcelable.VersionedParcelable getVersionedParcel() -> getVersionedParcel
+    56:58:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.versionedparcelable.ParcelImpl$1 -> androidx.versionedparcelable.ParcelImpl$1:
+    60:60:void <init>() -> <init>
+    60:60:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    63:63:androidx.versionedparcelable.ParcelImpl createFromParcel(android.os.Parcel) -> createFromParcel
+    60:60:java.lang.Object[] newArray(int) -> newArray
+    68:68:androidx.versionedparcelable.ParcelImpl[] newArray(int) -> newArray
+androidx.versionedparcelable.ParcelUtils -> androidx.versionedparcelable.ParcelUtils:
+    40:40:void <init>() -> <init>
+    82:83:androidx.versionedparcelable.VersionedParcelable fromInputStream(java.io.InputStream) -> fromInputStream
+    58:61:androidx.versionedparcelable.VersionedParcelable fromParcelable(android.os.Parcelable) -> fromParcelable
+    109:117:androidx.versionedparcelable.VersionedParcelable getVersionedParcelable(android.os.Bundle,java.lang.String) -> getVersionedParcelable
+    144:157:java.util.List getVersionedParcelableList(android.os.Bundle,java.lang.String) -> getVersionedParcelableList
+    91:97:void putVersionedParcelable(android.os.Bundle,java.lang.String,androidx.versionedparcelable.VersionedParcelable) -> putVersionedParcelable
+    126:133:void putVersionedParcelableList(android.os.Bundle,java.lang.String,java.util.List) -> putVersionedParcelableList
+    70:73:void toOutputStream(androidx.versionedparcelable.VersionedParcelable,java.io.OutputStream) -> toOutputStream
+    48:48:android.os.Parcelable toParcelable(androidx.versionedparcelable.VersionedParcelable) -> toParcelable
+androidx.versionedparcelable.VersionedParcel -> androidx.versionedparcelable.VersionedParcel:
+    86:90:void <init>(androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> <init>
+    1219:1237:java.lang.Exception createException(int,java.lang.String) -> createException
+    1628:1635:java.lang.Class findParcelClass(java.lang.Class) -> findParcelClass
+    1604:1611:java.lang.reflect.Method getReadMethod(java.lang.String) -> getReadMethod
+    1208:1209:java.lang.Throwable getRootCause(java.lang.Throwable) -> getRootCause
+    995:1010:int getType(java.lang.Object) -> getType
+    1616:1623:java.lang.reflect.Method getWriteMethod(java.lang.Class) -> getWriteMethod
+    96:96:boolean isStream() -> isStream
+    1435:1438:java.lang.Object[] readArray(java.lang.Object[],int) -> readArray
+    1444:1487:java.lang.Object[] readArray(java.lang.Object[]) -> readArray
+    399:402:boolean readBoolean(boolean,int) -> readBoolean
+    578:581:boolean[] readBooleanArray(boolean[],int) -> readBooleanArray
+    587:595:boolean[] readBooleanArray() -> readBooleanArray
+    493:496:android.os.Bundle readBundle(android.os.Bundle,int) -> readBundle
+    1245:1248:byte readByte(byte,int) -> readByte
+    472:475:byte[] readByteArray(byte[],int) -> readByteArray
+    625:636:char[] readCharArray(char[],int) -> readCharArray
+    616:619:java.lang.CharSequence readCharSequence(java.lang.CharSequence,int) -> readCharSequence
+    1344:1386:java.util.Collection readCollection(java.util.Collection) -> readCollection
+    441:444:double readDouble(double,int) -> readDouble
+    795:798:double[] readDoubleArray(double[],int) -> readDoubleArray
+    804:812:double[] readDoubleArray() -> readDoubleArray
+    1170:1178:java.lang.Exception readException(java.lang.Exception,int) -> readException
+    1198:1199:java.lang.Exception readException(int,java.lang.String) -> readException
+    1193:1194:int readExceptionCode() -> readExceptionCode
+    430:433:float readFloat(float,int) -> readFloat
+    751:754:float[] readFloatArray(float[],int) -> readFloatArray
+    760:768:float[] readFloatArray() -> readFloatArray
+    1565:1577:androidx.versionedparcelable.VersionedParcelable readFromParcel(java.lang.String,androidx.versionedparcelable.VersionedParcel) -> readFromParcel
+    409:412:int readInt(int,int) -> readInt
+    663:666:int[] readIntArray(int[],int) -> readIntArray
+    672:680:int[] readIntArray() -> readIntArray
+    1337:1340:java.util.List readList(java.util.List,int) -> readList
+    419:422:long readLong(long,int) -> readLong
+    707:710:long[] readLongArray(long[],int) -> readLongArray
+    716:724:long[] readLongArray() -> readLongArray
+    1401:1419:java.util.Map readMap(java.util.Map,int) -> readMap
+    481:484:android.os.Parcelable readParcelable(android.os.Parcelable,int) -> readParcelable
+    1523:1553:java.io.Serializable readSerializable() -> readSerializable
+    1318:1321:java.util.Set readSet(java.util.Set,int) -> readSet
+    1256:1264:android.util.Size readSize(android.util.Size,int) -> readSize
+    1272:1280:android.util.SizeF readSizeF(android.util.SizeF,int) -> readSizeF
+    1289:1302:android.util.SparseBooleanArray readSparseBooleanArray(android.util.SparseBooleanArray,int) -> readSparseBooleanArray
+    451:454:java.lang.String readString(java.lang.String,int) -> readString
+    461:464:android.os.IBinder readStrongBinder(android.os.IBinder,int) -> readStrongBinder
+    1493:1496:androidx.versionedparcelable.VersionedParcelable readVersionedParcelable(androidx.versionedparcelable.VersionedParcelable,int) -> readVersionedParcelable
+    1509:1513:androidx.versionedparcelable.VersionedParcelable readVersionedParcelable() -> readVersionedParcelable
+    269:269:void setSerializationFlags(boolean,boolean) -> setSerializationFlags
+    941:943:void writeArray(java.lang.Object[],int) -> writeArray
+    948:992:void writeArray(java.lang.Object[]) -> writeArray
+    294:296:void writeBoolean(boolean,int) -> writeBoolean
+    557:559:void writeBooleanArray(boolean[],int) -> writeBooleanArray
+    564:573:void writeBooleanArray(boolean[]) -> writeBooleanArray
+    285:287:void writeBundle(android.os.Bundle,int) -> writeBundle
+    504:506:void writeByte(byte,int) -> writeByte
+    304:306:void writeByteArray(byte[],int) -> writeByteArray
+    316:318:void writeByteArray(byte[],int,int,int) -> writeByteArray
+    601:611:void writeCharArray(char[],int) -> writeCharArray
+    325:327:void writeCharSequence(java.lang.CharSequence,int) -> writeCharSequence
+    875:877:void writeCollection(java.util.Collection,int) -> writeCollection
+    880:928:void writeCollection(java.util.Collection) -> writeCollection
+    361:363:void writeDouble(double,int) -> writeDouble
+    774:776:void writeDoubleArray(double[],int) -> writeDoubleArray
+    781:790:void writeDoubleArray(double[]) -> writeDoubleArray
+    1107:1147:void writeException(java.lang.Exception,int) -> writeException
+    352:354:void writeFloat(float,int) -> writeFloat
+    730:732:void writeFloatArray(float[],int) -> writeFloatArray
+    737:746:void writeFloatArray(float[]) -> writeFloatArray
+    334:336:void writeInt(int,int) -> writeInt
+    642:644:void writeIntArray(int[],int) -> writeIntArray
+    649:658:void writeIntArray(int[]) -> writeIntArray
+    840:841:void writeList(java.util.List,int) -> writeList
+    343:345:void writeLong(long,int) -> writeLong
+    686:688:void writeLongArray(long[],int) -> writeLongArray
+    693:702:void writeLongArray(long[]) -> writeLongArray
+    854:872:void writeMap(java.util.Map,int) -> writeMap
+    1157:1158:void writeNoException() -> writeNoException
+    391:393:void writeParcelable(android.os.Parcelable,int) -> writeParcelable
+    1057:1059:void writeSerializable(java.io.Serializable,int) -> writeSerializable
+    1062:1081:void writeSerializable(java.io.Serializable) -> writeSerializable
+    826:827:void writeSet(java.util.Set,int) -> writeSet
+    514:520:void writeSize(android.util.Size,int) -> writeSize
+    528:534:void writeSizeF(android.util.SizeF,int) -> writeSizeF
+    539:552:void writeSparseBooleanArray(android.util.SparseBooleanArray,int) -> writeSparseBooleanArray
+    370:372:void writeString(java.lang.String,int) -> writeString
+    379:381:void writeStrongBinder(android.os.IBinder,int) -> writeStrongBinder
+    276:278:void writeStrongInterface(android.os.IInterface,int) -> writeStrongInterface
+    1586:1600:void writeToParcel(androidx.versionedparcelable.VersionedParcelable,androidx.versionedparcelable.VersionedParcel) -> writeToParcel
+    1021:1023:void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable,int) -> writeVersionedParcelable
+    1028:1037:void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable) -> writeVersionedParcelable
+    1040:1048:void writeVersionedParcelableCreator(androidx.versionedparcelable.VersionedParcelable) -> writeVersionedParcelableCreator
+androidx.versionedparcelable.VersionedParcel$1 -> androidx.versionedparcelable.VersionedParcel$1:
+    1535:1535:void <init>(androidx.versionedparcelable.VersionedParcel,java.io.InputStream) -> <init>
+    1539:1544:java.lang.Class resolveClass(java.io.ObjectStreamClass) -> resolveClass
+androidx.versionedparcelable.VersionedParcel$ParcelException -> androidx.versionedparcelable.VersionedParcel$ParcelException:
+    1642:1643:void <init>(java.lang.Throwable) -> <init>
+androidx.versionedparcelable.VersionedParcelParcel -> androidx.versionedparcelable.VersionedParcelParcel:
+    51:54:void <init>(android.os.Parcel) -> <init>
+    41:66:void <init>(android.os.Parcel,int,int,java.lang.String,androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> <init>
+    99:111:void closeField() -> closeField
+    119:119:androidx.versionedparcelable.VersionedParcel createSubParcel() -> createSubParcel
+    258:258:boolean readBoolean() -> readBoolean
+    253:253:android.os.Bundle readBundle() -> readBundle
+    236:242:byte[] readByteArray() -> readByteArray
+    201:201:java.lang.CharSequence readCharSequence() -> readCharSequence
+    221:221:double readDouble() -> readDouble
+    70:84:boolean readField(int) -> readField
+    216:216:float readFloat() -> readFloat
+    206:206:int readInt() -> readInt
+    211:211:long readLong() -> readLong
+    248:248:android.os.Parcelable readParcelable() -> readParcelable
+    226:226:java.lang.String readString() -> readString
+    231:231:android.os.IBinder readStrongBinder() -> readStrongBinder
+    89:95:void setOutputField(int) -> setOutputField
+    181:182:void writeBoolean(boolean) -> writeBoolean
+    191:192:void writeBundle(android.os.Bundle) -> writeBundle
+    126:132:void writeByteArray(byte[]) -> writeByteArray
+    136:142:void writeByteArray(byte[],int,int) -> writeByteArray
+    196:197:void writeCharSequence(java.lang.CharSequence) -> writeCharSequence
+    161:162:void writeDouble(double) -> writeDouble
+    156:157:void writeFloat(float) -> writeFloat
+    146:147:void writeInt(int) -> writeInt
+    151:152:void writeLong(long) -> writeLong
+    176:177:void writeParcelable(android.os.Parcelable) -> writeParcelable
+    166:167:void writeString(java.lang.String) -> writeString
+    171:172:void writeStrongBinder(android.os.IBinder) -> writeStrongBinder
+    186:187:void writeStrongInterface(android.os.IInterface) -> writeStrongInterface
+androidx.versionedparcelable.VersionedParcelStream -> androidx.versionedparcelable.VersionedParcelStream:
+    44:44:void <clinit>() -> <clinit>
+    76:78:void <init>(java.io.InputStream,java.io.OutputStream) -> <init>
+    71:123:void <init>(java.io.InputStream,java.io.OutputStream,androidx.collection.ArrayMap,androidx.collection.ArrayMap,androidx.collection.ArrayMap) -> <init>
+    142:152:void closeField() -> closeField
+    156:156:androidx.versionedparcelable.VersionedParcel createSubParcel() -> createSubParcel
+    127:127:boolean isStream() -> isStream
+    402:404:boolean readBoolean() -> readBoolean
+    429:438:android.os.Bundle readBundle() -> readBundle
+    381:390:byte[] readByteArray() -> readByteArray
+    396:396:java.lang.CharSequence readCharSequence() -> readCharSequence
+    356:358:double readDouble() -> readDouble
+    164:186:boolean readField(int) -> readField
+    347:349:float readFloat() -> readFloat
+    329:331:int readInt() -> readInt
+    338:340:long readLong() -> readLong
+    489:538:void readObject(int,java.lang.String,android.os.Bundle) -> readObject
+    323:323:android.os.Parcelable readParcelable() -> readParcelable
+    365:374:java.lang.String readString() -> readString
+    317:317:android.os.IBinder readStrongBinder() -> readStrongBinder
+    191:194:void setOutputField(int) -> setOutputField
+    134:138:void setSerializationFlags(boolean,boolean) -> setSerializationFlags
+    288:292:void writeBoolean(boolean) -> writeBoolean
+    411:425:void writeBundle(android.os.Bundle) -> writeBundle
+    199:208:void writeByteArray(byte[]) -> writeByteArray
+    213:222:void writeByteArray(byte[],int,int) -> writeByteArray
+    226:229:void writeCharSequence(java.lang.CharSequence) -> writeCharSequence
+    263:268:void writeDouble(double) -> writeDouble
+    253:258:void writeFloat(float) -> writeFloat
+    234:238:void writeInt(int) -> writeInt
+    243:248:void writeLong(long) -> writeLong
+    442:486:void writeObject(java.lang.Object) -> writeObject
+    303:306:void writeParcelable(android.os.Parcelable) -> writeParcelable
+    273:283:void writeString(java.lang.String) -> writeString
+    296:299:void writeStrongBinder(android.os.IBinder) -> writeStrongBinder
+    310:313:void writeStrongInterface(android.os.IInterface) -> writeStrongInterface
+androidx.versionedparcelable.VersionedParcelStream$1 -> androidx.versionedparcelable.VersionedParcelStream$1:
+    85:85:void <init>(androidx.versionedparcelable.VersionedParcelStream,java.io.InputStream) -> <init>
+    88:93:int read() -> read
+    98:105:int read(byte[],int,int) -> read
+    110:117:long skip(long) -> skip
+androidx.versionedparcelable.VersionedParcelStream$FieldBuffer -> androidx.versionedparcelable.VersionedParcelStream$FieldBuffer:
+    544:552:void <init>(int,java.io.DataOutputStream) -> <init>
+    555:563:void flushField() -> flushField
+androidx.viewbinding.BuildConfig -> androidx.viewbinding.BuildConfig:
+    6:6:void <init>() -> <init>
+androidx.viewbinding.ViewBindings -> androidx.viewbinding.ViewBindings:
+    30:31:void <init>() -> <init>
+    40:51:android.view.View findChildViewById(android.view.View,int) -> findChildViewById
+androidx.viewpager.widget.PagerAdapter -> androidx.viewpager.widget.PagerAdapter:
+    81:82:void <init>() -> <init>
+    129:130:void destroyItem(android.view.ViewGroup,int,java.lang.Object) -> destroyItem
+    202:202:void destroyItem(android.view.View,int,java.lang.Object) -> destroyItem
+    154:155:void finishUpdate(android.view.ViewGroup) -> finishUpdate
+    231:231:void finishUpdate(android.view.View) -> finishUpdate
+    281:281:int getItemPosition(java.lang.Object) -> getItemPosition
+    332:332:java.lang.CharSequence getPageTitle(int) -> getPageTitle
+    343:343:float getPageWidth(int) -> getPageWidth
+    115:115:java.lang.Object instantiateItem(android.view.ViewGroup,int) -> instantiateItem
+    184:184:java.lang.Object instantiateItem(android.view.View,int) -> instantiateItem
+    289:295:void notifyDataSetChanged() -> notifyDataSetChanged
+    303:304:void registerDataSetObserver(android.database.DataSetObserver) -> registerDataSetObserver
+    263:263:void restoreState(android.os.Parcelable,java.lang.ClassLoader) -> restoreState
+    252:252:android.os.Parcelable saveState() -> saveState
+    143:144:void setPrimaryItem(android.view.ViewGroup,int,java.lang.Object) -> setPrimaryItem
+    218:218:void setPrimaryItem(android.view.View,int,java.lang.Object) -> setPrimaryItem
+    316:319:void setViewPagerObserver(android.database.DataSetObserver) -> setViewPagerObserver
+    99:100:void startUpdate(android.view.ViewGroup) -> startUpdate
+    166:166:void startUpdate(android.view.View) -> startUpdate
+    312:313:void unregisterDataSetObserver(android.database.DataSetObserver) -> unregisterDataSetObserver
+androidx.viewpager.widget.PagerTabStrip -> androidx.viewpager.widget.PagerTabStrip:
+    83:84:void <init>(android.content.Context) -> <init>
+    68:128:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    218:218:boolean getDrawFullUnderline() -> getDrawFullUnderline
+    223:223:int getMinHeight() -> getMinHeight
+    155:155:int getTabIndicatorColor() -> getTabIndicatorColor
+    265:281:void onDraw(android.graphics.Canvas) -> onDraw
+    228:260:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    184:188:void setBackgroundColor(int) -> setBackgroundColor
+    176:180:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    192:196:void setBackgroundResource(int) -> setBackgroundResource
+    205:208:void setDrawFullUnderline(boolean) -> setDrawFullUnderline
+    160:164:void setPadding(int,int,int,int) -> setPadding
+    136:139:void setTabIndicatorColor(int) -> setTabIndicatorColor
+    147:148:void setTabIndicatorColorResource(int) -> setTabIndicatorColorResource
+    168:172:void setTextSpacing(int) -> setTextSpacing
+    285:301:void updateTextPositions(int,float,boolean) -> updateTextPositions
+androidx.viewpager.widget.PagerTabStrip$1 -> androidx.viewpager.widget.PagerTabStrip$1:
+    110:110:void <init>(androidx.viewpager.widget.PagerTabStrip) -> <init>
+    113:114:void onClick(android.view.View) -> onClick
+androidx.viewpager.widget.PagerTabStrip$2 -> androidx.viewpager.widget.PagerTabStrip$2:
+    118:118:void <init>(androidx.viewpager.widget.PagerTabStrip) -> <init>
+    121:122:void onClick(android.view.View) -> onClick
+androidx.viewpager.widget.PagerTitleStrip -> androidx.viewpager.widget.PagerTitleStrip:
+    73:80:void <clinit>() -> <clinit>
+    109:110:void <init>(android.content.Context) -> <init>
+    61:165:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    463:468:int getMinHeight() -> getMinHeight
+    181:181:int getTextSpacing() -> getTextSpacing
+    239:254:void onAttachedToWindow() -> onAttachedToWindow
+    258:265:void onDetachedFromWindow() -> onDetachedFromWindow
+    456:460:void onLayout(boolean,int,int,int,int) -> onLayout
+    420:452:void onMeasure(int,int) -> onMeasure
+    308:311:void requestLayout() -> requestLayout
+    233:235:void setGravity(int) -> setGravity
+    190:194:void setNonPrimaryAlpha(float) -> setNonPrimaryAlpha
+    105:106:void setSingleLineAllCaps(android.widget.TextView) -> setSingleLineAllCaps
+    203:208:void setTextColor(int) -> setTextColor
+    221:224:void setTextSize(int,float) -> setTextSize
+    173:175:void setTextSpacing(int) -> setTextSpacing
+    314:328:void updateAdapter(androidx.viewpager.widget.PagerAdapter,androidx.viewpager.widget.PagerAdapter) -> updateAdapter
+    268:304:void updateText(int,androidx.viewpager.widget.PagerAdapter) -> updateText
+    331:416:void updateTextPositions(int,float,boolean) -> updateTextPositions
+androidx.viewpager.widget.PagerTitleStrip$PageListener -> androidx.viewpager.widget.PagerTitleStrip$PageListener:
+    475:476:void <init>(androidx.viewpager.widget.PagerTitleStrip) -> <init>
+    506:507:void onAdapterChanged(androidx.viewpager.widget.ViewPager,androidx.viewpager.widget.PagerAdapter,androidx.viewpager.widget.PagerAdapter) -> onAdapterChanged
+    511:515:void onChanged() -> onChanged
+    500:501:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    480:485:void onPageScrolled(int,float,int) -> onPageScrolled
+    489:496:void onPageSelected(int) -> onPageSelected
+androidx.viewpager.widget.PagerTitleStrip$SingleLineAllCapsTransform -> androidx.viewpager.widget.PagerTitleStrip$SingleLineAllCapsTransform:
+    93:95:void <init>(android.content.Context) -> <init>
+    99:100:java.lang.CharSequence getTransformation(java.lang.CharSequence,android.view.View) -> getTransformation
+androidx.viewpager.widget.ViewPager -> androidx.viewpager.widget.ViewPager:
+    122:251:void <clinit>() -> <clinit>
+    155:393:void <init>(android.content.Context) -> <init>
+    155:398:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2905:2940:void addFocusables(java.util.ArrayList,int,int) -> addFocusables
+    1008:1017:androidx.viewpager.widget.ViewPager$ItemInfo addNewItem(int,int) -> addNewItem
+    581:585:void addOnAdapterChangeListener(androidx.viewpager.widget.ViewPager$OnAdapterChangeListener) -> addOnAdapterChangeListener
+    723:727:void addOnPageChangeListener(androidx.viewpager.widget.ViewPager$OnPageChangeListener) -> addOnPageChangeListener
+    2950:2959:void addTouchables(java.util.ArrayList) -> addTouchables
+    1472:1495:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    2793:2855:boolean arrowScroll(int) -> arrowScroll
+    2528:2544:boolean beginFakeDrag() -> beginFakeDrag
+    1298:1381:void calculatePageOffsets(androidx.viewpager.widget.ViewPager$ItemInfo,int,androidx.viewpager.widget.ViewPager$ItemInfo) -> calculatePageOffsets
+    2719:2738:boolean canScroll(android.view.View,boolean,int,int,int) -> canScroll
+    2692:2703:boolean canScrollHorizontally(int) -> canScrollHorizontally
+    3029:3029:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    745:748:void clearOnPageChangeListeners() -> clearOnPageChangeListeners
+    1974:2008:void completeScroll(boolean) -> completeScroll
+    1793:1815:void computeScroll() -> computeScroll
+    1023:1089:void dataSetChanged() -> dataSetChanged
+    2406:2421:int determineTargetPage(int,float,int,int) -> determineTargetPage
+    2744:2744:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    1923:1937:void dispatchOnPageScrolled(int,float,int) -> dispatchOnPageScrolled
+    1940:1954:void dispatchOnPageSelected(int) -> dispatchOnPageSelected
+    1957:1971:void dispatchOnScrollStateChanged(int) -> dispatchOnScrollStateChanged
+    2997:3014:boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> dispatchPopulateAccessibilityEvent
+    927:929:float distanceInfluenceForSnapDuration(float) -> distanceInfluenceForSnapDuration
+    2426:2464:void draw(android.graphics.Canvas) -> draw
+    915:920:void drawableStateChanged() -> drawableStateChanged
+    2015:2021:void enableLayers(boolean) -> enableLayers
+    2659:2666:void endDrag() -> endDrag
+    2554:2576:void endFakeDrag() -> endFakeDrag
+    2756:2782:boolean executeKeyEvent(android.view.KeyEvent) -> executeKeyEvent
+    2586:2628:void fakeDragBy(float) -> fakeDragBy
+    3019:3019:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    3024:3024:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    3034:3034:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    572:572:androidx.viewpager.widget.PagerAdapter getAdapter() -> getAdapter
+    802:805:int getChildDrawingOrder(int,int) -> getChildDrawingOrder
+    2859:2881:android.graphics.Rect getChildRectInPagerCoordinates(android.graphics.Rect,android.view.View) -> getChildRectInPagerCoordinates
+    600:600:int getClientWidth() -> getClientWidth
+    627:627:int getCurrentItem() -> getCurrentItem
+    828:828:int getOffscreenPageLimit() -> getOffscreenPageLimit
+    884:884:int getPageMargin() -> getPageMargin
+    1523:1529:androidx.viewpager.widget.ViewPager$ItemInfo infoForAnyChild(android.view.View) -> infoForAnyChild
+    1512:1518:androidx.viewpager.widget.ViewPager$ItemInfo infoForChild(android.view.View) -> infoForChild
+    2363:2401:androidx.viewpager.widget.ViewPager$ItemInfo infoForCurrentScrollPosition() -> infoForCurrentScrollPosition
+    1533:1539:androidx.viewpager.widget.ViewPager$ItemInfo infoForPosition(int) -> infoForPosition
+    401:475:void initViewPager() -> initViewPager
+    1498:1499:boolean isDecorView(android.view.View) -> isDecorView
+    2640:2640:boolean isFakeDragging() -> isFakeDragging
+    2011:2011:boolean isGutterDrag(float,float) -> isGutterDrag
+    1544:1546:void onAttachedToWindow() -> onAttachedToWindow
+    479:485:void onDetachedFromWindow() -> onDetachedFromWindow
+    2468:2508:void onDraw(android.graphics.Canvas) -> onDraw
+    2031:2161:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    1682:1789:void onLayout(boolean,int,int,int,int) -> onLayout
+    1555:1642:void onMeasure(int,int) -> onMeasure
+    1865:1920:void onPageScrolled(int,float,int) -> onPageScrolled
+    2970:2991:boolean onRequestFocusInDescendants(int,android.graphics.Rect) -> onRequestFocusInDescendants
+    1452:1468:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1441:1447:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    2644:2656:void onSecondaryPointerUp(android.view.MotionEvent) -> onSecondaryPointerUp
+    1646:1652:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    2166:2289:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    2885:2889:boolean pageLeft() -> pageLeft
+    2893:2897:boolean pageRight() -> pageRight
+    1818:1847:boolean pageScrolled(int) -> pageScrolled
+    2310:2355:boolean performDrag(float) -> performDrag
+    1092:1093:void populate() -> populate
+    1096:1279:void populate(int) -> populate
+    1655:1678:void recomputeScrollPosition(int,int,int,int) -> recomputeScrollPosition
+    555:563:void removeNonDecorViews() -> removeNonDecorViews
+    594:597:void removeOnAdapterChangeListener(androidx.viewpager.widget.ViewPager$OnAdapterChangeListener) -> removeOnAdapterChangeListener
+    736:739:void removeOnPageChangeListener(androidx.viewpager.widget.ViewPager$OnPageChangeListener) -> removeOnPageChangeListener
+    1504:1509:void removeView(android.view.View) -> removeView
+    2303:2307:void requestParentDisallowInterceptTouchEvent(boolean) -> requestParentDisallowInterceptTouchEvent
+    2294:2299:boolean resetTouch() -> resetTouch
+    676:696:void scrollToItem(int,boolean,int,boolean) -> scrollToItem
+    506:552:void setAdapter(androidx.viewpager.widget.PagerAdapter) -> setAdapter
+    611:613:void setCurrentItem(int) -> setCurrentItem
+    622:624:void setCurrentItem(int,boolean) -> setCurrentItem
+    631:632:void setCurrentItemInternal(int,boolean,boolean) -> setCurrentItemInternal
+    635:672:void setCurrentItemInternal(int,boolean,boolean,int) -> setCurrentItemInternal
+    815:817:androidx.viewpager.widget.ViewPager$OnPageChangeListener setInternalPageChangeListener(androidx.viewpager.widget.ViewPager$OnPageChangeListener) -> setInternalPageChangeListener
+    849:858:void setOffscreenPageLimit(int) -> setOffscreenPageLimit
+    709:710:void setOnPageChangeListener(androidx.viewpager.widget.ViewPager$OnPageChangeListener) -> setOnPageChangeListener
+    869:876:void setPageMargin(int) -> setPageMargin
+    893:897:void setPageMarginDrawable(android.graphics.drawable.Drawable) -> setPageMarginDrawable
+    905:906:void setPageMarginDrawable(int) -> setPageMarginDrawable
+    769:770:void setPageTransformer(boolean,androidx.viewpager.widget.ViewPager$PageTransformer) -> setPageTransformer
+    787:798:void setPageTransformer(boolean,androidx.viewpager.widget.ViewPager$PageTransformer,int) -> setPageTransformer
+    488:498:void setScrollState(int) -> setScrollState
+    2669:2681:void setScrollingCacheEnabled(boolean) -> setScrollingCacheEnabled
+    939:940:void smoothScrollTo(int,int) -> smoothScrollTo
+    950:1005:void smoothScrollTo(int,int,int) -> smoothScrollTo
+    1282:1295:void sortChildDrawingOrder() -> sortChildDrawingOrder
+    910:910:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+androidx.viewpager.widget.ViewPager$1 -> androidx.viewpager.widget.ViewPager$1:
+    140:140:void <init>() -> <init>
+    140:140:int compare(java.lang.Object,java.lang.Object) -> compare
+    143:143:int compare(androidx.viewpager.widget.ViewPager$ItemInfo,androidx.viewpager.widget.ViewPager$ItemInfo) -> compare
+androidx.viewpager.widget.ViewPager$2 -> androidx.viewpager.widget.ViewPager$2:
+    147:147:void <init>() -> <init>
+    150:151:float getInterpolation(float) -> getInterpolation
+androidx.viewpager.widget.ViewPager$3 -> androidx.viewpager.widget.ViewPager$3:
+    269:269:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    272:274:void run() -> run
+androidx.viewpager.widget.ViewPager$4 -> androidx.viewpager.widget.ViewPager$4:
+    428:429:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    435:471:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+androidx.viewpager.widget.ViewPager$ItemInfo -> androidx.viewpager.widget.ViewPager$ItemInfo:
+    132:132:void <init>() -> <init>
+androidx.viewpager.widget.ViewPager$LayoutParams -> androidx.viewpager.widget.ViewPager$LayoutParams:
+    3126:3146:void <init>() -> <init>
+    3126:3154:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+androidx.viewpager.widget.ViewPager$MyAccessibilityDelegate -> androidx.viewpager.widget.ViewPager$MyAccessibilityDelegate:
+    3037:3037:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    3087:3087:boolean canScroll() -> canScroll
+    3041:3049:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    3053:3062:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    3066:3083:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+androidx.viewpager.widget.ViewPager$PagerObserver -> androidx.viewpager.widget.ViewPager$PagerObserver:
+    3092:3093:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    3097:3098:void onChanged() -> onChanged
+    3101:3102:void onInvalidated() -> onInvalidated
+androidx.viewpager.widget.ViewPager$SavedState -> androidx.viewpager.widget.ViewPager$SavedState:
+    1412:1412:void <clinit>() -> <clinit>
+    1395:1396:void <init>(android.os.Parcelable) -> <init>
+    1429:1436:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1407:1408:java.lang.String toString() -> toString
+    1400:1403:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.viewpager.widget.ViewPager$SavedState$1 -> androidx.viewpager.widget.ViewPager$SavedState$1:
+    1412:1412:void <init>() -> <init>
+    1412:1412:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1412:1412:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1415:1415:androidx.viewpager.widget.ViewPager$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1420:1420:androidx.viewpager.widget.ViewPager$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1412:1412:java.lang.Object[] newArray(int) -> newArray
+    1424:1424:androidx.viewpager.widget.ViewPager$SavedState[] newArray(int) -> newArray
+androidx.viewpager.widget.ViewPager$SimpleOnPageChangeListener -> androidx.viewpager.widget.ViewPager$SimpleOnPageChangeListener:
+    321:321:void <init>() -> <init>
+    335:335:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    325:325:void onPageScrolled(int,float,int) -> onPageScrolled
+    330:330:void onPageSelected(int) -> onPageSelected
+androidx.viewpager.widget.ViewPager$ViewPositionComparator -> androidx.viewpager.widget.ViewPager$ViewPositionComparator:
+    3157:3157:void <init>() -> <init>
+    3157:3157:int compare(java.lang.Object,java.lang.Object) -> compare
+    3160:3165:int compare(android.view.View,android.view.View) -> compare
+androidx.viewpager2.adapter.FragmentStateAdapter -> androidx.viewpager2.adapter.FragmentStateAdapter:
+    102:103:void <init>(androidx.fragment.app.FragmentActivity) -> <init>
+    112:113:void <init>(androidx.fragment.app.Fragment) -> <init>
+    82:127:void <init>(androidx.fragment.app.FragmentManager,androidx.lifecycle.Lifecycle) -> <init>
+    386:403:void addViewToContainer(android.view.View,android.widget.FrameLayout) -> addViewToContainer
+    496:496:boolean containsItem(long) -> containsItem
+    600:600:java.lang.String createKey(java.lang.String,long) -> createKey
+    265:272:void ensureFragment(int) -> ensureFragment
+    201:230:void gcFragments() -> gcFragments
+    486:486:long getItemId(int) -> getItemId
+    233:247:boolean isFragmentViewBound(long) -> isFragmentViewBound
+    605:605:boolean isValidKey(java.lang.String,java.lang.String) -> isValidKey
+    251:261:java.lang.Long itemForViewHolder(int) -> itemForViewHolder
+    132:135:void onAttachedToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> onAttachedToRecyclerView
+    67:67:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    166:197:void onBindViewHolder(androidx.viewpager2.adapter.FragmentViewHolder,int) -> onBindViewHolder
+    67:67:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    161:161:androidx.viewpager2.adapter.FragmentViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    140:142:void onDetachedFromRecyclerView(androidx.recyclerview.widget.RecyclerView) -> onDetachedFromRecyclerView
+    67:67:boolean onFailedToRecycleView(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onFailedToRecycleView
+    430:430:boolean onFailedToRecycleView(androidx.viewpager2.adapter.FragmentViewHolder) -> onFailedToRecycleView
+    67:67:void onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewAttachedToWindow
+    276:278:void onViewAttachedToWindow(androidx.viewpager2.adapter.FragmentViewHolder) -> onViewAttachedToWindow
+    67:67:void onViewRecycled(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewRecycled
+    407:413:void onViewRecycled(androidx.viewpager2.adapter.FragmentViewHolder) -> onViewRecycled
+    610:610:long parseIdFromKey(java.lang.String,java.lang.String) -> parseIdFromKey
+    285:361:void placeFragmentInViewHolder(androidx.viewpager2.adapter.FragmentViewHolder) -> placeFragmentInViewHolder
+    434:466:void removeFragment(long) -> removeFragment
+    535:572:void restoreState(android.os.Parcelable) -> restoreState
+    509:530:android.os.Parcelable saveState() -> saveState
+    575:596:void scheduleGracePeriodEnd() -> scheduleGracePeriodEnd
+    368:382:void scheduleViewAttach(androidx.fragment.app.Fragment,android.widget.FrameLayout) -> scheduleViewAttach
+    501:501:void setHasStableIds(boolean) -> setHasStableIds
+    470:470:boolean shouldDelayFragmentTransactions() -> shouldDelayFragmentTransactions
+androidx.viewpager2.adapter.FragmentStateAdapter$1 -> androidx.viewpager2.adapter.FragmentStateAdapter$1:
+    184:184:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter,android.widget.FrameLayout,androidx.viewpager2.adapter.FragmentViewHolder) -> <init>
+    188:192:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+androidx.viewpager2.adapter.FragmentStateAdapter$2 -> androidx.viewpager2.adapter.FragmentStateAdapter$2:
+    347:347:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter,androidx.viewpager2.adapter.FragmentViewHolder) -> <init>
+    351:358:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.viewpager2.adapter.FragmentStateAdapter$3 -> androidx.viewpager2.adapter.FragmentStateAdapter$3:
+    369:369:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter,androidx.fragment.app.Fragment,android.widget.FrameLayout) -> <init>
+    376:380:void onFragmentViewCreated(androidx.fragment.app.FragmentManager,androidx.fragment.app.Fragment,android.view.View,android.os.Bundle) -> onFragmentViewCreated
+androidx.viewpager2.adapter.FragmentStateAdapter$4 -> androidx.viewpager2.adapter.FragmentStateAdapter$4:
+    576:576:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter) -> <init>
+    579:581:void run() -> run
+androidx.viewpager2.adapter.FragmentStateAdapter$5 -> androidx.viewpager2.adapter.FragmentStateAdapter$5:
+    584:584:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter,android.os.Handler,java.lang.Runnable) -> <init>
+    588:592:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.viewpager2.adapter.FragmentStateAdapter$DataSetChangeObserver -> androidx.viewpager2.adapter.FragmentStateAdapter$DataSetChangeObserver:
+    744:744:void <init>() -> <init>
+    744:744:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter$1) -> <init>
+    750:751:void onItemRangeChanged(int,int) -> onItemRangeChanged
+    756:757:void onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    761:762:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    771:772:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    766:767:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer -> androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer:
+    617:623:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter) -> <init>
+    732:736:androidx.viewpager2.widget.ViewPager2 inferViewPager(androidx.recyclerview.widget.RecyclerView) -> inferViewPager
+    626:661:void register(androidx.recyclerview.widget.RecyclerView) -> register
+    664:669:void unregister(androidx.recyclerview.widget.RecyclerView) -> unregister
+    672:728:void updateFragmentMaxLifecycle(boolean) -> updateFragmentMaxLifecycle
+androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$1 -> androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$1:
+    629:629:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer) -> <init>
+    632:633:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    637:638:void onPageSelected(int) -> onPageSelected
+androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$2 -> androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$2:
+    643:643:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer) -> <init>
+    646:647:void onChanged() -> onChanged
+androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$3 -> androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$3:
+    653:653:void <init>(androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer) -> <init>
+    657:658:void onStateChanged(androidx.lifecycle.LifecycleOwner,androidx.lifecycle.Lifecycle$Event) -> onStateChanged
+androidx.viewpager2.adapter.FragmentViewHolder -> androidx.viewpager2.adapter.FragmentViewHolder:
+    33:34:void <init>(android.widget.FrameLayout) -> <init>
+    37:43:androidx.viewpager2.adapter.FragmentViewHolder create(android.view.ViewGroup) -> create
+    47:47:android.widget.FrameLayout getContainer() -> getContainer
+androidx.viewpager2.widget.AnimateLayoutChangeDetector -> androidx.viewpager2.widget.AnimateLayoutChangeDetector:
+    46:48:void <clinit>() -> <clinit>
+    52:54:void <init>(androidx.recyclerview.widget.LinearLayoutManager) -> <init>
+    66:113:boolean arePagesLaidOutContiguously() -> arePagesLaidOutContiguously
+    117:123:boolean hasRunningChangingLayoutTransition() -> hasRunningChangingLayoutTransition
+    127:140:boolean hasRunningChangingLayoutTransition(android.view.View) -> hasRunningChangingLayoutTransition
+    60:61:boolean mayHaveInterferingAnimations() -> mayHaveInterferingAnimations
+androidx.viewpager2.widget.AnimateLayoutChangeDetector$1 -> androidx.viewpager2.widget.AnimateLayoutChangeDetector$1:
+    94:94:void <init>(androidx.viewpager2.widget.AnimateLayoutChangeDetector) -> <init>
+    94:94:int compare(java.lang.Object,java.lang.Object) -> compare
+    97:97:int compare(int[],int[]) -> compare
+androidx.viewpager2.widget.CompositeOnPageChangeCallback -> androidx.viewpager2.widget.CompositeOnPageChangeCallback:
+    34:36:void <init>(int) -> <init>
+    42:43:void addOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback) -> addOnPageChangeCallback
+    86:92:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    58:64:void onPageScrolled(int,float,int) -> onPageScrolled
+    72:78:void onPageSelected(int) -> onPageSelected
+    49:50:void removeOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback) -> removeOnPageChangeCallback
+    95:95:void throwCallbackListModifiedWhileInUse(java.util.ConcurrentModificationException) -> throwCallbackListModifiedWhileInUse
+androidx.viewpager2.widget.CompositePageTransformer -> androidx.viewpager2.widget.CompositePageTransformer:
+    33:34:void <init>() -> <init>
+    42:43:void addTransformer(androidx.viewpager2.widget.ViewPager2$PageTransformer) -> addTransformer
+    47:48:void removeTransformer(androidx.viewpager2.widget.ViewPager2$PageTransformer) -> removeTransformer
+    52:55:void transformPage(android.view.View,float) -> transformPage
+androidx.viewpager2.widget.FakeDrag -> androidx.viewpager2.widget.FakeDrag:
+    44:48:void <init>(androidx.viewpager2.widget.ViewPager2,androidx.viewpager2.widget.ScrollEventAdapter,androidx.recyclerview.widget.RecyclerView) -> <init>
+    134:137:void addFakeMotionEvent(long,int,float,float) -> addFakeMotionEvent
+    56:69:boolean beginFakeDrag() -> beginFakeDrag
+    124:131:void beginFakeVelocityTracker() -> beginFakeVelocityTracker
+    102:120:boolean endFakeDrag() -> endFakeDrag
+    74:97:boolean fakeDragBy(float) -> fakeDragBy
+    51:51:boolean isFakeDragging() -> isFakeDragging
+androidx.viewpager2.widget.MarginPageTransformer -> androidx.viewpager2.widget.MarginPageTransformer:
+    47:50:void <init>(int) -> <init>
+    66:73:androidx.viewpager2.widget.ViewPager2 requireViewPager(android.view.View) -> requireViewPager
+    54:63:void transformPage(android.view.View,float) -> transformPage
+androidx.viewpager2.widget.PageTransformerAdapter -> androidx.viewpager2.widget.PageTransformerAdapter:
+    36:38:void <init>(androidx.recyclerview.widget.LinearLayoutManager) -> <init>
+    41:41:androidx.viewpager2.widget.ViewPager2$PageTransformer getPageTransformer() -> getPageTransformer
+    82:82:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    58:74:void onPageScrolled(int,float,int) -> onPageScrolled
+    78:78:void onPageSelected(int) -> onPageSelected
+    53:54:void setPageTransformer(androidx.viewpager2.widget.ViewPager2$PageTransformer) -> setPageTransformer
+androidx.viewpager2.widget.ScrollEventAdapter -> androidx.viewpager2.widget.ScrollEventAdapter:
+    77:84:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    437:440:void dispatchScrolled(int,float,int) -> dispatchScrolled
+    431:434:void dispatchSelected(int) -> dispatchSelected
+    416:428:void dispatchStateChanged(int) -> dispatchStateChanged
+    443:443:int getPosition() -> getPosition
+    407:408:double getRelativeScrollPosition() -> getRelativeScrollPosition
+    360:360:int getScrollState() -> getScrollState
+    375:375:boolean isDragging() -> isDragging
+    383:383:boolean isFakeDragging() -> isFakeDragging
+    367:367:boolean isIdle() -> isIdle
+    392:392:boolean isInAnyDraggingState() -> isInAnyDraggingState
+    328:330:void notifyBeginFakeDrag() -> notifyBeginFakeDrag
+    303:304:void notifyDataSetChangeHappened() -> notifyDataSetChangeHappened
+    336:353:void notifyEndFakeDrag() -> notifyEndFakeDrag
+    310:322:void notifyProgrammaticScroll(int,boolean) -> notifyProgrammaticScroll
+    105:169:void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView,int) -> onScrollStateChanged
+    177:217:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+    87:96:void resetState() -> resetState
+    356:357:void setOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback) -> setOnPageChangeCallback
+    287:300:void startDrag(boolean) -> startDrag
+    224:284:void updateScrollEventValues() -> updateScrollEventValues
+androidx.viewpager2.widget.ScrollEventAdapter$ScrollEventValues -> androidx.viewpager2.widget.ScrollEventAdapter$ScrollEventValues:
+    452:453:void <init>() -> <init>
+    456:459:void reset() -> reset
+androidx.viewpager2.widget.ViewPager2 -> androidx.viewpager2.widget.ViewPager2:
+    121:121:void <clinit>() -> <clinit>
+    124:159:void <init>(android.content.Context) -> <init>
+    124:164:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    124:169:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    124:176:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    1144:1145:void addItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration) -> addItemDecoration
+    1163:1164:void addItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration,int) -> addItemDecoration
+    713:713:boolean beginFakeDrag() -> beginFakeDrag
+    855:855:boolean canScrollHorizontally(int) -> canScrollHorizontally
+    860:860:boolean canScrollVertically(int) -> canScrollVertically
+    364:376:void dispatchRestoreInstanceState(android.util.SparseArray) -> dispatchRestoreInstanceState
+    749:749:boolean endFakeDrag() -> endFakeDrag
+    263:263:androidx.recyclerview.widget.RecyclerView$OnChildAttachStateChangeListener enforceChildFillListener() -> enforceChildFillListener
+    735:735:boolean fakeDragBy(float) -> fakeDragBy
+    285:288:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    482:482:androidx.recyclerview.widget.RecyclerView$Adapter getAdapter() -> getAdapter
+    675:675:int getCurrentItem() -> getCurrentItem
+    1175:1175:androidx.recyclerview.widget.RecyclerView$ItemDecoration getItemDecorationAt(int) -> getItemDecorationAt
+    1184:1184:int getItemDecorationCount() -> getItemDecorationCount
+    850:850:int getOffscreenPageLimit() -> getOffscreenPageLimit
+    573:573:int getOrientation() -> getOrientation
+    556:559:int getPageSize() -> getPageSize
+    687:687:int getScrollState() -> getScrollState
+    179:255:void initialize(android.content.Context,android.util.AttributeSet) -> initialize
+    1192:1193:void invalidateItemDecorations() -> invalidateItemDecorations
+    761:761:boolean isFakeDragging() -> isFakeDragging
+    577:577:boolean isRtl() -> isRtl
+    803:803:boolean isUserInputEnabled() -> isUserInputEnabled
+    949:951:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    516:533:void onLayout(boolean,int,int,int,int) -> onLayout
+    498:512:void onMeasure(int,int) -> onMeasure
+    328:337:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    308:323:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    488:489:void onViewAdded(android.view.View) -> onViewAdded
+    956:959:boolean performAccessibilityAction(int,android.os.Bundle) -> performAccessibilityAction
+    469:472:void registerCurrentItemDataSetTracker(androidx.recyclerview.widget.RecyclerView$Adapter) -> registerCurrentItemDataSetTracker
+    872:873:void registerOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback) -> registerOnPageChangeCallback
+    1215:1216:void removeItemDecoration(androidx.recyclerview.widget.RecyclerView$ItemDecoration) -> removeItemDecoration
+    1202:1203:void removeItemDecorationAt(int) -> removeItemDecorationAt
+    930:938:void requestTransform() -> requestTransform
+    340:359:void restorePendingState() -> restorePendingState
+    458:466:void setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> setAdapter
+    591:592:void setCurrentItem(int) -> setCurrentItem
+    603:608:void setCurrentItem(int,boolean) -> setCurrentItem
+    614:666:void setCurrentItemInternal(int,boolean) -> setCurrentItemInternal
+    943:945:void setLayoutDirection(int) -> setLayoutDirection
+    832:839:void setOffscreenPageLimit(int) -> setOffscreenPageLimit
+    292:302:void setOrientation(android.content.Context,android.util.AttributeSet) -> setOrientation
+    568:570:void setOrientation(int) -> setOrientation
+    900:921:void setPageTransformer(androidx.viewpager2.widget.ViewPager2$PageTransformer) -> setPageTransformer
+    792:794:void setUserInputEnabled(boolean) -> setUserInputEnabled
+    770:779:void snapToPage() -> snapToPage
+    475:478:void unregisterCurrentItemDataSetTracker(androidx.recyclerview.widget.RecyclerView$Adapter) -> unregisterCurrentItemDataSetTracker
+    882:883:void unregisterOnPageChangeCallback(androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback) -> unregisterOnPageChangeCallback
+    537:553:void updateCurrentItem() -> updateCurrentItem
+androidx.viewpager2.widget.ViewPager2$1 -> androidx.viewpager2.widget.ViewPager2$1:
+    133:133:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    136:138:void onChanged() -> onChanged
+androidx.viewpager2.widget.ViewPager2$2 -> androidx.viewpager2.widget.ViewPager2$2:
+    212:212:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    223:226:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    215:219:void onPageSelected(int) -> onPageSelected
+androidx.viewpager2.widget.ViewPager2$3 -> androidx.viewpager2.widget.ViewPager2$3:
+    230:230:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    233:237:void onPageSelected(int) -> onPageSelected
+androidx.viewpager2.widget.ViewPager2$4 -> androidx.viewpager2.widget.ViewPager2$4:
+    263:263:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    266:273:void onChildViewAttachedToWindow(android.view.View) -> onChildViewAttachedToWindow
+    278:278:void onChildViewDetachedFromWindow(android.view.View) -> onChildViewDetachedFromWindow
+androidx.viewpager2.widget.ViewPager2$AccessibilityProvider -> androidx.viewpager2.widget.ViewPager2$AccessibilityProvider:
+    1220:1220:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    1220:1220:void <init>(androidx.viewpager2.widget.ViewPager2,androidx.viewpager2.widget.ViewPager2$1) -> <init>
+    1226:1226:boolean handlesGetAccessibilityClassName() -> handlesGetAccessibilityClassName
+    1269:1269:boolean handlesLmPerformAccessibilityAction(int) -> handlesLmPerformAccessibilityAction
+    1258:1258:boolean handlesPerformAccessibilityAction(int,android.os.Bundle) -> handlesPerformAccessibilityAction
+    1280:1280:boolean handlesRvGetAccessibilityClassName() -> handlesRvGetAccessibilityClassName
+    1237:1237:void onAttachAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> onAttachAdapter
+    1240:1240:void onDetachAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> onDetachAdapter
+    1230:1230:java.lang.String onGetAccessibilityClassName() -> onGetAccessibilityClassName
+    1223:1223:void onInitialize(androidx.viewpager2.widget.CompositeOnPageChangeCallback,androidx.recyclerview.widget.RecyclerView) -> onInitialize
+    1255:1255:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    1277:1277:void onLmInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onLmInitializeAccessibilityNodeInfo
+    1273:1273:boolean onLmPerformAccessibilityAction(int) -> onLmPerformAccessibilityAction
+    1262:1262:boolean onPerformAccessibilityAction(int,android.os.Bundle) -> onPerformAccessibilityAction
+    1234:1234:void onRestorePendingState() -> onRestorePendingState
+    1284:1284:java.lang.CharSequence onRvGetAccessibilityClassName() -> onRvGetAccessibilityClassName
+    1266:1266:void onRvInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onRvInitializeAccessibilityEvent
+    1252:1252:void onSetLayoutDirection() -> onSetLayoutDirection
+    1246:1246:void onSetNewCurrentItem() -> onSetNewCurrentItem
+    1243:1243:void onSetOrientation() -> onSetOrientation
+    1249:1249:void onSetUserInputEnabled() -> onSetUserInputEnabled
+androidx.viewpager2.widget.ViewPager2$BasicAccessibilityProvider -> androidx.viewpager2.widget.ViewPager2$BasicAccessibilityProvider:
+    1288:1288:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    1291:1293:boolean handlesLmPerformAccessibilityAction(int) -> handlesLmPerformAccessibilityAction
+    1316:1316:boolean handlesRvGetAccessibilityClassName() -> handlesRvGetAccessibilityClassName
+    1307:1312:void onLmInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onLmInitializeAccessibilityNodeInfo
+    1298:1301:boolean onLmPerformAccessibilityAction(int) -> onLmPerformAccessibilityAction
+    1321:1324:java.lang.CharSequence onRvGetAccessibilityClassName() -> onRvGetAccessibilityClassName
+androidx.viewpager2.widget.ViewPager2$DataSetChangeObserver -> androidx.viewpager2.widget.ViewPager2$DataSetChangeObserver:
+    1577:1577:void <init>() -> <init>
+    1577:1577:void <init>(androidx.viewpager2.widget.ViewPager2$1) -> <init>
+    1583:1584:void onItemRangeChanged(int,int) -> onItemRangeChanged
+    1589:1590:void onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    1594:1595:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    1604:1605:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    1599:1600:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+androidx.viewpager2.widget.ViewPager2$LinearLayoutManagerImpl -> androidx.viewpager2.widget.ViewPager2$LinearLayoutManagerImpl:
+    1001:1003:void <init>(androidx.viewpager2.widget.ViewPager2,android.content.Context) -> <init>
+    1024:1033:void calculateExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView$State,int[]) -> calculateExtraLayoutSpace
+    1017:1019:void onInitializeAccessibilityNodeInfo(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    1008:1011:boolean performAccessibilityAction(androidx.recyclerview.widget.RecyclerView$Recycler,androidx.recyclerview.widget.RecyclerView$State,int,android.os.Bundle) -> performAccessibilityAction
+    1039:1039:boolean requestChildRectangleOnScreen(androidx.recyclerview.widget.RecyclerView,android.view.View,android.graphics.Rect,boolean,boolean) -> requestChildRectangleOnScreen
+androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback -> androidx.viewpager2.widget.ViewPager2$OnPageChangeCallback:
+    1076:1076:void <init>() -> <init>
+    1106:1106:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    1088:1088:void onPageScrolled(int,float,int) -> onPageScrolled
+    1097:1097:void onPageSelected(int) -> onPageSelected
+androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider -> androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider:
+    1328:1340:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    1537:1552:void addCollectionInfo(android.view.accessibility.AccessibilityNodeInfo) -> addCollectionInfo
+    1555:1570:void addScrollActions(android.view.accessibility.AccessibilityNodeInfo) -> addScrollActions
+    1375:1375:boolean handlesGetAccessibilityClassName() -> handlesGetAccessibilityClassName
+    1439:1439:boolean handlesPerformAccessibilityAction(int,android.os.Bundle) -> handlesPerformAccessibilityAction
+    1393:1397:void onAttachAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> onAttachAdapter
+    1401:1404:void onDetachAdapter(androidx.recyclerview.widget.RecyclerView$Adapter) -> onDetachAdapter
+    1380:1383:java.lang.String onGetAccessibilityClassName() -> onGetAccessibilityClassName
+    1356:1371:void onInitialize(androidx.viewpager2.widget.CompositeOnPageChangeCallback,androidx.recyclerview.widget.RecyclerView) -> onInitialize
+    1431:1435:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    1445:1453:boolean onPerformAccessibilityAction(int,android.os.Bundle) -> onPerformAccessibilityAction
+    1388:1389:void onRestorePendingState() -> onRestorePendingState
+    1458:1460:void onRvInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onRvInitializeAccessibilityEvent
+    1426:1427:void onSetLayoutDirection() -> onSetLayoutDirection
+    1413:1414:void onSetNewCurrentItem() -> onSetNewCurrentItem
+    1408:1409:void onSetOrientation() -> onSetOrientation
+    1418:1422:void onSetUserInputEnabled() -> onSetUserInputEnabled
+    1468:1471:void setCurrentItemFromAccessibilityCommand(int) -> setCurrentItemFromAccessibilityCommand
+    1478:1534:void updatePageAccessibilityActions() -> updatePageAccessibilityActions
+androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$1 -> androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$1:
+    1330:1330:void <init>(androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider) -> <init>
+    1334:1336:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$2 -> androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$2:
+    1341:1341:void <init>(androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider) -> <init>
+    1345:1347:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$3 -> androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider$3:
+    1359:1359:void <init>(androidx.viewpager2.widget.ViewPager2$PageAwareAccessibilityProvider) -> <init>
+    1362:1363:void onChanged() -> onChanged
+androidx.viewpager2.widget.ViewPager2$PagerSnapHelperImpl -> androidx.viewpager2.widget.ViewPager2$PagerSnapHelperImpl:
+    1044:1045:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    1054:1054:android.view.View findSnapView(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> findSnapView
+androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl -> androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl:
+    967:969:void <init>(androidx.viewpager2.widget.ViewPager2,android.content.Context) -> <init>
+    974:977:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    982:986:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    996:996:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    991:991:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+androidx.viewpager2.widget.ViewPager2$SavedState -> androidx.viewpager2.widget.ViewPager2$SavedState:
+    412:412:void <clinit>() -> <clinit>
+    385:387:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    390:392:void <init>(android.os.Parcel) -> <init>
+    395:396:void <init>(android.os.Parcelable) -> <init>
+    399:402:void readValues(android.os.Parcel,java.lang.ClassLoader) -> readValues
+    406:410:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+androidx.viewpager2.widget.ViewPager2$SavedState$1 -> androidx.viewpager2.widget.ViewPager2$SavedState$1:
+    412:412:void <init>() -> <init>
+    412:412:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    412:412:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    415:415:androidx.viewpager2.widget.ViewPager2$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    422:422:androidx.viewpager2.widget.ViewPager2$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    412:412:java.lang.Object[] newArray(int) -> newArray
+    427:427:androidx.viewpager2.widget.ViewPager2$SavedState[] newArray(int) -> newArray
+androidx.viewpager2.widget.ViewPager2$SmoothScrollToPosition -> androidx.viewpager2.widget.ViewPager2$SmoothScrollToPosition:
+    1062:1065:void <init>(int,androidx.recyclerview.widget.RecyclerView) -> <init>
+    1069:1070:void run() -> run
+butterknife.ButterKnife -> butterknife.ButterKnife:
+    80:83:void <clinit>() -> <clinit>
+    75:76:void <init>() -> <init>
+    98:99:butterknife.Unbinder bind(android.app.Activity) -> bind
+    160:183:butterknife.Unbinder bind(java.lang.Object,android.view.View) -> bind
+    189:212:java.lang.reflect.Constructor findBindingConstructorForClass(java.lang.Class) -> findBindingConstructorForClass
+butterknife.OnItemSelected$Callback -> butterknife.OnItemSelected$Callback:
+    52:69:void <clinit>() -> <clinit>
+    52:52:void <init>(java.lang.String,int) -> <init>
+    52:52:butterknife.OnItemSelected$Callback valueOf(java.lang.String) -> valueOf
+    52:52:butterknife.OnItemSelected$Callback[] values() -> values
+butterknife.OnPageChange$Callback -> butterknife.OnPageChange$Callback:
+    47:67:void <clinit>() -> <clinit>
+    47:47:void <init>(java.lang.String,int) -> <init>
+    47:47:butterknife.OnPageChange$Callback valueOf(java.lang.String) -> valueOf
+    47:47:butterknife.OnPageChange$Callback[] values() -> values
+butterknife.OnTextChanged$Callback -> butterknife.OnTextChanged$Callback:
+    51:77:void <clinit>() -> <clinit>
+    51:51:void <init>(java.lang.String,int) -> <init>
+    51:51:butterknife.OnTextChanged$Callback valueOf(java.lang.String) -> valueOf
+    51:51:butterknife.OnTextChanged$Callback[] values() -> values
+butterknife.Unbinder -> butterknife.Unbinder:
+    9:9:void <clinit>() -> <clinit>
+butterknife.Unbinder$$ExternalSyntheticLambda0 -> butterknife.Unbinder$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    butterknife.Unbinder$$InternalSyntheticLambda$0$c3bd38c8cbbd540d92626bae21c0d5ffe266468dcb2d55fea5c5496de301f55a$0 butterknife.Unbinder$$InternalSyntheticLambda$0$c3bd38c8cbbd540d92626bae21c0d5ffe266468dcb2d55fea5c5496de301f55a$0.INSTANCE -> INSTANCE
+    void butterknife.Unbinder$$InternalSyntheticLambda$0$c3bd38c8cbbd540d92626bae21c0d5ffe266468dcb2d55fea5c5496de301f55a$0.<clinit>() -> <clinit>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void butterknife.Unbinder$$InternalSyntheticLambda$0$c3bd38c8cbbd540d92626bae21c0d5ffe266468dcb2d55fea5c5496de301f55a$0.<init>() -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+butterknife.ViewCollections -> butterknife.ViewCollections:
+    122:123:void <init>() -> <init>
+butterknife.internal.DebouncingOnClickListener -> butterknife.internal.DebouncingOnClickListener:
+    void $r8$lambda$9VMd1QuOmdVg_AaYBDeumcPsza8() -> $r8$lambda$9VMd1QuOmdVg_AaYBDeumcPsza8
+      # {"id":"com.android.tools.r8.synthesized"}
+    12:15:void <clinit>() -> <clinit>
+    11:11:void <init>() -> <init>
+    12:12:void lambda$static$0() -> lambda$static$0
+    18:28:void onClick(android.view.View) -> onClick
+butterknife.internal.DebouncingOnClickListener$$ExternalSyntheticLambda0 -> butterknife.internal.DebouncingOnClickListener$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    butterknife.internal.DebouncingOnClickListener$$InternalSyntheticLambda$0$e419f1079360e8f75690e9aef72dafead2c8d553bd9bd580651da2cdb951e127$0 butterknife.internal.DebouncingOnClickListener$$InternalSyntheticLambda$0$e419f1079360e8f75690e9aef72dafead2c8d553bd9bd580651da2cdb951e127$0.INSTANCE -> INSTANCE
+    void butterknife.internal.DebouncingOnClickListener$$InternalSyntheticLambda$0$e419f1079360e8f75690e9aef72dafead2c8d553bd9bd580651da2cdb951e127$0.<clinit>() -> <clinit>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void butterknife.internal.DebouncingOnClickListener$$InternalSyntheticLambda$0$e419f1079360e8f75690e9aef72dafead2c8d553bd9bd580651da2cdb951e127$0.<init>() -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void butterknife.internal.DebouncingOnClickListener$$InternalSyntheticLambda$0$e419f1079360e8f75690e9aef72dafead2c8d553bd9bd580651da2cdb951e127$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+butterknife.internal.Utils -> butterknife.internal.Utils:
+    20:20:void <clinit>() -> <clinit>
+    102:105:java.lang.Object castView(android.view.View,int,java.lang.String,java.lang.Class) -> castView
+    79:84:android.view.View findRequiredView(android.view.View,int,java.lang.String) -> findRequiredView
+    96:97:java.lang.Object findRequiredViewAsType(android.view.View,int,java.lang.String,java.lang.Class) -> findRequiredViewAsType
+    133:136:java.lang.String getResourceEntryName(android.view.View,int) -> getResourceEntryName
+com.blakequ.bluetooth_manager_lib.BleManager -> com.blakequ.bluetooth_manager_lib.BleManager:
+    39:42:com.blakequ.bluetooth_manager_lib.BleParamsOptions getBleParamsOptions() -> getBleParamsOptions
+    50:55:void setBleParamsOptions(com.blakequ.bluetooth_manager_lib.BleParamsOptions) -> setBleParamsOptions
+com.blakequ.bluetooth_manager_lib.BleParamsOptions -> com.blakequ.bluetooth_manager_lib.BleParamsOptions:
+    30:30:void <init>(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder,com.blakequ.bluetooth_manager_lib.BleParamsOptions$1) -> <init>
+    92:104:void <init>(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> <init>
+    282:282:com.blakequ.bluetooth_manager_lib.BleParamsOptions createDefault() -> createDefault
+    65:65:long getBackgroundBetweenScanPeriod() -> getBackgroundBetweenScanPeriod
+    61:61:long getBackgroundScanPeriod() -> getBackgroundScanPeriod
+    89:89:int getConnectTimeOutTimes() -> getConnectTimeOutTimes
+    57:57:long getForegroundBetweenScanPeriod() -> getForegroundBetweenScanPeriod
+    53:53:long getForegroundScanPeriod() -> getForegroundScanPeriod
+    69:69:int getMaxConnectDeviceNum() -> getMaxConnectDeviceNum
+    81:81:long getReconnectBaseSpaceTime() -> getReconnectBaseSpaceTime
+    77:77:int getReconnectMaxTimes() -> getReconnectMaxTimes
+    73:73:int getReconnectStrategy() -> getReconnectStrategy
+    85:85:int getReconnectedLineToExponentTimes() -> getReconnectedLineToExponentTimes
+com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder -> com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder:
+    106:118:void <init>() -> <init>
+    106:106:boolean access$000(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$000
+    106:106:long access$100(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$100
+    106:106:int access$1000(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$1000
+    106:106:long access$200(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$200
+    106:106:long access$300(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$300
+    106:106:long access$400(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$400
+    106:106:int access$500(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$500
+    106:106:int access$600(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$600
+    106:106:int access$700(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$700
+    106:106:long access$800(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$800
+    106:106:int access$900(com.blakequ.bluetooth_manager_lib.BleParamsOptions$Builder) -> access$900
+    277:277:com.blakequ.bluetooth_manager_lib.BleParamsOptions build() -> build
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface:
+    44:120:void <init>(android.content.Context) -> <init>
+    40:40:com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue access$000(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface) -> access$000
+    383:387:boolean checkIsSamsung() -> checkIsSamsung
+    117:117:android.os.Handler getMainLooperHandler() -> getMainLooperHandler
+    391:391:boolean isEmpty(java.lang.String) -> isEmpty
+    395:395:boolean isEmpty(java.util.List) -> isEmpty
+    109:114:void runOnUiThread(java.lang.Runnable) -> runOnUiThread
+    366:376:void setProperty(android.bluetooth.BluetoothGattCharacteristic) -> setProperty
+    253:259:boolean startSubscribe(android.bluetooth.BluetoothGatt) -> startSubscribe
+    267:357:boolean subscribe(java.lang.String) -> subscribe
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1:
+    120:120:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface) -> <init>
+    123:125:void onCharacteristicChanged(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic) -> onCharacteristicChanged
+    129:133:void onCharacteristicRead(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicRead
+    137:141:void onCharacteristicWrite(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicWrite
+    145:182:void onConnectionStateChange(android.bluetooth.BluetoothGatt,int,int) -> onConnectionStateChange
+    186:190:void onDescriptorRead(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattDescriptor,int) -> onDescriptorRead
+    194:198:void onDescriptorWrite(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattDescriptor,int) -> onDescriptorWrite
+    203:205:void onMtuChanged(android.bluetooth.BluetoothGatt,int,int) -> onMtuChanged
+    209:211:void onReadRemoteRssi(android.bluetooth.BluetoothGatt,int,int) -> onReadRemoteRssi
+    215:217:void onReliableWriteCompleted(android.bluetooth.BluetoothGatt,int) -> onReliableWriteCompleted
+    221:243:void onServicesDiscovered(android.bluetooth.BluetoothGatt,int) -> onServicesDiscovered
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$1 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$1:
+    156:156:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1,android.bluetooth.BluetoothGatt) -> <init>
+    159:163:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$2 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$2:
+    166:166:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1,android.bluetooth.BluetoothGatt,int) -> <init>
+    169:170:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$3 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$3:
+    174:174:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1,android.bluetooth.BluetoothGatt,int) -> <init>
+    177:178:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$4 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$4:
+    224:224:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1,android.bluetooth.BluetoothGatt) -> <init>
+    227:231:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$5 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1$5:
+    235:235:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$1,android.bluetooth.BluetoothGatt) -> <init>
+    238:239:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$2 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface$2:
+    290:290:void <clinit>() -> <clinit>
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager:
+    54:64:void <clinit>() -> <clinit>
+    63:466:void <init>(android.content.Context) -> <init>
+    51:51:void access$000(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager,java.lang.String) -> access$000
+    51:51:com.blakequ.bluetooth_manager_lib.util.BluetoothUtils access$100(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager) -> access$100
+    51:51:java.util.Map access$200(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager) -> access$200
+    51:51:com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean access$300(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager) -> access$300
+    51:51:com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean access$302(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager,com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean) -> access$302
+    137:138:void addBluetoothSubscribeData(com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData) -> addBluetoothSubscribeData
+    113:116:void addConnectStateListener(com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener) -> addConnectStateListener
+    145:146:void cleanSubscribeData() -> cleanSubscribeData
+    319:327:boolean close(java.lang.String) -> close
+    334:337:void closeAll() -> closeAll
+    430:447:void closeOtherDevice(java.lang.String) -> closeOtherDevice
+    265:310:boolean connect(java.lang.String) -> connect
+    345:353:void disconnect(java.lang.String) -> disconnect
+    159:162:android.bluetooth.BluetoothGatt getBluetoothGatt(java.lang.String) -> getBluetoothGatt
+    167:167:android.bluetooth.BluetoothGattCallback getBluetoothGattCallback() -> getBluetoothGattCallback
+    245:248:java.util.List getConnectedDevice() -> getConnectedDevice
+    85:92:com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager getInstance(android.content.Context) -> getInstance
+    172:172:java.lang.String getServiceUUID() -> getServiceUUID
+    228:228:java.util.Queue getSubscribeDataQueue() -> getSubscribeDataQueue
+    236:237:boolean isConnectDevice() -> isConnectDevice
+    197:199:void onDeviceConnected(android.bluetooth.BluetoothGatt) -> onDeviceConnected
+    179:193:void onDeviceDisconnect(android.bluetooth.BluetoothGatt,int) -> onDeviceDisconnect
+    203:216:void onDiscoverServicesFail(android.bluetooth.BluetoothGatt) -> onDiscoverServicesFail
+    224:224:void onDiscoverServicesSuccess(android.bluetooth.BluetoothGatt) -> onDiscoverServicesSuccess
+    360:423:void reconnectDevice(java.lang.String) -> reconnectDevice
+    124:127:void removeConnectStateListener(com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener) -> removeConnectStateListener
+    104:105:void setBluetoothGattCallback(android.bluetooth.BluetoothGattCallback) -> setBluetoothGattCallback
+    154:155:void setServiceUUID(java.lang.String) -> setServiceUUID
+    450:461:void updateConnectStateListener(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> updateConnectStateListener
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$1 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$1:
+    187:187:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager,android.bluetooth.BluetoothGatt) -> <init>
+    190:191:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$2 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$2:
+    210:210:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager,android.bluetooth.BluetoothGatt) -> <init>
+    213:214:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$3 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$3:
+    384:384:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager,java.lang.String) -> <init>
+    388:421:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$3$1 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$3$1:
+    406:406:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$3) -> <init>
+    409:410:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$4 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager$4:
+    466:466:void <init>(com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager) -> <init>
+    469:473:void run() -> run
+com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue -> com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue:
+    20:25:void <init>() -> <init>
+    51:54:void addOperator(android.bluetooth.BluetoothGattCharacteristic,boolean) -> addOperator
+    61:64:void addOperator(android.bluetooth.BluetoothGattDescriptor,boolean) -> addOperator
+    27:31:void clean() -> clean
+    80:110:boolean doOperator(com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue$SimpleEntity) -> doOperator
+    69:74:void nextOperator() -> nextOperator
+    39:44:void start(android.bluetooth.BluetoothGatt) -> start
+com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue$SimpleEntity -> com.blakequ.bluetooth_manager_lib.connect.BluetoothOperatorQueue$SimpleEntity:
+    124:127:void <init>(boolean,java.lang.Object) -> <init>
+com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData -> com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData:
+    23:23:void <init>(java.util.UUID,com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type,com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$1) -> <init>
+    23:23:void <init>(java.util.UUID,byte[],java.util.UUID,byte[],com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type,com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$1) -> <init>
+    33:39:void <init>(java.util.UUID,byte[],java.util.UUID,byte[],com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type) -> <init>
+    41:44:void <init>(java.util.UUID,com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type) -> <init>
+    48:48:java.util.UUID getCharacteristicUUID() -> getCharacteristicUUID
+    52:52:byte[] getCharacteristicValue() -> getCharacteristicValue
+    56:56:java.util.UUID getDescriptorUUID() -> getDescriptorUUID
+    60:60:byte[] getDescriptorValue() -> getDescriptorValue
+    64:64:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type getOperatorType() -> getOperatorType
+com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$1 -> com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$1:
+    144:144:void <clinit>() -> <clinit>
+com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Builder -> com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Builder:
+    67:67:void <init>() -> <init>
+    140:173:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData build() -> build
+    133:136:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Builder setCharacteristicNotify(java.util.UUID) -> setCharacteristicNotify
+    81:83:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Builder setCharacteristicRead(java.util.UUID) -> setCharacteristicRead
+com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type -> com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type:
+    180:185:void <clinit>() -> <clinit>
+    180:180:void <init>(java.lang.String,int) -> <init>
+    180:180:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type valueOf(java.lang.String) -> valueOf
+    180:180:com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData$Type[] values() -> values
+com.blakequ.bluetooth_manager_lib.connect.ConnectConfig -> com.blakequ.bluetooth_manager_lib.connect.ConnectConfig:
+    20:20:void <clinit>() -> <clinit>
+com.blakequ.bluetooth_manager_lib.connect.ConnectState -> com.blakequ.bluetooth_manager_lib.connect.ConnectState:
+    19:24:void <clinit>() -> <clinit>
+    19:19:void <init>(java.lang.String,int) -> <init>
+    19:19:com.blakequ.bluetooth_manager_lib.connect.ConnectState valueOf(java.lang.String) -> valueOf
+    19:19:com.blakequ.bluetooth_manager_lib.connect.ConnectState[] values() -> values
+com.blakequ.bluetooth_manager_lib.connect.GattError -> com.blakequ.bluetooth_manager_lib.connect.GattError:
+    61:139:java.lang.String parse(int) -> parse
+    32:50:java.lang.String parseConnectionError(int) -> parseConnectionError
+com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean -> com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean:
+    30:36:void <init>(java.lang.String) -> <init>
+    104:107:void addNumber() -> addNumber
+    39:39:java.lang.String getAddress() -> getAddress
+    53:83:long getNextReconnectTime() -> getNextReconnectTime
+    97:97:int getNumber() -> getNumber
+    114:115:void setNumber(int) -> setNumber
+    119:122:java.lang.String toString() -> toString
+    43:46:void updateAddress(java.lang.String) -> updateAddress
+com.blakequ.bluetooth_manager_lib.device.BeaconManufacturerData -> com.blakequ.bluetooth_manager_lib.device.BeaconManufacturerData:
+    12:22:void <init>(com.blakequ.bluetooth_manager_lib.device.BeaconType,byte[]) -> <init>
+com.blakequ.bluetooth_manager_lib.device.BeaconType -> com.blakequ.bluetooth_manager_lib.device.BeaconType:
+    6:14:void <clinit>() -> <clinit>
+    6:6:void <init>(java.lang.String,int) -> <init>
+    6:6:com.blakequ.bluetooth_manager_lib.device.BeaconType valueOf(java.lang.String) -> valueOf
+    6:6:com.blakequ.bluetooth_manager_lib.device.BeaconType[] values() -> values
+com.blakequ.bluetooth_manager_lib.device.BeaconUtils -> com.blakequ.bluetooth_manager_lib.device.BeaconUtils:
+    23:30:com.blakequ.bluetooth_manager_lib.device.BeaconType getBeaconType(byte[]) -> getBeaconType
+    41:42:com.blakequ.bluetooth_manager_lib.device.BeaconType getBeaconType(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> getBeaconType
+    47:55:boolean isIBeacon(byte[]) -> isIBeacon
+com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice -> com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice:
+    36:36:void <clinit>() -> <clinit>
+    73:81:void <init>(android.bluetooth.BluetoothDevice,int,byte[],long) -> <init>
+    88:98:void <init>(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> <init>
+    106:117:void <init>(android.os.Parcel) -> <init>
+    142:151:void addToRssiLog(long,int) -> addToRssiLog
+    158:158:int describeContents() -> describeContents
+    166:198:boolean equals(java.lang.Object) -> equals
+    207:207:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore getAdRecordStore() -> getAdRecordStore
+    216:216:java.lang.String getAddress() -> getAddress
+    225:225:java.lang.String getBluetoothDeviceBondState() -> getBluetoothDeviceBondState
+    234:234:java.lang.String getBluetoothDeviceClassName() -> getBluetoothDeviceClassName
+    271:271:android.bluetooth.BluetoothDevice getDevice() -> getDevice
+    280:280:int getFirstRssi() -> getFirstRssi
+    289:289:long getFirstTimestamp() -> getFirstTimestamp
+    298:298:java.lang.String getName() -> getName
+    307:307:int getRssi() -> getRssi
+    316:318:java.util.Map getRssiLog() -> getRssiLog
+    327:341:double getRunningAverageRssi() -> getRunningAverageRssi
+    352:352:byte[] getScanRecord() -> getScanRecord
+    361:361:long getTimestamp() -> getTimestamp
+    369:379:int hashCode() -> hashCode
+    429:437:java.lang.String resolveBondingState(int) -> resolveBondingState
+    387:387:java.lang.String toString() -> toString
+    397:398:void updateRssiReading(long,int) -> updateRssiReading
+    405:420:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice$1 -> com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice$1:
+    36:36:void <init>() -> <init>
+    36:36:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    38:38:com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice createFromParcel(android.os.Parcel) -> createFromParcel
+    36:36:java.lang.Object[] newArray(int) -> newArray
+    42:42:com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord -> com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord:
+    114:114:void <clinit>() -> <clinit>
+    131:135:void <init>(int,int,byte[]) -> <init>
+    137:142:void <init>(android.os.Parcel) -> <init>
+    146:146:int describeContents() -> describeContents
+    150:150:byte[] getData() -> getData
+    182:224:java.lang.String getHumanReadableAdType(int) -> getHumanReadableAdType
+    154:154:java.lang.String getHumanReadableType() -> getHumanReadableType
+    167:167:java.lang.String toString() -> toString
+    172:179:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord$1 -> com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord$1:
+    114:114:void <init>() -> <init>
+    114:114:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    116:116:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord createFromParcel(android.os.Parcel) -> createFromParcel
+    114:114:java.lang.Object[] newArray(int) -> newArray
+    120:120:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore -> com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore:
+    17:17:void <clinit>() -> <clinit>
+    30:35:void <init>(android.os.Parcel) -> <init>
+    42:51:void <init>(android.util.SparseArray) -> <init>
+    58:58:int describeContents() -> describeContents
+    86:86:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord getRecord(int) -> getRecord
+    96:97:java.lang.String getRecordDataAsString(int) -> getRecordDataAsString
+    124:124:java.lang.String toString() -> toString
+    132:138:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore$1 -> com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore$1:
+    17:17:void <init>() -> <init>
+    17:17:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    19:19:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore createFromParcel(android.os.Parcel) -> createFromParcel
+    17:17:java.lang.Object[] newArray(int) -> newArray
+    23:23:com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordUtils -> com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordUtils:
+    23:26:java.lang.String getRecordDataAsString(com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord) -> getRecordDataAsString
+    109:130:android.util.SparseArray parseScanRecordAsSparseArray(byte[]) -> parseScanRecordAsSparseArray
+com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconConstants -> com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconConstants:
+    7:7:void <clinit>() -> <clinit>
+com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice -> com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice:
+    55:57:void <init>(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> <init>
+    72:74:double getAccuracy() -> getAccuracy
+    88:88:int getCalibratedTxPower() -> getCalibratedTxPower
+    106:106:com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor getDistanceDescriptor() -> getDistanceDescriptor
+    115:115:com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconManufacturerData getIBeaconData() -> getIBeaconData
+    124:124:int getMajor() -> getMajor
+    133:133:int getMinor() -> getMinor
+    142:142:java.lang.String getUUID() -> getUUID
+com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor -> com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor:
+    3:7:void <clinit>() -> <clinit>
+    3:3:void <init>(java.lang.String,int) -> <init>
+    3:3:com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor valueOf(java.lang.String) -> valueOf
+    3:3:com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor[] values() -> values
+com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconManufacturerData -> com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconManufacturerData:
+    63:64:void <init>(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> <init>
+    73:84:void <init>(byte[]) -> <init>
+    92:92:int getCalibratedTxPower() -> getCalibratedTxPower
+    114:114:int getMajor() -> getMajor
+    123:123:int getMinor() -> getMinor
+    132:132:java.lang.String getUUID() -> getUUID
+com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconUtils -> com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconUtils:
+    25:33:double calculateAccuracy(int,double) -> calculateAccuracy
+    38:62:java.lang.String calculateUuidString(byte[]) -> calculateUuidString
+    66:78:com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDistanceDescriptor getDistanceDescriptor(double) -> getDistanceDescriptor
+com.blakequ.bluetooth_manager_lib.device.resolvers.BluetoothClassResolver -> com.blakequ.bluetooth_manager_lib.device.resolvers.BluetoothClassResolver:
+    8:110:java.lang.String resolveDeviceClass(int) -> resolveDeviceClass
+com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver -> com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver:
+    22:71:void <init>(android.content.Context) -> <init>
+    140:151:long getBetweenScanPeriod() -> getBetweenScanPeriod
+    123:134:long getScanPeriod() -> getScanPeriod
+    158:158:void onActivityCreated(android.app.Activity,android.os.Bundle) -> onActivityCreated
+    196:196:void onActivityDestroyed(android.app.Activity) -> onActivityDestroyed
+    177:183:void onActivityPaused(android.app.Activity) -> onActivityPaused
+    166:173:void onActivityResumed(android.app.Activity) -> onActivityResumed
+    192:192:void onActivitySaveInstanceState(android.app.Activity,android.os.Bundle) -> onActivitySaveInstanceState
+    162:162:void onActivityStarted(android.app.Activity) -> onActivityStarted
+    187:187:void onActivityStopped(android.app.Activity) -> onActivityStopped
+com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager -> com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager:
+    45:53:void <clinit>() -> <clinit>
+    48:64:void <init>(android.content.Context) -> <init>
+    44:44:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat access$000(com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager) -> access$000
+    67:75:com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager getInstance(android.content.Context) -> getInstance
+    205:205:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat getScanCallback() -> getScanCallback
+    176:176:boolean isAPI21ScanningDisabled() -> isAPI21ScanningDisabled
+    201:201:boolean isBackgroundMode() -> isBackgroundMode
+    117:117:boolean isScanning() -> isScanning
+    86:91:void runOnUiThread(java.lang.Runnable) -> runOnUiThread
+    191:198:void setBackgroundMode(boolean) -> setBackgroundMode
+    105:106:void setScanCallbackCompat(com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> setScanCallbackCompat
+    109:110:void setScanOverListener(com.blakequ.bluetooth_manager_lib.scan.ScanOverListener) -> setScanOverListener
+    154:156:void startScanNow() -> startScanNow
+    128:129:void stopCycleScan() -> stopCycleScan
+com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1 -> com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1:
+    205:205:void <init>(com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager) -> <init>
+    208:216:void onBatchScanResults(java.util.List) -> onBatchScanResults
+    220:228:void onScanFailed(int) -> onScanFailed
+    232:240:void onScanResult(int,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> onScanResult
+com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$1 -> com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$1:
+    209:209:void <init>(com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1,java.util.List) -> <init>
+    212:213:void run() -> run
+com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$2 -> com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$2:
+    221:221:void <init>(com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1,int) -> <init>
+    224:225:void run() -> run
+com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$3 -> com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1$3:
+    233:233:void <init>(com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager$1,int,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> <init>
+    236:237:void run() -> run
+com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner -> com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner:
+    41:68:void <init>(android.content.Context,long,long,boolean,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> <init>
+    40:40:void access$000(com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner) -> access$000
+    40:40:boolean access$100(com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner) -> access$100
+    40:40:void access$200(com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner,boolean) -> access$200
+    357:357:boolean checkLocationPermission() -> checkLocationPermission
+    361:361:boolean checkPermission(java.lang.String) -> checkPermission
+    302:321:boolean deferScanIfNeeded() -> deferScanIfNeeded
+    330:339:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat getScanSettings() -> getScanSettings
+    348:349:boolean isGpsProviderEnabled(android.content.Context) -> isGpsProviderEnabled
+    177:177:boolean isScanning() -> isScanning
+    189:246:void scanLeDevice(boolean) -> scanLeDevice
+    250:268:void scheduleScanStop() -> scheduleScanStop
+    133:174:void setBackgroundMode(long,long,boolean) -> setBackgroundMode
+    101:107:void setPauseScan(boolean) -> setPauseScan
+    75:76:void setScanOverListener(com.blakequ.bluetooth_manager_lib.scan.ScanOverListener) -> setScanOverListener
+    121:124:void startScanNow() -> startScanNow
+    271:295:void stopScan() -> stopScan
+com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner$1 -> com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner$1:
+    257:257:void <init>(com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner) -> <init>
+    260:261:void run() -> run
+com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner$2 -> com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner$2:
+    310:310:void <init>(com.blakequ.bluetooth_manager_lib.scan.CycledLeScanner) -> <init>
+    313:316:void run() -> run
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat:
+    65:75:void <clinit>() -> <clinit>
+    49:50:void startScan(android.bluetooth.BluetoothAdapter,java.util.List,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> startScan
+    59:60:void stopScan(android.bluetooth.BluetoothAdapter,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> stopScan
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API18BluetoothLeScannerCompatImpl -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API18BluetoothLeScannerCompatImpl:
+    146:146:void <clinit>() -> <clinit>
+    145:145:void <init>() -> <init>
+    178:185:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API18ScanCallback registerCallback(java.util.List,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> registerCallback
+    158:159:void startScan(android.bluetooth.BluetoothAdapter,java.util.List,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> startScan
+    170:175:void stopScan(android.bluetooth.BluetoothAdapter,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> stopScan
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API18ScanCallback -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API18ScanCallback:
+    194:197:void <init>(java.util.List,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> <init>
+    201:222:void onLeScan(android.bluetooth.BluetoothDevice,int,byte[]) -> onLeScan
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API21BluetoothLeScannerCompatImpl -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API21BluetoothLeScannerCompatImpl:
+    89:89:void <clinit>() -> <clinit>
+    88:88:void <init>() -> <init>
+    133:140:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API21ScanCallback registerCallback(com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> registerCallback
+    103:116:void startScan(android.bluetooth.BluetoothAdapter,java.util.List,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> startScan
+    125:130:void stopScan(android.bluetooth.BluetoothAdapter,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> stopScan
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API21ScanCallback -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat$API21ScanCallback:
+    230:232:void <init>(com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat) -> <init>
+    244:251:void onBatchScanResults(java.util.List) -> onBatchScanResults
+    255:259:void onScanFailed(int) -> onScanFailed
+    236:240:void onScanResult(int,android.bluetooth.le.ScanResult) -> onScanResult
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothUuidCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothUuidCompat:
+    39:94:void <clinit>() -> <clinit>
+    244:276:android.os.ParcelUuid parseUuidFrom(byte[]) -> parseUuidFrom
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ObjectsCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ObjectsCompat:
+    40:70:boolean deepEquals(java.lang.Object,java.lang.Object) -> deepEquals
+    36:36:boolean equals(java.lang.Object,java.lang.Object) -> equals
+    32:32:int hash(java.lang.Object[]) -> hash
+    28:28:java.lang.String toString(java.lang.Object) -> toString
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat:
+    27:27:void <init>() -> <init>
+    78:78:void onBatchScanResults(java.util.List) -> onBatchScanResults
+    87:87:void onScanFailed(int) -> onScanFailed
+    69:69:void onScanResult(int,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> onScanResult
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat:
+    73:168:void <clinit>() -> <clinit>
+    49:49:void <init>(java.lang.String,java.lang.String,android.os.ParcelUuid,android.os.ParcelUuid,android.os.ParcelUuid,byte[],byte[],int,byte[],byte[],com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$1) -> <init>
+    78:89:void <init>(java.lang.String,java.lang.String,android.os.ParcelUuid,android.os.ParcelUuid,android.os.ParcelUuid,byte[],byte[],int,byte[],byte[]) -> <init>
+    114:114:int describeContents() -> describeContents
+    420:436:boolean equals(java.lang.Object) -> equals
+    413:413:int hashCode() -> hashCode
+    297:343:boolean matches(com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> matches
+    380:396:boolean matchesPartialData(byte[],byte[],byte[]) -> matchesPartialData
+    367:375:boolean matchesServiceUuid(java.util.UUID,java.util.UUID,java.util.UUID) -> matchesServiceUuid
+    349:362:boolean matchesServiceUuids(android.os.ParcelUuid,android.os.ParcelUuid,java.util.List) -> matchesServiceUuids
+    93:109:android.bluetooth.le.ScanFilter toApi21() -> toApi21
+    401:408:java.lang.String toString() -> toString
+    119:162:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$1 -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$1:
+    168:168:void <init>() -> <init>
+    168:168:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    177:230:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat createFromParcel(android.os.Parcel) -> createFromParcel
+    168:168:java.lang.Object[] newArray(int) -> newArray
+    172:172:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder:
+    450:462:void <init>() -> <init>
+    621:621:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat build() -> build
+    483:487:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setDeviceAddress(java.lang.String) -> setDeviceAddress
+    470:471:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setDeviceName(java.lang.String) -> setDeviceName
+    572:578:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setManufacturerData(int,byte[]) -> setManufacturerData
+    594:612:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setManufacturerData(int,byte[],byte[]) -> setManufacturerData
+    522:528:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setServiceData(android.os.ParcelUuid,byte[]) -> setServiceData
+    543:561:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setServiceData(android.os.ParcelUuid,byte[],byte[]) -> setServiceData
+    494:496:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setServiceUuid(android.os.ParcelUuid) -> setServiceUuid
+    508:513:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat$Builder setServiceUuid(android.os.ParcelUuid,android.os.ParcelUuid) -> setServiceUuid
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat:
+    158:166:void <init>(java.util.List,android.util.SparseArray,java.util.Map,int,int,java.lang.String,byte[]) -> <init>
+    169:177:void <init>(android.bluetooth.le.ScanRecord) -> <init>
+    305:307:byte[] extractBytes(byte[],int,int) -> extractBytes
+    151:151:byte[] getBytes() -> getBytes
+    144:144:java.lang.String getDeviceName() -> getDeviceName
+    106:106:byte[] getManufacturerSpecificData(int) -> getManufacturerSpecificData
+    122:125:byte[] getServiceData(android.os.ParcelUuid) -> getServiceData
+    89:89:java.util.List getServiceUuids() -> getServiceUuids
+    190:278:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat parseFromBytes(byte[]) -> parseFromBytes
+    293:300:int parseServiceUuid(byte[],int,int,int,java.util.List) -> parseServiceUuid
+    284:286:java.lang.String toString() -> toString
+    314:326:java.lang.String toString(android.util.SparseArray) -> toString
+    333:351:java.lang.String toString(java.util.Map) -> toString
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat:
+    177:177:void <clinit>() -> <clinit>
+    33:33:void <init>(android.os.Parcel,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat$1) -> <init>
+    56:61:void <init>(android.bluetooth.BluetoothDevice,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat,int,long) -> <init>
+    64:69:void <init>(android.bluetooth.le.ScanResult) -> <init>
+    71:73:void <init>(android.os.Parcel) -> <init>
+    108:108:int describeContents() -> describeContents
+    158:166:boolean equals(java.lang.Object) -> equals
+    123:126:android.bluetooth.BluetoothDevice getDevice() -> getDevice
+    115:115:com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice getLeDevice() -> getLeDevice
+    134:134:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat getScanRecord() -> getScanRecord
+    153:153:int hashCode() -> hashCode
+    96:104:void readFromParcel(android.os.Parcel) -> readFromParcel
+    172:173:java.lang.String toString() -> toString
+    77:93:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat$1 -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat$1:
+    177:177:void <init>() -> <init>
+    177:177:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    180:180:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat createFromParcel(android.os.Parcel) -> createFromParcel
+    177:177:java.lang.Object[] newArray(int) -> newArray
+    185:185:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat:
+    112:112:void <clinit>() -> <clinit>
+    29:29:void <init>(int,int,long,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$1) -> <init>
+    29:29:void <init>(android.os.Parcel,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$1) -> <init>
+    79:83:void <init>(int,int,long) -> <init>
+    85:89:void <init>(android.os.Parcel) -> <init>
+    108:108:int describeContents() -> describeContents
+    75:75:long getReportDelayMillis() -> getReportDelayMillis
+    64:64:int getScanMode() -> getScanMode
+    93:96:android.bluetooth.le.ScanSettings toApi21() -> toApi21
+    101:104:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$1 -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$1:
+    112:112:void <init>() -> <init>
+    112:112:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    120:120:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat createFromParcel(android.os.Parcel) -> createFromParcel
+    112:112:java.lang.Object[] newArray(int) -> newArray
+    115:115:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat[] newArray(int) -> newArray
+com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$Builder -> com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$Builder:
+    127:130:void <init>() -> <init>
+    173:173:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat build() -> build
+    141:145:com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat$Builder setScanMode(int) -> setScanMode
+com.blakequ.bluetooth_manager_lib.util.BluetoothUtils -> com.blakequ.bluetooth_manager_lib.util.BluetoothUtils:
+    21:21:void <clinit>() -> <clinit>
+    23:37:void <init>(android.content.Context) -> <init>
+    78:82:void askUserToEnableBluetoothIfNeeded(android.app.Activity) -> askUserToEnableBluetoothIfNeeded
+    44:54:android.bluetooth.BluetoothAdapter getBluetoothAdapter() -> getBluetoothAdapter
+    28:32:com.blakequ.bluetooth_manager_lib.util.BluetoothUtils getInstance(android.content.Context) -> getInstance
+    61:65:boolean isBluetoothIsEnable() -> isBluetoothIsEnable
+    89:89:boolean isBluetoothLeSupported(android.content.Context) -> isBluetoothLeSupported
+    123:127:boolean isCharacteristicNotify(int) -> isCharacteristicNotify
+    108:111:boolean isCharacteristicRead(int) -> isCharacteristicRead
+    115:119:boolean isCharacteristicWrite(int) -> isCharacteristicWrite
+com.blakequ.bluetooth_manager_lib.util.ByteUtils -> com.blakequ.bluetooth_manager_lib.util.ByteUtils:
+    30:44:java.lang.String byteArrayToHexString(byte[]) -> byteArrayToHexString
+    55:65:boolean doesArrayBeginWith(byte[],byte[]) -> doesArrayBeginWith
+    75:82:int getIntFrom2ByteArray(byte[]) -> getIntFrom2ByteArray
+    94:94:int getIntFromByte(byte) -> getIntFromByte
+    104:104:int getIntFromByteArray(byte[]) -> getIntFromByteArray
+    124:132:void invertArray(byte[]) -> invertArray
+com.blakequ.bluetooth_manager_lib.util.LimitedLinkHashMap -> com.blakequ.bluetooth_manager_lib.util.LimitedLinkHashMap:
+    11:13:void <init>(int) -> <init>
+    17:17:boolean removeEldestEntry(java.util.Map$Entry) -> removeEldestEntry
+com.blankj.utilcode.util.AdaptScreenUtils -> com.blankj.utilcode.util.AdaptScreenUtils:
+    20:20:void access$000() -> access$000
+    101:104:void applyDisplayMetrics(android.content.res.Resources,float) -> applyDisplayMetrics
+    148:156:void applyMetricsFields(android.content.res.Resources,float) -> applyMetricsFields
+    120:145:void applyOtherDisplayMetrics(android.content.res.Resources,float) -> applyOtherDisplayMetrics
+    160:162:android.util.DisplayMetrics getMetricsFromField(android.content.res.Resources,java.lang.reflect.Field) -> getMetricsFromField
+    107:107:java.lang.Runnable getPreLoadRunnable() -> getPreLoadRunnable
+    116:117:void preLoad() -> preLoad
+com.blankj.utilcode.util.AdaptScreenUtils$1 -> com.blankj.utilcode.util.AdaptScreenUtils$1:
+    107:107:void <init>() -> <init>
+    110:111:void run() -> run
+com.blankj.utilcode.util.AppUtils -> com.blankj.utilcode.util.AppUtils:
+    523:523:int getAppVersionCode() -> getAppVersionCode
+    533:540:int getAppVersionCode(java.lang.String) -> getAppVersionCode
+    495:495:java.lang.String getAppVersionName() -> getAppVersionName
+    506:513:java.lang.String getAppVersionName(java.lang.String) -> getAppVersionName
+com.blankj.utilcode.util.FileIOUtils -> com.blankj.utilcode.util.FileIOUtils:
+    38:38:void <clinit>() -> <clinit>
+    520:520:boolean writeFileFromString(java.lang.String,java.lang.String,boolean) -> writeFileFromString
+    545:566:boolean writeFileFromString(java.io.File,java.lang.String,boolean) -> writeFileFromString
+com.blankj.utilcode.util.FileUtils -> com.blankj.utilcode.util.FileUtils:
+    39:39:void <clinit>() -> <clinit>
+    193:193:boolean createOrExistsDir(java.io.File) -> createOrExistsDir
+    213:220:boolean createOrExistsFile(java.io.File) -> createOrExistsFile
+    52:52:java.io.File getFileByPath(java.lang.String) -> getFileByPath
+com.blankj.utilcode.util.GsonUtils -> com.blankj.utilcode.util.GsonUtils:
+    33:33:void <clinit>() -> <clinit>
+    272:277:com.google.gson.Gson getGson4LogUtils() -> getGson4LogUtils
+com.blankj.utilcode.util.JsonUtils -> com.blankj.utilcode.util.JsonUtils:
+    235:235:java.lang.String formatJson(java.lang.String) -> formatJson
+    240:253:java.lang.String formatJson(java.lang.String,int) -> formatJson
+com.blankj.utilcode.util.KeyboardUtils -> com.blankj.utilcode.util.KeyboardUtils:
+    183:183:void <clinit>() -> <clinit>
+    330:331:void fixSoftInputLeaks(android.app.Activity) -> fixSoftInputLeaks
+    340:362:void fixSoftInputLeaks(android.view.Window) -> fixSoftInputLeaks
+com.blankj.utilcode.util.LanguageUtils -> com.blankj.utilcode.util.LanguageUtils:
+    231:247:void applyLanguage(android.app.Activity) -> applyLanguage
+    304:305:java.util.Locale getLocal(android.content.res.Configuration) -> getLocal
+    285:295:boolean isRightFormatLocalStr(java.lang.String) -> isRightFormatLocalStr
+    312:317:void setLocal(android.content.res.Configuration,java.util.Locale) -> setLocal
+    263:268:java.util.Locale string2Locale(java.lang.String) -> string2Locale
+    272:280:java.util.Locale string2LocaleReal(java.lang.String) -> string2LocaleReal
+    250:254:void updateConfiguration(android.content.Context,java.util.Locale) -> updateConfiguration
+com.blankj.utilcode.util.LogUtils -> com.blankj.utilcode.util.LogUtils:
+    76:106:void <clinit>() -> <clinit>
+    62:62:java.lang.String access$1000() -> access$1000
+    62:62:androidx.collection.SimpleArrayMap access$1200() -> access$1200
+    62:62:char[] access$1300() -> access$1300
+    62:62:java.lang.String access$1400() -> access$1400
+    62:62:java.lang.String access$1500(java.lang.Object) -> access$1500
+    62:62:void access$300(int,java.lang.String,java.lang.String) -> access$300
+    62:62:boolean access$400(java.lang.String) -> access$400
+    537:549:boolean createOrExistsFile(java.lang.String,java.lang.String) -> createOrExistsFile
+    125:126:void d(java.lang.Object[]) -> d
+    554:586:void deleteDueLogs(java.lang.String,java.lang.String) -> deleteDueLogs
+    149:150:void e(java.lang.Object[]) -> e
+    593:598:java.lang.String findDate(java.lang.String) -> findDate
+    354:357:java.lang.String formatObject(int,java.lang.Object) -> formatObject
+    361:369:java.lang.String formatObject(java.lang.Object) -> formatObject
+    1200:1229:java.lang.Class getClassFromObject(java.lang.Object) -> getClassFromObject
+    521:525:java.lang.String getCurrentLogFilePath(java.util.Date) -> getCurrentLogFilePath
+    314:327:java.lang.String getFileName(java.lang.StackTraceElement) -> getFileName
+    530:533:java.text.SimpleDateFormat getSdf() -> getSdf
+    133:134:void i(java.lang.Object[]) -> i
+    607:615:void input2File(java.lang.String,java.lang.String) -> input2File
+    589:589:boolean isMatchLogFileName(java.lang.String) -> isMatchLogFileName
+    213:231:void log(int,java.lang.String,java.lang.Object[]) -> log
+    376:384:void print2Console(int,java.lang.String,java.lang.String[],java.lang.String) -> print2Console
+    495:499:void print2Console(int,java.lang.String,java.lang.String) -> print2Console
+    502:518:void print2File(int,java.lang.String,java.lang.String) -> print2File
+    387:390:void printBorder(int,java.lang.String,boolean) -> printBorder
+    602:604:void printDeviceInfo(java.lang.String,java.lang.String) -> printDeviceInfo
+    393:399:void printHead(int,java.lang.String,java.lang.String[]) -> printHead
+    402:416:void printMsg(int,java.lang.String,java.lang.String) -> printMsg
+    461:492:void printSingleTagMsg(int,java.lang.String,java.lang.String) -> printSingleTagMsg
+    419:428:void printSubMsg(int,java.lang.String,java.lang.String) -> printSubMsg
+    331:350:java.lang.String processBody(int,java.lang.Object[]) -> processBody
+    434:457:java.lang.String processSingleTagMsg(int,java.lang.String,java.lang.String[],java.lang.String) -> processSingleTagMsg
+    253:310:com.blankj.utilcode.util.LogUtils$TagHead processTagAndHead(java.lang.String) -> processTagAndHead
+    141:142:void w(java.lang.Object[]) -> w
+com.blankj.utilcode.util.LogUtils$1 -> com.blankj.utilcode.util.LogUtils$1:
+    223:223:void <init>(int,com.blankj.utilcode.util.LogUtils$TagHead,java.lang.String) -> <init>
+    226:227:void run() -> run
+com.blankj.utilcode.util.LogUtils$3 -> com.blankj.utilcode.util.LogUtils$3:
+    557:557:void <init>() -> <init>
+    560:560:boolean accept(java.io.File,java.lang.String) -> accept
+com.blankj.utilcode.util.LogUtils$4 -> com.blankj.utilcode.util.LogUtils$4:
+    572:572:void <init>(java.io.File) -> <init>
+    575:579:void run() -> run
+com.blankj.utilcode.util.LogUtils$Config -> com.blankj.utilcode.util.LogUtils$Config:
+    617:617:void <init>(com.blankj.utilcode.util.LogUtils$1) -> <init>
+    620:648:void <init>() -> <init>
+    617:617:int access$100(com.blankj.utilcode.util.LogUtils$Config) -> access$100
+    617:617:int access$200(com.blankj.utilcode.util.LogUtils$Config) -> access$200
+    617:617:boolean access$500(com.blankj.utilcode.util.LogUtils$Config) -> access$500
+    617:617:com.blankj.utilcode.util.LogUtils$OnConsoleOutputListener access$600(com.blankj.utilcode.util.LogUtils$Config) -> access$600
+    617:617:com.blankj.utilcode.util.UtilsBridge$FileHead access$700(com.blankj.utilcode.util.LogUtils$Config) -> access$700
+    617:617:com.blankj.utilcode.util.LogUtils$IFileWriter access$800(com.blankj.utilcode.util.LogUtils$Config) -> access$800
+    617:617:com.blankj.utilcode.util.LogUtils$OnFileOutputListener access$900(com.blankj.utilcode.util.LogUtils$Config) -> access$900
+    835:835:char getConsoleFilter() -> getConsoleFilter
+    794:794:java.lang.String getDir() -> getDir
+    802:802:java.lang.String getFileExtension() -> getFileExtension
+    839:839:char getFileFilter() -> getFileFilter
+    798:798:java.lang.String getFilePrefix() -> getFilePrefix
+    814:815:java.lang.String getGlobalTag() -> getGlobalTag
+    785:786:java.lang.String getProcessName() -> getProcessName
+    851:851:int getSaveDays() -> getSaveDays
+    843:843:int getStackDeep() -> getStackDeep
+    847:847:int getStackOffset() -> getStackOffset
+    810:810:boolean isLog2ConsoleSwitch() -> isLog2ConsoleSwitch
+    823:823:boolean isLog2FileSwitch() -> isLog2FileSwitch
+    827:827:boolean isLogBorderSwitch() -> isLogBorderSwitch
+    819:819:boolean isLogHeadSwitch() -> isLogHeadSwitch
+    806:806:boolean isLogSwitch() -> isLogSwitch
+    831:831:boolean isSingleTagSwitch() -> isSingleTagSwitch
+    864:883:java.lang.String toString() -> toString
+com.blankj.utilcode.util.LogUtils$IFormatter -> com.blankj.utilcode.util.LogUtils$IFormatter:
+    887:887:void <init>() -> <init>
+com.blankj.utilcode.util.LogUtils$LogFormatter -> com.blankj.utilcode.util.LogUtils$LogFormatter:
+    1150:1169:java.lang.String array2String(java.lang.Object) -> array2String
+    936:953:java.lang.String bundle2String(android.os.Bundle) -> bundle2String
+    1068:1103:void clipData2String(android.content.ClipData,java.lang.StringBuilder) -> clipData2String
+    1136:1146:java.lang.String formatXml(java.lang.String) -> formatXml
+    957:1063:java.lang.String intent2String(android.content.Intent) -> intent2String
+    1106:1112:java.lang.String object2Json(java.lang.Object) -> object2Json
+    918:918:java.lang.String object2String(java.lang.Object) -> object2String
+    922:932:java.lang.String object2String(java.lang.Object,int) -> object2String
+com.blankj.utilcode.util.LogUtils$TagHead -> com.blankj.utilcode.util.LogUtils$TagHead:
+    908:912:void <init>(java.lang.String,java.lang.String[],java.lang.String) -> <init>
+com.blankj.utilcode.util.MessengerUtils -> com.blankj.utilcode.util.MessengerUtils:
+    42:44:void <clinit>() -> <clinit>
+    40:40:java.util.concurrent.ConcurrentHashMap access$000() -> access$000
+com.blankj.utilcode.util.MessengerUtils$ServerService -> com.blankj.utilcode.util.MessengerUtils$ServerService:
+    270:295:void <init>() -> <init>
+    270:270:java.util.concurrent.ConcurrentHashMap access$200(com.blankj.utilcode.util.MessengerUtils$ServerService) -> access$200
+    270:270:void access$300(com.blankj.utilcode.util.MessengerUtils$ServerService,android.os.Message) -> access$300
+    270:270:void access$400(com.blankj.utilcode.util.MessengerUtils$ServerService,android.os.Message) -> access$400
+    339:349:void consumeServerProcessCallback(android.os.Message) -> consumeServerProcessCallback
+    300:300:android.os.IBinder onBind(android.content.Intent) -> onBind
+    305:321:int onStartCommand(android.content.Intent,int,int) -> onStartCommand
+    325:336:void sendMsg2Client(android.os.Message) -> sendMsg2Client
+com.blankj.utilcode.util.MessengerUtils$ServerService$1 -> com.blankj.utilcode.util.MessengerUtils$ServerService$1:
+    275:275:void <init>(com.blankj.utilcode.util.MessengerUtils$ServerService) -> <init>
+    278:292:void handleMessage(android.os.Message) -> handleMessage
+com.blankj.utilcode.util.NetworkUtils -> com.blankj.utilcode.util.NetworkUtils:
+    765:765:void <clinit>() -> <clinit>
+    515:517:android.net.NetworkInfo getActiveNetworkInfo() -> getActiveNetworkInfo
+    441:490:com.blankj.utilcode.util.NetworkUtils$NetworkType getNetworkType() -> getNetworkType
+    503:509:boolean isEthernet() -> isEthernet
+com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver -> com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver:
+    867:874:void <init>() -> <init>
+    867:867:com.blankj.utilcode.util.NetworkUtils$NetworkType access$1000(com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver) -> access$1000
+    867:867:com.blankj.utilcode.util.NetworkUtils$NetworkType access$1002(com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver,com.blankj.utilcode.util.NetworkUtils$NetworkType) -> access$1002
+    867:867:java.util.Set access$900(com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver) -> access$900
+    915:936:void onReceive(android.content.Context,android.content.Intent) -> onReceive
+com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver$3 -> com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver$3:
+    917:917:void <init>(com.blankj.utilcode.util.NetworkUtils$NetworkChangedReceiver) -> <init>
+    921:933:void run() -> run
+com.blankj.utilcode.util.NetworkUtils$NetworkType -> com.blankj.utilcode.util.NetworkUtils$NetworkType:
+    60:68:void <clinit>() -> <clinit>
+    60:60:void <init>(java.lang.String,int) -> <init>
+    60:60:com.blankj.utilcode.util.NetworkUtils$NetworkType valueOf(java.lang.String) -> valueOf
+    60:60:com.blankj.utilcode.util.NetworkUtils$NetworkType[] values() -> values
+com.blankj.utilcode.util.NotificationUtils -> com.blankj.utilcode.util.NotificationUtils:
+    100:114:android.app.Notification getNotification(com.blankj.utilcode.util.NotificationUtils$ChannelConfig,com.blankj.utilcode.util.Utils$Consumer) -> getNotification
+com.blankj.utilcode.util.NotificationUtils$ChannelConfig -> com.blankj.utilcode.util.NotificationUtils$ChannelConfig:
+    175:176:void <clinit>() -> <clinit>
+    181:185:void <init>(java.lang.String,java.lang.CharSequence,int) -> <init>
+    173:173:android.app.NotificationChannel access$000(com.blankj.utilcode.util.NotificationUtils$ChannelConfig) -> access$000
+    188:188:android.app.NotificationChannel getNotificationChannel() -> getNotificationChannel
+com.blankj.utilcode.util.ProcessUtils -> com.blankj.utilcode.util.ProcessUtils:
+    213:218:java.lang.String getCurrentProcessName() -> getCurrentProcessName
+    236:251:java.lang.String getCurrentProcessNameByAms() -> getCurrentProcessNameByAms
+    223:230:java.lang.String getCurrentProcessNameByFile() -> getCurrentProcessNameByFile
+    255:271:java.lang.String getCurrentProcessNameByReflect() -> getCurrentProcessNameByReflect
+com.blankj.utilcode.util.RomUtils -> com.blankj.utilcode.util.RomUtils:
+    26:58:void <clinit>() -> <clinit>
+    357:362:java.lang.String getBrand() -> getBrand
+    347:352:java.lang.String getManufacturer() -> getManufacturer
+    250:333:com.blankj.utilcode.util.RomUtils$RomInfo getRomInfo() -> getRomInfo
+    366:381:java.lang.String getRomVersion(java.lang.String) -> getRomVersion
+    385:392:java.lang.String getSystemProperty(java.lang.String) -> getSystemProperty
+    431:435:java.lang.String getSystemPropertyByReflect(java.lang.String) -> getSystemPropertyByReflect
+    397:413:java.lang.String getSystemPropertyByShell(java.lang.String) -> getSystemPropertyByShell
+    418:425:java.lang.String getSystemPropertyByStream(java.lang.String) -> getSystemPropertyByStream
+    337:342:boolean isRightRom(java.lang.String,java.lang.String,java.lang.String[]) -> isRightRom
+com.blankj.utilcode.util.RomUtils$RomInfo -> com.blankj.utilcode.util.RomUtils$RomInfo:
+    438:438:void <init>() -> <init>
+    438:438:java.lang.String access$002(com.blankj.utilcode.util.RomUtils$RomInfo,java.lang.String) -> access$002
+    438:438:java.lang.String access$102(com.blankj.utilcode.util.RomUtils$RomInfo,java.lang.String) -> access$102
+    452:452:java.lang.String toString() -> toString
+com.blankj.utilcode.util.SDCardUtils -> com.blankj.utilcode.util.SDCardUtils:
+    35:35:boolean isSDCardEnableByEnvironment() -> isSDCardEnableByEnvironment
+com.blankj.utilcode.util.SPUtils -> com.blankj.utilcode.util.SPUtils:
+    24:24:void <clinit>() -> <clinit>
+    83:85:void <init>(java.lang.String,int) -> <init>
+    54:54:com.blankj.utilcode.util.SPUtils getInstance(java.lang.String) -> getInstance
+    65:76:com.blankj.utilcode.util.SPUtils getInstance(java.lang.String,int) -> getInstance
+    120:120:java.lang.String getString(java.lang.String) -> getString
+    131:131:java.lang.String getString(java.lang.String,java.lang.String) -> getString
+    438:444:boolean isSpace(java.lang.String) -> isSpace
+    398:399:void remove(java.lang.String) -> remove
+    409:414:void remove(java.lang.String,boolean) -> remove
+com.blankj.utilcode.util.ScreenUtils -> com.blankj.utilcode.util.ScreenUtils:
+    78:82:int getAppScreenWidth() -> getAppScreenWidth
+com.blankj.utilcode.util.SizeUtils -> com.blankj.utilcode.util.SizeUtils:
+    30:31:int dp2px(float) -> dp2px
+com.blankj.utilcode.util.SnackbarUtils -> com.blankj.utilcode.util.SnackbarUtils:
+    65:68:void <init>(android.view.View) -> <init>
+    374:395:android.view.ViewGroup findSuitableParentCopyFromSnackbar(android.view.View) -> findSuitableParentCopyFromSnackbar
+    71:79:void setDefault() -> setDefault
+    147:148:com.blankj.utilcode.util.SnackbarUtils setDuration(int) -> setDuration
+    98:99:com.blankj.utilcode.util.SnackbarUtils setMessage(java.lang.CharSequence) -> setMessage
+    195:195:com.google.android.material.snackbar.Snackbar show() -> show
+    204:257:com.google.android.material.snackbar.Snackbar show(boolean) -> show
+    88:88:com.blankj.utilcode.util.SnackbarUtils with(android.view.View) -> with
+com.blankj.utilcode.util.StringUtils -> com.blankj.utilcode.util.StringUtils:
+    51:57:boolean isSpace(java.lang.String) -> isSpace
+com.blankj.utilcode.util.ThreadUtils -> com.blankj.utilcode.util.ThreadUtils:
+    39:46:void <clinit>() -> <clinit>
+    37:37:int access$200() -> access$200
+    37:37:java.util.concurrent.Executor access$600() -> access$600
+    37:37:java.util.Map access$700() -> access$700
+    923:924:void execute(java.util.concurrent.ExecutorService,com.blankj.utilcode.util.ThreadUtils$Task) -> execute
+    943:972:void execute(java.util.concurrent.ExecutorService,com.blankj.utilcode.util.ThreadUtils$Task,long,long,java.util.concurrent.TimeUnit) -> execute
+    334:335:void executeBySingle(com.blankj.utilcode.util.ThreadUtils$Task) -> executeBySingle
+    137:137:java.util.concurrent.ExecutorService getCachedPool() -> getCachedPool
+    1381:1389:java.util.concurrent.Executor getGlobalDeliver() -> getGlobalDeliver
+    975:975:java.util.concurrent.ExecutorService getPoolByTypeAndPriority(int) -> getPoolByTypeAndPriority
+    979:995:java.util.concurrent.ExecutorService getPoolByTypeAndPriority(int,int) -> getPoolByTypeAndPriority
+    69:74:void runOnUiThread(java.lang.Runnable) -> runOnUiThread
+    77:78:void runOnUiThreadDelayed(java.lang.Runnable,long) -> runOnUiThreadDelayed
+com.blankj.utilcode.util.ThreadUtils$1 -> com.blankj.utilcode.util.ThreadUtils$1:
+    954:954:void <init>(java.util.concurrent.ExecutorService,com.blankj.utilcode.util.ThreadUtils$Task) -> <init>
+    957:958:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$2 -> com.blankj.utilcode.util.ThreadUtils$2:
+    964:964:void <init>(java.util.concurrent.ExecutorService,com.blankj.utilcode.util.ThreadUtils$Task) -> <init>
+    967:968:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$3 -> com.blankj.utilcode.util.ThreadUtils$3:
+    1382:1382:void <init>() -> <init>
+    1385:1386:void execute(java.lang.Runnable) -> execute
+com.blankj.utilcode.util.ThreadUtils$LinkedBlockingQueue4Util -> com.blankj.utilcode.util.ThreadUtils$LinkedBlockingQueue4Util:
+    1081:1085:void <init>() -> <init>
+    1081:1092:void <init>(boolean) -> <init>
+    1077:1077:com.blankj.utilcode.util.ThreadUtils$ThreadPoolExecutor4Util access$302(com.blankj.utilcode.util.ThreadUtils$LinkedBlockingQueue4Util,com.blankj.utilcode.util.ThreadUtils$ThreadPoolExecutor4Util) -> access$302
+    1077:1077:boolean offer(java.lang.Object) -> offer
+    1101:1106:boolean offer(java.lang.Runnable) -> offer
+com.blankj.utilcode.util.ThreadUtils$SimpleTask -> com.blankj.utilcode.util.ThreadUtils$SimpleTask:
+    1154:1154:void <init>() -> <init>
+    1163:1164:void onFail(java.lang.Throwable) -> onFail
+com.blankj.utilcode.util.ThreadUtils$Task -> com.blankj.utilcode.util.ThreadUtils$Task:
+    1168:1178:void <init>() -> <init>
+    1168:1168:void access$000(com.blankj.utilcode.util.ThreadUtils$Task,boolean) -> access$000
+    1168:1168:com.blankj.utilcode.util.ThreadUtils$Task$OnTimeoutListener access$400(com.blankj.utilcode.util.ThreadUtils$Task) -> access$400
+    1168:1168:void access$500(com.blankj.utilcode.util.ThreadUtils$Task) -> access$500
+    1322:1325:java.util.concurrent.Executor getDeliver() -> getDeliver
+    1300:1300:boolean isDone() -> isDone
+    1330:1336:void onDone() -> onDone
+    1199:1258:void run() -> run
+    1318:1319:void setSchedule(boolean) -> setSchedule
+    1285:1292:void timeout() -> timeout
+com.blankj.utilcode.util.ThreadUtils$Task$1 -> com.blankj.utilcode.util.ThreadUtils$Task$1:
+    1214:1214:void <init>(com.blankj.utilcode.util.ThreadUtils$Task) -> <init>
+    1217:1222:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$Task$2 -> com.blankj.utilcode.util.ThreadUtils$Task$2:
+    1230:1230:void <init>(com.blankj.utilcode.util.ThreadUtils$Task,java.lang.Object) -> <init>
+    1233:1234:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$Task$3 -> com.blankj.utilcode.util.ThreadUtils$Task$3:
+    1238:1238:void <init>(com.blankj.utilcode.util.ThreadUtils$Task,java.lang.Object) -> <init>
+    1241:1243:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$Task$4 -> com.blankj.utilcode.util.ThreadUtils$Task$4:
+    1250:1250:void <init>(com.blankj.utilcode.util.ThreadUtils$Task,java.lang.Throwable) -> <init>
+    1253:1255:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$ThreadPoolExecutor4Util -> com.blankj.utilcode.util.ThreadUtils$ThreadPoolExecutor4Util:
+    1035:1050:void <init>(int,int,long,java.util.concurrent.TimeUnit,com.blankj.utilcode.util.ThreadUtils$LinkedBlockingQueue4Util,java.util.concurrent.ThreadFactory) -> <init>
+    998:998:java.util.concurrent.ExecutorService access$100(int,int) -> access$100
+    1058:1060:void afterExecute(java.lang.Runnable,java.lang.Throwable) -> afterExecute
+    1001:1027:java.util.concurrent.ExecutorService createPool(int,int) -> createPool
+    1064:1074:void execute(java.lang.Runnable) -> execute
+com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory -> com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory:
+    1112:1112:void <clinit>() -> <clinit>
+    1119:1120:void <init>(java.lang.String,int) -> <init>
+    1122:1128:void <init>(java.lang.String,int,boolean) -> <init>
+    1132:1150:java.lang.Thread newThread(java.lang.Runnable) -> newThread
+com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory$1 -> com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory$1:
+    1132:1132:void <init>(com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory,java.lang.Runnable,java.lang.String) -> <init>
+    1136:1140:void run() -> run
+com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory$2 -> com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory$2:
+    1143:1143:void <init>(com.blankj.utilcode.util.ThreadUtils$UtilsThreadFactory) -> <init>
+    1146:1147:void uncaughtException(java.lang.Thread,java.lang.Throwable) -> uncaughtException
+com.blankj.utilcode.util.ThrowableUtils -> com.blankj.utilcode.util.ThrowableUtils:
+    19:19:void <clinit>() -> <clinit>
+    26:51:java.lang.String getFullStackTrace(java.lang.Throwable) -> getFullStackTrace
+    55:73:java.util.List getStackFrameList(java.lang.Throwable) -> getStackFrameList
+    77:90:void removeCommonFrames(java.util.List,java.util.List) -> removeCommonFrames
+com.blankj.utilcode.util.ToastUtils$UtilsMaxWidthRelativeLayout -> com.blankj.utilcode.util.ToastUtils$UtilsMaxWidthRelativeLayout:
+    891:891:void <clinit>() -> <clinit>
+    894:895:void <init>(android.content.Context) -> <init>
+    898:899:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    902:903:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    907:909:void onMeasure(int,int) -> onMeasure
+com.blankj.utilcode.util.Utils -> com.blankj.utilcode.util.Utils:
+    70:74:android.app.Application getApp() -> getApp
+    46:60:void init(android.app.Application) -> init
+com.blankj.utilcode.util.Utils$ActivityLifecycleCallbacks -> com.blankj.utilcode.util.Utils$ActivityLifecycleCallbacks:
+    103:103:void <init>() -> <init>
+    105:105:void onActivityCreated(android.app.Activity) -> onActivityCreated
+    115:115:void onActivityDestroyed(android.app.Activity) -> onActivityDestroyed
+    111:111:void onActivityPaused(android.app.Activity) -> onActivityPaused
+    109:109:void onActivityResumed(android.app.Activity) -> onActivityResumed
+    107:107:void onActivityStarted(android.app.Activity) -> onActivityStarted
+    113:113:void onActivityStopped(android.app.Activity) -> onActivityStopped
+    117:117:void onLifecycleChanged(android.app.Activity,androidx.lifecycle.Lifecycle$Event) -> onLifecycleChanged
+com.blankj.utilcode.util.UtilsActivityLifecycleImpl -> com.blankj.utilcode.util.UtilsActivityLifecycleImpl:
+    33:40:void <clinit>() -> <clinit>
+    31:44:void <init>() -> <init>
+    148:150:void consumeActivityLifecycleCallbacks(android.app.Activity,androidx.lifecycle.Lifecycle$Event) -> consumeActivityLifecycleCallbacks
+    153:173:void consumeLifecycle(android.app.Activity,androidx.lifecycle.Lifecycle$Event,java.util.List) -> consumeLifecycle
+    400:402:java.lang.Object getActivityThread() -> getActivityThread
+    407:413:java.lang.Object getActivityThreadInActivityThreadStaticField() -> getActivityThreadInActivityThreadStaticField
+    419:423:java.lang.Object getActivityThreadInActivityThreadStaticMethod() -> getActivityThreadInActivityThreadStaticMethod
+    177:186:android.app.Application getApplicationByReflect() -> getApplicationByReflect
+    47:48:void init(android.app.Application) -> init
+    197:204:void onActivityCreated(android.app.Activity,android.os.Bundle) -> onActivityCreated
+    291:294:void onActivityDestroyed(android.app.Activity) -> onActivityDestroyed
+    250:251:void onActivityPaused(android.app.Activity) -> onActivityPaused
+    233:240:void onActivityResumed(android.app.Activity) -> onActivityResumed
+    281:281:void onActivitySaveInstanceState(android.app.Activity,android.os.Bundle) -> onActivitySaveInstanceState
+    214:223:void onActivityStarted(android.app.Activity) -> onActivityStarted
+    261:272:void onActivityStopped(android.app.Activity) -> onActivityStopped
+    336:344:void postStatus(android.app.Activity,boolean) -> postStatus
+    309:333:void processHideSoftInputOnActivityDestroy(android.app.Activity,boolean) -> processHideSoftInputOnActivityDestroy
+    431:449:void setAnimatorsEnabled() -> setAnimatorsEnabled
+    347:355:void setTopActivity(android.app.Activity) -> setTopActivity
+    51:53:void unInit(android.app.Application) -> unInit
+com.blankj.utilcode.util.UtilsActivityLifecycleImpl$4 -> com.blankj.utilcode.util.UtilsActivityLifecycleImpl$4:
+    318:318:void <init>(com.blankj.utilcode.util.UtilsActivityLifecycleImpl,android.app.Activity,java.lang.Object) -> <init>
+    322:328:void run() -> run
+com.blankj.utilcode.util.UtilsBridge -> com.blankj.utilcode.util.UtilsBridge:
+    297:297:boolean createOrExistsDir(java.io.File) -> createOrExistsDir
+    293:293:boolean createOrExistsFile(java.io.File) -> createOrExistsFile
+    499:499:int dp2px(float) -> dp2px
+    422:423:void fixSoftInputLeaks(android.app.Activity) -> fixSoftInputLeaks
+    415:415:java.lang.String formatJson(java.lang.String) -> formatJson
+    471:471:int getAppScreenWidth() -> getAppScreenWidth
+    104:104:android.app.Application getApplicationByReflect() -> getApplicationByReflect
+    457:457:java.lang.String getCurrentProcessName() -> getCurrentProcessName
+    285:285:java.io.File getFileByPath(java.lang.String) -> getFileByPath
+    565:565:java.lang.String getFullStackTrace(java.lang.Throwable) -> getFullStackTrace
+    328:328:com.google.gson.Gson getGson4LogUtils() -> getGson4LogUtils
+    430:430:android.app.Notification getNotification(com.blankj.utilcode.util.NotificationUtils$ChannelConfig,com.blankj.utilcode.util.Utils$Consumer) -> getNotification
+    518:518:com.blankj.utilcode.util.SPUtils getSpUtils4Utils() -> getSpUtils4Utils
+    51:52:void init(android.app.Application) -> init
+    478:478:boolean isSDCardEnableByEnvironment() -> isSDCardEnableByEnvironment
+    525:525:boolean isSpace(java.lang.String) -> isSpace
+    59:60:void preLoad() -> preLoad
+    587:590:void preLoad(java.lang.Runnable[]) -> preLoad
+    558:559:void runOnUiThreadDelayed(java.lang.Runnable,long) -> runOnUiThreadDelayed
+    55:56:void unInit(android.app.Application) -> unInit
+    270:270:boolean writeFileFromString(java.lang.String,java.lang.String,boolean) -> writeFileFromString
+com.blankj.utilcode.util.UtilsBridge$FileHead -> com.blankj.utilcode.util.UtilsBridge$FileHead:
+    622:627:void <init>(java.lang.String) -> <init>
+    630:631:void addFirst(java.lang.String,java.lang.String) -> addFirst
+    651:659:void append2Host(java.util.Map,java.lang.String,java.lang.String) -> append2Host
+    662:666:java.lang.String getAppended() -> getAppended
+    671:687:java.lang.String toString() -> toString
+com.blankj.utilcode.util.UtilsFileProvider -> com.blankj.utilcode.util.UtilsFileProvider:
+    15:15:void <init>() -> <init>
+    20:21:boolean onCreate() -> onCreate
+com.blankj.utilcode.util.UtilsTransActivity -> com.blankj.utilcode.util.UtilsTransActivity:
+    26:26:void <clinit>() -> <clinit>
+    24:24:void <init>() -> <init>
+    152:157:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    144:148:void onActivityResult(int,int,android.content.Intent) -> onActivityResult
+    70:82:void onCreate(android.os.Bundle) -> onCreate
+    127:132:void onDestroy() -> onDestroy
+    102:107:void onPause() -> onPause
+    136:140:void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    94:98:void onResume() -> onResume
+    119:123:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    86:90:void onStart() -> onStart
+    111:115:void onStop() -> onStop
+com.blankj.utilcode.util.UtilsTransActivity$TransActivityDelegate -> com.blankj.utilcode.util.UtilsTransActivity$TransActivityDelegate:
+    160:160:void <init>() -> <init>
+    182:182:boolean dispatchTouchEvent(com.blankj.utilcode.util.UtilsTransActivity,android.view.MotionEvent) -> dispatchTouchEvent
+    179:179:void onActivityResult(com.blankj.utilcode.util.UtilsTransActivity,int,int,android.content.Intent) -> onActivityResult
+    161:161:void onCreateBefore(com.blankj.utilcode.util.UtilsTransActivity,android.os.Bundle) -> onCreateBefore
+    163:163:void onCreated(com.blankj.utilcode.util.UtilsTransActivity,android.os.Bundle) -> onCreated
+    167:167:void onDestroy(com.blankj.utilcode.util.UtilsTransActivity) -> onDestroy
+    171:171:void onPaused(com.blankj.utilcode.util.UtilsTransActivity) -> onPaused
+    177:177:void onRequestPermissionsResult(com.blankj.utilcode.util.UtilsTransActivity,int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    169:169:void onResumed(com.blankj.utilcode.util.UtilsTransActivity) -> onResumed
+    175:175:void onSaveInstanceState(com.blankj.utilcode.util.UtilsTransActivity,android.os.Bundle) -> onSaveInstanceState
+    165:165:void onStarted(com.blankj.utilcode.util.UtilsTransActivity) -> onStarted
+    173:173:void onStopped(com.blankj.utilcode.util.UtilsTransActivity) -> onStopped
+com.blankj.utilcode.util.UtilsTransActivity4MainProcess -> com.blankj.utilcode.util.UtilsTransActivity4MainProcess:
+    14:14:void <init>() -> <init>
+com.chad.library.DataBinderMapperImpl -> com.chad.library.DataBinderMapperImpl:
+    19:22:void <clinit>() -> <clinit>
+    18:18:void <init>() -> <init>
+    70:72:java.util.List collectDependencies() -> collectDependencies
+    64:65:java.lang.String convertBrIdToString(int) -> convertBrIdToString
+    26:33:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View,int) -> getDataBinder
+    38:50:androidx.databinding.ViewDataBinding getDataBinder(androidx.databinding.DataBindingComponent,android.view.View[],int) -> getDataBinder
+    55:59:int getLayoutId(java.lang.String) -> getLayoutId
+com.chad.library.DataBinderMapperImpl$InnerBrLookup -> com.chad.library.DataBinderMapperImpl$InnerBrLookup:
+    76:80:void <clinit>() -> <clinit>
+com.chad.library.DataBinderMapperImpl$InnerLayoutIdLookup -> com.chad.library.DataBinderMapperImpl$InnerLayoutIdLookup:
+    84:87:void <clinit>() -> <clinit>
+com.chad.library.adapter.base.BaseDelegateMultiAdapter -> com.chad.library.adapter.base.BaseDelegateMultiAdapter:
+# {"id":"sourceFile","fileName":"BaseDelegateMultiAdapter.kt"}
+    19:19:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    19:19:void <init>(java.util.List):19 -> <init>
+    20:20:void <init>(java.util.List) -> <init>
+    19:19:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    42:44:int getDefItemViewType(int) -> getDefItemViewType
+    32:32:com.chad.library.adapter.base.delegate.BaseMultiTypeDelegate getMultiTypeDelegate() -> getMultiTypeDelegate
+    35:38:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+com.chad.library.adapter.base.BaseMultiItemQuickAdapter -> com.chad.library.adapter.base.BaseMultiItemQuickAdapter:
+# {"id":"sourceFile","fileName":"BaseMultiItemQuickAdapter.kt"}
+    20:20:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    20:20:void <init>(java.util.List):20 -> <init>
+    21:23:void <init>(java.util.List) -> <init>
+    20:20:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    26:26:int getDefItemViewType(int) -> getDefItemViewType
+    30:32:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+com.chad.library.adapter.base.BaseMultiItemQuickAdapter$layouts$2 -> com.chad.library.adapter.base.BaseMultiItemQuickAdapter$layouts$2:
+# {"id":"sourceFile","fileName":"BaseMultiItemQuickAdapter.kt"}
+    20:20:java.lang.Object invoke() -> invoke
+    23:23:android.util.SparseIntArray invoke() -> invoke
+com.chad.library.adapter.base.BaseNodeAdapter -> com.chad.library.adapter.base.BaseNodeAdapter:
+# {"id":"sourceFile","fileName":"BaseNodeAdapter.kt"}
+    13:13:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    13:13:void <init>(java.util.List):13 -> <init>
+    14:23:void <init>(java.util.List) -> <init>
+    13:13:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    393:424:java.util.List flatData(java.util.Collection,java.lang.Boolean) -> flatData
+    0:392:java.util.List flatData$default(com.chad.library.adapter.base.BaseNodeAdapter,java.util.Collection,java.lang.Boolean,int,java.lang.Object) -> flatData$default
+    65:65:boolean isFixedViewType(int) -> isFixedViewType
+    69:73:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+com.chad.library.adapter.base.BaseProviderMultiAdapter -> com.chad.library.adapter.base.BaseProviderMultiAdapter:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    21:21:android.util.SparseArray access$getMItemProviders$p(com.chad.library.adapter.base.BaseProviderMultiAdapter) -> <init>
+    21:21:void <init>(java.util.List):21 -> <init>
+    22:24:void <init>(java.util.List) -> <init>
+    21:21:android.util.SparseArray access$getMItemProviders$p(com.chad.library.adapter.base.BaseProviderMultiAdapter) -> <init>
+    21:21:void <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker):21 -> <init>
+    21:21:android.util.SparseArray access$getMItemProviders$p(com.chad.library.adapter.base.BaseProviderMultiAdapter) -> access$getMItemProviders$p
+    117:160:void bindChildClick(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> bindChildClick
+    83:114:void bindClick(com.chad.library.adapter.base.viewholder.BaseViewHolder) -> bindClick
+    65:68:void bindViewClickListener(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> bindViewClickListener
+    57:58:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object) -> convert
+    61:62:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object,java.util.List) -> convert
+    53:53:int getDefItemViewType(int) -> getDefItemViewType
+    79:79:com.chad.library.adapter.base.provider.BaseItemProvider getItemProvider(int) -> getItemProvider
+    44:49:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+com.chad.library.adapter.base.BaseProviderMultiAdapter$bindChildClick$$inlined$forEach$lambda$1 -> com.chad.library.adapter.base.BaseProviderMultiAdapter$bindChildClick$$inlined$forEach$lambda$1:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    126:132:void onClick(android.view.View) -> onClick
+com.chad.library.adapter.base.BaseProviderMultiAdapter$bindChildClick$$inlined$forEach$lambda$2 -> com.chad.library.adapter.base.BaseProviderMultiAdapter$bindChildClick$$inlined$forEach$lambda$2:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    145:150:boolean onLongClick(android.view.View) -> onLongClick
+com.chad.library.adapter.base.BaseProviderMultiAdapter$bindClick$1 -> com.chad.library.adapter.base.BaseProviderMultiAdapter$bindClick$1:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    87:97:void onClick(android.view.View) -> onClick
+com.chad.library.adapter.base.BaseProviderMultiAdapter$bindClick$2 -> com.chad.library.adapter.base.BaseProviderMultiAdapter$bindClick$2:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    103:111:boolean onLongClick(android.view.View) -> onLongClick
+com.chad.library.adapter.base.BaseProviderMultiAdapter$mItemProviders$2 -> com.chad.library.adapter.base.BaseProviderMultiAdapter$mItemProviders$2:
+# {"id":"sourceFile","fileName":"BaseProviderMultiAdapter.kt"}
+    21:21:java.lang.Object invoke() -> invoke
+    24:24:android.util.SparseArray invoke() -> invoke
+com.chad.library.adapter.base.BaseQuickAdapter -> com.chad.library.adapter.base.BaseQuickAdapter:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    75:466:void <init>(int,java.util.List) -> <init>
+    74:74:void access$setMEmptyLayout$p(com.chad.library.adapter.base.BaseQuickAdapter,android.widget.FrameLayout) -> access$getMSpanSizeLookup$p
+    74:74:com.chad.library.adapter.base.listener.GridSpanSizeLookup access$getMSpanSizeLookup$p(com.chad.library.adapter.base.BaseQuickAdapter):74 -> access$getMSpanSizeLookup$p
+    1022:1282:void addAnimation(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> addAnimation
+    487:542:void bindViewClickListener(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> bindViewClickListener
+    172:181:void checkModule() -> checkModule
+    205:205:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object,java.util.List) -> convert
+    657:679:com.chad.library.adapter.base.viewholder.BaseViewHolder createBaseGenericKInstance(java.lang.Class,android.view.View) -> createBaseGenericKInstance
+    588:588:com.chad.library.adapter.base.viewholder.BaseViewHolder createBaseViewHolder(android.view.ViewGroup,int) -> createBaseViewHolder
+    599:611:com.chad.library.adapter.base.viewholder.BaseViewHolder createBaseViewHolder(android.view.View) -> createBaseViewHolder
+    450:450:java.util.LinkedHashSet getChildClickViewIds() -> getChildClickViewIds
+    469:469:java.util.LinkedHashSet getChildLongClickViewIds() -> getChildLongClickViewIds
+    91:91:void <init>(int,java.util.List) -> getData
+    91:91:java.util.List getData():91 -> getData
+    576:576:int getDefItemCount() -> getDefItemCount
+    580:580:int getDefItemViewType(int) -> getDefItemViewType
+    911:914:int getFooterLayoutCount() -> getFooterLayoutCount
+    107:107:void setFooterViewAsFlow(boolean) -> getFooterViewAsFlow
+    107:107:boolean getFooterViewAsFlow():107 -> getFooterViewAsFlow
+    800:803:int getHeaderLayoutCount() -> getHeaderLayoutCount
+    106:106:void setHeaderViewAsFlow(boolean) -> getHeaderViewAsFlow
+    106:106:boolean getHeaderViewAsFlow():106 -> getHeaderViewAsFlow
+    621:645:java.lang.Class getInstancedGenericKClass(java.lang.Class) -> getInstancedGenericKClass
+    428:428:java.lang.Object getItem(int) -> getItem
+    261:276:int getItemCount() -> getItemCount
+    364:364:long getItemId(int) -> getItemId
+    281:321:int getItemViewType(int) -> getItemViewType
+    1276:1276:com.chad.library.adapter.base.listener.OnItemChildClickListener getOnItemChildClickListener() -> getOnItemChildClickListener
+    1278:1278:com.chad.library.adapter.base.listener.OnItemChildLongClickListener getOnItemChildLongClickListener() -> getOnItemChildLongClickListener
+    1272:1272:com.chad.library.adapter.base.listener.OnItemClickListener getOnItemClickListener() -> getOnItemClickListener
+    1274:1274:com.chad.library.adapter.base.listener.OnItemLongClickListener getOnItemLongClickListener() -> getOnItemLongClickListener
+    988:994:boolean hasEmptyView() -> hasEmptyView
+    884:887:boolean hasFooterLayout() -> hasFooterLayout
+    755:758:boolean hasHeaderLayout() -> hasHeaderLayout
+    417:417:boolean isFixedViewType(int) -> isFixedViewType
+    385:414:void onAttachedToRecyclerView(androidx.recyclerview.widget.RecyclerView) -> onAttachedToRecyclerView
+    74:74:void access$setMEmptyLayout$p(com.chad.library.adapter.base.BaseQuickAdapter,android.widget.FrameLayout) -> onBindViewHolder
+    74:74:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int):74 -> onBindViewHolder
+    74:74:void access$setMEmptyLayout$p(com.chad.library.adapter.base.BaseQuickAdapter,android.widget.FrameLayout) -> onBindViewHolder
+    74:74:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,java.util.List):74 -> onBindViewHolder
+    329:341:void onBindViewHolder(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> onBindViewHolder
+    344:361:void onBindViewHolder(com.chad.library.adapter.base.viewholder.BaseViewHolder,int,java.util.List) -> onBindViewHolder
+    584:584:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+    74:74:void access$setMEmptyLayout$p(com.chad.library.adapter.base.BaseQuickAdapter,android.widget.FrameLayout) -> onCreateViewHolder
+    74:74:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int):74 -> onCreateViewHolder
+    217:257:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    214:214:void onItemViewHolderCreated(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> onItemViewHolderCreated
+    74:74:void access$setMEmptyLayout$p(com.chad.library.adapter.base.BaseQuickAdapter,android.widget.FrameLayout) -> onViewAttachedToWindow
+    74:74:void onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView$ViewHolder):74 -> onViewAttachedToWindow
+    375:382:void onViewAttachedToWindow(com.chad.library.adapter.base.viewholder.BaseViewHolder) -> onViewAttachedToWindow
+    691:695:void setFullSpan(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> setFullSpan
+    568:569:void setOnItemChildClick(android.view.View,int) -> setOnItemChildClick
+    572:572:boolean setOnItemChildLongClick(android.view.View,int) -> setOnItemChildLongClick
+    552:553:void setOnItemClick(android.view.View,int) -> setOnItemClick
+    1257:1258:void setOnItemClickListener(com.chad.library.adapter.base.listener.OnItemClickListener) -> setOnItemClickListener
+    564:564:boolean setOnItemLongClick(android.view.View,int) -> setOnItemLongClick
+    1043:1044:void startAnim(android.animation.Animator,int) -> startAnim
+com.chad.library.adapter.base.BaseQuickAdapter$Companion -> com.chad.library.adapter.base.BaseQuickAdapter$Companion:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    79:79:void <init>() -> <init>
+    79:79:void <init>(kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$1 -> com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$1:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    489:495:void onClick(android.view.View) -> onClick
+com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$2 -> com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$2:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    499:504:boolean onLongClick(android.view.View) -> onLongClick
+com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$3 -> com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$3:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    515:521:void onClick(android.view.View) -> onClick
+com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$4 -> com.chad.library.adapter.base.BaseQuickAdapter$bindViewClickListener$$inlined$let$lambda$4:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    532:537:boolean onLongClick(android.view.View) -> onLongClick
+com.chad.library.adapter.base.BaseQuickAdapter$onAttachedToRecyclerView$1 -> com.chad.library.adapter.base.BaseQuickAdapter$onAttachedToRecyclerView$1:
+# {"id":"sourceFile","fileName":"BaseQuickAdapter.kt"}
+    393:393:void <init>(com.chad.library.adapter.base.BaseQuickAdapter,androidx.recyclerview.widget.RecyclerView$LayoutManager,androidx.recyclerview.widget.GridLayoutManager$SpanSizeLookup) -> <init>
+    395:408:int getSpanSize(int) -> getSpanSize
+com.chad.library.adapter.base.BaseSectionQuickAdapter -> com.chad.library.adapter.base.BaseSectionQuickAdapter:
+# {"id":"sourceFile","fileName":"BaseSectionQuickAdapter.kt"}
+    43:43:void convertHeader(com.chad.library.adapter.base.viewholder.BaseViewHolder,com.chad.library.adapter.base.entity.SectionEntity,java.util.List) -> convertHeader
+    55:55:boolean isFixedViewType(int) -> isFixedViewType
+    15:15:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,java.util.List) -> onBindViewHolder
+    15:15:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int):15 -> onBindViewHolder
+    15:15:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,java.util.List) -> onBindViewHolder
+    67:73:void onBindViewHolder(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> onBindViewHolder
+    76:86:void onBindViewHolder(com.chad.library.adapter.base.viewholder.BaseViewHolder,int,java.util.List) -> onBindViewHolder
+    59:63:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateDefViewHolder(android.view.ViewGroup,int) -> onCreateDefViewHolder
+com.chad.library.adapter.base.animation.AlphaInAnimation -> com.chad.library.adapter.base.animation.AlphaInAnimation:
+# {"id":"sourceFile","fileName":"AlphaInAnimation.kt"}
+    11:11:void <init>(float) -> <init>
+    11:11:void <init>(float,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    13:16:android.animation.Animator[] animators(android.view.View) -> animators
+com.chad.library.adapter.base.animation.AlphaInAnimation$Companion -> com.chad.library.adapter.base.animation.AlphaInAnimation$Companion:
+# {"id":"sourceFile","fileName":"AlphaInAnimation.kt"}
+    19:19:void <init>() -> <init>
+    19:19:void <init>(kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+com.chad.library.adapter.base.animation.BaseAnimation -> com.chad.library.adapter.base.animation.BaseAnimation:
+# {"id":"sourceFile","fileName":"BaseAnimation.kt"}
+com.chad.library.adapter.base.delegate.BaseMultiTypeDelegate -> com.chad.library.adapter.base.delegate.BaseMultiTypeDelegate:
+# {"id":"sourceFile","fileName":"BaseMultiTypeDelegate.kt"}
+com.chad.library.adapter.base.diff.BrvahAsyncDiffer$submitList$1$result$1 -> com.chad.library.adapter.base.diff.BrvahAsyncDiffer$submitList$1$result$1:
+# {"id":"sourceFile","fileName":"BrvahAsyncDiffer.kt"}
+    82:82:boolean areContentsTheSame(int,int) -> areContentsTheSame
+    73:73:boolean areItemsTheSame(int,int) -> areItemsTheSame
+    94:94:java.lang.Object getChangePayload(int,int) -> getChangePayload
+    69:69:int getNewListSize() -> getNewListSize
+    65:65:int getOldListSize() -> getOldListSize
+com.chad.library.adapter.base.diff.BrvahListUpdateCallback -> com.chad.library.adapter.base.diff.BrvahListUpdateCallback:
+# {"id":"sourceFile","fileName":"BrvahListUpdateCallback.kt"}
+    21:22:void onChanged(int,int,java.lang.Object) -> onChanged
+    9:10:void onInserted(int,int) -> onInserted
+    17:18:void onMoved(int,int) -> onMoved
+    13:14:void onRemoved(int,int) -> onRemoved
+com.chad.library.adapter.base.dragswipe.DragAndSwipeCallback -> com.chad.library.adapter.base.dragswipe.DragAndSwipeCallback:
+    71:90:void clearView(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> clearView
+    125:125:float getMoveThreshold(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getMoveThreshold
+    94:98:int getMovementFlags(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getMovementFlags
+    130:130:float getSwipeThreshold(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> getSwipeThreshold
+    45:48:boolean isItemViewSwipeEnabled() -> isItemViewSwipeEnabled
+    37:40:boolean isLongPressDragEnabled() -> isLongPressDragEnabled
+    211:212:boolean isViewCreateByAdapter(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> isViewCreateByAdapter
+    186:208:void onChildDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,float,float,int,boolean) -> onChildDrawOver
+    103:103:boolean onMove(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onMove
+    108:112:void onMoved(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,androidx.recyclerview.widget.RecyclerView$ViewHolder,int,int,int) -> onMoved
+    53:67:void onSelectedChanged(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onSelectedChanged
+    116:121:void onSwiped(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onSwiped
+com.chad.library.adapter.base.entity.MultiItemEntity -> com.chad.library.adapter.base.entity.MultiItemEntity:
+# {"id":"sourceFile","fileName":"MultiItemEntity.kt"}
+com.chad.library.adapter.base.entity.SectionEntity -> com.chad.library.adapter.base.entity.SectionEntity:
+# {"id":"sourceFile","fileName":"SectionEntity.kt"}
+com.chad.library.adapter.base.entity.node.BaseExpandNode -> com.chad.library.adapter.base.entity.node.BaseExpandNode:
+# {"id":"sourceFile","fileName":"BaseExpandNode.kt"}
+    3:4:void <init>() -> <init>
+    4:4:boolean isExpanded() -> isExpanded
+    4:4:void setExpanded(boolean) -> setExpanded
+com.chad.library.adapter.base.entity.node.BaseNode -> com.chad.library.adapter.base.entity.node.BaseNode:
+# {"id":"sourceFile","fileName":"BaseNode.kt"}
+    3:3:void <init>() -> <init>
+com.chad.library.adapter.base.entity.node.NodeFooterImp -> com.chad.library.adapter.base.entity.node.NodeFooterImp:
+# {"id":"sourceFile","fileName":"NodeFooterImp.kt"}
+com.chad.library.adapter.base.loadmore.BaseLoadMoreView -> com.chad.library.adapter.base.loadmore.BaseLoadMoreView:
+# {"id":"sourceFile","fileName":"BaseLoadMoreView.kt"}
+com.chad.library.adapter.base.loadmore.LoadMoreStatus -> com.chad.library.adapter.base.loadmore.LoadMoreStatus:
+# {"id":"sourceFile","fileName":"BaseLoadMoreView.kt"}
+    12:12:void <init>(java.lang.String,int) -> <init>
+com.chad.library.adapter.base.module.BaseDraggableModule -> com.chad.library.adapter.base.module.BaseDraggableModule:
+# {"id":"sourceFile","fileName":"DraggableModule.kt"}
+com.chad.library.adapter.base.module.BaseLoadMoreModule -> com.chad.library.adapter.base.module.BaseLoadMoreModule:
+# {"id":"sourceFile","fileName":"LoadMoreModule.kt"}
+com.chad.library.adapter.base.module.BaseUpFetchModule -> com.chad.library.adapter.base.module.BaseUpFetchModule:
+# {"id":"sourceFile","fileName":"UpFetchModule.kt"}
+com.chad.library.adapter.base.provider.BaseItemProvider -> com.chad.library.adapter.base.provider.BaseItemProvider:
+# {"id":"sourceFile","fileName":"BaseItemProvider.kt"}
+    17:23:void <init>() -> <init>
+    41:41:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object,java.util.List) -> convert
+    90:90:java.util.ArrayList getChildClickViewIds() -> getChildClickViewIds
+    98:98:java.util.ArrayList getChildLongClickViewIds() -> getChildLongClickViewIds
+    78:78:void onChildClick(com.chad.library.adapter.base.viewholder.BaseViewHolder,android.view.View,java.lang.Object,int) -> onChildClick
+    81:81:boolean onChildLongClick(com.chad.library.adapter.base.viewholder.BaseViewHolder,android.view.View,java.lang.Object,int) -> onChildLongClick
+    65:65:void onClick(com.chad.library.adapter.base.viewholder.BaseViewHolder,android.view.View,java.lang.Object,int) -> onClick
+    50:50:com.chad.library.adapter.base.viewholder.BaseViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    75:75:boolean onLongClick(com.chad.library.adapter.base.viewholder.BaseViewHolder,android.view.View,java.lang.Object,int) -> onLongClick
+    57:57:void onViewHolderCreated(com.chad.library.adapter.base.viewholder.BaseViewHolder,int) -> onViewHolderCreated
+    19:19:void setContext(android.content.Context) -> setContext
+com.chad.library.adapter.base.provider.BaseItemProvider$clickViewIds$2 -> com.chad.library.adapter.base.provider.BaseItemProvider$clickViewIds$2:
+# {"id":"sourceFile","fileName":"BaseItemProvider.kt"}
+    17:17:java.lang.Object invoke() -> invoke
+    22:22:java.util.ArrayList invoke() -> invoke
+com.chad.library.adapter.base.provider.BaseItemProvider$longClickViewIds$2 -> com.chad.library.adapter.base.provider.BaseItemProvider$longClickViewIds$2:
+# {"id":"sourceFile","fileName":"BaseItemProvider.kt"}
+    17:17:java.lang.Object invoke() -> invoke
+    23:23:java.util.ArrayList invoke() -> invoke
+com.chad.library.adapter.base.util.AdapterUtilsKt -> com.chad.library.adapter.base.util.AdapterUtilsKt:
+# {"id":"sourceFile","fileName":"AdapterUtils.kt"}
+    15:15:android.view.View getItemView(android.view.ViewGroup,int) -> getItemView
+com.chad.library.adapter.base.viewholder.BaseViewHolder -> com.chad.library.adapter.base.viewholder.BaseViewHolder:
+# {"id":"sourceFile","fileName":"BaseViewHolder.kt"}
+    17:21:void <init>(android.view.View) -> <init>
+    30:32:android.view.View getView(int) -> getView
+    37:44:android.view.View getViewOrNull(int) -> getViewOrNull
+    52:53:com.chad.library.adapter.base.viewholder.BaseViewHolder setText(int,java.lang.CharSequence) -> setText
+com.google.android.material.animation.AnimationUtils -> com.google.android.material.animation.AnimationUtils:
+    37:44:void <clinit>() -> <clinit>
+    35:35:void <init>() -> <init>
+    48:48:float lerp(float,float,float) -> lerp
+    53:53:int lerp(int,int,float) -> lerp
+    66:73:float lerp(float,float,float,float,float) -> lerp
+com.google.android.material.animation.AnimatorSetCompat -> com.google.android.material.animation.AnimatorSetCompat:
+    32:32:void <init>() -> <init>
+    38:48:void playTogether(android.animation.AnimatorSet,java.util.List) -> playTogether
+com.google.android.material.animation.ArgbEvaluatorCompat -> com.google.android.material.animation.ArgbEvaluatorCompat:
+    29:29:void <clinit>() -> <clinit>
+    28:28:void <init>() -> <init>
+    28:28:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    58:91:java.lang.Integer evaluate(float,java.lang.Integer,java.lang.Integer) -> evaluate
+    40:40:com.google.android.material.animation.ArgbEvaluatorCompat getInstance() -> getInstance
+com.google.android.material.animation.ChildrenAlphaProperty -> com.google.android.material.animation.ChildrenAlphaProperty:
+    38:38:void <clinit>() -> <clinit>
+    42:43:void <init>(java.lang.String) -> <init>
+    33:33:java.lang.Object get(java.lang.Object) -> get
+    48:52:java.lang.Float get(android.view.ViewGroup) -> get
+    33:33:void set(java.lang.Object,java.lang.Object) -> set
+    58:66:void set(android.view.ViewGroup,java.lang.Float) -> set
+com.google.android.material.animation.DrawableAlphaProperty -> com.google.android.material.animation.DrawableAlphaProperty:
+    36:36:void <clinit>() -> <clinit>
+    39:43:void <init>() -> <init>
+    30:30:java.lang.Object get(java.lang.Object) -> get
+    48:49:java.lang.Integer get(android.graphics.drawable.Drawable) -> get
+    30:30:void set(java.lang.Object,java.lang.Object) -> set
+    59:64:void set(android.graphics.drawable.Drawable,java.lang.Integer) -> set
+com.google.android.material.animation.ImageMatrixProperty -> com.google.android.material.animation.ImageMatrixProperty:
+    28:32:void <init>() -> <init>
+    27:27:java.lang.Object get(java.lang.Object) -> get
+    42:43:android.graphics.Matrix get(android.widget.ImageView) -> get
+    27:27:void set(java.lang.Object,java.lang.Object) -> set
+    36:37:void set(android.widget.ImageView,android.graphics.Matrix) -> set
+com.google.android.material.animation.MatrixEvaluator -> com.google.android.material.animation.MatrixEvaluator:
+    26:29:void <init>() -> <init>
+    26:26:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    34:41:android.graphics.Matrix evaluate(float,android.graphics.Matrix,android.graphics.Matrix) -> evaluate
+com.google.android.material.animation.MotionSpec -> com.google.android.material.animation.MotionSpec:
+    66:71:void <init>() -> <init>
+    215:222:void addInfoFromAnimator(com.google.android.material.animation.MotionSpec,android.animation.Animator) -> addInfoFromAnimator
+    128:132:android.animation.PropertyValuesHolder[] clonePropertyValuesHolder(android.animation.PropertyValuesHolder[]) -> clonePropertyValuesHolder
+    175:181:com.google.android.material.animation.MotionSpec createFromAttribute(android.content.Context,android.content.res.TypedArray,int) -> createFromAttribute
+    188:201:com.google.android.material.animation.MotionSpec createFromResource(android.content.Context,int) -> createFromResource
+    207:211:com.google.android.material.animation.MotionSpec createSpecFromAnimators(java.util.List) -> createSpecFromAnimators
+    226:235:boolean equals(java.lang.Object) -> equals
+    148:152:android.animation.ObjectAnimator getAnimator(java.lang.String,java.lang.Object,android.util.Property) -> getAnimator
+    110:113:android.animation.PropertyValuesHolder[] getPropertyValues(java.lang.String) -> getPropertyValues
+    84:87:com.google.android.material.animation.MotionTiming getTiming(java.lang.String) -> getTiming
+    160:165:long getTotalDuration() -> getTotalDuration
+    99:99:boolean hasPropertyValues(java.lang.String) -> hasPropertyValues
+    76:76:boolean hasTiming(java.lang.String) -> hasTiming
+    240:240:int hashCode() -> hashCode
+    123:124:void setPropertyValues(java.lang.String,android.animation.PropertyValuesHolder[]) -> setPropertyValues
+    92:93:void setTiming(java.lang.String,com.google.android.material.animation.MotionTiming) -> setTiming
+    246:254:java.lang.String toString() -> toString
+com.google.android.material.animation.MotionTiming -> com.google.android.material.animation.MotionTiming:
+    30:42:void <init>(long,long) -> <init>
+    30:48:void <init>(long,long,android.animation.TimeInterpolator) -> <init>
+    51:58:void apply(android.animation.Animator) -> apply
+    83:88:com.google.android.material.animation.MotionTiming createFromAnimator(android.animation.ValueAnimator) -> createFromAnimator
+    116:137:boolean equals(java.lang.Object) -> equals
+    61:61:long getDelay() -> getDelay
+    65:65:long getDuration() -> getDuration
+    70:70:android.animation.TimeInterpolator getInterpolator() -> getInterpolator
+    102:110:android.animation.TimeInterpolator getInterpolatorCompat(android.animation.ValueAnimator) -> getInterpolatorCompat
+    74:74:int getRepeatCount() -> getRepeatCount
+    78:78:int getRepeatMode() -> getRepeatMode
+    142:147:int hashCode() -> hashCode
+    153:169:java.lang.String toString() -> toString
+com.google.android.material.animation.Positioning -> com.google.android.material.animation.Positioning:
+    34:38:void <init>(int,float,float) -> <init>
+com.google.android.material.appbar.AppBarLayout -> com.google.android.material.appbar.AppBarLayout:
+    165:165:void <clinit>() -> <clinit>
+    195:196:void <init>(android.content.Context) -> <init>
+    199:200:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    169:277:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    287:293:void addOnOffsetChangedListener(com.google.android.material.appbar.AppBarLayout$BaseOnOffsetChangedListener) -> addOnOffsetChangedListener
+    297:298:void addOnOffsetChangedListener(com.google.android.material.appbar.AppBarLayout$OnOffsetChangedListener) -> addOnOffsetChangedListener
+    585:585:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    948:952:void clearLiftOnScrollTargetView() -> clearLiftOnScrollTargetView
+    387:396:void draw(android.graphics.Canvas) -> draw
+    400:408:void drawableStateChanged() -> drawableStateChanged
+    930:944:android.view.View findLiftOnScrollTargetView(android.view.View) -> findLiftOnScrollTargetView
+    130:130:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    130:130:android.widget.LinearLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    590:590:com.google.android.material.appbar.AppBarLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    130:130:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    130:130:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    130:130:android.widget.LinearLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    130:130:android.widget.LinearLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    595:595:com.google.android.material.appbar.AppBarLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    600:605:com.google.android.material.appbar.AppBarLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    534:534:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior getBehavior() -> getBehavior
+    672:710:int getDownNestedPreScrollRange() -> getDownNestedPreScrollRange
+    715:746:int getDownNestedScrollRange() -> getDownNestedScrollRange
+    916:916:int getLiftOnScrollTargetViewId() -> getLiftOnScrollTargetViewId
+    769:786:int getMinimumHeightForVisibleOverlappingContent() -> getMinimumHeightForVisibleOverlappingContent
+    978:978:int getPendingAction() -> getPendingAction
+    382:382:android.graphics.drawable.Drawable getStatusBarForeground() -> getStatusBarForeground
+    974:974:float getTargetElevation() -> getTargetElevation
+    987:987:int getTopInset() -> getTopInset
+    625:658:int getTotalScrollRange() -> getTotalScrollRange
+    667:667:int getUpNestedPreScrollRange() -> getUpNestedPreScrollRange
+    616:616:boolean hasChildWithInterpolator() -> hasChildWithInterpolator
+    500:505:boolean hasCollapsibleChild() -> hasCollapsibleChild
+    662:662:boolean hasScrollableChildren() -> hasScrollableChildren
+    510:513:void invalidateScrollRanges() -> invalidateScrollRanges
+    897:897:boolean isLiftOnScroll() -> isLiftOnScroll
+    843:843:boolean isLifted() -> isLifted
+    526:529:void onAttachedToWindow() -> onAttachedToWindow
+    791:807:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    610:613:void onDetachedFromWindow() -> onDetachedFromWindow
+    457:489:void onLayout(boolean,int,int,int,int) -> onLayout
+    427:453:void onMeasure(int,int) -> onMeasure
+    750:766:void onOffsetChanged(int) -> onOffsetChanged
+    1003:1017:androidx.core.view.WindowInsetsCompat onWindowInsetChanged(androidx.core.view.WindowInsetsCompat) -> onWindowInsetChanged
+    309:312:void removeOnOffsetChangedListener(com.google.android.material.appbar.AppBarLayout$BaseOnOffsetChangedListener) -> removeOnOffsetChangedListener
+    316:317:void removeOnOffsetChangedListener(com.google.android.material.appbar.AppBarLayout$OnOffsetChangedListener) -> removeOnOffsetChangedListener
+    982:983:void resetPendingAction() -> resetPendingAction
+    540:543:void setElevation(float) -> setElevation
+    557:558:void setExpanded(boolean) -> setExpanded
+    572:573:void setExpanded(boolean,boolean) -> setExpanded
+    576:581:void setExpanded(boolean,boolean,boolean) -> setExpanded
+    892:893:void setLiftOnScroll(boolean) -> setLiftOnScroll
+    905:908:void setLiftOnScrollTargetViewId(int) -> setLiftOnScrollTargetViewId
+    816:817:boolean setLiftable(boolean) -> setLiftable
+    822:827:boolean setLiftableState(boolean) -> setLiftableState
+    836:836:boolean setLifted(boolean) -> setLifted
+    848:856:boolean setLiftedState(boolean) -> setLiftedState
+    517:522:void setOrientation(int) -> setOrientation
+    330:346:void setStatusBarForeground(android.graphics.drawable.Drawable) -> setStatusBarForeground
+    358:359:void setStatusBarForegroundColor(int) -> setStatusBarForegroundColor
+    371:372:void setStatusBarForegroundResource(int) -> setStatusBarForegroundResource
+    963:966:void setTargetElevation(float) -> setTargetElevation
+    417:423:void setVisibility(int) -> setVisibility
+    496:496:boolean shouldDrawStatusBarForeground() -> shouldDrawStatusBarForeground
+    920:925:boolean shouldLift(android.view.View) -> shouldLift
+    995:999:boolean shouldOffsetFirstChild() -> shouldOffsetFirstChild
+    861:881:void startLiftOnScrollElevationOverlayAnimation(com.google.android.material.shape.MaterialShapeDrawable,boolean) -> startLiftOnScrollElevationOverlayAnimation
+    492:493:void updateWillNotDraw() -> updateWillNotDraw
+    412:412:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+com.google.android.material.appbar.AppBarLayout$1 -> com.google.android.material.appbar.AppBarLayout$1:
+    271:271:void <init>(com.google.android.material.appbar.AppBarLayout) -> <init>
+    274:274:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.appbar.AppBarLayout$2 -> com.google.android.material.appbar.AppBarLayout$2:
+    874:874:void <init>(com.google.android.material.appbar.AppBarLayout,com.google.android.material.shape.MaterialShapeDrawable) -> <init>
+    877:878:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.appbar.AppBarLayout$BaseBehavior -> com.google.android.material.appbar.AppBarLayout$BaseBehavior:
+    1246:1253:void <init>() -> <init>
+    1246:1257:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1222:1222:int access$000(com.google.android.material.appbar.AppBarLayout$BaseBehavior) -> access$000
+    1611:1651:void addAccessibilityScrollActions(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View) -> addAccessibilityScrollActions
+    1658:1669:void addActionToExpand(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat,boolean) -> addActionToExpand
+    1382:1394:void animateOffsetTo(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,float) -> animateOffsetTo
+    1401:1427:void animateOffsetWithDuration(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,int) -> animateOffsetWithDuration
+    1222:1222:boolean canDragView(android.view.View) -> canDragView
+    1673:1687:boolean canDragView(com.google.android.material.appbar.AppBarLayout) -> canDragView
+    1290:1291:boolean canScrollChildren(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View) -> canScrollChildren
+    1496:1496:boolean checkFlag(int,int) -> checkFlag
+    1896:1904:android.view.View findFirstScrollingChild(androidx.coordinatorlayout.widget.CoordinatorLayout) -> findFirstScrollingChild
+    1884:1891:android.view.View getAppBarChildOnOffset(com.google.android.material.appbar.AppBarLayout,int) -> getAppBarChildOnOffset
+    1430:1446:int getChildIndexOnOffset(com.google.android.material.appbar.AppBarLayout,int) -> getChildIndexOnOffset
+    1222:1222:int getMaxDragOffset(android.view.View) -> getMaxDragOffset
+    1702:1702:int getMaxDragOffset(com.google.android.material.appbar.AppBarLayout) -> getMaxDragOffset
+    1222:1222:int getScrollRangeForDragFling(android.view.View) -> getScrollRangeForDragFling
+    1707:1707:int getScrollRangeForDragFling(com.google.android.material.appbar.AppBarLayout) -> getScrollRangeForDragFling
+    1909:1909:int getTopBottomOffsetForScrollingSibling() -> getTopBottomOffsetForScrollingSibling
+    1771:1815:int interpolateOffset(com.google.android.material.appbar.AppBarLayout,int) -> interpolateOffset
+    1767:1767:boolean isOffsetAnimatorRunning() -> isOffsetAnimatorRunning
+    1222:1222:void onFlingFinished(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onFlingFinished
+    1694:1698:void onFlingFinished(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> onFlingFinished
+    1222:1222:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    1531:1584:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int) -> onLayoutChild
+    1222:1222:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    1507:1524:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,int,int,int) -> onMeasureChild
+    1222:1222:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    1303:1322:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    1222:1222:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    1335:1347:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    1222:1222:void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.os.Parcelable) -> onRestoreInstanceState
+    1939:1949:void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.os.Parcelable) -> onRestoreInstanceState
+    1222:1222:android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onSaveInstanceState
+    1914:1933:android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> onSaveInstanceState
+    1222:1222:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    1269:1284:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    1222:1222:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int) -> onStopNestedScroll
+    1356:1366:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int) -> onStopNestedScroll
+    1374:1375:void setDragCallback(com.google.android.material.appbar.AppBarLayout$BaseBehavior$BaseDragCallback) -> setDragCallback
+    1222:1222:int setHeaderTopBottomOffset(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int) -> setHeaderTopBottomOffset
+    1717:1762:int setHeaderTopBottomOffset(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,int,int) -> setHeaderTopBottomOffset
+    1867:1878:boolean shouldJumpElevationState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> shouldJumpElevationState
+    1450:1493:void snapToChildIfNeeded(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> snapToChildIfNeeded
+    1589:1605:void updateAccessibilityActions(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> updateAccessibilityActions
+    1824:1862:void updateAppBarLayoutDrawableState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,int,boolean) -> updateAppBarLayoutDrawableState
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$1 -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$1:
+    1413:1413:void <init>(com.google.android.material.appbar.AppBarLayout$BaseBehavior,androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> <init>
+    1416:1418:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$2 -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$2:
+    1630:1630:void <init>(com.google.android.material.appbar.AppBarLayout$BaseBehavior,androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int) -> <init>
+    1633:1641:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$3 -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$3:
+    1662:1662:void <init>(com.google.android.material.appbar.AppBarLayout$BaseBehavior,com.google.android.material.appbar.AppBarLayout,boolean) -> <init>
+    1665:1666:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$BaseDragCallback -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$BaseDragCallback:
+    1228:1228:void <init>() -> <init>
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState:
+    1976:1976:void <clinit>() -> <clinit>
+    1958:1962:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1965:1966:void <init>(android.os.Parcelable) -> <init>
+    1970:1974:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState$1 -> com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState$1:
+    1977:1977:void <init>() -> <init>
+    1977:1977:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1977:1977:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1981:1981:com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1987:1987:com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1977:1977:java.lang.Object[] newArray(int) -> newArray
+    1993:1993:com.google.android.material.appbar.AppBarLayout$BaseBehavior$SavedState[] newArray(int) -> newArray
+com.google.android.material.appbar.AppBarLayout$Behavior -> com.google.android.material.appbar.AppBarLayout$Behavior:
+    1209:1210:void <init>() -> <init>
+    1213:1214:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1203:1203:int getLeftAndRightOffset() -> getLeftAndRightOffset
+    1203:1203:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    1203:1203:boolean isHorizontalOffsetEnabled() -> isHorizontalOffsetEnabled
+    1203:1203:boolean isVerticalOffsetEnabled() -> isVerticalOffsetEnabled
+    1203:1203:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int) -> onLayoutChild
+    1203:1203:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,int,int,int,int) -> onMeasureChild
+    1203:1203:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    1203:1203:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    1203:1203:void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.os.Parcelable) -> onRestoreInstanceState
+    1203:1203:android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout) -> onSaveInstanceState
+    1203:1203:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    1203:1203:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,android.view.View,int) -> onStopNestedScroll
+    1203:1203:void setDragCallback(com.google.android.material.appbar.AppBarLayout$BaseBehavior$BaseDragCallback) -> setDragCallback
+    1203:1203:void setHorizontalOffsetEnabled(boolean) -> setHorizontalOffsetEnabled
+    1203:1203:boolean setLeftAndRightOffset(int) -> setLeftAndRightOffset
+    1203:1203:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+    1203:1203:void setVerticalOffsetEnabled(boolean) -> setVerticalOffsetEnabled
+com.google.android.material.appbar.AppBarLayout$Behavior$DragCallback -> com.google.android.material.appbar.AppBarLayout$Behavior$DragCallback:
+    1206:1206:void <init>() -> <init>
+com.google.android.material.appbar.AppBarLayout$LayoutParams -> com.google.android.material.appbar.AppBarLayout$LayoutParams:
+    1099:1111:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1099:1115:void <init>(int,int) -> <init>
+    1099:1119:void <init>(int,int,float) -> <init>
+    1099:1123:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    1099:1127:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    1099:1133:void <init>(android.widget.LinearLayout$LayoutParams) -> <init>
+    1099:1141:void <init>(com.google.android.material.appbar.AppBarLayout$LayoutParams) -> <init>
+    1166:1166:int getScrollFlags() -> getScrollFlags
+    1188:1188:android.view.animation.Interpolator getScrollInterpolator() -> getScrollInterpolator
+    1193:1193:boolean isCollapsible() -> isCollapsible
+    1155:1156:void setScrollFlags(int) -> setScrollFlags
+    1177:1178:void setScrollInterpolator(android.view.animation.Interpolator) -> setScrollInterpolator
+com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior -> com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior:
+    2005:2005:void <init>() -> <init>
+    2008:2015:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    2003:2003:android.view.View findFirstDependency(java.util.List) -> findFirstDependency
+    2114:2120:com.google.android.material.appbar.AppBarLayout findFirstDependency(java.util.List) -> findFirstDependency
+    2103:2108:int getAppBarLayoutOffset(com.google.android.material.appbar.AppBarLayout) -> getAppBarLayoutOffset
+    2003:2003:int getLeftAndRightOffset() -> getLeftAndRightOffset
+    2082:2099:float getOverlapRatioForOffset(android.view.View) -> getOverlapRatioForOffset
+    2125:2128:int getScrollRange(android.view.View) -> getScrollRange
+    2003:2003:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    2003:2003:boolean isHorizontalOffsetEnabled() -> isHorizontalOffsetEnabled
+    2003:2003:boolean isVerticalOffsetEnabled() -> isVerticalOffsetEnabled
+    2020:2020:boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> layoutDependsOn
+    2065:2078:void offsetChildAsNeeded(android.view.View,android.view.View) -> offsetChildAsNeeded
+    2026:2028:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    2034:2038:void onDependentViewRemoved(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewRemoved
+    2003:2003:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    2003:2003:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    2046:2061:boolean onRequestChildRectangleOnScreen(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.graphics.Rect,boolean) -> onRequestChildRectangleOnScreen
+    2003:2003:void setHorizontalOffsetEnabled(boolean) -> setHorizontalOffsetEnabled
+    2003:2003:boolean setLeftAndRightOffset(int) -> setLeftAndRightOffset
+    2003:2003:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+    2003:2003:void setVerticalOffsetEnabled(boolean) -> setVerticalOffsetEnabled
+    2133:2139:void updateLiftedStateIfNeeded(android.view.View,android.view.View) -> updateLiftedStateIfNeeded
+com.google.android.material.appbar.CollapsingToolbarLayout -> com.google.android.material.appbar.CollapsingToolbarLayout:
+    119:119:void <clinit>() -> <clinit>
+    183:184:void <init>(android.content.Context) -> <init>
+    187:188:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    144:300:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    824:845:void animateScrim(int) -> animateScrim
+    1448:1448:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    427:430:void disableLiftOnScrollIfNeeded(com.google.android.material.appbar.AppBarLayout) -> disableLiftOnScrollIfNeeded
+    358:395:void draw(android.graphics.Canvas) -> draw
+    402:409:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    949:969:void drawableStateChanged() -> drawableStateChanged
+    448:480:void ensureToolbar() -> ensureToolbar
+    496:502:android.view.View findDirectChild(android.view.View) -> findDirectChild
+    117:117:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    117:117:android.widget.FrameLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1453:1453:com.google.android.material.appbar.CollapsingToolbarLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    117:117:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    117:117:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1458:1458:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1463:1463:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1069:1069:int getCollapsedTitleGravity() -> getCollapsedTitleGravity
+    1131:1131:android.graphics.Typeface getCollapsedTitleTypeface() -> getCollapsedTitleTypeface
+    915:915:android.graphics.drawable.Drawable getContentScrim() -> getContentScrim
+    1116:1116:int getExpandedTitleGravity() -> getExpandedTitleGravity
+    1239:1239:int getExpandedTitleMarginBottom() -> getExpandedTitleMarginBottom
+    1218:1218:int getExpandedTitleMarginEnd() -> getExpandedTitleMarginEnd
+    1176:1176:int getExpandedTitleMarginStart() -> getExpandedTitleMarginStart
+    1197:1197:int getExpandedTitleMarginTop() -> getExpandedTitleMarginTop
+    1146:1146:android.graphics.Typeface getExpandedTitleTypeface() -> getExpandedTitleTypeface
+    684:689:int getHeightWithMargins(android.view.View) -> getHeightWithMargins
+    1329:1329:int getHyphenationFrequency() -> getHyphenationFrequency
+    1278:1278:int getLineCount() -> getLineCount
+    1295:1295:float getLineSpacingAdd() -> getLineSpacingAdd
+    1312:1312:float getLineSpacingMultiplier() -> getLineSpacingMultiplier
+    1269:1269:int getMaxLines() -> getMaxLines
+    1582:1584:int getMaxOffsetForPinChild(android.view.View) -> getMaxOffsetForPinChild
+    859:859:int getScrimAlpha() -> getScrimAlpha
+    1443:1443:long getScrimAnimationDuration() -> getScrimAnimationDuration
+    1412:1428:int getScrimVisibleHeightTrigger() -> getScrimVisibleHeightTrigger
+    1021:1021:android.graphics.drawable.Drawable getStatusBarScrim() -> getStatusBarScrim
+    722:722:java.lang.CharSequence getTitle() -> getTitle
+    759:759:int getTitleCollapseMode() -> getTitleCollapseMode
+    673:679:java.lang.CharSequence getToolbarTitle(android.view.View) -> getToolbarTitle
+    694:699:com.google.android.material.appbar.ViewOffsetHelper getViewOffsetHelper(android.view.View) -> getViewOffsetHelper
+    1383:1383:boolean isExtraMultilineHeightEnabled() -> isExtraMultilineHeightEnabled
+    1365:1365:boolean isForceApplySystemWindowInsetTop() -> isForceApplySystemWindowInsetTop
+    1347:1347:boolean isRtlTextDirectionHeuristicsEnabled() -> isRtlTextDirectionHeuristicsEnabled
+    421:421:boolean isTitleCollapseFadeMode() -> isTitleCollapseFadeMode
+    787:787:boolean isTitleEnabled() -> isTitleEnabled
+    483:483:boolean isToolbar(android.view.View) -> isToolbar
+    488:488:boolean isToolbarChild(android.view.View) -> isToolbarChild
+    304:324:void onAttachedToWindow() -> onAttachedToWindow
+    329:335:void onDetachedFromWindow() -> onDetachedFromWindow
+    567:599:void onLayout(boolean,int,int,int,int) -> onLayout
+    525:563:void onMeasure(int,int) -> onMeasure
+    414:418:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    338:353:androidx.core.view.WindowInsetsCompat onWindowInsetChanged(androidx.core.view.WindowInsetsCompat) -> onWindowInsetChanged
+    1060:1061:void setCollapsedTitleGravity(int) -> setCollapsedTitleGravity
+    1032:1033:void setCollapsedTitleTextAppearance(int) -> setCollapsedTitleTextAppearance
+    1041:1042:void setCollapsedTitleTextColor(int) -> setCollapsedTitleTextColor
+    1050:1051:void setCollapsedTitleTextColor(android.content.res.ColorStateList) -> setCollapsedTitleTextColor
+    1125:1126:void setCollapsedTitleTypeface(android.graphics.Typeface) -> setCollapsedTitleTypeface
+    871:883:void setContentScrim(android.graphics.drawable.Drawable) -> setContentScrim
+    893:894:void setContentScrimColor(int) -> setContentScrimColor
+    904:905:void setContentScrimResource(int) -> setContentScrimResource
+    1088:1089:void setExpandedTitleColor(int) -> setExpandedTitleColor
+    1107:1108:void setExpandedTitleGravity(int) -> setExpandedTitleGravity
+    1163:1168:void setExpandedTitleMargin(int,int,int,int) -> setExpandedTitleMargin
+    1250:1252:void setExpandedTitleMarginBottom(int) -> setExpandedTitleMarginBottom
+    1229:1231:void setExpandedTitleMarginEnd(int) -> setExpandedTitleMarginEnd
+    1187:1189:void setExpandedTitleMarginStart(int) -> setExpandedTitleMarginStart
+    1208:1210:void setExpandedTitleMarginTop(int) -> setExpandedTitleMarginTop
+    1079:1080:void setExpandedTitleTextAppearance(int) -> setExpandedTitleTextAppearance
+    1097:1098:void setExpandedTitleTextColor(android.content.res.ColorStateList) -> setExpandedTitleTextColor
+    1140:1141:void setExpandedTitleTypeface(android.graphics.Typeface) -> setExpandedTitleTypeface
+    1374:1375:void setExtraMultilineHeightEnabled(boolean) -> setExtraMultilineHeightEnabled
+    1356:1357:void setForceApplySystemWindowInsetTop(boolean) -> setForceApplySystemWindowInsetTop
+    1322:1323:void setHyphenationFrequency(int) -> setHyphenationFrequency
+    1288:1289:void setLineSpacingAdd(float) -> setLineSpacingAdd
+    1305:1306:void setLineSpacingMultiplier(float) -> setLineSpacingMultiplier
+    1260:1261:void setMaxLines(int) -> setMaxLines
+    1338:1339:void setRtlTextDirectionHeuristicsEnabled(boolean) -> setRtlTextDirectionHeuristicsEnabled
+    848:856:void setScrimAlpha(int) -> setScrimAlpha
+    1438:1439:void setScrimAnimationDuration(long) -> setScrimAnimationDuration
+    1398:1403:void setScrimVisibleHeightTrigger(int) -> setScrimVisibleHeightTrigger
+    800:801:void setScrimsShown(boolean) -> setScrimsShown
+    813:821:void setScrimsShown(boolean,boolean) -> setScrimsShown
+    929:945:void setStatusBarScrim(android.graphics.drawable.Drawable) -> setStatusBarScrim
+    999:1000:void setStatusBarScrimColor(int) -> setStatusBarScrimColor
+    1010:1011:void setStatusBarScrimResource(int) -> setStatusBarScrimResource
+    710:712:void setTitle(java.lang.CharSequence) -> setTitle
+    732:750:void setTitleCollapseMode(int) -> setTitleCollapseMode
+    772:778:void setTitleEnabled(boolean) -> setTitleEnabled
+    978:987:void setVisibility(int) -> setVisibility
+    640:670:void updateCollapsedBounds(boolean) -> updateCollapsedBounds
+    1589:1590:void updateContentDescriptionFromTitle() -> updateContentDescriptionFromTitle
+    433:434:void updateContentScrimBounds(android.graphics.drawable.Drawable,int,int) -> updateContentScrimBounds
+    440:445:void updateContentScrimBounds(android.graphics.drawable.Drawable,android.view.View,int,int) -> updateContentScrimBounds
+    506:521:void updateDummyView() -> updateDummyView
+    1576:1579:void updateScrimVisibility() -> updateScrimVisibility
+    604:628:void updateTextBounds(int,int,int,int,boolean) -> updateTextBounds
+    631:637:void updateTitleFromToolbarIfNeeded() -> updateTitleFromToolbarIfNeeded
+    973:973:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+com.google.android.material.appbar.CollapsingToolbarLayout$1 -> com.google.android.material.appbar.CollapsingToolbarLayout$1:
+    293:293:void <init>(com.google.android.material.appbar.CollapsingToolbarLayout) -> <init>
+    297:297:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.appbar.CollapsingToolbarLayout$2 -> com.google.android.material.appbar.CollapsingToolbarLayout$2:
+    833:833:void <init>(com.google.android.material.appbar.CollapsingToolbarLayout) -> <init>
+    836:837:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.appbar.CollapsingToolbarLayout$LayoutParams -> com.google.android.material.appbar.CollapsingToolbarLayout$LayoutParams:
+    1491:1506:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1491:1510:void <init>(int,int) -> <init>
+    1491:1514:void <init>(int,int,int) -> <init>
+    1491:1518:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    1491:1522:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+    1491:1528:void <init>(android.widget.FrameLayout$LayoutParams) -> <init>
+    1548:1548:int getCollapseMode() -> getCollapseMode
+    1570:1570:float getParallaxMultiplier() -> getParallaxMultiplier
+    1537:1538:void setCollapseMode(int) -> setCollapseMode
+    1560:1561:void setParallaxMultiplier(float) -> setParallaxMultiplier
+com.google.android.material.appbar.CollapsingToolbarLayout$OffsetUpdateListener -> com.google.android.material.appbar.CollapsingToolbarLayout$OffsetUpdateListener:
+    1593:1593:void <init>(com.google.android.material.appbar.CollapsingToolbarLayout) -> <init>
+    1597:1635:void onOffsetChanged(com.google.android.material.appbar.AppBarLayout,int) -> onOffsetChanged
+com.google.android.material.appbar.HeaderBehavior -> com.google.android.material.appbar.HeaderBehavior:
+    45:50:void <init>() -> <init>
+    45:54:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    241:241:boolean canDragView(android.view.View) -> canDragView
+    254:257:void ensureVelocityTracker() -> ensureVelocityTracker
+    202:227:boolean fling(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,float) -> fling
+    246:246:int getMaxDragOffset(android.view.View) -> getMaxDragOffset
+    250:250:int getScrollRangeForDragFling(android.view.View) -> getScrollRangeForDragFling
+    183:183:int getTopBottomOffsetForScrollingSibling() -> getTopBottomOffsetForScrollingSibling
+    237:237:void onFlingFinished(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onFlingFinished
+    59:105:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    111:154:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    188:191:int scroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int) -> scroll
+    158:158:int setHeaderTopBottomOffset(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> setHeaderTopBottomOffset
+    164:179:int setHeaderTopBottomOffset(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int) -> setHeaderTopBottomOffset
+com.google.android.material.appbar.HeaderBehavior$FlingRunnable -> com.google.android.material.appbar.HeaderBehavior$FlingRunnable:
+    263:266:void <init>(com.google.android.material.appbar.HeaderBehavior,androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> <init>
+    270:279:void run() -> run
+com.google.android.material.appbar.HeaderScrollingViewBehavior -> com.google.android.material.appbar.HeaderScrollingViewBehavior:
+    41:47:void <init>() -> <init>
+    41:51:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    166:168:int getOverlapPixelsForOffset(android.view.View) -> getOverlapPixelsForOffset
+    162:162:float getOverlapRatioForOffset(android.view.View) -> getOverlapRatioForOffset
+    204:204:int getOverlayTop() -> getOverlayTop
+    179:179:int getScrollRange(android.view.View) -> getScrollRange
+    186:186:int getVerticalLayoutGap() -> getVerticalLayoutGap
+    113:155:void layoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> layoutChild
+    61:105:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    172:172:int resolveGravity(int) -> resolveGravity
+    196:197:void setOverlayTop(int) -> setOverlayTop
+    158:158:boolean shouldHeaderOverlapScrollingChild() -> shouldHeaderOverlapScrollingChild
+com.google.android.material.appbar.MaterialToolbar -> com.google.android.material.appbar.MaterialToolbar:
+    70:70:void <clinit>() -> <clinit>
+    77:78:void <init>(android.content.Context) -> <init>
+    81:82:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    85:103:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    137:154:android.util.Pair calculateTitleBoundLimits(android.widget.TextView,android.widget.TextView) -> calculateTitleBoundLimits
+    264:275:void initBackground(android.content.Context) -> initBackground
+    260:260:boolean isSubtitleCentered() -> isSubtitleCentered
+    236:236:boolean isTitleCentered() -> isTitleCentered
+    159:179:void layoutTitleCenteredHorizontally(android.view.View,android.util.Pair) -> layoutTitleCenteredHorizontally
+    113:133:void maybeCenterTitleViews() -> maybeCenterTitleViews
+    279:284:android.graphics.drawable.Drawable maybeTintNavigationIcon(android.graphics.drawable.Drawable) -> maybeTintNavigationIcon
+    183:186:void onAttachedToWindow() -> onAttachedToWindow
+    107:110:void onLayout(boolean,int,int,int,int) -> onLayout
+    191:194:void setElevation(float) -> setElevation
+    198:199:void setNavigationIcon(android.graphics.drawable.Drawable) -> setNavigationIcon
+    207:213:void setNavigationIconTint(int) -> setNavigationIconTint
+    247:251:void setSubtitleCentered(boolean) -> setSubtitleCentered
+    223:227:void setTitleCentered(boolean) -> setTitleCentered
+com.google.android.material.appbar.ViewOffsetBehavior -> com.google.android.material.appbar.ViewOffsetBehavior:
+    30:33:void <init>() -> <init>
+    30:37:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    92:92:int getLeftAndRightOffset() -> getLeftAndRightOffset
+    88:88:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    112:112:boolean isHorizontalOffsetEnabled() -> isHorizontalOffsetEnabled
+    102:102:boolean isVerticalOffsetEnabled() -> isVerticalOffsetEnabled
+    66:67:void layoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> layoutChild
+    43:60:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    106:109:void setHorizontalOffsetEnabled(boolean) -> setHorizontalOffsetEnabled
+    79:84:boolean setLeftAndRightOffset(int) -> setLeftAndRightOffset
+    70:75:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+    96:99:void setVerticalOffsetEnabled(boolean) -> setVerticalOffsetEnabled
+com.google.android.material.appbar.ViewOffsetHelper -> com.google.android.material.appbar.ViewOffsetHelper:
+    37:42:void <init>(android.view.View) -> <init>
+    51:53:void applyOffsets() -> applyOffsets
+    98:98:int getLayoutLeft() -> getLayoutLeft
+    94:94:int getLayoutTop() -> getLayoutTop
+    90:90:int getLeftAndRightOffset() -> getLeftAndRightOffset
+    86:86:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    114:114:boolean isHorizontalOffsetEnabled() -> isHorizontalOffsetEnabled
+    106:106:boolean isVerticalOffsetEnabled() -> isVerticalOffsetEnabled
+    46:48:void onViewLayout() -> onViewLayout
+    110:111:void setHorizontalOffsetEnabled(boolean) -> setHorizontalOffsetEnabled
+    77:82:boolean setLeftAndRightOffset(int) -> setLeftAndRightOffset
+    62:67:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+    102:103:void setVerticalOffsetEnabled(boolean) -> setVerticalOffsetEnabled
+com.google.android.material.appbar.ViewUtilsLollipop -> com.google.android.material.appbar.ViewUtilsLollipop:
+    36:36:void <clinit>() -> <clinit>
+    34:34:void <init>() -> <init>
+    39:40:void setBoundsViewOutlineProvider(android.view.View) -> setBoundsViewOutlineProvider
+    62:80:void setDefaultAppBarLayoutStateListAnimator(android.view.View,float) -> setDefaultAppBarLayoutStateListAnimator
+    44:57:void setStateListAnimatorFromAttrs(android.view.View,android.util.AttributeSet,int,int) -> setStateListAnimatorFromAttrs
+com.google.android.material.badge.BadgeDrawable -> com.google.android.material.badge.BadgeDrawable:
+    165:166:void <clinit>() -> <clinit>
+    425:440:void <init>(android.content.Context) -> <init>
+    929:981:void calculateCenterAndBounds(android.content.Context,android.graphics.Rect,android.view.View) -> calculateCenterAndBounds
+    654:656:void clearNumber() -> clearNumber
+    310:310:com.google.android.material.badge.BadgeDrawable create(android.content.Context) -> create
+    342:344:com.google.android.material.badge.BadgeDrawable createFromAttributes(android.content.Context,android.util.AttributeSet,int,int) -> createFromAttributes
+    327:332:com.google.android.material.badge.BadgeDrawable createFromResource(android.content.Context,int) -> createFromResource
+    302:304:com.google.android.material.badge.BadgeDrawable createFromSavedState(android.content.Context,com.google.android.material.badge.BadgeDrawable$SavedState) -> createFromSavedState
+    745:753:void draw(android.graphics.Canvas) -> draw
+    984:992:void drawText(android.graphics.Canvas) -> drawText
+    841:841:int getAdditionalHorizontalOffset() -> getAdditionalHorizontalOffset
+    873:873:int getAdditionalVerticalOffset() -> getAdditionalVerticalOffset
+    716:716:int getAlpha() -> getAlpha
+    570:570:int getBackgroundColor() -> getBackgroundColor
+    686:686:int getBadgeGravity() -> getBadgeGravity
+    997:1007:java.lang.String getBadgeText() -> getBadgeText
+    596:596:int getBadgeTextColor() -> getBadgeTextColor
+    786:808:java.lang.CharSequence getContentDescription() -> getContentDescription
+    511:511:android.widget.FrameLayout getCustomBadgeParent() -> getCustomBadgeParent
+    827:827:int getHorizontalOffset() -> getHorizontalOffset
+    734:734:int getIntrinsicHeight() -> getIntrinsicHeight
+    740:740:int getIntrinsicWidth() -> getIntrinsicWidth
+    665:665:int getMaxCharacterCount() -> getMaxCharacterCount
+    628:631:int getNumber() -> getNumber
+    728:728:int getOpacity() -> getOpacity
+    295:295:com.google.android.material.badge.BadgeDrawable$SavedState getSavedState() -> getSavedState
+    859:859:int getVerticalOffset() -> getVerticalOffset
+    615:615:boolean hasNumber() -> hasNumber
+    706:706:boolean isStateful() -> isStateful
+    390:418:void loadDefaultStateFromAttributes(android.content.Context,android.util.AttributeSet,int,int) -> loadDefaultStateFromAttributes
+    768:768:boolean onStateChange(int[]) -> onStateChange
+    763:764:void onTextSizeChange() -> onTextSizeChange
+    422:422:int readColorFromAttributes(android.content.Context,android.content.res.TypedArray,int) -> readColorFromAttributes
+    362:386:void restoreFromSavedState(com.google.android.material.badge.BadgeDrawable$SavedState) -> restoreFromSavedState
+    836:838:void setAdditionalHorizontalOffset(int) -> setAdditionalHorizontalOffset
+    868:870:void setAdditionalVerticalOffset(int) -> setAdditionalVerticalOffset
+    721:724:void setAlpha(int) -> setAlpha
+    580:586:void setBackgroundColor(int) -> setBackgroundColor
+    695:702:void setBadgeGravity(int) -> setBadgeGravity
+    606:611:void setBadgeTextColor(int) -> setBadgeTextColor
+    712:712:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    781:782:void setContentDescriptionExceedsMaxBadgeNumberStringResource(int) -> setContentDescriptionExceedsMaxBadgeNumberStringResource
+    772:773:void setContentDescriptionNumberless(java.lang.CharSequence) -> setContentDescriptionNumberless
+    776:777:void setContentDescriptionQuantityStringsResource(int) -> setContentDescriptionQuantityStringsResource
+    818:820:void setHorizontalOffset(int) -> setHorizontalOffset
+    675:682:void setMaxCharacterCount(int) -> setMaxCharacterCount
+    643:650:void setNumber(int) -> setNumber
+    885:894:void setTextAppearance(com.google.android.material.resources.TextAppearance) -> setTextAppearance
+    877:882:void setTextAppearanceResource(int) -> setTextAppearanceResource
+    850:852:void setVerticalOffset(int) -> setVerticalOffset
+    352:359:void setVisible(boolean) -> setVisible
+    519:554:void tryWrapAnchorInCompatParent(android.view.View) -> tryWrapAnchorInCompatParent
+    557:560:void updateAnchorParentToNotClip(android.view.View) -> updateAnchorParentToNotClip
+    456:460:void updateBadgeCoordinates(android.view.View,android.view.ViewGroup) -> updateBadgeCoordinates
+    475:476:void updateBadgeCoordinates(android.view.View) -> updateBadgeCoordinates
+    494:506:void updateBadgeCoordinates(android.view.View,android.widget.FrameLayout) -> updateBadgeCoordinates
+    897:925:void updateCenterAndBounds() -> updateCenterAndBounds
+    1013:1014:void updateMaxBadgeNumber() -> updateMaxBadgeNumber
+com.google.android.material.badge.BadgeDrawable$1 -> com.google.android.material.badge.BadgeDrawable$1:
+    548:548:void <init>(com.google.android.material.badge.BadgeDrawable,android.view.View,android.widget.FrameLayout) -> <init>
+    551:552:void run() -> run
+com.google.android.material.badge.BadgeDrawable$SavedState -> com.google.android.material.badge.BadgeDrawable$SavedState:
+    255:255:void <clinit>() -> <clinit>
+    204:237:void <init>(android.content.Context) -> <init>
+    204:253:void <init>(android.os.Parcel) -> <init>
+    200:200:boolean access$000(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$000
+    200:200:boolean access$002(com.google.android.material.badge.BadgeDrawable$SavedState,boolean) -> access$002
+    200:200:int access$100(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$100
+    200:200:int access$1000(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$1000
+    200:200:int access$1002(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$1002
+    200:200:int access$102(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$102
+    200:200:java.lang.CharSequence access$1100(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$1100
+    200:200:java.lang.CharSequence access$1102(com.google.android.material.badge.BadgeDrawable$SavedState,java.lang.CharSequence) -> access$1102
+    200:200:int access$1200(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$1200
+    200:200:int access$1202(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$1202
+    200:200:int access$1300(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$1300
+    200:200:int access$1302(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$1302
+    200:200:int access$200(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$200
+    200:200:int access$202(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$202
+    200:200:int access$300(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$300
+    200:200:int access$302(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$302
+    200:200:int access$400(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$400
+    200:200:int access$402(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$402
+    200:200:int access$500(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$500
+    200:200:int access$502(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$502
+    200:200:int access$600(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$600
+    200:200:int access$602(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$602
+    200:200:int access$700(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$700
+    200:200:int access$702(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$702
+    200:200:int access$800(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$800
+    200:200:int access$802(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$802
+    200:200:int access$900(com.google.android.material.badge.BadgeDrawable$SavedState) -> access$900
+    200:200:int access$902(com.google.android.material.badge.BadgeDrawable$SavedState,int) -> access$902
+    272:272:int describeContents() -> describeContents
+    277:290:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.badge.BadgeDrawable$SavedState$1 -> com.google.android.material.badge.BadgeDrawable$SavedState$1:
+    256:256:void <init>() -> <init>
+    256:256:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    260:260:com.google.android.material.badge.BadgeDrawable$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    256:256:java.lang.Object[] newArray(int) -> newArray
+    266:266:com.google.android.material.badge.BadgeDrawable$SavedState[] newArray(int) -> newArray
+com.google.android.material.badge.BadgeUtils -> com.google.android.material.badge.BadgeUtils:
+    48:48:void <clinit>() -> <clinit>
+    52:54:void <init>() -> <init>
+    76:77:void attachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,android.view.View) -> attachBadgeDrawable
+    89:101:void attachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,android.view.View,android.widget.FrameLayout) -> attachBadgeDrawable
+    110:111:void attachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,androidx.appcompat.widget.Toolbar,int) -> attachBadgeDrawable
+    126:138:void attachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,androidx.appcompat.widget.Toolbar,int,android.widget.FrameLayout) -> attachBadgeDrawable
+    243:253:android.util.SparseArray createBadgeDrawablesFromSavedStates(android.content.Context,com.google.android.material.internal.ParcelableSparseArray) -> createBadgeDrawablesFromSavedStates
+    218:227:com.google.android.material.internal.ParcelableSparseArray createParcelableBadgeStates(android.util.SparseArray) -> createParcelableBadgeStates
+    147:155:void detachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,android.view.View) -> detachBadgeDrawable
+    164:174:void detachBadgeDrawable(com.google.android.material.badge.BadgeDrawable,androidx.appcompat.widget.Toolbar,int) -> detachBadgeDrawable
+    188:190:void removeToolbarOffset(com.google.android.material.badge.BadgeDrawable) -> removeToolbarOffset
+    200:204:void setBadgeDrawableBounds(com.google.android.material.badge.BadgeDrawable,android.view.View,android.widget.FrameLayout) -> setBadgeDrawableBounds
+    178:184:void setToolbarOffset(com.google.android.material.badge.BadgeDrawable,android.content.res.Resources) -> setToolbarOffset
+    67:72:void updateBadgeBounds(android.graphics.Rect,float,float,float,float) -> updateBadgeBounds
+com.google.android.material.badge.BadgeUtils$1 -> com.google.android.material.badge.BadgeUtils$1:
+    127:127:void <init>(androidx.appcompat.widget.Toolbar,int,com.google.android.material.badge.BadgeDrawable,android.widget.FrameLayout) -> <init>
+    130:136:void run() -> run
+com.google.android.material.behavior.HideBottomViewOnScrollBehavior -> com.google.android.material.behavior.HideBottomViewOnScrollBehavior:
+    47:52:void <init>() -> <init>
+    47:56:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:39:android.view.ViewPropertyAnimator access$002(com.google.android.material.behavior.HideBottomViewOnScrollBehavior,android.view.ViewPropertyAnimator) -> access$002
+    151:164:void animateChildTo(android.view.View,int,long,android.animation.TimeInterpolator) -> animateChildTo
+    61:64:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    103:108:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    89:89:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    74:79:void setAdditionalHiddenOffsetY(android.view.View,int) -> setAdditionalHiddenOffsetY
+    133:147:void slideDown(android.view.View) -> slideDown
+    115:126:void slideUp(android.view.View) -> slideUp
+com.google.android.material.behavior.HideBottomViewOnScrollBehavior$1 -> com.google.android.material.behavior.HideBottomViewOnScrollBehavior$1:
+    158:158:void <init>(com.google.android.material.behavior.HideBottomViewOnScrollBehavior) -> <init>
+    161:162:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.behavior.SwipeDismissBehavior -> com.google.android.material.behavior.SwipeDismissBehavior:
+    43:231:void <init>() -> <init>
+    228:228:boolean canSwipeDismissView(android.view.View) -> canSwipeDismissView
+    439:439:float clamp(float,float,float) -> clamp
+    443:443:int clamp(int,int,int) -> clamp
+    379:385:void ensureViewDragHelper(android.view.ViewGroup) -> ensureViewDragHelper
+    458:458:float fraction(float,float,float) -> fraction
+    453:453:int getDragState() -> getDragState
+    123:123:com.google.android.material.behavior.SwipeDismissBehavior$OnDismissListener getListener() -> getListener
+    190:209:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    178:184:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    214:218:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    142:143:void setDragDismissDistance(float) -> setDragDismissDistance
+    160:161:void setEndAlphaSwipeDistance(float) -> setEndAlphaSwipeDistance
+    117:118:void setListener(com.google.android.material.behavior.SwipeDismissBehavior$OnDismissListener) -> setListener
+    171:173:void setSensitivity(float) -> setSensitivity
+    151:152:void setStartAlphaSwipeDistance(float) -> setStartAlphaSwipeDistance
+    133:134:void setSwipeDirection(int) -> setSwipeDirection
+    409:436:void updateAccessibilityActions(android.view.View) -> updateAccessibilityActions
+com.google.android.material.behavior.SwipeDismissBehavior$1 -> com.google.android.material.behavior.SwipeDismissBehavior$1:
+    232:236:void <init>(com.google.android.material.behavior.SwipeDismissBehavior) -> <init>
+    325:351:int clampViewPositionHorizontal(android.view.View,int,int) -> clampViewPositionHorizontal
+    356:356:int clampViewPositionVertical(android.view.View,int,int) -> clampViewPositionVertical
+    320:320:int getViewHorizontalDragRange(android.view.View) -> getViewHorizontalDragRange
+    247:256:void onViewCaptured(android.view.View,int) -> onViewCaptured
+    260:263:void onViewDragStateChanged(int) -> onViewDragStateChanged
+    361:375:void onViewPositionChanged(android.view.View,int,int,int,int) -> onViewPositionChanged
+    268:290:void onViewReleased(android.view.View,float,float) -> onViewReleased
+    293:315:boolean shouldDismiss(android.view.View,float) -> shouldDismiss
+    241:242:boolean tryCaptureView(android.view.View,int) -> tryCaptureView
+com.google.android.material.behavior.SwipeDismissBehavior$2 -> com.google.android.material.behavior.SwipeDismissBehavior$2:
+    415:415:void <init>(com.google.android.material.behavior.SwipeDismissBehavior) -> <init>
+    418:432:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+com.google.android.material.behavior.SwipeDismissBehavior$SettleRunnable -> com.google.android.material.behavior.SwipeDismissBehavior$SettleRunnable:
+    391:394:void <init>(com.google.android.material.behavior.SwipeDismissBehavior,android.view.View,boolean) -> <init>
+    398:405:void run() -> run
+com.google.android.material.bottomappbar.BottomAppBar -> com.google.android.material.bottomappbar.BottomAppBar:
+    111:111:void <clinit>() -> <clinit>
+    236:237:void <init>(android.content.Context) -> <init>
+    240:241:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    140:331:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    109:109:boolean access$000(com.google.android.material.bottomappbar.BottomAppBar) -> access$000
+    109:109:boolean access$002(com.google.android.material.bottomappbar.BottomAppBar,boolean) -> access$002
+    109:109:int access$100(com.google.android.material.bottomappbar.BottomAppBar) -> access$100
+    109:109:boolean access$1000(com.google.android.material.bottomappbar.BottomAppBar) -> access$1000
+    109:109:int access$1100(com.google.android.material.bottomappbar.BottomAppBar) -> access$1100
+    109:109:int access$1102(com.google.android.material.bottomappbar.BottomAppBar,int) -> access$1102
+    109:109:void access$1200(com.google.android.material.bottomappbar.BottomAppBar) -> access$1200
+    109:109:void access$1300(com.google.android.material.bottomappbar.BottomAppBar) -> access$1300
+    109:109:void access$1400(com.google.android.material.bottomappbar.BottomAppBar) -> access$1400
+    109:109:void access$1500(com.google.android.material.bottomappbar.BottomAppBar) -> access$1500
+    109:109:void access$1600(com.google.android.material.bottomappbar.BottomAppBar) -> access$1600
+    109:109:android.animation.Animator access$1702(com.google.android.material.bottomappbar.BottomAppBar,android.animation.Animator) -> access$1702
+    109:109:float access$1800(com.google.android.material.bottomappbar.BottomAppBar,int) -> access$1800
+    109:109:android.animation.Animator access$1902(com.google.android.material.bottomappbar.BottomAppBar,android.animation.Animator) -> access$1902
+    109:109:boolean access$200(com.google.android.material.bottomappbar.BottomAppBar) -> access$200
+    109:109:int access$2000(com.google.android.material.bottomappbar.BottomAppBar) -> access$2000
+    109:109:void access$2100(com.google.android.material.bottomappbar.BottomAppBar,androidx.appcompat.widget.ActionMenuView,int,boolean,boolean) -> access$2100
+    109:109:com.google.android.material.floatingactionbutton.FloatingActionButton access$2200(com.google.android.material.bottomappbar.BottomAppBar) -> access$2200
+    109:109:float access$2300(com.google.android.material.bottomappbar.BottomAppBar) -> access$2300
+    109:109:int access$2700(com.google.android.material.bottomappbar.BottomAppBar) -> access$2700
+    109:109:int access$2800(com.google.android.material.bottomappbar.BottomAppBar) -> access$2800
+    109:109:int access$2900(com.google.android.material.bottomappbar.BottomAppBar) -> access$2900
+    109:109:void access$300(com.google.android.material.bottomappbar.BottomAppBar,int,boolean) -> access$300
+    109:109:int access$3000(com.google.android.material.bottomappbar.BottomAppBar) -> access$3000
+    109:109:android.view.View access$3100(com.google.android.material.bottomappbar.BottomAppBar) -> access$3100
+    109:109:void access$3200(com.google.android.material.bottomappbar.BottomAppBar,com.google.android.material.floatingactionbutton.FloatingActionButton) -> access$3200
+    109:109:com.google.android.material.shape.MaterialShapeDrawable access$400(com.google.android.material.bottomappbar.BottomAppBar) -> access$400
+    109:109:com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment access$500(com.google.android.material.bottomappbar.BottomAppBar) -> access$500
+    109:109:boolean access$600(com.google.android.material.bottomappbar.BottomAppBar) -> access$600
+    109:109:int access$702(com.google.android.material.bottomappbar.BottomAppBar,int) -> access$702
+    109:109:boolean access$800(com.google.android.material.bottomappbar.BottomAppBar) -> access$800
+    109:109:int access$900(com.google.android.material.bottomappbar.BottomAppBar) -> access$900
+    109:109:int access$902(com.google.android.material.bottomappbar.BottomAppBar,int) -> access$902
+    509:513:void addAnimationListener(com.google.android.material.bottomappbar.BottomAppBar$AnimationListener) -> addAnimationListener
+    936:951:void addFabAnimationListeners(com.google.android.material.floatingactionbutton.FloatingActionButton) -> addFabAnimationListeners
+    872:878:void cancelAnimations() -> cancelAnimations
+    634:656:void createFabDefaultXAnimation(int,java.util.List) -> createFabDefaultXAnimation
+    660:664:void createFabTranslationXAnimation(int,java.util.List) -> createFabTranslationXAnimation
+    714:760:void createMenuViewTranslationAnimation(int,boolean,java.util.List) -> createMenuViewTranslationAnimation
+    532:538:void dispatchAnimationEnd() -> dispatchAnimationEnd
+    523:529:void dispatchAnimationStart() -> dispatchAnimationStart
+    599:600:com.google.android.material.floatingactionbutton.FloatingActionButton findDependentFab() -> findDependentFab
+    605:617:android.view.View findDependentView() -> findDependentView
+    783:790:androidx.appcompat.widget.ActionMenuView getActionMenuView() -> getActionMenuView
+    841:868:int getActionMenuViewTranslationX(androidx.appcompat.widget.ActionMenuView,int,boolean) -> getActionMenuViewTranslationX
+    400:400:android.content.res.ColorStateList getBackgroundTint() -> getBackgroundTint
+    109:109:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior getBehavior() -> getBehavior
+    978:981:com.google.android.material.bottomappbar.BottomAppBar$Behavior getBehavior() -> getBehavior
+    954:954:int getBottomInset() -> getBottomInset
+    440:440:float getCradleVerticalOffset() -> getCradleVerticalOffset
+    339:339:int getFabAlignmentMode() -> getFabAlignmentMode
+    380:380:int getFabAnimationMode() -> getFabAnimationMode
+    407:407:float getFabCradleMargin() -> getFabCradleMargin
+    423:423:float getFabCradleRoundedCornerRadius() -> getFabCradleRoundedCornerRadius
+    767:773:float getFabTranslationX(int) -> getFabTranslationX
+    778:778:float getFabTranslationX() -> getFabTranslationX
+    763:763:float getFabTranslationY() -> getFabTranslationY
+    462:462:boolean getHideOnScroll() -> getHideOnScroll
+    962:962:int getLeftInset() -> getLeftInset
+    958:958:int getRightInset() -> getRightInset
+    900:901:com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment getTopEdgeTreatment() -> getTopEdgeTreatment
+    621:622:boolean isFabVisibleOrWillBeShown() -> isFabVisibleOrWillBeShown
+    667:707:void maybeAnimateMenuView(int,boolean) -> maybeAnimateMenuView
+    562:595:void maybeAnimateModeChange(int) -> maybeAnimateModeChange
+    986:995:void onAttachedToWindow() -> onAttachedToWindow
+    882:896:void onLayout(boolean,int,int,int,int) -> onLayout
+    1144:1152:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    1135:1139:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    476:477:void performHide() -> performHide
+    481:482:void performShow() -> performShow
+    516:520:void removeAnimationListener(com.google.android.material.bottomappbar.BottomAppBar$AnimationListener) -> removeAnimationListener
+    499:505:void replaceMenu(int) -> replaceMenu
+    916:927:void setActionMenuViewPosition() -> setActionMenuViewPosition
+    395:396:void setBackgroundTint(android.content.res.ColorStateList) -> setBackgroundTint
+    449:454:void setCradleVerticalOffset(float) -> setCradleVerticalOffset
+    906:913:void setCutoutState() -> setCutoutState
+    486:491:void setElevation(float) -> setElevation
+    350:351:void setFabAlignmentMode(int) -> setFabAlignmentMode
+    367:372:void setFabAlignmentModeAndReplaceMenu(int,int) -> setFabAlignmentModeAndReplaceMenu
+    391:392:void setFabAnimationMode(int) -> setFabAnimationMode
+    555:559:void setFabCornerSize(float) -> setFabCornerSize
+    414:418:void setFabCradleMargin(float) -> setFabCradleMargin
+    428:432:void setFabCradleRoundedCornerRadius(float) -> setFabCradleRoundedCornerRadius
+    545:551:boolean setFabDiameter(int) -> setFabDiameter
+    471:472:void setHideOnScroll(boolean) -> setHideOnScroll
+    973:973:void setSubtitle(java.lang.CharSequence) -> setSubtitle
+    968:968:void setTitle(java.lang.CharSequence) -> setTitle
+    797:798:void translateActionMenuView(androidx.appcompat.widget.ActionMenuView,int,boolean) -> translateActionMenuView
+    815:829:void translateActionMenuView(androidx.appcompat.widget.ActionMenuView,int,boolean,boolean) -> translateActionMenuView
+com.google.android.material.bottomappbar.BottomAppBar$1 -> com.google.android.material.bottomappbar.BottomAppBar$1:
+    193:193:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    200:203:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.bottomappbar.BottomAppBar$2 -> com.google.android.material.bottomappbar.BottomAppBar$2:
+    209:209:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    209:209:void onScaleChanged(android.view.View) -> onScaleChanged
+    212:214:void onScaleChanged(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onScaleChanged
+    209:209:void onTranslationChanged(android.view.View) -> onTranslationChanged
+    218:232:void onTranslationChanged(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onTranslationChanged
+com.google.android.material.bottomappbar.BottomAppBar$3 -> com.google.android.material.bottomappbar.BottomAppBar$3:
+    296:296:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    305:328:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,com.google.android.material.internal.ViewUtils$RelativePadding) -> onApplyWindowInsets
+com.google.android.material.bottomappbar.BottomAppBar$4 -> com.google.android.material.bottomappbar.BottomAppBar$4:
+    582:582:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    590:592:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    585:586:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.bottomappbar.BottomAppBar$5 -> com.google.android.material.bottomappbar.BottomAppBar$5:
+    643:643:void <init>(com.google.android.material.bottomappbar.BottomAppBar,int) -> <init>
+    646:654:void onHidden(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onHidden
+com.google.android.material.bottomappbar.BottomAppBar$5$1 -> com.google.android.material.bottomappbar.BottomAppBar$5$1:
+    648:648:void <init>(com.google.android.material.bottomappbar.BottomAppBar$5) -> <init>
+    651:652:void onShown(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onShown
+com.google.android.material.bottomappbar.BottomAppBar$6 -> com.google.android.material.bottomappbar.BottomAppBar$6:
+    693:693:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    701:704:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    696:697:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.bottomappbar.BottomAppBar$7 -> com.google.android.material.bottomappbar.BottomAppBar$7:
+    733:733:void <init>(com.google.android.material.bottomappbar.BottomAppBar,androidx.appcompat.widget.ActionMenuView,int,boolean) -> <init>
+    738:739:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    743:748:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.bottomappbar.BottomAppBar$8 -> com.google.android.material.bottomappbar.BottomAppBar$8:
+    815:815:void <init>(com.google.android.material.bottomappbar.BottomAppBar,androidx.appcompat.widget.ActionMenuView,int,boolean) -> <init>
+    818:820:void run() -> run
+com.google.android.material.bottomappbar.BottomAppBar$9 -> com.google.android.material.bottomappbar.BottomAppBar$9:
+    938:938:void <init>(com.google.android.material.bottomappbar.BottomAppBar) -> <init>
+    941:948:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.bottomappbar.BottomAppBar$Behavior -> com.google.android.material.bottomappbar.BottomAppBar$Behavior:
+    1009:1074:void <init>() -> <init>
+    1009:1079:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1001:1001:java.lang.ref.WeakReference access$2400(com.google.android.material.bottomappbar.BottomAppBar$Behavior) -> access$2400
+    1001:1001:android.graphics.Rect access$2500(com.google.android.material.bottomappbar.BottomAppBar$Behavior) -> access$2500
+    1001:1001:int access$2600(com.google.android.material.bottomappbar.BottomAppBar$Behavior) -> access$2600
+    1001:1001:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    1084:1114:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.bottomappbar.BottomAppBar,int) -> onLayoutChild
+    1001:1001:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    1126:1127:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.bottomappbar.BottomAppBar,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+com.google.android.material.bottomappbar.BottomAppBar$Behavior$1 -> com.google.android.material.bottomappbar.BottomAppBar$Behavior$1:
+    1010:1010:void <init>(com.google.android.material.bottomappbar.BottomAppBar$Behavior) -> <init>
+    1022:1069:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.google.android.material.bottomappbar.BottomAppBar$SavedState -> com.google.android.material.bottomappbar.BottomAppBar$SavedState:
+    1175:1175:void <clinit>() -> <clinit>
+    1159:1160:void <init>(android.os.Parcelable) -> <init>
+    1163:1166:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1170:1173:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.bottomappbar.BottomAppBar$SavedState$1 -> com.google.android.material.bottomappbar.BottomAppBar$SavedState$1:
+    1176:1176:void <init>() -> <init>
+    1176:1176:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1176:1176:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1180:1180:com.google.android.material.bottomappbar.BottomAppBar$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1186:1186:com.google.android.material.bottomappbar.BottomAppBar$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1176:1176:java.lang.Object[] newArray(int) -> newArray
+    1192:1192:com.google.android.material.bottomappbar.BottomAppBar$SavedState[] newArray(int) -> newArray
+com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment -> com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment:
+    53:69:void <init>(float,float,float) -> <init>
+    223:223:float getCradleVerticalOffset() -> getCradleVerticalOffset
+    74:180:void getEdgePath(float,float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+    255:255:float getFabCornerRadius() -> getFabCornerRadius
+    239:239:float getFabCradleMargin() -> getFabCradleMargin
+    247:247:float getFabCradleRoundedCornerRadius() -> getFabCradleRoundedCornerRadius
+    189:189:float getFabDiameter() -> getFabDiameter
+    214:214:float getHorizontalOffset() -> getHorizontalOffset
+    232:236:void setCradleVerticalOffset(float) -> setCradleVerticalOffset
+    259:260:void setFabCornerSize(float) -> setFabCornerSize
+    243:244:void setFabCradleMargin(float) -> setFabCradleMargin
+    251:252:void setFabCradleRoundedCornerRadius(float) -> setFabCradleRoundedCornerRadius
+    199:200:void setFabDiameter(float) -> setFabDiameter
+    204:205:void setHorizontalOffset(float) -> setHorizontalOffset
+com.google.android.material.bottomnavigation.BottomNavigationItemView -> com.google.android.material.bottomnavigation.BottomNavigationItemView:
+    34:35:void <init>(android.content.Context) -> <init>
+    46:46:int getItemDefaultMarginResId() -> getItemDefaultMarginResId
+    40:40:int getItemLayoutResId() -> getItemLayoutResId
+com.google.android.material.bottomnavigation.BottomNavigationMenuView -> com.google.android.material.bottomnavigation.BottomNavigationMenuView:
+    49:69:void <init>(android.content.Context) -> <init>
+    197:197:com.google.android.material.navigation.NavigationBarItemView createNavigationBarItemView(android.content.Context) -> createNavigationBarItemView
+    191:191:boolean isItemHorizontalTranslationEnabled() -> isItemHorizontalTranslationEnabled
+    153:169:void onLayout(boolean,int,int,int,int) -> onLayout
+    73:149:void onMeasure(int,int) -> onMeasure
+    180:181:void setItemHorizontalTranslationEnabled(boolean) -> setItemHorizontalTranslationEnabled
+com.google.android.material.bottomnavigation.BottomNavigationView -> com.google.android.material.bottomnavigation.BottomNavigationView:
+    89:90:void <init>(android.content.Context) -> <init>
+    93:94:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    98:99:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    103:122:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    177:186:void addCompatibilityTopDivider(android.content.Context) -> addCompatibilityTopDivider
+    160:160:com.google.android.material.navigation.NavigationBarMenuView createNavigationBarMenuView(android.content.Context) -> createNavigationBarMenuView
+    152:152:int getMaxItemCount() -> getMaxItemCount
+    147:147:boolean isItemHorizontalTranslationEnabled() -> isItemHorizontalTranslationEnabled
+    132:137:void setItemHorizontalTranslationEnabled(boolean) -> setItemHorizontalTranslationEnabled
+    212:213:void setOnNavigationItemReselectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener) -> setOnNavigationItemReselectedListener
+    199:200:void setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener) -> setOnNavigationItemSelectedListener
+    168:168:boolean shouldDrawCompatibilityTopDivider() -> shouldDrawCompatibilityTopDivider
+com.google.android.material.bottomsheet.BottomSheetBehavior -> com.google.android.material.bottomsheet.BottomSheetBehavior:
+    244:244:void <clinit>() -> <clinit>
+    188:1470:void <init>() -> <init>
+    188:1470:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    83:83:com.google.android.material.shape.MaterialShapeDrawable access$000(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$000
+    83:83:boolean access$1000(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$1000
+    83:83:int access$102(com.google.android.material.bottomsheet.BottomSheetBehavior,int) -> access$102
+    83:83:int access$1100(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$1100
+    83:83:boolean access$1200(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$1200
+    83:83:boolean access$200(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$200
+    83:83:int access$300(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$300
+    83:83:int access$302(com.google.android.material.bottomsheet.BottomSheetBehavior,int) -> access$302
+    83:83:boolean access$400(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$400
+    83:83:boolean access$500(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$500
+    83:83:int access$602(com.google.android.material.bottomsheet.BottomSheetBehavior,int) -> access$602
+    83:83:void access$700(com.google.android.material.bottomsheet.BottomSheetBehavior,boolean) -> access$700
+    83:83:boolean access$900(com.google.android.material.bottomsheet.BottomSheetBehavior) -> access$900
+    1900:1903:int addAccessibilityActionForState(android.view.View,int,int) -> addAccessibilityActionForState
+    1081:1084:void addBottomSheetCallback(com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback) -> addBottomSheetCallback
+    1235:1242:void calculateCollapsedOffset() -> calculateCollapsedOffset
+    1245:1246:void calculateHalfExpandedOffset() -> calculateHalfExpandedOffset
+    1222:1231:int calculatePeekHeight() -> calculatePeekHeight
+    1907:1907:androidx.core.view.accessibility.AccessibilityViewCommand createAccessibilityViewCommandForState(int) -> createAccessibilityViewCommandForState
+    1309:1310:void createMaterialShapeDrawable(android.content.Context,android.util.AttributeSet,boolean) -> createMaterialShapeDrawable
+    1317:1334:void createMaterialShapeDrawable(android.content.Context,android.util.AttributeSet,boolean,android.content.res.ColorStateList) -> createMaterialShapeDrawable
+    1341:1353:void createShapeValueAnimator() -> createShapeValueAnimator
+    1648:1649:void disableShapeAnimations() -> disableShapeAnimations
+    1620:1630:void dispatchOnSlide(int) -> dispatchOnSlide
+    1292:1304:android.view.View findScrollingChild(android.view.View) -> findScrollingChild
+    1761:1770:com.google.android.material.bottomsheet.BottomSheetBehavior from(android.view.View) -> from
+    960:962:int getExpandedOffset() -> getExpandedOffset
+    932:932:float getHalfExpandedRatio() -> getHalfExpandedRatio
+    1337:1337:com.google.android.material.shape.MaterialShapeDrawable getMaterialShapeDrawable() -> getMaterialShapeDrawable
+    829:829:int getMaxWidth() -> getMaxWidth
+    898:898:int getPeekHeight() -> getPeekHeight
+    1634:1634:int getPeekHeightMin() -> getPeekHeightMin
+    1050:1050:int getSaveFlags() -> getSaveFlags
+    1013:1013:boolean getSkipCollapsed() -> getSkipCollapsed
+    1168:1168:int getState() -> getState
+    1414:1418:float getYVelocity() -> getYVelocity
+    1028:1028:boolean isDraggable() -> isDraggable
+    781:781:boolean isFitToContents() -> isFitToContents
+    1136:1136:boolean isGestureInsetBottomIgnored() -> isGestureInsetBottomIgnored
+    989:989:boolean isHideable() -> isHideable
+    396:401:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    405:409:void onDetachedFromLayoutParams() -> onDetachedFromLayoutParams
+    501:558:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    414:495:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    766:771:boolean onNestedPreFling(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,float,float) -> onNestedPreFling
+    614:660:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    757:757:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    382:392:void onRestoreInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.os.Parcelable) -> onRestoreInstanceState
+    376:376:android.os.Parcelable onSaveInstanceState(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onSaveInstanceState
+    600:602:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    668:743:void onStopNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int) -> onStopNestedScroll
+    564:589:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    1092:1093:void removeBottomSheetCallback(com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback) -> removeBottomSheetCallback
+    1895:1897:void replaceAccessibilityActionForState(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat$AccessibilityActionCompat,int) -> replaceAccessibilityActionForState
+    1249:1254:void reset() -> reset
+    1257:1274:void restoreOptionalState(com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState) -> restoreOptionalState
+    1062:1073:void setBottomSheetCallback(com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback) -> setBottomSheetCallback
+    1024:1025:void setDraggable(boolean) -> setDraggable
+    946:950:void setExpandedOffset(int) -> setExpandedOffset
+    792:806:void setFitToContents(boolean) -> setFitToContents
+    1129:1130:void setGestureInsetBottomIgnored(boolean) -> setGestureInsetBottomIgnored
+    913:922:void setHalfExpandedRatio(float) -> setHalfExpandedRatio
+    972:980:void setHideable(boolean) -> setHideable
+    818:819:void setMaxWidth(int) -> setMaxWidth
+    841:842:void setPeekHeight(int) -> setPeekHeight
+    855:871:void setPeekHeight(int,boolean) -> setPeekHeight
+    1040:1041:void setSaveFlags(int) -> setSaveFlags
+    1001:1002:void setSkipCollapsed(boolean) -> setSkipCollapsed
+    1103:1117:void setState(int) -> setState
+    1172:1197:void setStateInternal(int) -> setStateInternal
+    1782:1783:void setUpdateImportantForAccessibilityOnSiblings(boolean) -> setUpdateImportantForAccessibilityOnSiblings
+    1358:1411:void setWindowInsetsListener(android.view.View) -> setWindowInsetsListener
+    1423:1440:void settleToState(android.view.View,int) -> settleToState
+    1140:1158:void settleToStatePendingLayout(int) -> settleToStatePendingLayout
+    1277:1286:boolean shouldHide(android.view.View,float) -> shouldHide
+    1443:1468:void startSettlingAnimation(android.view.View,int,int,boolean) -> startSettlingAnimation
+    1841:1891:void updateAccessibilityActions() -> updateAccessibilityActions
+    1200:1219:void updateDrawableForTargetState(int) -> updateDrawableForTargetState
+    1786:1838:void updateImportantForAccessibility(boolean) -> updateImportantForAccessibility
+    874:887:void updatePeekHeight(boolean) -> updatePeekHeight
+com.google.android.material.bottomsheet.BottomSheetBehavior$1 -> com.google.android.material.bottomsheet.BottomSheetBehavior$1:
+    449:449:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior,android.view.View,android.view.ViewGroup$LayoutParams) -> <init>
+    452:453:void run() -> run
+com.google.android.material.bottomsheet.BottomSheetBehavior$2 -> com.google.android.material.bottomsheet.BottomSheetBehavior$2:
+    1149:1149:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior,android.view.View,int) -> <init>
+    1152:1153:void run() -> run
+com.google.android.material.bottomsheet.BottomSheetBehavior$3 -> com.google.android.material.bottomsheet.BottomSheetBehavior$3:
+    1344:1344:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior) -> <init>
+    1347:1351:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.bottomsheet.BottomSheetBehavior$4 -> com.google.android.material.bottomsheet.BottomSheetBehavior$4:
+    1370:1370:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior,boolean) -> <init>
+    1374:1408:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,com.google.android.material.internal.ViewUtils$RelativePadding) -> onApplyWindowInsets
+com.google.android.material.bottomsheet.BottomSheetBehavior$5 -> com.google.android.material.bottomsheet.BottomSheetBehavior$5:
+    1471:1471:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior) -> <init>
+    1606:1606:int clampViewPositionHorizontal(android.view.View,int,int) -> clampViewPositionHorizontal
+    1600:1601:int clampViewPositionVertical(android.view.View,int,int) -> clampViewPositionVertical
+    1611:1614:int getViewVerticalDragRange(android.view.View) -> getViewVerticalDragRange
+    1499:1502:void onViewDragStateChanged(int) -> onViewDragStateChanged
+    1494:1495:void onViewPositionChanged(android.view.View,int,int,int,int) -> onViewPositionChanged
+    1513:1596:void onViewReleased(android.view.View,float,float) -> onViewReleased
+    1506:1506:boolean releasedLow(android.view.View) -> releasedLow
+    1475:1488:boolean tryCaptureView(android.view.View,int) -> tryCaptureView
+com.google.android.material.bottomsheet.BottomSheetBehavior$6 -> com.google.android.material.bottomsheet.BottomSheetBehavior$6:
+    1907:1907:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior,int) -> <init>
+    1910:1911:boolean perform(android.view.View,androidx.core.view.accessibility.AccessibilityViewCommand$CommandArguments) -> perform
+com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback -> com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback:
+    87:87:void <init>() -> <init>
+com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState -> com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState:
+    1730:1730:void <clinit>() -> <clinit>
+    1684:1685:void <init>(android.os.Parcel) -> <init>
+    1688:1695:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1698:1704:void <init>(android.os.Parcelable,com.google.android.material.bottomsheet.BottomSheetBehavior) -> <init>
+    1716:1718:void <init>(android.os.Parcelable,int) -> <init>
+    1722:1728:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState$1 -> com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState$1:
+    1731:1731:void <init>() -> <init>
+    1731:1731:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1731:1731:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1735:1735:com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1741:1741:com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1731:1731:java.lang.Object[] newArray(int) -> newArray
+    1747:1747:com.google.android.material.bottomsheet.BottomSheetBehavior$SavedState[] newArray(int) -> newArray
+com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable -> com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable:
+    1659:1662:void <init>(com.google.android.material.bottomsheet.BottomSheetBehavior,android.view.View,int) -> <init>
+    1651:1651:boolean access$800(com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable) -> access$800
+    1651:1651:boolean access$802(com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable,boolean) -> access$802
+    1666:1672:void run() -> run
+com.google.android.material.bottomsheet.BottomSheetDialog -> com.google.android.material.bottomsheet.BottomSheetDialog:
+    85:92:void <init>(android.content.Context) -> <init>
+    78:396:void <init>(android.content.Context,int) -> <init>
+    78:396:void <init>(android.content.Context,boolean,android.content.DialogInterface$OnCancelListener) -> <init>
+    68:68:com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback access$000(com.google.android.material.bottomsheet.BottomSheetDialog) -> access$000
+    68:68:com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback access$002(com.google.android.material.bottomsheet.BottomSheetDialog,com.google.android.material.bottomsheet.BottomSheetBehavior$BottomSheetCallback) -> access$002
+    68:68:com.google.android.material.bottomsheet.BottomSheetBehavior access$100(com.google.android.material.bottomsheet.BottomSheetDialog) -> access$100
+    68:68:android.widget.FrameLayout access$200(com.google.android.material.bottomsheet.BottomSheetDialog) -> access$200
+    218:225:void cancel() -> cancel
+    271:282:android.widget.FrameLayout ensureContainerAndBehavior() -> ensureContainerAndBehavior
+    239:243:com.google.android.material.bottomsheet.BottomSheetBehavior getBehavior() -> getBehavior
+    261:261:boolean getDismissWithAnimation() -> getDismissWithAnimation
+    266:266:boolean getEdgeToEdgeEnabled() -> getEdgeToEdgeEnabled
+    379:389:int getThemeResId(android.content.Context,int) -> getThemeResId
+    177:198:void onAttachedToWindow() -> onAttachedToWindow
+    127:144:void onCreate(android.os.Bundle) -> onCreate
+    169:173:void onStart() -> onStart
+    393:394:void removeDefaultCallback() -> removeDefaultCallback
+    158:165:void setCancelable(boolean) -> setCancelable
+    229:235:void setCanceledOnTouchOutside(boolean) -> setCanceledOnTouchOutside
+    122:123:void setContentView(int) -> setContentView
+    148:149:void setContentView(android.view.View) -> setContentView
+    153:154:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    253:254:void setDismissWithAnimation(boolean) -> setDismissWithAnimation
+    481:490:void setLightStatusBar(android.view.View,boolean) -> setLightStatusBar
+    368:375:boolean shouldWindowCloseOnTouchOutside() -> shouldWindowCloseOnTouchOutside
+    287:364:android.view.View wrapInBottomSheet(int,android.view.View,android.view.ViewGroup$LayoutParams) -> wrapInBottomSheet
+com.google.android.material.bottomsheet.BottomSheetDialog$1 -> com.google.android.material.bottomsheet.BottomSheetDialog$1:
+    296:296:void <init>(com.google.android.material.bottomsheet.BottomSheetDialog) -> <init>
+    299:308:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.bottomsheet.BottomSheetDialog$2 -> com.google.android.material.bottomsheet.BottomSheetDialog$2:
+    323:323:void <init>(com.google.android.material.bottomsheet.BottomSheetDialog) -> <init>
+    326:329:void onClick(android.view.View) -> onClick
+com.google.android.material.bottomsheet.BottomSheetDialog$3 -> com.google.android.material.bottomsheet.BottomSheetDialog$3:
+    334:334:void <init>(com.google.android.material.bottomsheet.BottomSheetDialog) -> <init>
+    338:345:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    349:353:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+com.google.android.material.bottomsheet.BottomSheetDialog$4 -> com.google.android.material.bottomsheet.BottomSheetDialog$4:
+    357:357:void <init>(com.google.android.material.bottomsheet.BottomSheetDialog) -> <init>
+    361:361:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+com.google.android.material.bottomsheet.BottomSheetDialog$5 -> com.google.android.material.bottomsheet.BottomSheetDialog$5:
+    398:398:void <init>(com.google.android.material.bottomsheet.BottomSheetDialog) -> <init>
+    408:408:void onSlide(android.view.View,float) -> onSlide
+    402:405:void onStateChanged(android.view.View,int) -> onStateChanged
+com.google.android.material.bottomsheet.BottomSheetDialog$EdgeToEdgeCallback -> com.google.android.material.bottomsheet.BottomSheetDialog$EdgeToEdgeCallback:
+    411:411:void <init>(android.view.View,androidx.core.view.WindowInsetsCompat,com.google.android.material.bottomsheet.BottomSheetDialog$1) -> <init>
+    418:444:void <init>(android.view.View,androidx.core.view.WindowInsetsCompat) -> <init>
+    453:454:void onSlide(android.view.View,float) -> onSlide
+    448:449:void onStateChanged(android.view.View,int) -> onStateChanged
+    457:477:void setPaddingForPosition(android.view.View) -> setPaddingForPosition
+com.google.android.material.bottomsheet.BottomSheetDialogFragment -> com.google.android.material.bottomsheet.BottomSheetDialogFragment:
+    30:30:void <init>() -> <init>
+    30:30:void access$100(com.google.android.material.bottomsheet.BottomSheetDialogFragment) -> access$100
+    46:49:void dismiss() -> dismiss
+    92:97:void dismissAfterAnimation() -> dismissAfterAnimation
+    53:56:void dismissAllowingStateLoss() -> dismissAllowingStateLoss
+    78:89:void dismissWithAnimation(com.google.android.material.bottomsheet.BottomSheetBehavior,boolean) -> dismissWithAnimation
+    41:41:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    63:73:boolean tryDismissWithAnimation(boolean) -> tryDismissWithAnimation
+com.google.android.material.bottomsheet.BottomSheetDialogFragment$BottomSheetDismissCallback -> com.google.android.material.bottomsheet.BottomSheetDialogFragment$BottomSheetDismissCallback:
+    99:99:void <init>(com.google.android.material.bottomsheet.BottomSheetDialogFragment) -> <init>
+    99:99:void <init>(com.google.android.material.bottomsheet.BottomSheetDialogFragment,com.google.android.material.bottomsheet.BottomSheetDialogFragment$1) -> <init>
+    109:109:void onSlide(android.view.View,float) -> onSlide
+    103:106:void onStateChanged(android.view.View,int) -> onStateChanged
+com.google.android.material.button.MaterialButton -> com.google.android.material.button.MaterialButton:
+    130:195:void <clinit>() -> <clinit>
+    216:217:void <init>(android.content.Context) -> <init>
+    220:221:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    198:255:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    1068:1069:void addOnCheckedChangeListener(com.google.android.material.button.MaterialButton$OnCheckedChangeListener) -> addOnCheckedChangeListener
+    1083:1084:void clearOnCheckedChangeListeners() -> clearOnCheckedChangeListeners
+    260:260:java.lang.String getA11yClassName() -> getA11yClassName
+    382:382:android.content.res.ColorStateList getBackgroundTintList() -> getBackgroundTintList
+    393:393:android.graphics.PorterDuff$Mode getBackgroundTintMode() -> getBackgroundTintMode
+    973:973:int getCornerRadius() -> getCornerRadius
+    682:682:android.graphics.drawable.Drawable getIcon() -> getIcon
+    985:985:int getIconGravity() -> getIconGravity
+    607:607:int getIconPadding() -> getIconPadding
+    637:637:int getIconSize() -> getIconSize
+    721:721:android.content.res.ColorStateList getIconTint() -> getIconTint
+    746:746:android.graphics.PorterDuff$Mode getIconTintMode() -> getIconTintMode
+    1020:1020:int getInsetBottom() -> getInsetBottom
+    1040:1040:int getInsetTop() -> getInsetTop
+    847:847:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    1170:1173:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    889:889:android.content.res.ColorStateList getStrokeColor() -> getStrokeColor
+    932:932:int getStrokeWidth() -> getStrokeWidth
+    327:333:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    365:370:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    555:566:int getTextHeight() -> getTextHeight
+    543:551:int getTextWidth() -> getTextWidth
+    1129:1129:boolean isCheckable() -> isCheckable
+    1107:1107:boolean isChecked() -> isChecked
+    802:802:boolean isIconEnd() -> isIconEnd
+    798:798:boolean isIconStart() -> isIconStart
+    806:806:boolean isIconTop() -> isIconTop
+    570:570:boolean isLayoutRTL() -> isLayoutRTL
+    1196:1196:boolean isUsingOriginalBackground() -> isUsingOriginalBackground
+    468:474:void onAttachedToWindow() -> onAttachedToWindow
+    1045:1055:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    274:277:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    265:270:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    447:452:void onLayout(boolean,int,int,int,int) -> onLayout
+    290:297:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    282:285:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    456:458:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    462:464:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+    1117:1119:boolean performClick() -> performClick
+    1078:1079:void removeOnCheckedChangeListener(com.google.android.material.button.MaterialButton$OnCheckedChangeListener) -> removeOnCheckedChangeListener
+    788:795:void resetIconDrawable() -> resetIconDrawable
+    409:410:void setBackground(android.graphics.drawable.Drawable) -> setBackground
+    398:405:void setBackgroundColor(int) -> setBackgroundColor
+    423:443:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    414:419:void setBackgroundResource(int) -> setBackgroundResource
+    376:377:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    387:388:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    1139:1142:void setCheckable(boolean) -> setCheckable
+    1088:1103:void setChecked(boolean) -> setChecked
+    944:947:void setCornerRadius(int) -> setCornerRadius
+    958:961:void setCornerRadiusResource(int) -> setCornerRadiusResource
+    479:483:void setElevation(float) -> setElevation
+    650:655:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    996:1000:void setIconGravity(int) -> setIconGravity
+    592:596:void setIconPadding(int) -> setIconPadding
+    666:671:void setIconResource(int) -> setIconResource
+    618:626:void setIconSize(int) -> setIconSize
+    694:698:void setIconTint(android.content.res.ColorStateList) -> setIconTint
+    732:736:void setIconTintMode(android.graphics.PorterDuff$Mode) -> setIconTintMode
+    709:710:void setIconTintResource(int) -> setIconTintResource
+    1009:1010:void setInsetBottom(int) -> setInsetBottom
+    1029:1030:void setInsetTop(int) -> setInsetTop
+    581:582:void setInternalBackground(android.graphics.drawable.Drawable) -> setInternalBackground
+    1184:1185:void setOnPressedChangeListenerInternal(com.google.android.material.button.MaterialButton$OnPressedChangeListener) -> setOnPressedChangeListenerInternal
+    1189:1193:void setPressed(boolean) -> setPressed
+    818:821:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    832:835:void setRippleColorResource(int) -> setRippleColorResource
+    1151:1158:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    1200:1203:void setShouldDrawSurfaceColorStroke(boolean) -> setShouldDrawSurfaceColorStroke
+    860:863:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    875:878:void setStrokeColorResource(int) -> setStrokeColorResource
+    902:905:void setStrokeWidth(int) -> setStrokeWidth
+    917:920:void setStrokeWidthResource(int) -> setStrokeWidthResource
+    308:315:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    346:353:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    1112:1113:void toggle() -> toggle
+    754:785:void updateIcon(boolean) -> updateIcon
+    486:540:void updateIconPosition(int,int) -> updateIconPosition
+com.google.android.material.button.MaterialButton$SavedState -> com.google.android.material.button.MaterialButton$SavedState:
+    1231:1231:void <clinit>() -> <clinit>
+    1210:1211:void <init>(android.os.Parcelable) -> <init>
+    1214:1219:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    1228:1229:void readFromParcel(android.os.Parcel) -> readFromParcel
+    1223:1225:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.button.MaterialButton$SavedState$1 -> com.google.android.material.button.MaterialButton$SavedState$1:
+    1232:1232:void <init>() -> <init>
+    1232:1232:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    1232:1232:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1236:1236:com.google.android.material.button.MaterialButton$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    1242:1242:com.google.android.material.button.MaterialButton$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    1232:1232:java.lang.Object[] newArray(int) -> newArray
+    1248:1248:com.google.android.material.button.MaterialButton$SavedState[] newArray(int) -> newArray
+com.google.android.material.button.MaterialButtonHelper -> com.google.android.material.button.MaterialButtonHelper:
+    53:53:void <clinit>() -> <clinit>
+    70:80:void <init>(com.google.android.material.button.MaterialButton,com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    203:239:android.graphics.drawable.Drawable createBackground() -> createBackground
+    323:323:int getCornerRadius() -> getCornerRadius
+    402:402:int getInsetBottom() -> getInsetBottom
+    432:432:int getInsetTop() -> getInsetTop
+    375:384:com.google.android.material.shape.Shapeable getMaskDrawable() -> getMaskDrawable
+    328:340:com.google.android.material.shape.MaterialShapeDrawable getMaterialShapeDrawable(boolean) -> getMaterialShapeDrawable
+    345:345:com.google.android.material.shape.MaterialShapeDrawable getMaterialShapeDrawable() -> getMaterialShapeDrawable
+    270:270:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    394:394:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    282:282:android.content.res.ColorStateList getStrokeColor() -> getStrokeColor
+    293:293:int getStrokeWidth() -> getStrokeWidth
+    176:176:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    189:189:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    358:358:com.google.android.material.shape.MaterialShapeDrawable getSurfaceColorStrokeDrawable() -> getSurfaceColorStrokeDrawable
+    158:158:boolean isBackgroundOverwritten() -> isBackgroundOverwritten
+    353:353:boolean isCheckable() -> isCheckable
+    83:134:void loadFromAttributes(android.content.res.TypedArray) -> loadFromAttributes
+    250:253:void setBackgroundColor(int) -> setBackgroundColor
+    150:155:void setBackgroundOverwritten() -> setBackgroundOverwritten
+    349:350:void setCheckable(boolean) -> setCheckable
+    314:320:void setCornerRadius(int) -> setCornerRadius
+    398:399:void setInsetBottom(int) -> setInsetBottom
+    406:407:void setInsetTop(int) -> setInsetTop
+    256:266:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    388:390:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    193:195:void setShouldDrawSurfaceColorStroke(boolean) -> setShouldDrawSurfaceColorStroke
+    274:278:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    286:290:void setStrokeWidth(int) -> setStrokeWidth
+    167:173:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    180:186:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    411:429:void setVerticalInsets(int,int) -> setVerticalInsets
+    137:142:void updateBackground() -> updateBackground
+    362:371:void updateButtonShape(com.google.android.material.shape.ShapeAppearanceModel) -> updateButtonShape
+    244:247:void updateMaskBounds(int,int) -> updateMaskBounds
+    297:309:void updateStroke() -> updateStroke
+    163:163:android.graphics.drawable.InsetDrawable wrapDrawableWithInset(android.graphics.drawable.Drawable) -> wrapDrawableWithInset
+com.google.android.material.button.MaterialButtonToggleGroup -> com.google.android.material.button.MaterialButtonToggleGroup:
+    139:140:void <clinit>() -> <clinit>
+    176:177:void <init>(android.content.Context) -> <init>
+    180:181:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    143:202:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    122:122:int access$200(com.google.android.material.button.MaterialButtonToggleGroup,android.view.View) -> access$200
+    122:122:boolean access$300(com.google.android.material.button.MaterialButtonToggleGroup) -> access$300
+    122:122:boolean access$400(com.google.android.material.button.MaterialButtonToggleGroup) -> access$400
+    122:122:int access$502(com.google.android.material.button.MaterialButtonToggleGroup,int) -> access$502
+    122:122:boolean access$600(com.google.android.material.button.MaterialButtonToggleGroup,int,boolean) -> access$600
+    122:122:void access$700(com.google.android.material.button.MaterialButtonToggleGroup,int,boolean) -> access$700
+    426:427:void addOnButtonCheckedListener(com.google.android.material.button.MaterialButtonToggleGroup$OnButtonCheckedListener) -> addOnButtonCheckedListener
+    226:269:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    526:555:void adjustChildMarginsAndUpdateLayout() -> adjustChildMarginsAndUpdateLayout
+    763:768:android.widget.LinearLayout$LayoutParams buildLayoutParams(android.view.View) -> buildLayoutParams
+    330:335:void check(int) -> check
+    729:733:void checkForced(int,boolean) -> checkForced
+    360:370:void clearChecked() -> clearChecked
+    441:442:void clearOnButtonCheckedListeners() -> clearOnButtonCheckedListeners
+    216:218:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    723:726:void dispatchOnButtonChecked(int,boolean) -> dispatchOnButtonChecked
+    300:300:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    388:388:int getCheckedButtonId() -> getCheckedButtonId
+    405:413:java.util.List getCheckedButtonIds() -> getCheckedButtonIds
+    558:558:com.google.android.material.button.MaterialButton getChildButton(int) -> getChildButton
+    777:782:int getChildDrawingOrder(int,int) -> getChildDrawingOrder
+    601:608:int getFirstVisibleChildIndex() -> getFirstVisibleChildIndex
+    638:650:int getIndexWithinVisibleButtons(android.view.View) -> getIndexWithinVisibleButtons
+    612:619:int getLastVisibleChildIndex() -> getLastVisibleChildIndex
+    656:672:com.google.android.material.button.MaterialButtonToggleGroup$CornerData getNewCornerData(int,int,int) -> getNewCornerData
+    628:634:int getVisibleButtonCount() -> getVisibleButtonCount
+    623:624:boolean isChildVisible(int) -> isChildVisible
+    484:484:boolean isSelectionRequired() -> isSelectionRequired
+    451:451:boolean isSingleSelection() -> isSingleSelection
+    206:212:void onFinishInflate() -> onFinishInflate
+    305:315:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    291:295:void onMeasure(int,int) -> onMeasure
+    273:287:void onViewRemoved(android.view.View) -> onViewRemoved
+    436:437:void removeOnButtonCheckedListener(com.google.android.material.button.MaterialButtonToggleGroup$OnButtonCheckedListener) -> removeOnButtonCheckedListener
+    562:578:void resetChildMargins(int) -> resetChildMargins
+    509:512:void setCheckedId(int) -> setCheckedId
+    500:506:void setCheckedStateForView(int,boolean) -> setCheckedStateForView
+    737:740:void setGeneratedIdIfNeeded(com.google.android.material.button.MaterialButton) -> setGeneratedIdIfNeeded
+    475:476:void setSelectionRequired(boolean) -> setSelectionRequired
+    463:467:void setSingleSelection(boolean) -> setSingleSelection
+    496:497:void setSingleSelection(int) -> setSingleSelection
+    750:759:void setupButtonChild(com.google.android.material.button.MaterialButton) -> setupButtonChild
+    347:348:void uncheck(int) -> uncheck
+    677:687:void updateBuilderWithCornerData(com.google.android.material.shape.ShapeAppearanceModel$Builder,com.google.android.material.button.MaterialButtonToggleGroup$CornerData) -> updateBuilderWithCornerData
+    703:719:boolean updateCheckedStates(int,boolean) -> updateCheckedStates
+    786:793:void updateChildOrder() -> updateChildOrder
+    583:598:void updateChildShapes() -> updateChildShapes
+com.google.android.material.button.MaterialButtonToggleGroup$1 -> com.google.android.material.button.MaterialButtonToggleGroup$1:
+    150:150:void <init>(com.google.android.material.button.MaterialButtonToggleGroup) -> <init>
+    150:150:int compare(java.lang.Object,java.lang.Object) -> compare
+    153:164:int compare(com.google.android.material.button.MaterialButton,com.google.android.material.button.MaterialButton) -> compare
+com.google.android.material.button.MaterialButtonToggleGroup$2 -> com.google.android.material.button.MaterialButtonToggleGroup$2:
+    254:254:void <init>(com.google.android.material.button.MaterialButtonToggleGroup) -> <init>
+    258:267:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.button.MaterialButtonToggleGroup$CheckedStateTracker -> com.google.android.material.button.MaterialButtonToggleGroup$CheckedStateTracker:
+    795:795:void <init>(com.google.android.material.button.MaterialButtonToggleGroup) -> <init>
+    795:795:void <init>(com.google.android.material.button.MaterialButtonToggleGroup,com.google.android.material.button.MaterialButtonToggleGroup$1) -> <init>
+    799:814:void onCheckedChanged(com.google.android.material.button.MaterialButton,boolean) -> onCheckedChanged
+com.google.android.material.button.MaterialButtonToggleGroup$CornerData -> com.google.android.material.button.MaterialButtonToggleGroup$CornerData:
+    827:827:void <clinit>() -> <clinit>
+    835:840:void <init>(com.google.android.material.shape.CornerSize,com.google.android.material.shape.CornerSize,com.google.android.material.shape.CornerSize,com.google.android.material.shape.CornerSize) -> <init>
+    869:869:com.google.android.material.button.MaterialButtonToggleGroup$CornerData bottom(com.google.android.material.button.MaterialButtonToggleGroup$CornerData) -> bottom
+    849:849:com.google.android.material.button.MaterialButtonToggleGroup$CornerData end(com.google.android.material.button.MaterialButtonToggleGroup$CornerData,android.view.View) -> end
+    854:854:com.google.android.material.button.MaterialButtonToggleGroup$CornerData left(com.google.android.material.button.MaterialButtonToggleGroup$CornerData) -> left
+    859:859:com.google.android.material.button.MaterialButtonToggleGroup$CornerData right(com.google.android.material.button.MaterialButtonToggleGroup$CornerData) -> right
+    844:844:com.google.android.material.button.MaterialButtonToggleGroup$CornerData start(com.google.android.material.button.MaterialButtonToggleGroup$CornerData,android.view.View) -> start
+    864:864:com.google.android.material.button.MaterialButtonToggleGroup$CornerData top(com.google.android.material.button.MaterialButtonToggleGroup$CornerData) -> top
+com.google.android.material.button.MaterialButtonToggleGroup$PressedStateTracker -> com.google.android.material.button.MaterialButtonToggleGroup$PressedStateTracker:
+    817:817:void <init>(com.google.android.material.button.MaterialButtonToggleGroup) -> <init>
+    817:817:void <init>(com.google.android.material.button.MaterialButtonToggleGroup,com.google.android.material.button.MaterialButtonToggleGroup$1) -> <init>
+    821:822:void onPressedChanged(com.google.android.material.button.MaterialButton,boolean) -> onPressedChanged
+com.google.android.material.canvas.CanvasCompat -> com.google.android.material.canvas.CanvasCompat:
+    38:38:void <init>() -> <init>
+    45:46:int saveLayerAlpha(android.graphics.Canvas,android.graphics.RectF,int) -> saveLayerAlpha
+    58:59:int saveLayerAlpha(android.graphics.Canvas,float,float,float,float,int) -> saveLayerAlpha
+com.google.android.material.card.MaterialCardView -> com.google.android.material.card.MaterialCardView:
+    89:93:void <clinit>() -> <clinit>
+    110:111:void <init>(android.content.Context) -> <init>
+    114:115:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    105:140:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    76:76:float access$001(com.google.android.material.card.MaterialCardView) -> access$001
+    631:634:void forceRippleRedrawIfNeeded() -> forceRippleRedrawIfNeeded
+    606:608:android.graphics.RectF getBoundsAsRectF() -> getBoundsAsRectF
+    288:288:android.content.res.ColorStateList getCardBackgroundColor() -> getCardBackgroundColor
+    310:310:android.content.res.ColorStateList getCardForegroundColor() -> getCardForegroundColor
+    222:222:float getCardViewRadius() -> getCardViewRadius
+    510:510:android.graphics.drawable.Drawable getCheckedIcon() -> getCheckedIcon
+    584:584:int getCheckedIconMargin() -> getCheckedIconMargin
+    557:557:int getCheckedIconSize() -> getCheckedIconSize
+    541:541:android.content.res.ColorStateList getCheckedIconTint() -> getCheckedIconTint
+    272:272:int getContentPaddingBottom() -> getContentPaddingBottom
+    257:257:int getContentPaddingLeft() -> getContentPaddingLeft
+    267:267:int getContentPaddingRight() -> getContentPaddingRight
+    262:262:int getContentPaddingTop() -> getContentPaddingTop
+    243:243:float getProgress() -> getProgress
+    218:218:float getRadius() -> getRadius
+    499:499:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    627:627:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    186:186:int getStrokeColor() -> getStrokeColor
+    192:192:android.content.res.ColorStateList getStrokeColorStateList() -> getStrokeColorStateList
+    207:207:int getStrokeWidth() -> getStrokeWidth
+    413:413:boolean isCheckable() -> isCheckable
+    378:378:boolean isChecked() -> isChecked
+    403:403:boolean isDragged() -> isDragged
+    323:326:void onAttachedToWindow() -> onAttachedToWindow
+    440:453:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    153:156:void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    144:149:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    160:162:void onMeasure(int,int) -> onMeasure
+    252:253:void setAncestorContentPadding(int,int,int,int) -> setAncestorContentPadding
+    356:357:void setBackground(android.graphics.drawable.Drawable) -> setBackground
+    361:369:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    373:374:void setBackgroundInternal(android.graphics.drawable.Drawable) -> setBackgroundInternal
+    277:278:void setCardBackgroundColor(int) -> setCardBackgroundColor
+    282:283:void setCardBackgroundColor(android.content.res.ColorStateList) -> setCardBackgroundColor
+    330:332:void setCardElevation(float) -> setCardElevation
+    299:300:void setCardForegroundColor(android.content.res.ColorStateList) -> setCardForegroundColor
+    423:424:void setCheckable(boolean) -> setCheckable
+    383:386:void setChecked(boolean) -> setChecked
+    530:531:void setCheckedIcon(android.graphics.drawable.Drawable) -> setCheckedIcon
+    588:589:void setCheckedIconMargin(int) -> setCheckedIconMargin
+    598:602:void setCheckedIconMarginResource(int) -> setCheckedIconMarginResource
+    520:521:void setCheckedIconResource(int) -> setCheckedIconResource
+    567:568:void setCheckedIconSize(int) -> setCheckedIconSize
+    577:580:void setCheckedIconSizeResource(int) -> setCheckedIconSizeResource
+    552:553:void setCheckedIconTint(android.content.res.ColorStateList) -> setCheckedIconTint
+    315:319:void setClickable(boolean) -> setClickable
+    248:249:void setContentPadding(int,int,int,int) -> setContentPadding
+    394:400:void setDragged(boolean) -> setDragged
+    336:338:void setMaxCardElevation(float) -> setMaxCardElevation
+    462:463:void setOnCheckedChangeListener(com.google.android.material.card.MaterialCardView$OnCheckedChangeListener) -> setOnCheckedChangeListener
+    349:352:void setPreventCornerOverlap(boolean) -> setPreventCornerOverlap
+    232:233:void setProgress(float) -> setProgress
+    212:214:void setRadius(float) -> setRadius
+    474:475:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    486:488:void setRippleColorResource(int) -> setRippleColorResource
+    613:617:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    170:171:void setStrokeColor(int) -> setStrokeColor
+    179:180:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    201:202:void setStrokeWidth(int) -> setStrokeWidth
+    342:345:void setUseCompatPadding(boolean) -> setUseCompatPadding
+    428:436:void toggle() -> toggle
+com.google.android.material.card.MaterialCardViewHelper -> com.google.android.material.card.MaterialCardViewHelper:
+    61:66:void <clinit>() -> <clinit>
+    91:143:void <init>(com.google.android.material.card.MaterialCardView,android.util.AttributeSet,int,int) -> <init>
+    581:594:float calculateActualCornerPadding() -> calculateActualCornerPadding
+    598:603:float calculateCornerPaddingForCornerTreatment(com.google.android.material.shape.CornerTreatment,float) -> calculateCornerPaddingForCornerTreatment
+    546:547:float calculateHorizontalBackgroundPadding() -> calculateHorizontalBackgroundPadding
+    536:537:float calculateVerticalBackgroundPadding() -> calculateVerticalBackgroundPadding
+    551:551:boolean canClipToOutline() -> canClipToOutline
+    654:658:android.graphics.drawable.Drawable createCheckedIconLayer() -> createCheckedIconLayer
+    636:640:android.graphics.drawable.Drawable createCompatRippleDrawable() -> createCompatRippleDrawable
+    625:631:android.graphics.drawable.Drawable createForegroundRippleDrawable() -> createForegroundRippleDrawable
+    663:663:com.google.android.material.shape.MaterialShapeDrawable createForegroundShapeDrawable() -> createForegroundShapeDrawable
+    441:450:void forceRippleRedraw() -> forceRippleRedraw
+    236:236:com.google.android.material.shape.MaterialShapeDrawable getBackground() -> getBackground
+    244:244:android.content.res.ColorStateList getCardBackgroundColor() -> getCardBackgroundColor
+    253:253:android.content.res.ColorStateList getCardForegroundColor() -> getCardForegroundColor
+    381:381:android.graphics.drawable.Drawable getCheckedIcon() -> getCheckedIcon
+    409:409:int getCheckedIconMargin() -> getCheckedIconMargin
+    400:400:int getCheckedIconSize() -> getCheckedIconSize
+    371:371:android.content.res.ColorStateList getCheckedIconTint() -> getCheckedIconTint
+    608:620:android.graphics.drawable.Drawable getClickableForeground() -> getClickableForeground
+    289:289:float getCornerRadius() -> getCornerRadius
+    555:559:float getParentCardViewCalculatedCornerPadding() -> getParentCardViewCalculatedCornerPadding
+    305:305:float getProgress() -> getProgress
+    376:376:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    470:470:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    213:213:int getStrokeColor() -> getStrokeColor
+    218:218:android.content.res.ColorStateList getStrokeColorStateList() -> getStrokeColorStateList
+    231:231:int getStrokeWidth() -> getStrokeWidth
+    263:263:android.graphics.Rect getUserContentPadding() -> getUserContentPadding
+    499:507:android.graphics.drawable.Drawable insetDrawable(android.graphics.drawable.Drawable) -> insetDrawable
+    195:195:boolean isBackgroundOverwritten() -> isBackgroundOverwritten
+    354:354:boolean isCheckable() -> isCheckable
+    146:192:void loadFromAttributes(android.content.res.TypedArray) -> loadFromAttributes
+    417:437:void onMeasure(int,int) -> onMeasure
+    199:200:void setBackgroundOverwritten(boolean) -> setBackgroundOverwritten
+    240:241:void setCardBackgroundColor(android.content.res.ColorStateList) -> setCardBackgroundColor
+    248:250:void setCardForegroundColor(android.content.res.ColorStateList) -> setCardForegroundColor
+    350:351:void setCheckable(boolean) -> setCheckable
+    385:396:void setCheckedIcon(android.graphics.drawable.Drawable) -> setCheckedIcon
+    413:414:void setCheckedIconMargin(int) -> setCheckedIconMargin
+    404:405:void setCheckedIconSize(int) -> setCheckedIconSize
+    363:367:void setCheckedIconTint(android.content.res.ColorStateList) -> setCheckedIconTint
+    276:286:void setCornerRadius(float) -> setCornerRadius
+    293:301:void setProgress(float) -> setProgress
+    358:360:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    453:467:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    203:209:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    222:227:void setStrokeWidth(int) -> setStrokeWidth
+    257:259:void setUserContentPadding(int,int,int,int) -> setUserContentPadding
+    563:563:boolean shouldAddCornerPaddingInsideCardBackground() -> shouldAddCornerPaddingInsideCardBackground
+    567:569:boolean shouldAddCornerPaddingOutsideCardBackground() -> shouldAddCornerPaddingOutsideCardBackground
+    267:273:void updateClickable() -> updateClickable
+    332:347:void updateContentPadding() -> updateContentPadding
+    309:310:void updateElevation() -> updateElevation
+    479:485:void updateInsetForeground(android.graphics.drawable.Drawable) -> updateInsetForeground
+    314:318:void updateInsets() -> updateInsets
+    645:650:void updateRippleColor() -> updateRippleColor
+    321:322:void updateStroke() -> updateStroke
+com.google.android.material.card.MaterialCardViewHelper$1 -> com.google.android.material.card.MaterialCardViewHelper$1:
+    508:508:void <init>(com.google.android.material.card.MaterialCardViewHelper,android.graphics.drawable.Drawable,int,int,int,int) -> <init>
+    525:525:int getMinimumHeight() -> getMinimumHeight
+    519:519:int getMinimumWidth() -> getMinimumWidth
+    513:513:boolean getPadding(android.graphics.Rect) -> getPadding
+com.google.android.material.checkbox.MaterialCheckBox -> com.google.android.material.checkbox.MaterialCheckBox:
+    44:46:void <clinit>() -> <clinit>
+    57:58:void <init>(android.content.Context) -> <init>
+    61:62:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    65:86:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    117:134:android.content.res.ColorStateList getMaterialThemeColorsTintList() -> getMaterialThemeColorsTintList
+    113:113:boolean isUseMaterialThemeColors() -> isUseMaterialThemeColors
+    90:95:void onAttachedToWindow() -> onAttachedToWindow
+    103:109:void setUseMaterialThemeColors(boolean) -> setUseMaterialThemeColors
+com.google.android.material.chip.Chip -> com.google.android.material.chip.Chip:
+    133:140:void <clinit>() -> <clinit>
+    187:188:void <init>(android.content.Context) -> <init>
+    191:192:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    170:248:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    129:129:com.google.android.material.chip.ChipDrawable access$000(com.google.android.material.chip.Chip) -> access$000
+    129:129:boolean access$100(com.google.android.material.chip.Chip) -> access$100
+    129:129:android.graphics.RectF access$200(com.google.android.material.chip.Chip) -> access$200
+    129:129:android.view.View$OnClickListener access$300(com.google.android.material.chip.Chip) -> access$300
+    129:129:boolean access$402(com.google.android.material.chip.Chip,boolean) -> access$402
+    129:129:android.graphics.Rect access$500(com.google.android.material.chip.Chip) -> access$500
+    129:129:android.graphics.Rect access$600() -> access$600
+    485:486:void applyChipDrawable(com.google.android.material.chip.ChipDrawable) -> applyChipDrawable
+    919:959:int[] createCloseIconDrawableState() -> createCloseIconDrawableState
+    851:853:boolean dispatchHoverEvent(android.view.MotionEvent) -> dispatchHoverEvent
+    858:869:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    904:915:void drawableStateChanged() -> drawableStateChanged
+    2288:2337:boolean ensureAccessibleTouchTarget(int) -> ensureAccessibleTouchTarget
+    450:455:void ensureChipDrawableHasCallback() -> ensureChipDrawableHasCallback
+    459:462:android.graphics.drawable.Drawable getBackgroundDrawable() -> getBackgroundDrawable
+    1852:1852:android.graphics.drawable.Drawable getCheckedIcon() -> getCheckedIcon
+    1887:1887:android.content.res.ColorStateList getCheckedIconTint() -> getCheckedIconTint
+    1096:1096:android.content.res.ColorStateList getChipBackgroundColor() -> getChipBackgroundColor
+    1164:1164:float getChipCornerRadius() -> getChipCornerRadius
+    422:422:android.graphics.drawable.Drawable getChipDrawable() -> getChipDrawable
+    2230:2230:float getChipEndPadding() -> getChipEndPadding
+    1477:1477:android.graphics.drawable.Drawable getChipIcon() -> getChipIcon
+    1549:1549:float getChipIconSize() -> getChipIconSize
+    1512:1512:android.content.res.ColorStateList getChipIconTint() -> getChipIconTint
+    1130:1130:float getChipMinHeight() -> getChipMinHeight
+    1992:1992:float getChipStartPadding() -> getChipStartPadding
+    1212:1212:android.content.res.ColorStateList getChipStrokeColor() -> getChipStrokeColor
+    1246:1246:float getChipStrokeWidth() -> getChipStrokeWidth
+    1321:1321:java.lang.CharSequence getChipText() -> getChipText
+    1639:1639:android.graphics.drawable.Drawable getCloseIcon() -> getCloseIcon
+    1755:1755:java.lang.CharSequence getCloseIconContentDescription() -> getCloseIconContentDescription
+    2196:2196:float getCloseIconEndPadding() -> getCloseIconEndPadding
+    1710:1710:float getCloseIconSize() -> getCloseIconSize
+    2162:2162:float getCloseIconStartPadding() -> getCloseIconStartPadding
+    1676:1676:android.content.res.ColorStateList getCloseIconTint() -> getCloseIconTint
+    968:975:android.graphics.RectF getCloseIconTouchBounds() -> getCloseIconTouchBounds
+    980:982:android.graphics.Rect getCloseIconTouchBoundsInt() -> getCloseIconTouchBoundsInt
+    637:637:android.text.TextUtils$TruncateAt getEllipsize() -> getEllipsize
+    880:886:void getFocusedRect(android.graphics.Rect) -> getFocusedRect
+    1958:1958:com.google.android.material.animation.MotionSpec getHideMotionSpec() -> getHideMotionSpec
+    2060:2060:float getIconEndPadding() -> getIconEndPadding
+    2026:2026:float getIconStartPadding() -> getIconStartPadding
+    1281:1281:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    1188:1188:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    1923:1923:com.google.android.material.animation.MotionSpec getShowMotionSpec() -> getShowMotionSpec
+    1414:1414:com.google.android.material.resources.TextAppearance getTextAppearance() -> getTextAppearance
+    2128:2128:float getTextEndPadding() -> getTextEndPadding
+    2094:2094:float getTextStartPadding() -> getTextStartPadding
+    819:846:boolean handleAccessibilityExit(android.view.MotionEvent) -> handleAccessibilityExit
+    963:963:boolean hasCloseIcon() -> hasCloseIcon
+    309:326:void initMinTouchTarget(android.content.Context,android.util.AttributeSet,int) -> initMinTouchTarget
+    404:418:void initOutlineProvider() -> initOutlineProvider
+    2351:2353:void insetChipBackgroundDrawable(int,int,int,int) -> insetChipBackgroundDrawable
+    1765:1765:boolean isCheckable() -> isCheckable
+    1805:1805:boolean isCheckedIconEnabled() -> isCheckedIconEnabled
+    1799:1799:boolean isCheckedIconVisible() -> isCheckedIconVisible
+    1430:1430:boolean isChipIconEnabled() -> isChipIconEnabled
+    1424:1424:boolean isChipIconVisible() -> isChipIconVisible
+    1593:1593:boolean isCloseIconEnabled() -> isCloseIconEnabled
+    1587:1587:boolean isCloseIconVisible() -> isCloseIconVisible
+    252:255:void onAttachedToWindow() -> onAttachedToWindow
+    696:701:void onChipDrawableSizeChange() -> onChipDrawableSizeChange
+    490:497:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    874:876:void onFocusChanged(boolean,int,android.graphics.Rect) -> onFocusChanged
+    799:810:boolean onHoverEvent(android.view.MotionEvent) -> onHoverEvent
+    268:294:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    989:992:android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent,int) -> onResolvePointerIcon
+    360:368:void onRtlPropertiesChanged(int) -> onRtlPropertiesChanged
+    763:794:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    744:756:boolean performCloseIconClick() -> performCloseIconClick
+    2341:2347:void removeBackgroundInset() -> removeBackgroundInset
+    530:535:void setBackground(android.graphics.drawable.Drawable) -> setBackground
+    520:521:void setBackgroundColor(int) -> setBackgroundColor
+    539:544:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    525:526:void setBackgroundResource(int) -> setBackgroundResource
+    510:511:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    515:516:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    1787:1790:void setCheckable(boolean) -> setCheckable
+    1775:1778:void setCheckableResource(int) -> setCheckableResource
+    705:718:void setChecked(boolean) -> setChecked
+    1874:1877:void setCheckedIcon(android.graphics.drawable.Drawable) -> setCheckedIcon
+    1841:1842:void setCheckedIconEnabled(boolean) -> setCheckedIconEnabled
+    1835:1836:void setCheckedIconEnabledResource(int) -> setCheckedIconEnabledResource
+    1862:1865:void setCheckedIconResource(int) -> setCheckedIconResource
+    1910:1913:void setCheckedIconTint(android.content.res.ColorStateList) -> setCheckedIconTint
+    1897:1900:void setCheckedIconTintResource(int) -> setCheckedIconTintResource
+    1815:1818:void setCheckedIconVisible(int) -> setCheckedIconVisible
+    1827:1830:void setCheckedIconVisible(boolean) -> setCheckedIconVisible
+    1118:1121:void setChipBackgroundColor(android.content.res.ColorStateList) -> setChipBackgroundColor
+    1106:1109:void setChipBackgroundColorResource(int) -> setChipBackgroundColorResource
+    1199:1202:void setChipCornerRadius(float) -> setChipCornerRadius
+    1175:1178:void setChipCornerRadiusResource(int) -> setChipCornerRadiusResource
+    427:436:void setChipDrawable(com.google.android.material.chip.ChipDrawable) -> setChipDrawable
+    2252:2255:void setChipEndPadding(float) -> setChipEndPadding
+    2240:2243:void setChipEndPaddingResource(int) -> setChipEndPaddingResource
+    1499:1502:void setChipIcon(android.graphics.drawable.Drawable) -> setChipIcon
+    1466:1467:void setChipIconEnabled(boolean) -> setChipIconEnabled
+    1460:1461:void setChipIconEnabledResource(int) -> setChipIconEnabledResource
+    1487:1490:void setChipIconResource(int) -> setChipIconResource
+    1575:1578:void setChipIconSize(float) -> setChipIconSize
+    1561:1564:void setChipIconSizeResource(int) -> setChipIconSizeResource
+    1535:1538:void setChipIconTint(android.content.res.ColorStateList) -> setChipIconTint
+    1522:1525:void setChipIconTintResource(int) -> setChipIconTintResource
+    1440:1443:void setChipIconVisible(int) -> setChipIconVisible
+    1452:1455:void setChipIconVisible(boolean) -> setChipIconVisible
+    1152:1155:void setChipMinHeight(float) -> setChipMinHeight
+    1140:1143:void setChipMinHeightResource(int) -> setChipMinHeightResource
+    2014:2017:void setChipStartPadding(float) -> setChipStartPadding
+    2002:2005:void setChipStartPaddingResource(int) -> setChipStartPaddingResource
+    1234:1237:void setChipStrokeColor(android.content.res.ColorStateList) -> setChipStrokeColor
+    1222:1225:void setChipStrokeColorResource(int) -> setChipStrokeColorResource
+    1268:1271:void setChipStrokeWidth(float) -> setChipStrokeWidth
+    1256:1259:void setChipStrokeWidthResource(int) -> setChipStrokeWidthResource
+    1357:1358:void setChipText(java.lang.CharSequence) -> setChipText
+    1351:1352:void setChipTextResource(int) -> setChipTextResource
+    1662:1666:void setCloseIcon(android.graphics.drawable.Drawable) -> setCloseIcon
+    1743:1746:void setCloseIconContentDescription(java.lang.CharSequence) -> setCloseIconContentDescription
+    1628:1629:void setCloseIconEnabled(boolean) -> setCloseIconEnabled
+    1622:1623:void setCloseIconEnabledResource(int) -> setCloseIconEnabledResource
+    2218:2221:void setCloseIconEndPadding(float) -> setCloseIconEndPadding
+    2206:2209:void setCloseIconEndPaddingResource(int) -> setCloseIconEndPaddingResource
+    896:900:void setCloseIconHovered(boolean) -> setCloseIconHovered
+    889:893:void setCloseIconPressed(boolean) -> setCloseIconPressed
+    1649:1653:void setCloseIconResource(int) -> setCloseIconResource
+    1732:1735:void setCloseIconSize(float) -> setCloseIconSize
+    1720:1723:void setCloseIconSizeResource(int) -> setCloseIconSizeResource
+    2184:2187:void setCloseIconStartPadding(float) -> setCloseIconStartPadding
+    2172:2175:void setCloseIconStartPaddingResource(int) -> setCloseIconStartPaddingResource
+    1698:1701:void setCloseIconTint(android.content.res.ColorStateList) -> setCloseIconTint
+    1686:1689:void setCloseIconTintResource(int) -> setCloseIconTintResource
+    1603:1604:void setCloseIconVisible(int) -> setCloseIconVisible
+    1613:1617:void setCloseIconVisible(boolean) -> setCloseIconVisible
+    552:560:void setCompoundDrawables(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawables
+    596:604:void setCompoundDrawablesRelative(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelative
+    609:617:void setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    625:632:void setCompoundDrawablesRelativeWithIntrinsicBounds(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesRelativeWithIntrinsicBounds
+    564:572:void setCompoundDrawablesWithIntrinsicBounds(int,int,int,int) -> setCompoundDrawablesWithIntrinsicBounds
+    580:588:void setCompoundDrawablesWithIntrinsicBounds(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,android.graphics.drawable.Drawable) -> setCompoundDrawablesWithIntrinsicBounds
+    260:264:void setElevation(float) -> setElevation
+    642:652:void setEllipsize(android.text.TextUtils$TruncateAt) -> setEllipsize
+    2276:2278:void setEnsureMinTouchTargetSize(boolean) -> setEnsureMinTouchTargetSize
+    502:507:void setGravity(int) -> setGravity
+    1980:1983:void setHideMotionSpec(com.google.android.material.animation.MotionSpec) -> setHideMotionSpec
+    1968:1971:void setHideMotionSpecResource(int) -> setHideMotionSpecResource
+    2082:2085:void setIconEndPadding(float) -> setIconEndPadding
+    2070:2073:void setIconEndPaddingResource(int) -> setIconEndPaddingResource
+    2048:2051:void setIconStartPadding(float) -> setIconStartPadding
+    2036:2039:void setIconStartPaddingResource(int) -> setIconStartPaddingResource
+    1326:1332:void setLayoutDirection(int) -> setLayoutDirection
+    664:668:void setLines(int) -> setLines
+    680:684:void setMaxLines(int) -> setMaxLines
+    688:692:void setMaxWidth(int) -> setMaxWidth
+    672:676:void setMinLines(int) -> setMinLines
+    725:726:void setOnCheckedChangeListenerInternal(android.widget.CompoundButton$OnCheckedChangeListener) -> setOnCheckedChangeListenerInternal
+    730:732:void setOnCloseIconClickListener(android.view.View$OnClickListener) -> setOnCloseIconClickListener
+    1306:1312:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    1291:1297:void setRippleColorResource(int) -> setRippleColorResource
+    1182:1183:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    1945:1948:void setShowMotionSpec(com.google.android.material.animation.MotionSpec) -> setShowMotionSpec
+    1933:1936:void setShowMotionSpecResource(int) -> setShowMotionSpecResource
+    656:660:void setSingleLine(boolean) -> setSingleLine
+    1336:1346:void setText(java.lang.CharSequence,android.widget.TextView$BufferType) -> setText
+    1377:1381:void setTextAppearance(com.google.android.material.resources.TextAppearance) -> setTextAppearance
+    1385:1390:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+    1394:1399:void setTextAppearance(int) -> setTextAppearance
+    1367:1368:void setTextAppearanceResource(int) -> setTextAppearanceResource
+    2150:2153:void setTextEndPadding(float) -> setTextEndPadding
+    2138:2141:void setTextEndPaddingResource(int) -> setTextEndPaddingResource
+    2116:2119:void setTextStartPadding(float) -> setTextStartPadding
+    2104:2107:void setTextStartPaddingResource(int) -> setTextStartPaddingResource
+    2265:2265:boolean shouldEnsureMinTouchTargetSize() -> shouldEnsureMinTouchTargetSize
+    479:482:void unapplyChipDrawable(com.google.android.material.chip.ChipDrawable) -> unapplyChipDrawable
+    299:305:void updateAccessibilityDelegate() -> updateAccessibilityDelegate
+    439:447:void updateBackgroundDrawable() -> updateBackgroundDrawable
+    467:476:void updateFrameworkRippleBackground() -> updateFrameworkRippleBackground
+    333:355:void updatePaddingInternal() -> updatePaddingInternal
+    1402:1410:void updateTextPaintDrawState() -> updateTextPaintDrawState
+    371:401:void validateAttributes(android.util.AttributeSet) -> validateAttributes
+com.google.android.material.chip.Chip$1 -> com.google.android.material.chip.Chip$1:
+    173:173:void <init>(com.google.android.material.chip.Chip) -> <init>
+    183:183:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    177:180:void onFontRetrieved(android.graphics.Typeface,boolean) -> onFontRetrieved
+com.google.android.material.chip.Chip$2 -> com.google.android.material.chip.Chip$2:
+    406:406:void <init>(com.google.android.material.chip.Chip) -> <init>
+    410:415:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+com.google.android.material.chip.Chip$ChipTouchHelper -> com.google.android.material.chip.Chip$ChipTouchHelper:
+    998:1000:void <init>(com.google.android.material.chip.Chip,com.google.android.material.chip.Chip) -> <init>
+    1004:1004:int getVirtualViewAt(float,float) -> getVirtualViewAt
+    1011:1015:void getVisibleVirtualViews(java.util.List) -> getVisibleVirtualViews
+    1075:1082:boolean onPerformActionForVirtualView(int,int,android.os.Bundle) -> onPerformActionForVirtualView
+    1052:1070:void onPopulateNodeForHost(androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onPopulateNodeForHost
+    1028:1048:void onPopulateNodeForVirtualView(int,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onPopulateNodeForVirtualView
+    1019:1023:void onVirtualViewKeyboardFocusChanged(int,boolean) -> onVirtualViewKeyboardFocusChanged
+com.google.android.material.chip.ChipDrawable -> com.google.android.material.chip.ChipDrawable:
+    165:169:void <clinit>() -> <clinit>
+    175:333:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    1316:1337:void applyChildDrawable(android.graphics.drawable.Drawable) -> applyChildDrawable
+    813:831:void calculateChipIconBounds(android.graphics.Rect,android.graphics.RectF) -> calculateChipIconBounds
+    528:531:float calculateChipIconWidth() -> calculateChipIconWidth
+    923:939:void calculateChipTouchBounds(android.graphics.Rect,android.graphics.RectF) -> calculateChipTouchBounds
+    904:920:void calculateCloseIconBounds(android.graphics.Rect,android.graphics.RectF) -> calculateCloseIconBounds
+    942:963:void calculateCloseIconTouchBounds(android.graphics.Rect,android.graphics.RectF) -> calculateCloseIconTouchBounds
+    568:571:float calculateCloseIconWidth() -> calculateCloseIconWidth
+    878:897:void calculateTextBounds(android.graphics.Rect,android.graphics.RectF) -> calculateTextBounds
+    869:870:float calculateTextCenterFromBaseline() -> calculateTextCenterFromBaseline
+    836:853:android.graphics.Paint$Align calculateTextOriginAndAlignment(android.graphics.Rect,android.graphics.PointF) -> calculateTextOriginAndAlignment
+    523:523:boolean canShowCheckedIcon() -> canShowCheckedIcon
+    279:281:com.google.android.material.chip.ChipDrawable createFromAttributes(android.content.Context,android.util.AttributeSet,int,int) -> createFromAttributes
+    298:303:com.google.android.material.chip.ChipDrawable createFromResource(android.content.Context,int) -> createFromResource
+    580:627:void draw(android.graphics.Canvas) -> draw
+    699:711:void drawCheckedIcon(android.graphics.Canvas,android.graphics.Rect) -> drawCheckedIcon
+    639:646:void drawChipBackground(android.graphics.Canvas,android.graphics.Rect) -> drawChipBackground
+    684:696:void drawChipIcon(android.graphics.Canvas,android.graphics.Rect) -> drawChipIcon
+    653:669:void drawChipStroke(android.graphics.Canvas,android.graphics.Rect) -> drawChipStroke
+    630:636:void drawChipSurface(android.graphics.Canvas,android.graphics.Rect) -> drawChipSurface
+    750:769:void drawCloseIcon(android.graphics.Canvas,android.graphics.Rect) -> drawCloseIcon
+    672:681:void drawCompatRipple(android.graphics.Canvas,android.graphics.Rect) -> drawCompatRipple
+    772:806:void drawDebug(android.graphics.Canvas,android.graphics.Rect) -> drawDebug
+    715:747:void drawText(android.graphics.Canvas,android.graphics.Rect) -> drawText
+    1228:1228:int getAlpha() -> getAlpha
+    2018:2018:android.graphics.drawable.Drawable getCheckedIcon() -> getCheckedIcon
+    2057:2057:android.content.res.ColorStateList getCheckedIconTint() -> getCheckedIconTint
+    1400:1400:android.content.res.ColorStateList getChipBackgroundColor() -> getChipBackgroundColor
+    1467:1467:float getChipCornerRadius() -> getChipCornerRadius
+    2410:2410:float getChipEndPadding() -> getChipEndPadding
+    1696:1696:android.graphics.drawable.Drawable getChipIcon() -> getChipIcon
+    1764:1764:float getChipIconSize() -> getChipIconSize
+    1725:1725:android.content.res.ColorStateList getChipIconTint() -> getChipIconTint
+    1433:1433:float getChipMinHeight() -> getChipMinHeight
+    2158:2158:float getChipStartPadding() -> getChipStartPadding
+    1504:1504:android.content.res.ColorStateList getChipStrokeColor() -> getChipStrokeColor
+    1540:1540:float getChipStrokeWidth() -> getChipStrokeWidth
+    474:475:void getChipTouchBounds(android.graphics.RectF) -> getChipTouchBounds
+    1846:1846:android.graphics.drawable.Drawable getCloseIcon() -> getCloseIcon
+    1936:1936:java.lang.CharSequence getCloseIconContentDescription() -> getCloseIconContentDescription
+    2374:2374:float getCloseIconEndPadding() -> getCloseIconEndPadding
+    1908:1908:float getCloseIconSize() -> getCloseIconSize
+    2338:2338:float getCloseIconStartPadding() -> getCloseIconStartPadding
+    1003:1003:int[] getCloseIconState() -> getCloseIconState
+    1888:1888:android.content.res.ColorStateList getCloseIconTint() -> getCloseIconTint
+    482:483:void getCloseIconTouchBounds(android.graphics.RectF) -> getCloseIconTouchBounds
+    1242:1242:android.graphics.ColorFilter getColorFilter() -> getColorFilter
+    551:560:float getCurrentChipIconHeight() -> getCurrentChipIconHeight
+    539:543:float getCurrentChipIconWidth() -> getCurrentChipIconWidth
+    1641:1641:android.text.TextUtils$TruncateAt getEllipsize() -> getEllipsize
+    2128:2128:com.google.android.material.animation.MotionSpec getHideMotionSpec() -> getHideMotionSpec
+    2231:2231:float getIconEndPadding() -> getIconEndPadding
+    2192:2192:float getIconStartPadding() -> getIconStartPadding
+    503:503:int getIntrinsicHeight() -> getIntrinsicHeight
+    488:497:int getIntrinsicWidth() -> getIntrinsicWidth
+    2444:2444:int getMaxWidth() -> getMaxWidth
+    1264:1264:int getOpacity() -> getOpacity
+    1270:1282:void getOutline(android.graphics.Outline) -> getOutline
+    1579:1579:android.content.res.ColorStateList getRippleColor() -> getRippleColor
+    2097:2097:com.google.android.material.animation.MotionSpec getShowMotionSpec() -> getShowMotionSpec
+    1608:1608:java.lang.CharSequence getText() -> getText
+    1629:1629:com.google.android.material.resources.TextAppearance getTextAppearance() -> getTextAppearance
+    2304:2304:float getTextEndPadding() -> getTextEndPadding
+    2270:2270:float getTextStartPadding() -> getTextStartPadding
+    1345:1345:android.graphics.ColorFilter getTintColorFilter() -> getTintColorFilter
+    453:453:boolean getUseCompatRipple() -> getUseCompatRipple
+    1362:1371:boolean hasState(int[],int) -> hasState
+    1286:1290:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    1940:1940:boolean isCheckable() -> isCheckable
+    1971:1971:boolean isCheckedIconEnabled() -> isCheckedIconEnabled
+    1965:1965:boolean isCheckedIconVisible() -> isCheckedIconVisible
+    1655:1655:boolean isChipIconEnabled() -> isChipIconEnabled
+    1649:1649:boolean isChipIconVisible() -> isChipIconVisible
+    1805:1805:boolean isCloseIconEnabled() -> isCloseIconEnabled
+    983:983:boolean isCloseIconStateful() -> isCloseIconStateful
+    1799:1799:boolean isCloseIconVisible() -> isCloseIconVisible
+    575:575:boolean isShapeThemingEnabled() -> isShapeThemingEnabled
+    969:977:boolean isStateful() -> isStateful
+    1141:1141:boolean isStateful(android.content.res.ColorStateList) -> isStateful
+    1145:1145:boolean isStateful(android.graphics.drawable.Drawable) -> isStateful
+    1149:1151:boolean isStateful(com.google.android.material.resources.TextAppearance) -> isStateful
+    337:440:void loadFromAttributes(android.util.AttributeSet,int,int) -> loadFromAttributes
+    1156:1171:boolean onLayoutDirectionChanged(int) -> onLayoutDirectionChanged
+    1176:1191:boolean onLevelChange(int) -> onLevelChange
+    463:467:void onSizeChange() -> onSizeChange
+    1014:1017:boolean onStateChange(int[]) -> onStateChange
+    1023:1137:boolean onStateChange(int[],int[]) -> onStateChange
+    1008:1010:void onTextSizeChange() -> onTextSizeChange
+    1294:1298:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    1220:1224:void setAlpha(int) -> setAlpha
+    1948:1962:void setCheckable(boolean) -> setCheckable
+    1944:1945:void setCheckableResource(int) -> setCheckableResource
+    2038:2052:void setCheckedIcon(android.graphics.drawable.Drawable) -> setCheckedIcon
+    2007:2008:void setCheckedIconEnabled(boolean) -> setCheckedIconEnabled
+    2001:2002:void setCheckedIconEnabledResource(int) -> setCheckedIconEnabledResource
+    2028:2029:void setCheckedIconResource(int) -> setCheckedIconResource
+    2078:2087:void setCheckedIconTint(android.content.res.ColorStateList) -> setCheckedIconTint
+    2067:2068:void setCheckedIconTintResource(int) -> setCheckedIconTintResource
+    1975:1976:void setCheckedIconVisible(int) -> setCheckedIconVisible
+    1979:1996:void setCheckedIconVisible(boolean) -> setCheckedIconVisible
+    1420:1424:void setChipBackgroundColor(android.content.res.ColorStateList) -> setChipBackgroundColor
+    1410:1411:void setChipBackgroundColorResource(int) -> setChipBackgroundColorResource
+    1489:1494:void setChipCornerRadius(float) -> setChipCornerRadius
+    1478:1479:void setChipCornerRadiusResource(int) -> setChipCornerRadiusResource
+    2430:2435:void setChipEndPadding(float) -> setChipEndPadding
+    2420:2421:void setChipEndPaddingResource(int) -> setChipEndPaddingResource
+    1704:1720:void setChipIcon(android.graphics.drawable.Drawable) -> setChipIcon
+    1691:1692:void setChipIconEnabled(boolean) -> setChipIconEnabled
+    1685:1686:void setChipIconEnabledResource(int) -> setChipIconEnabledResource
+    1700:1701:void setChipIconResource(int) -> setChipIconResource
+    1786:1796:void setChipIconSize(float) -> setChipIconSize
+    1775:1776:void setChipIconSizeResource(int) -> setChipIconSizeResource
+    1745:1754:void setChipIconTint(android.content.res.ColorStateList) -> setChipIconTint
+    1735:1736:void setChipIconTintResource(int) -> setChipIconTintResource
+    1659:1660:void setChipIconVisible(int) -> setChipIconVisible
+    1663:1680:void setChipIconVisible(boolean) -> setChipIconVisible
+    1453:1458:void setChipMinHeight(float) -> setChipMinHeight
+    1443:1444:void setChipMinHeightResource(int) -> setChipMinHeightResource
+    2178:2183:void setChipStartPadding(float) -> setChipStartPadding
+    2168:2169:void setChipStartPaddingResource(int) -> setChipStartPaddingResource
+    1524:1531:void setChipStrokeColor(android.content.res.ColorStateList) -> setChipStrokeColor
+    1514:1515:void setChipStrokeColorResource(int) -> setChipStrokeColorResource
+    1560:1569:void setChipStrokeWidth(float) -> setChipStrokeWidth
+    1550:1551:void setChipStrokeWidthResource(int) -> setChipStrokeWidthResource
+    1354:1358:void setChipSurfaceColor(android.content.res.ColorStateList) -> setChipSurfaceColor
+    1854:1873:void setCloseIcon(android.graphics.drawable.Drawable) -> setCloseIcon
+    1926:1932:void setCloseIconContentDescription(java.lang.CharSequence) -> setCloseIconContentDescription
+    1841:1842:void setCloseIconEnabled(boolean) -> setCloseIconEnabled
+    1835:1836:void setCloseIconEnabledResource(int) -> setCloseIconEnabledResource
+    2394:2401:void setCloseIconEndPadding(float) -> setCloseIconEndPadding
+    2384:2385:void setCloseIconEndPaddingResource(int) -> setCloseIconEndPaddingResource
+    1850:1851:void setCloseIconResource(int) -> setCloseIconResource
+    1916:1923:void setCloseIconSize(float) -> setCloseIconSize
+    1912:1913:void setCloseIconSizeResource(int) -> setCloseIconSizeResource
+    2358:2365:void setCloseIconStartPadding(float) -> setCloseIconStartPadding
+    2348:2349:void setCloseIconStartPaddingResource(int) -> setCloseIconStartPaddingResource
+    991:997:boolean setCloseIconState(int[]) -> setCloseIconState
+    1896:1905:void setCloseIconTint(android.content.res.ColorStateList) -> setCloseIconTint
+    1892:1893:void setCloseIconTintResource(int) -> setCloseIconTintResource
+    1809:1810:void setCloseIconVisible(int) -> setCloseIconVisible
+    1813:1830:void setCloseIconVisible(boolean) -> setCloseIconVisible
+    1233:1237:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    458:459:void setDelegate(com.google.android.material.chip.ChipDrawable$Delegate) -> setDelegate
+    1645:1646:void setEllipsize(android.text.TextUtils$TruncateAt) -> setEllipsize
+    2148:2149:void setHideMotionSpec(com.google.android.material.animation.MotionSpec) -> setHideMotionSpec
+    2138:2139:void setHideMotionSpecResource(int) -> setHideMotionSpecResource
+    2251:2261:void setIconEndPadding(float) -> setIconEndPadding
+    2241:2242:void setIconEndPaddingResource(int) -> setIconEndPaddingResource
+    2212:2222:void setIconStartPadding(float) -> setIconStartPadding
+    2202:2203:void setIconStartPaddingResource(int) -> setIconStartPaddingResource
+    2453:2454:void setMaxWidth(int) -> setMaxWidth
+    1599:1604:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    1589:1590:void setRippleColorResource(int) -> setRippleColorResource
+    2467:2468:void setShouldDrawText(boolean) -> setShouldDrawText
+    2117:2118:void setShowMotionSpec(com.google.android.material.animation.MotionSpec) -> setShowMotionSpec
+    2107:2108:void setShowMotionSpecResource(int) -> setShowMotionSpecResource
+    1616:1625:void setText(java.lang.CharSequence) -> setText
+    1637:1638:void setTextAppearance(com.google.android.material.resources.TextAppearance) -> setTextAppearance
+    1633:1634:void setTextAppearanceResource(int) -> setTextAppearanceResource
+    2324:2329:void setTextEndPadding(float) -> setTextEndPadding
+    2314:2315:void setTextEndPaddingResource(int) -> setTextEndPaddingResource
+    1612:1613:void setTextResource(int) -> setTextResource
+    1375:1381:void setTextSize(float) -> setTextSize
+    2290:2295:void setTextStartPadding(float) -> setTextStartPadding
+    2280:2281:void setTextStartPaddingResource(int) -> setTextStartPaddingResource
+    1247:1251:void setTintList(android.content.res.ColorStateList) -> setTintList
+    1255:1260:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    444:449:void setUseCompatRipple(boolean) -> setUseCompatRipple
+    1196:1211:boolean setVisible(boolean,boolean) -> setVisible
+    2457:2457:boolean shouldDrawText() -> shouldDrawText
+    513:513:boolean showsCheckedIcon() -> showsCheckedIcon
+    508:508:boolean showsChipIcon() -> showsChipIcon
+    518:518:boolean showsCloseIcon() -> showsCloseIcon
+    1309:1312:void unapplyChildDrawable(android.graphics.drawable.Drawable) -> unapplyChildDrawable
+    1302:1306:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+    1349:1351:void updateCompatRippleColor() -> updateCompatRippleColor
+    1877:1884:void updateFrameworkCloseIconRipple() -> updateFrameworkCloseIconRipple
+com.google.android.material.chip.ChipGroup -> com.google.android.material.chip.ChipGroup:
+    91:91:void <clinit>() -> <clinit>
+    110:111:void <init>(android.content.Context) -> <init>
+    114:115:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    100:143:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    56:56:com.google.android.material.chip.ChipGroup$CheckedStateTracker access$1000(com.google.android.material.chip.ChipGroup) -> access$1000
+    56:56:boolean access$300(com.google.android.material.chip.ChipGroup) -> access$300
+    56:56:boolean access$400(com.google.android.material.chip.ChipGroup) -> access$400
+    56:56:void access$500(com.google.android.material.chip.ChipGroup,int,boolean) -> access$500
+    56:56:void access$600(com.google.android.material.chip.ChipGroup,int,boolean) -> access$600
+    56:56:int access$700(com.google.android.material.chip.ChipGroup) -> access$700
+    56:56:boolean access$800(com.google.android.material.chip.ChipGroup) -> access$800
+    56:56:void access$900(com.google.android.material.chip.ChipGroup,int) -> access$900
+    203:214:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    264:277:void check(int) -> check
+    181:181:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    332:342:void clearCheck() -> clearCheck
+    176:176:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    164:164:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    170:170:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    291:291:int getCheckedChipId() -> getCheckedChipId
+    307:320:java.util.List getCheckedChipIds() -> getCheckedChipIds
+    376:382:int getChipCount() -> getChipCount
+    421:421:int getChipSpacingHorizontal() -> getChipSpacingHorizontal
+    441:441:int getChipSpacingVertical() -> getChipSpacingVertical
+    391:404:int getIndexOfChip(android.view.View) -> getIndexOfChip
+    522:522:boolean isSelectionRequired() -> isSelectionRequired
+    462:462:boolean isSingleLine() -> isSingleLine
+    479:479:boolean isSingleSelection() -> isSingleSelection
+    192:199:void onFinishInflate() -> onFinishInflate
+    147:159:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    355:356:void setCheckedId(int) -> setCheckedId
+    359:364:void setCheckedId(int,boolean) -> setCheckedId
+    367:373:void setCheckedStateForView(int,boolean) -> setCheckedStateForView
+    409:411:void setChipSpacing(int) -> setChipSpacing
+    426:431:void setChipSpacingHorizontal(int) -> setChipSpacingHorizontal
+    435:436:void setChipSpacingHorizontalResource(int) -> setChipSpacingHorizontalResource
+    415:416:void setChipSpacingResource(int) -> setChipSpacingResource
+    446:451:void setChipSpacingVertical(int) -> setChipSpacingVertical
+    455:456:void setChipSpacingVerticalResource(int) -> setChipSpacingVerticalResource
+    219:219:void setDividerDrawableHorizontal(android.graphics.drawable.Drawable) -> setDividerDrawableHorizontal
+    227:227:void setDividerDrawableVertical(android.graphics.drawable.Drawable) -> setDividerDrawableVertical
+    249:249:void setFlexWrap(int) -> setFlexWrap
+    351:352:void setOnCheckedChangeListener(com.google.android.material.chip.ChipGroup$OnCheckedChangeListener) -> setOnCheckedChangeListener
+    187:188:void setOnHierarchyChangeListener(android.view.ViewGroup$OnHierarchyChangeListener) -> setOnHierarchyChangeListener
+    511:512:void setSelectionRequired(boolean) -> setSelectionRequired
+    235:235:void setShowDividerHorizontal(int) -> setShowDividerHorizontal
+    242:242:void setShowDividerVertical(int) -> setShowDividerVertical
+    469:470:void setSingleLine(boolean) -> setSingleLine
+    474:475:void setSingleLine(int) -> setSingleLine
+    488:493:void setSingleSelection(boolean) -> setSingleSelection
+    501:502:void setSingleSelection(int) -> setSingleSelection
+com.google.android.material.chip.ChipGroup$CheckedStateTracker -> com.google.android.material.chip.ChipGroup$CheckedStateTracker:
+    525:525:void <init>(com.google.android.material.chip.ChipGroup) -> <init>
+    525:525:void <init>(com.google.android.material.chip.ChipGroup,com.google.android.material.chip.ChipGroup$1) -> <init>
+    529:550:void onCheckedChanged(android.widget.CompoundButton,boolean) -> onCheckedChanged
+com.google.android.material.chip.ChipGroup$LayoutParams -> com.google.android.material.chip.ChipGroup$LayoutParams:
+    75:76:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    79:80:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    83:84:void <init>(int,int) -> <init>
+    87:88:void <init>(android.view.ViewGroup$MarginLayoutParams) -> <init>
+com.google.android.material.chip.ChipGroup$PassThroughHierarchyChangeListener -> com.google.android.material.chip.ChipGroup$PassThroughHierarchyChangeListener:
+    558:558:void <init>(com.google.android.material.chip.ChipGroup) -> <init>
+    558:558:void <init>(com.google.android.material.chip.ChipGroup,com.google.android.material.chip.ChipGroup$1) -> <init>
+    558:558:android.view.ViewGroup$OnHierarchyChangeListener access$202(com.google.android.material.chip.ChipGroup$PassThroughHierarchyChangeListener,android.view.ViewGroup$OnHierarchyChangeListener) -> access$202
+    563:580:void onChildViewAdded(android.view.View,android.view.View) -> onChildViewAdded
+    584:591:void onChildViewRemoved(android.view.View,android.view.View) -> onChildViewRemoved
+com.google.android.material.circularreveal.CircularRevealCompat -> com.google.android.material.circularreveal.CircularRevealCompat:
+    39:39:void <init>() -> <init>
+    57:77:android.animation.Animator createCircularReveal(com.google.android.material.circularreveal.CircularRevealWidget,float,float,float) -> createCircularReveal
+    97:110:android.animation.Animator createCircularReveal(com.google.android.material.circularreveal.CircularRevealWidget,float,float,float,float) -> createCircularReveal
+    123:123:android.animation.Animator$AnimatorListener createCircularRevealListener(com.google.android.material.circularreveal.CircularRevealWidget) -> createCircularRevealListener
+com.google.android.material.circularreveal.CircularRevealCompat$1 -> com.google.android.material.circularreveal.CircularRevealCompat$1:
+    123:123:void <init>(com.google.android.material.circularreveal.CircularRevealWidget) -> <init>
+    131:132:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    126:127:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.circularreveal.CircularRevealFrameLayout -> com.google.android.material.circularreveal.CircularRevealFrameLayout:
+    34:35:void <init>(android.content.Context) -> <init>
+    38:40:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    96:97:void actualDraw(android.graphics.Canvas) -> actualDraw
+    110:110:boolean actualIsOpaque() -> actualIsOpaque
+    44:45:void buildCircularRevealCache() -> buildCircularRevealCache
+    49:50:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    87:92:void draw(android.graphics.Canvas) -> draw
+    76:76:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    65:65:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    55:55:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    101:104:boolean isOpaque() -> isOpaque
+    81:82:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    70:71:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    60:61:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.circularreveal.CircularRevealGridLayout -> com.google.android.material.circularreveal.CircularRevealGridLayout:
+    33:34:void <init>(android.content.Context) -> <init>
+    37:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    94:95:void actualDraw(android.graphics.Canvas) -> actualDraw
+    108:108:boolean actualIsOpaque() -> actualIsOpaque
+    43:44:void buildCircularRevealCache() -> buildCircularRevealCache
+    48:49:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    85:90:void draw(android.graphics.Canvas) -> draw
+    75:75:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    64:64:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    54:54:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    99:102:boolean isOpaque() -> isOpaque
+    80:81:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    69:70:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    59:60:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.circularreveal.CircularRevealHelper -> com.google.android.material.circularreveal.CircularRevealHelper:
+    127:134:void <clinit>() -> <clinit>
+    136:150:void <init>(com.google.android.material.circularreveal.CircularRevealHelper$Delegate) -> <init>
+    153:173:void buildCircularRevealCache() -> buildCircularRevealCache
+    176:182:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    264:301:void draw(android.graphics.Canvas) -> draw
+    352:356:void drawDebugCircle(android.graphics.Canvas,int,float) -> drawDebugCircle
+    337:349:void drawDebugMode(android.graphics.Canvas) -> drawDebugMode
+    304:313:void drawOverlayDrawable(android.graphics.Canvas) -> drawOverlayDrawable
+    233:233:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    228:228:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    254:255:float getDistanceToFurthestCorner(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> getDistanceToFurthestCorner
+    210:218:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    242:251:void invalidateRevealInfo() -> invalidateRevealInfo
+    316:316:boolean isOpaque() -> isOpaque
+    237:239:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    222:224:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    189:206:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+    320:324:boolean shouldDrawCircularReveal() -> shouldDrawCircularReveal
+    333:333:boolean shouldDrawOverlayDrawable() -> shouldDrawOverlayDrawable
+    329:329:boolean shouldDrawScrim() -> shouldDrawScrim
+com.google.android.material.circularreveal.CircularRevealLinearLayout -> com.google.android.material.circularreveal.CircularRevealLinearLayout:
+    33:34:void <init>(android.content.Context) -> <init>
+    37:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    94:95:void actualDraw(android.graphics.Canvas) -> actualDraw
+    108:108:boolean actualIsOpaque() -> actualIsOpaque
+    43:44:void buildCircularRevealCache() -> buildCircularRevealCache
+    48:49:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    85:90:void draw(android.graphics.Canvas) -> draw
+    75:75:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    64:64:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    54:54:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    99:102:boolean isOpaque() -> isOpaque
+    80:81:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    69:70:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    59:60:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.circularreveal.CircularRevealRelativeLayout -> com.google.android.material.circularreveal.CircularRevealRelativeLayout:
+    33:34:void <init>(android.content.Context) -> <init>
+    37:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    94:95:void actualDraw(android.graphics.Canvas) -> actualDraw
+    108:108:boolean actualIsOpaque() -> actualIsOpaque
+    43:44:void buildCircularRevealCache() -> buildCircularRevealCache
+    48:49:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    85:90:void draw(android.graphics.Canvas) -> draw
+    75:75:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    64:64:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    54:54:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    99:102:boolean isOpaque() -> isOpaque
+    80:81:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    69:70:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    59:60:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealEvaluator -> com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealEvaluator:
+    209:209:void <clinit>() -> <clinit>
+    207:210:void <init>() -> <init>
+    207:207:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    216:220:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo evaluate(float,com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo,com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> evaluate
+com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealProperty -> com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealProperty:
+    181:181:void <clinit>() -> <clinit>
+    185:186:void <init>(java.lang.String) -> <init>
+    179:179:java.lang.Object get(java.lang.Object) -> get
+    191:191:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo get(com.google.android.material.circularreveal.CircularRevealWidget) -> get
+    179:179:void set(java.lang.Object,java.lang.Object) -> set
+    196:197:void set(com.google.android.material.circularreveal.CircularRevealWidget,com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> set
+com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealScrimColorProperty -> com.google.android.material.circularreveal.CircularRevealWidget$CircularRevealScrimColorProperty:
+    230:230:void <clinit>() -> <clinit>
+    234:235:void <init>(java.lang.String) -> <init>
+    228:228:java.lang.Object get(java.lang.Object) -> get
+    240:240:java.lang.Integer get(com.google.android.material.circularreveal.CircularRevealWidget) -> get
+    228:228:void set(java.lang.Object,java.lang.Object) -> set
+    245:246:void set(com.google.android.material.circularreveal.CircularRevealWidget,java.lang.Integer) -> set
+com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo -> com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo:
+    132:132:void <init>(com.google.android.material.circularreveal.CircularRevealWidget$1) -> <init>
+    144:144:void <init>() -> <init>
+    146:150:void <init>(float,float,float) -> <init>
+    153:154:void <init>(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> <init>
+    171:171:boolean isInvalid() -> isInvalid
+    157:160:void set(float,float,float) -> set
+    163:164:void set(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> set
+com.google.android.material.circularreveal.cardview.CircularRevealCardView -> com.google.android.material.circularreveal.cardview.CircularRevealCardView:
+    37:38:void <init>(android.content.Context) -> <init>
+    41:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    98:99:void actualDraw(android.graphics.Canvas) -> actualDraw
+    112:112:boolean actualIsOpaque() -> actualIsOpaque
+    47:48:void buildCircularRevealCache() -> buildCircularRevealCache
+    52:53:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    89:94:void draw(android.graphics.Canvas) -> draw
+    79:79:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    73:73:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    63:63:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    103:106:boolean isOpaque() -> isOpaque
+    84:85:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    68:69:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    57:58:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout -> com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout:
+    37:38:void <init>(android.content.Context) -> <init>
+    41:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    98:99:void actualDraw(android.graphics.Canvas) -> actualDraw
+    112:112:boolean actualIsOpaque() -> actualIsOpaque
+    47:48:void buildCircularRevealCache() -> buildCircularRevealCache
+    52:53:void destroyCircularRevealCache() -> destroyCircularRevealCache
+    89:94:void draw(android.graphics.Canvas) -> draw
+    79:79:android.graphics.drawable.Drawable getCircularRevealOverlayDrawable() -> getCircularRevealOverlayDrawable
+    73:73:int getCircularRevealScrimColor() -> getCircularRevealScrimColor
+    63:63:com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo getRevealInfo() -> getRevealInfo
+    103:106:boolean isOpaque() -> isOpaque
+    84:85:void setCircularRevealOverlayDrawable(android.graphics.drawable.Drawable) -> setCircularRevealOverlayDrawable
+    68:69:void setCircularRevealScrimColor(int) -> setCircularRevealScrimColor
+    57:58:void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo) -> setRevealInfo
+com.google.android.material.color.MaterialColors -> com.google.android.material.color.MaterialColors:
+    43:45:void <init>() -> <init>
+    155:156:int compositeARGBWithAlpha(int,int) -> compositeARGBWithAlpha
+    55:55:int getColor(android.view.View,int) -> getColor
+    66:66:int getColor(android.content.Context,int,java.lang.String) -> getColor
+    76:76:int getColor(android.view.View,int,int) -> getColor
+    86:90:int getColor(android.content.Context,int,int) -> getColor
+    161:161:boolean isColorLight(int) -> isColorLight
+    103:103:int layer(android.view.View,int,int) -> layer
+    116:118:int layer(android.view.View,int,int,float) -> layer
+    130:132:int layer(int,int,float) -> layer
+    141:141:int layer(int,int) -> layer
+com.google.android.material.datepicker.CalendarConstraints -> com.google.android.material.datepicker.CalendarConstraints:
+    149:149:void <clinit>() -> <clinit>
+    33:33:void <init>(com.google.android.material.datepicker.Month,com.google.android.material.datepicker.Month,com.google.android.material.datepicker.CalendarConstraints$DateValidator,com.google.android.material.datepicker.Month,com.google.android.material.datepicker.CalendarConstraints$1) -> <init>
+    60:73:void <init>(com.google.android.material.datepicker.Month,com.google.android.material.datepicker.Month,com.google.android.material.datepicker.CalendarConstraints$DateValidator,com.google.android.material.datepicker.Month) -> <init>
+    33:33:com.google.android.material.datepicker.Month access$100(com.google.android.material.datepicker.CalendarConstraints) -> access$100
+    33:33:com.google.android.material.datepicker.Month access$200(com.google.android.material.datepicker.CalendarConstraints) -> access$200
+    33:33:com.google.android.material.datepicker.Month access$300(com.google.android.material.datepicker.CalendarConstraints) -> access$300
+    33:33:com.google.android.material.datepicker.CalendarConstraints$DateValidator access$400(com.google.android.material.datepicker.CalendarConstraints) -> access$400
+    185:193:com.google.android.material.datepicker.Month clamp(com.google.android.material.datepicker.Month) -> clamp
+    170:170:int describeContents() -> describeContents
+    127:137:boolean equals(java.lang.Object) -> equals
+    83:83:com.google.android.material.datepicker.CalendarConstraints$DateValidator getDateValidator() -> getDateValidator
+    95:95:com.google.android.material.datepicker.Month getEnd() -> getEnd
+    114:114:int getMonthSpan() -> getMonthSpan
+    101:101:com.google.android.material.datepicker.Month getOpenAt() -> getOpenAt
+    89:89:com.google.android.material.datepicker.Month getStart() -> getStart
+    122:122:int getYearSpan() -> getYearSpan
+    142:143:int hashCode() -> hashCode
+    76:76:boolean isWithinBounds(long) -> isWithinBounds
+    106:107:void setOpenAt(com.google.android.material.datepicker.Month) -> setOpenAt
+    175:179:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.CalendarConstraints$1 -> com.google.android.material.datepicker.CalendarConstraints$1:
+    150:150:void <init>() -> <init>
+    150:150:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    154:158:com.google.android.material.datepicker.CalendarConstraints createFromParcel(android.os.Parcel) -> createFromParcel
+    150:150:java.lang.Object[] newArray(int) -> newArray
+    164:164:com.google.android.material.datepicker.CalendarConstraints[] newArray(int) -> newArray
+com.google.android.material.datepicker.CalendarConstraints$Builder -> com.google.android.material.datepicker.CalendarConstraints$Builder:
+    203:210:void <clinit>() -> <clinit>
+    214:219:void <init>() -> <init>
+    214:226:void <init>(com.google.android.material.datepicker.CalendarConstraints) -> <init>
+    322:328:com.google.android.material.datepicker.CalendarConstraints build() -> build
+    278:279:com.google.android.material.datepicker.CalendarConstraints$Builder setEnd(long) -> setEnd
+    305:306:com.google.android.material.datepicker.CalendarConstraints$Builder setOpenAt(long) -> setOpenAt
+    251:252:com.google.android.material.datepicker.CalendarConstraints$Builder setStart(long) -> setStart
+    315:316:com.google.android.material.datepicker.CalendarConstraints$Builder setValidator(com.google.android.material.datepicker.CalendarConstraints$DateValidator) -> setValidator
+com.google.android.material.datepicker.CalendarItemStyle -> com.google.android.material.datepicker.CalendarItemStyle:
+    66:78:void <init>(android.content.res.ColorStateList,android.content.res.ColorStateList,android.content.res.ColorStateList,int,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.Rect) -> <init>
+    87:130:com.google.android.material.datepicker.CalendarItemStyle create(android.content.Context,int) -> create
+    166:166:int getBottomInset() -> getBottomInset
+    154:154:int getLeftInset() -> getLeftInset
+    158:158:int getRightInset() -> getRightInset
+    162:162:int getTopInset() -> getTopInset
+    136:151:void styleItem(android.widget.TextView) -> styleItem
+com.google.android.material.datepicker.CalendarStyle -> com.google.android.material.datepicker.CalendarStyle:
+    74:116:void <init>(android.content.Context) -> <init>
+com.google.android.material.datepicker.CompositeDateValidator -> com.google.android.material.datepicker.CompositeDateValidator:
+    42:108:void <clinit>() -> <clinit>
+    27:27:void <init>(java.util.List,com.google.android.material.datepicker.CompositeDateValidator$Operator,com.google.android.material.datepicker.CompositeDateValidator$1) -> <init>
+    88:91:void <init>(java.util.List,com.google.android.material.datepicker.CompositeDateValidator$Operator) -> <init>
+    27:27:com.google.android.material.datepicker.CompositeDateValidator$Operator access$000() -> access$000
+    27:27:com.google.android.material.datepicker.CompositeDateValidator$Operator access$100() -> access$100
+    98:98:com.google.android.material.datepicker.CalendarConstraints$DateValidator allOf(java.util.List) -> allOf
+    104:104:com.google.android.material.datepicker.CalendarConstraints$DateValidator anyOf(java.util.List) -> anyOf
+    151:151:int describeContents() -> describeContents
+    162:172:boolean equals(java.lang.Object) -> equals
+    177:177:int hashCode() -> hashCode
+    146:146:boolean isValid(long) -> isValid
+    156:158:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.CompositeDateValidator$1 -> com.google.android.material.datepicker.CompositeDateValidator$1:
+    43:43:void <init>() -> <init>
+    61:61:int getId() -> getId
+    47:56:boolean isValid(java.util.List,long) -> isValid
+com.google.android.material.datepicker.CompositeDateValidator$2 -> com.google.android.material.datepicker.CompositeDateValidator$2:
+    66:66:void <init>() -> <init>
+    84:84:int getId() -> getId
+    70:79:boolean isValid(java.util.List,long) -> isValid
+com.google.android.material.datepicker.CompositeDateValidator$3 -> com.google.android.material.datepicker.CompositeDateValidator$3:
+    109:109:void <init>() -> <init>
+    109:109:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    114:126:com.google.android.material.datepicker.CompositeDateValidator createFromParcel(android.os.Parcel) -> createFromParcel
+    109:109:java.lang.Object[] newArray(int) -> newArray
+    132:132:com.google.android.material.datepicker.CompositeDateValidator[] newArray(int) -> newArray
+com.google.android.material.datepicker.DateFormatTextWatcher -> com.google.android.material.datepicker.DateFormatTextWatcher:
+    48:73:void <init>(java.lang.String,java.text.DateFormat,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.CalendarConstraints) -> <init>
+    31:31:com.google.android.material.textfield.TextInputLayout access$000(com.google.android.material.datepicker.DateFormatTextWatcher) -> access$000
+    31:31:java.text.DateFormat access$100(com.google.android.material.datepicker.DateFormatTextWatcher) -> access$100
+    31:31:java.lang.String access$200(com.google.android.material.datepicker.DateFormatTextWatcher) -> access$200
+    107:107:java.lang.Runnable createRangeErrorCallback(long) -> createRangeErrorCallback
+    77:77:void onInvalidDate() -> onInvalidDate
+    81:104:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+    118:119:void runValidation(android.view.View,java.lang.Runnable) -> runValidation
+com.google.android.material.datepicker.DateFormatTextWatcher$1 -> com.google.android.material.datepicker.DateFormatTextWatcher$1:
+    55:55:void <init>(com.google.android.material.datepicker.DateFormatTextWatcher,java.lang.String) -> <init>
+    58:71:void run() -> run
+com.google.android.material.datepicker.DateFormatTextWatcher$2 -> com.google.android.material.datepicker.DateFormatTextWatcher$2:
+    107:107:void <init>(com.google.android.material.datepicker.DateFormatTextWatcher,long) -> <init>
+    110:113:void run() -> run
+com.google.android.material.datepicker.DateStrings -> com.google.android.material.datepicker.DateStrings:
+    34:34:void <init>() -> <init>
+    136:136:androidx.core.util.Pair getDateRangeString(java.lang.Long,java.lang.Long) -> getDateRangeString
+    157:186:androidx.core.util.Pair getDateRangeString(java.lang.Long,java.lang.Long,java.text.SimpleDateFormat) -> getDateRangeString
+    107:107:java.lang.String getDateString(long) -> getDateString
+    122:132:java.lang.String getDateString(long,java.text.SimpleDateFormat) -> getDateString
+    64:64:java.lang.String getMonthDay(long) -> getMonthDay
+    78:79:java.lang.String getMonthDay(long,java.util.Locale) -> getMonthDay
+    85:85:java.lang.String getMonthDayOfWeekDay(long) -> getMonthDayOfWeekDay
+    89:90:java.lang.String getMonthDayOfWeekDay(long,java.util.Locale) -> getMonthDayOfWeekDay
+    37:39:java.lang.String getYearMonth(android.content.Context,long) -> getYearMonth
+    43:43:java.lang.String getYearMonthDay(long) -> getYearMonthDay
+    57:58:java.lang.String getYearMonthDay(long,java.util.Locale) -> getYearMonthDay
+    96:96:java.lang.String getYearMonthDayOfWeekDay(long) -> getYearMonthDayOfWeekDay
+    100:101:java.lang.String getYearMonthDayOfWeekDay(long,java.util.Locale) -> getYearMonthDayOfWeekDay
+com.google.android.material.datepicker.DateValidatorPointBackward -> com.google.android.material.datepicker.DateValidatorPointBackward:
+    58:58:void <clinit>() -> <clinit>
+    31:31:void <init>(long,com.google.android.material.datepicker.DateValidatorPointBackward$1) -> <init>
+    35:37:void <init>(long) -> <init>
+    45:45:com.google.android.material.datepicker.DateValidatorPointBackward before(long) -> before
+    80:80:int describeContents() -> describeContents
+    90:98:boolean equals(java.lang.Object) -> equals
+    103:104:int hashCode() -> hashCode
+    75:75:boolean isValid(long) -> isValid
+    54:54:com.google.android.material.datepicker.DateValidatorPointBackward now() -> now
+    85:86:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.DateValidatorPointBackward$1 -> com.google.android.material.datepicker.DateValidatorPointBackward$1:
+    59:59:void <init>() -> <init>
+    59:59:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    63:63:com.google.android.material.datepicker.DateValidatorPointBackward createFromParcel(android.os.Parcel) -> createFromParcel
+    59:59:java.lang.Object[] newArray(int) -> newArray
+    69:69:com.google.android.material.datepicker.DateValidatorPointBackward[] newArray(int) -> newArray
+com.google.android.material.datepicker.DateValidatorPointForward -> com.google.android.material.datepicker.DateValidatorPointForward:
+    57:57:void <clinit>() -> <clinit>
+    30:30:void <init>(long,com.google.android.material.datepicker.DateValidatorPointForward$1) -> <init>
+    34:36:void <init>(long) -> <init>
+    79:79:int describeContents() -> describeContents
+    89:96:boolean equals(java.lang.Object) -> equals
+    44:44:com.google.android.material.datepicker.DateValidatorPointForward from(long) -> from
+    101:102:int hashCode() -> hashCode
+    74:74:boolean isValid(long) -> isValid
+    53:53:com.google.android.material.datepicker.DateValidatorPointForward now() -> now
+    84:85:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.DateValidatorPointForward$1 -> com.google.android.material.datepicker.DateValidatorPointForward$1:
+    58:58:void <init>() -> <init>
+    58:58:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    62:62:com.google.android.material.datepicker.DateValidatorPointForward createFromParcel(android.os.Parcel) -> createFromParcel
+    58:58:java.lang.Object[] newArray(int) -> newArray
+    68:68:com.google.android.material.datepicker.DateValidatorPointForward[] newArray(int) -> newArray
+com.google.android.material.datepicker.DaysOfWeekAdapter -> com.google.android.material.datepicker.DaysOfWeekAdapter:
+    49:49:void <clinit>() -> <clinit>
+    52:56:void <init>() -> <init>
+    75:75:int getCount() -> getCount
+    41:41:java.lang.Object getItem(int) -> getItem
+    61:64:java.lang.Integer getItem(int) -> getItem
+    70:70:long getItemId(int) -> getItemId
+    82:96:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    101:105:int positionToDayOfWeek(int) -> positionToDayOfWeek
+com.google.android.material.datepicker.MaterialCalendar -> com.google.android.material.datepicker.MaterialCalendar:
+    74:80:void <clinit>() -> <clinit>
+    60:60:void <init>() -> <init>
+    60:60:androidx.recyclerview.widget.RecyclerView access$000(com.google.android.material.datepicker.MaterialCalendar) -> access$000
+    60:60:com.google.android.material.datepicker.CalendarConstraints access$100(com.google.android.material.datepicker.MaterialCalendar) -> access$100
+    60:60:com.google.android.material.datepicker.DateSelector access$200(com.google.android.material.datepicker.MaterialCalendar) -> access$200
+    60:60:androidx.recyclerview.widget.RecyclerView access$300(com.google.android.material.datepicker.MaterialCalendar) -> access$300
+    60:60:com.google.android.material.datepicker.CalendarStyle access$400(com.google.android.material.datepicker.MaterialCalendar) -> access$400
+    60:60:android.view.View access$500(com.google.android.material.datepicker.MaterialCalendar) -> access$500
+    60:60:com.google.android.material.datepicker.Month access$602(com.google.android.material.datepicker.MaterialCalendar,com.google.android.material.datepicker.Month) -> access$602
+    366:447:void addActionsToMonthNavigation(android.view.View,com.google.android.material.datepicker.MonthsPagerAdapter) -> addActionsToMonthNavigation
+    466:466:boolean addOnSelectionChangedListener(com.google.android.material.datepicker.OnSelectionChangedListener) -> addOnSelectionChangedListener
+    232:232:androidx.recyclerview.widget.RecyclerView$ItemDecoration createItemDecoration() -> createItemDecoration
+    290:290:com.google.android.material.datepicker.CalendarConstraints getCalendarConstraints() -> getCalendarConstraints
+    324:324:com.google.android.material.datepicker.CalendarStyle getCalendarStyle() -> getCalendarStyle
+    284:284:com.google.android.material.datepicker.Month getCurrentMonth() -> getCurrentMonth
+    320:320:com.google.android.material.datepicker.DateSelector getDateSelector() -> getDateSelector
+    335:335:int getDayHeight(android.content.Context) -> getDayHeight
+    461:461:androidx.recyclerview.widget.LinearLayoutManager getLayoutManager() -> getLayoutManager
+    98:105:com.google.android.material.datepicker.MaterialCalendar newInstance(com.google.android.material.datepicker.DateSelector,int,com.google.android.material.datepicker.CalendarConstraints) -> newInstance
+    119:125:void onCreate(android.os.Bundle) -> onCreate
+    133:227:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    110:115:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    450:457:void postSmoothRecyclerViewScroll(int) -> postSmoothRecyclerViewScroll
+    300:315:void setCurrentMonth(com.google.android.material.datepicker.Month) -> setCurrentMonth
+    339:354:void setSelector(com.google.android.material.datepicker.MaterialCalendar$CalendarSelector) -> setSelector
+    357:362:void toggleVisibleSelector() -> toggleVisibleSelector
+com.google.android.material.datepicker.MaterialCalendar$1 -> com.google.android.material.datepicker.MaterialCalendar$1:
+    153:153:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    157:160:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.datepicker.MaterialCalendar$10 -> com.google.android.material.datepicker.MaterialCalendar$10:
+    451:451:void <init>(com.google.android.material.datepicker.MaterialCalendar,int) -> <init>
+    454:455:void run() -> run
+com.google.android.material.datepicker.MaterialCalendar$2 -> com.google.android.material.datepicker.MaterialCalendar$2:
+    169:169:void <init>(com.google.android.material.datepicker.MaterialCalendar,android.content.Context,int,boolean,int) -> <init>
+    172:179:void calculateExtraLayoutSpace(androidx.recyclerview.widget.RecyclerView$State,int[]) -> calculateExtraLayoutSpace
+com.google.android.material.datepicker.MaterialCalendar$3 -> com.google.android.material.datepicker.MaterialCalendar$3:
+    189:189:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    193:204:void onDayClick(long) -> onDayClick
+com.google.android.material.datepicker.MaterialCalendar$4 -> com.google.android.material.datepicker.MaterialCalendar$4:
+    232:235:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    240:278:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDraw
+com.google.android.material.datepicker.MaterialCalendar$5 -> com.google.android.material.datepicker.MaterialCalendar$5:
+    370:370:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    375:380:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.datepicker.MaterialCalendar$6 -> com.google.android.material.datepicker.MaterialCalendar$6:
+    393:393:void <init>(com.google.android.material.datepicker.MaterialCalendar,com.google.android.material.datepicker.MonthsPagerAdapter,com.google.android.material.button.MaterialButton) -> <init>
+    408:416:void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView,int) -> onScrollStateChanged
+    397:404:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+com.google.android.material.datepicker.MaterialCalendar$7 -> com.google.android.material.datepicker.MaterialCalendar$7:
+    420:420:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    423:424:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialCalendar$8 -> com.google.android.material.datepicker.MaterialCalendar$8:
+    428:428:void <init>(com.google.android.material.datepicker.MaterialCalendar,com.google.android.material.datepicker.MonthsPagerAdapter) -> <init>
+    431:435:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialCalendar$9 -> com.google.android.material.datepicker.MaterialCalendar$9:
+    438:438:void <init>(com.google.android.material.datepicker.MaterialCalendar,com.google.android.material.datepicker.MonthsPagerAdapter) -> <init>
+    441:445:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialCalendar$CalendarSelector -> com.google.android.material.datepicker.MaterialCalendar$CalendarSelector:
+    63:65:void <clinit>() -> <clinit>
+    63:63:void <init>(java.lang.String,int) -> <init>
+    63:63:com.google.android.material.datepicker.MaterialCalendar$CalendarSelector valueOf(java.lang.String) -> valueOf
+    63:63:com.google.android.material.datepicker.MaterialCalendar$CalendarSelector[] values() -> values
+com.google.android.material.datepicker.MaterialCalendarGridView -> com.google.android.material.datepicker.MaterialCalendarGridView:
+    46:47:void <init>(android.content.Context) -> <init>
+    50:51:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:71:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    221:228:void gainFocus(int,android.graphics.Rect) -> gainFocus
+    40:40:android.widget.Adapter getAdapter() -> getAdapter
+    40:40:android.widget.ListAdapter getAdapter() -> getAdapter
+    108:108:com.google.android.material.datepicker.MonthAdapter getAdapter() -> getAdapter
+    242:242:int horizontalMidPoint(android.view.View) -> horizontalMidPoint
+    75:77:void onAttachedToWindow() -> onAttachedToWindow
+    125:195:void onDraw(android.graphics.Canvas) -> onDraw
+    213:218:void onFocusChanged(boolean,int,android.graphics.Rect) -> onFocusChanged
+    90:102:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    199:209:void onMeasure(int,int) -> onMeasure
+    40:40:void setAdapter(android.widget.Adapter) -> setAdapter
+    113:121:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    81:86:void setSelection(int) -> setSelection
+    235:238:boolean skipMonth(java.lang.Long,java.lang.Long,java.lang.Long,java.lang.Long) -> skipMonth
+com.google.android.material.datepicker.MaterialCalendarGridView$1 -> com.google.android.material.datepicker.MaterialCalendarGridView$1:
+    62:62:void <init>(com.google.android.material.datepicker.MaterialCalendarGridView) -> <init>
+    66:69:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.datepicker.MaterialDatePicker -> com.google.android.material.datepicker.MaterialDatePicker:
+    71:73:void <clinit>() -> <clinit>
+    62:114:void <init>() -> <init>
+    62:62:java.util.LinkedHashSet access$000(com.google.android.material.datepicker.MaterialDatePicker) -> access$000
+    62:62:java.util.LinkedHashSet access$100(com.google.android.material.datepicker.MaterialDatePicker) -> access$100
+    62:62:void access$200(com.google.android.material.datepicker.MaterialDatePicker) -> access$200
+    62:62:com.google.android.material.datepicker.DateSelector access$300(com.google.android.material.datepicker.MaterialDatePicker) -> access$300
+    62:62:android.widget.Button access$400(com.google.android.material.datepicker.MaterialDatePicker) -> access$400
+    62:62:com.google.android.material.internal.CheckableImageButton access$500(com.google.android.material.datepicker.MaterialDatePicker) -> access$500
+    62:62:void access$600(com.google.android.material.datepicker.MaterialDatePicker,com.google.android.material.internal.CheckableImageButton) -> access$600
+    62:62:void access$700(com.google.android.material.datepicker.MaterialDatePicker) -> access$700
+    502:502:boolean addOnCancelListener(android.content.DialogInterface$OnCancelListener) -> addOnCancelListener
+    520:520:boolean addOnDismissListener(android.content.DialogInterface$OnDismissListener) -> addOnDismissListener
+    476:476:boolean addOnNegativeButtonClickListener(android.view.View$OnClickListener) -> addOnNegativeButtonClickListener
+    454:454:boolean addOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener) -> addOnPositiveButtonClickListener
+    512:513:void clearOnCancelListeners() -> clearOnCancelListeners
+    530:531:void clearOnDismissListeners() -> clearOnDismissListeners
+    492:493:void clearOnNegativeButtonClickListeners() -> clearOnNegativeButtonClickListeners
+    470:471:void clearOnPositiveButtonClickListeners() -> clearOnPositiveButtonClickListeners
+    395:402:android.graphics.drawable.Drawable createHeaderToggleDrawable(android.content.Context) -> createHeaderToggleDrawable
+    425:438:int getDialogPickerHeight(android.content.Context) -> getDialogPickerHeight
+    105:105:java.lang.String getHeaderText() -> getHeaderText
+    442:448:int getPaddedPickerWidth(android.content.Context) -> getPaddedPickerWidth
+    323:323:java.lang.Object getSelection() -> getSelection
+    175:178:int getThemeResId(android.content.Context) -> getThemeResId
+    362:382:void initHeaderToggle(android.content.Context) -> initHeaderToggle
+    406:406:boolean isFullscreen(android.content.Context) -> isFullscreen
+    410:410:boolean isNestedScrollable(android.content.Context) -> isNestedScrollable
+    134:143:com.google.android.material.datepicker.MaterialDatePicker newInstance(com.google.android.material.datepicker.MaterialDatePicker$Builder) -> newInstance
+    299:303:void onCancel(android.content.DialogInterface) -> onCancel
+    164:172:void onCreate(android.os.Bundle) -> onCreate
+    184:199:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    208:267:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    307:315:void onDismiss(android.content.DialogInterface) -> onDismiss
+    148:160:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    272:289:void onStart() -> onStart
+    293:295:void onStop() -> onStop
+    414:421:boolean readMaterialCalendarStyleBoolean(android.content.Context,int) -> readMaterialCalendarStyleBoolean
+    507:507:boolean removeOnCancelListener(android.content.DialogInterface$OnCancelListener) -> removeOnCancelListener
+    525:525:boolean removeOnDismissListener(android.content.DialogInterface$OnDismissListener) -> removeOnDismissListener
+    485:485:boolean removeOnNegativeButtonClickListener(android.view.View$OnClickListener) -> removeOnNegativeButtonClickListener
+    463:463:boolean removeOnPositiveButtonClickListener(com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener) -> removeOnPositiveButtonClickListener
+    334:359:void startPickerFragment() -> startPickerFragment
+    96:96:long thisMonthInUtcMilliseconds() -> thisMonthInUtcMilliseconds
+    89:89:long todayInUtcMilliseconds() -> todayInUtcMilliseconds
+    327:331:void updateHeader() -> updateHeader
+    385:390:void updateToggleContentDescription(com.google.android.material.internal.CheckableImageButton) -> updateToggleContentDescription
+com.google.android.material.datepicker.MaterialDatePicker$1 -> com.google.android.material.datepicker.MaterialDatePicker$1:
+    244:244:void <init>(com.google.android.material.datepicker.MaterialDatePicker) -> <init>
+    248:252:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialDatePicker$2 -> com.google.android.material.datepicker.MaterialDatePicker$2:
+    258:258:void <init>(com.google.android.material.datepicker.MaterialDatePicker) -> <init>
+    261:265:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialDatePicker$3 -> com.google.android.material.datepicker.MaterialDatePicker$3:
+    347:347:void <init>(com.google.android.material.datepicker.MaterialDatePicker) -> <init>
+    356:357:void onIncompleteSelectionChanged() -> onIncompleteSelectionChanged
+    350:352:void onSelectionChanged(java.lang.Object) -> onSelectionChanged
+com.google.android.material.datepicker.MaterialDatePicker$4 -> com.google.android.material.datepicker.MaterialDatePicker$4:
+    371:371:void <init>(com.google.android.material.datepicker.MaterialDatePicker) -> <init>
+    375:380:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.MaterialDatePicker$Builder -> com.google.android.material.datepicker.MaterialDatePicker$Builder:
+    537:547:void <init>(com.google.android.material.datepicker.DateSelector) -> <init>
+    630:645:com.google.android.material.datepicker.MaterialDatePicker build() -> build
+    649:664:com.google.android.material.datepicker.Month createDefaultOpenAt() -> createDefaultOpenAt
+    557:557:com.google.android.material.datepicker.MaterialDatePicker$Builder customDatePicker(com.google.android.material.datepicker.DateSelector) -> customDatePicker
+    566:566:com.google.android.material.datepicker.MaterialDatePicker$Builder datePicker() -> datePicker
+    575:575:com.google.android.material.datepicker.MaterialDatePicker$Builder dateRangePicker() -> dateRangePicker
+    594:595:com.google.android.material.datepicker.MaterialDatePicker$Builder setCalendarConstraints(com.google.android.material.datepicker.CalendarConstraints) -> setCalendarConstraints
+    623:624:com.google.android.material.datepicker.MaterialDatePicker$Builder setInputMode(int) -> setInputMode
+    580:581:com.google.android.material.datepicker.MaterialDatePicker$Builder setSelection(java.lang.Object) -> setSelection
+    587:588:com.google.android.material.datepicker.MaterialDatePicker$Builder setTheme(int) -> setTheme
+    604:606:com.google.android.material.datepicker.MaterialDatePicker$Builder setTitleText(int) -> setTitleText
+    615:617:com.google.android.material.datepicker.MaterialDatePicker$Builder setTitleText(java.lang.CharSequence) -> setTitleText
+com.google.android.material.datepicker.MaterialStyledDatePickerDialog -> com.google.android.material.datepicker.MaterialStyledDatePickerDialog:
+    52:52:void <clinit>() -> <clinit>
+    59:60:void <init>(android.content.Context) -> <init>
+    63:64:void <init>(android.content.Context,int) -> <init>
+    72:73:void <init>(android.content.Context,android.app.DatePickerDialog$OnDateSetListener,int,int,int) -> <init>
+    83:102:void <init>(android.content.Context,int,android.app.DatePickerDialog$OnDateSetListener,int,int,int) -> <init>
+    106:111:void onCreate(android.os.Bundle) -> onCreate
+com.google.android.material.datepicker.MaterialTextInputPicker -> com.google.android.material.datepicker.MaterialTextInputPicker:
+    35:35:void <init>() -> <init>
+    109:115:com.google.android.material.datepicker.DateSelector getDateSelector() -> getDateSelector
+    50:56:com.google.android.material.datepicker.MaterialTextInputPicker newInstance(com.google.android.material.datepicker.DateSelector,int,com.google.android.material.datepicker.CalendarConstraints) -> newInstance
+    69:74:void onCreate(android.os.Bundle) -> onCreate
+    82:84:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    61:65:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+com.google.android.material.datepicker.MaterialTextInputPicker$1 -> com.google.android.material.datepicker.MaterialTextInputPicker$1:
+    89:89:void <init>(com.google.android.material.datepicker.MaterialTextInputPicker) -> <init>
+    99:102:void onIncompleteSelectionChanged() -> onIncompleteSelectionChanged
+    92:95:void onSelectionChanged(java.lang.Object) -> onSelectionChanged
+com.google.android.material.datepicker.Month -> com.google.android.material.datepicker.Month:
+    202:202:void <clinit>() -> <clinit>
+    60:68:void <init>(java.util.Calendar) -> <init>
+    31:31:int compareTo(java.lang.Object) -> compareTo
+    134:134:int compareTo(com.google.android.material.datepicker.Month) -> compareTo
+    76:78:com.google.android.material.datepicker.Month create(long) -> create
+    91:94:com.google.android.material.datepicker.Month create(int,int) -> create
+    103:103:com.google.android.material.datepicker.Month current() -> current
+    107:111:int daysFromStartOfWeekToFirstOfMonth() -> daysFromStartOfWeekToFirstOfMonth
+    221:221:int describeContents() -> describeContents
+    116:123:boolean equals(java.lang.Object) -> equals
+    168:170:long getDay(int) -> getDay
+    174:176:int getDayOfMonth(long) -> getDayOfMonth
+    193:196:java.lang.String getLongName(android.content.Context) -> getLongName
+    155:155:long getStableId() -> getStableId
+    128:129:int hashCode() -> hashCode
+    185:187:com.google.android.material.datepicker.Month monthsLater(int) -> monthsLater
+    147:150:int monthsUntil(com.google.android.material.datepicker.Month) -> monthsUntil
+    226:228:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.Month$1 -> com.google.android.material.datepicker.Month$1:
+    203:203:void <init>() -> <init>
+    203:203:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    207:209:com.google.android.material.datepicker.Month createFromParcel(android.os.Parcel) -> createFromParcel
+    203:203:java.lang.Object[] newArray(int) -> newArray
+    215:215:com.google.android.material.datepicker.Month[] newArray(int) -> newArray
+com.google.android.material.datepicker.MonthAdapter -> com.google.android.material.datepicker.MonthAdapter:
+    43:43:void <clinit>() -> <clinit>
+    56:61:void <init>(com.google.android.material.datepicker.Month,com.google.android.material.datepicker.DateSelector,com.google.android.material.datepicker.CalendarConstraints) -> <init>
+    239:240:int dayToPosition(int) -> dayToPosition
+    212:212:int firstPositionInMonth() -> firstPositionInMonth
+    100:100:int getCount() -> getCount
+    38:38:java.lang.Object getItem(int) -> getItem
+    79:82:java.lang.Long getItem(int) -> getItem
+    87:87:long getItemId(int) -> getItemId
+    38:38:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    106:137:android.widget.TextView getView(int,android.view.View,android.view.ViewGroup) -> getView
+    65:65:boolean hasStableIds() -> hasStableIds
+    199:202:void initializeStyles(android.content.Context) -> initializeStyles
+    253:253:boolean isFirstInRow(int) -> isFirstInRow
+    261:261:boolean isLastInRow(int) -> isLastInRow
+    190:195:boolean isSelected(long) -> isSelected
+    223:223:int lastPositionInMonth() -> lastPositionInMonth
+    234:234:int positionToDay(int) -> positionToDay
+    169:187:void updateSelectedState(android.widget.TextView,long) -> updateSelectedState
+    157:166:void updateSelectedStateForDate(com.google.android.material.datepicker.MaterialCalendarGridView,long) -> updateSelectedStateForDate
+    142:154:void updateSelectedStates(com.google.android.material.datepicker.MaterialCalendarGridView) -> updateSelectedStates
+    245:245:boolean withinMonth(int) -> withinMonth
+com.google.android.material.datepicker.MonthsPagerAdapter -> com.google.android.material.datepicker.MonthsPagerAdapter:
+    50:72:void <init>(android.content.Context,com.google.android.material.datepicker.DateSelector,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.datepicker.MaterialCalendar$OnDayClickListener) -> <init>
+    38:38:com.google.android.material.datepicker.MaterialCalendar$OnDayClickListener access$000(com.google.android.material.datepicker.MonthsPagerAdapter) -> access$000
+    139:139:int getItemCount() -> getItemCount
+    134:134:long getItemId(int) -> getItemId
+    149:149:com.google.android.material.datepicker.Month getPageMonth(int) -> getPageMonth
+    144:144:java.lang.CharSequence getPageTitle(int) -> getPageTitle
+    153:153:int getPosition(com.google.android.material.datepicker.Month) -> getPosition
+    38:38:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    108:130:void onBindViewHolder(com.google.android.material.datepicker.MonthsPagerAdapter$ViewHolder,int) -> onBindViewHolder
+    38:38:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    93:102:com.google.android.material.datepicker.MonthsPagerAdapter$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+com.google.android.material.datepicker.MonthsPagerAdapter$1 -> com.google.android.material.datepicker.MonthsPagerAdapter$1:
+    122:122:void <init>(com.google.android.material.datepicker.MonthsPagerAdapter,com.google.android.material.datepicker.MaterialCalendarGridView) -> <init>
+    125:128:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+com.google.android.material.datepicker.MonthsPagerAdapter$ViewHolder -> com.google.android.material.datepicker.MonthsPagerAdapter$ViewHolder:
+    80:87:void <init>(android.widget.LinearLayout,boolean) -> <init>
+com.google.android.material.datepicker.OnSelectionChangedListener -> com.google.android.material.datepicker.OnSelectionChangedListener:
+    24:24:void <init>() -> <init>
+    29:29:void onIncompleteSelectionChanged() -> onIncompleteSelectionChanged
+com.google.android.material.datepicker.PickerFragment -> com.google.android.material.datepicker.PickerFragment:
+    21:23:void <init>() -> <init>
+    30:30:boolean addOnSelectionChangedListener(com.google.android.material.datepicker.OnSelectionChangedListener) -> addOnSelectionChangedListener
+    40:41:void clearOnSelectionChangedListeners() -> clearOnSelectionChangedListeners
+    35:35:boolean removeOnSelectionChangedListener(com.google.android.material.datepicker.OnSelectionChangedListener) -> removeOnSelectionChangedListener
+com.google.android.material.datepicker.RangeDateSelector -> com.google.android.material.datepicker.RangeDateSelector:
+    280:280:void <clinit>() -> <clinit>
+    52:60:void <init>() -> <init>
+    52:52:java.lang.Long access$002(com.google.android.material.datepicker.RangeDateSelector,java.lang.Long) -> access$002
+    52:52:void access$100(com.google.android.material.datepicker.RangeDateSelector,com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.OnSelectionChangedListener) -> access$100
+    52:52:java.lang.Long access$202(com.google.android.material.datepicker.RangeDateSelector,java.lang.Long) -> access$202
+    52:52:java.lang.Long access$302(com.google.android.material.datepicker.RangeDateSelector,java.lang.Long) -> access$302
+    52:52:java.lang.Long access$402(com.google.android.material.datepicker.RangeDateSelector,java.lang.Long) -> access$402
+    264:270:void clearInvalidRange(com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout) -> clearInvalidRange
+    301:301:int describeContents() -> describeContents
+    125:135:int getDefaultThemeResId(android.content.Context) -> getDefaultThemeResId
+    165:165:int getDefaultTitleResId() -> getDefaultTitleResId
+    113:120:java.util.Collection getSelectedDays() -> getSelectedDays
+    101:107:java.util.Collection getSelectedRanges() -> getSelectedRanges
+    51:51:java.lang.Object getSelection() -> getSelection
+    95:95:androidx.core.util.Pair getSelection() -> getSelection
+    141:157:java.lang.String getSelectionDisplayString(android.content.Context) -> getSelectionDisplayString
+    76:78:boolean isSelectionComplete() -> isSelectionComplete
+    241:241:boolean isValidRange(long,long) -> isValidRange
+    175:237:android.view.View onCreateTextInputView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.datepicker.OnSelectionChangedListener) -> onCreateTextInputView
+    64:72:void select(long) -> select
+    273:275:void setInvalidRange(com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout) -> setInvalidRange
+    51:51:void setSelection(java.lang.Object) -> setSelection
+    83:90:void setSelection(androidx.core.util.Pair) -> setSelection
+    248:261:void updateIfValidTextProposal(com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.OnSelectionChangedListener) -> updateIfValidTextProposal
+    306:308:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.RangeDateSelector$1 -> com.google.android.material.datepicker.RangeDateSelector$1:
+    207:207:void <init>(com.google.android.material.datepicker.RangeDateSelector,java.lang.String,java.text.DateFormat,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.OnSelectionChangedListener) -> <init>
+    217:219:void onInvalidDate() -> onInvalidDate
+    211:213:void onValidDate(java.lang.Long) -> onValidDate
+com.google.android.material.datepicker.RangeDateSelector$2 -> com.google.android.material.datepicker.RangeDateSelector$2:
+    223:223:void <init>(com.google.android.material.datepicker.RangeDateSelector,java.lang.String,java.text.DateFormat,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.textfield.TextInputLayout,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.OnSelectionChangedListener) -> <init>
+    230:232:void onInvalidDate() -> onInvalidDate
+    225:227:void onValidDate(java.lang.Long) -> onValidDate
+com.google.android.material.datepicker.RangeDateSelector$3 -> com.google.android.material.datepicker.RangeDateSelector$3:
+    281:281:void <init>() -> <init>
+    281:281:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    285:289:com.google.android.material.datepicker.RangeDateSelector createFromParcel(android.os.Parcel) -> createFromParcel
+    281:281:java.lang.Object[] newArray(int) -> newArray
+    295:295:com.google.android.material.datepicker.RangeDateSelector[] newArray(int) -> newArray
+com.google.android.material.datepicker.SingleDateSelector -> com.google.android.material.datepicker.SingleDateSelector:
+    166:166:void <clinit>() -> <clinit>
+    49:49:void <init>() -> <init>
+    49:49:void access$000(com.google.android.material.datepicker.SingleDateSelector) -> access$000
+    49:49:java.lang.Long access$102(com.google.android.material.datepicker.SingleDateSelector,java.lang.Long) -> access$102
+    59:60:void clearSelection() -> clearSelection
+    185:185:int describeContents() -> describeContents
+    143:144:int getDefaultThemeResId(android.content.Context) -> getDefaultThemeResId
+    160:160:int getDefaultTitleResId() -> getDefaultTitleResId
+    81:85:java.util.Collection getSelectedDays() -> getSelectedDays
+    75:75:java.util.Collection getSelectedRanges() -> getSelectedRanges
+    48:48:java.lang.Object getSelection() -> getSelection
+    91:91:java.lang.Long getSelection() -> getSelection
+    150:155:java.lang.String getSelectionDisplayString(android.content.Context) -> getSelectionDisplayString
+    69:69:boolean isSelectionComplete() -> isSelectionComplete
+    101:138:android.view.View onCreateTextInputView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.datepicker.OnSelectionChangedListener) -> onCreateTextInputView
+    55:56:void select(long) -> select
+    48:48:void setSelection(java.lang.Object) -> setSelection
+    64:65:void setSelection(java.lang.Long) -> setSelection
+    190:191:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.datepicker.SingleDateSelector$1 -> com.google.android.material.datepicker.SingleDateSelector$1:
+    118:118:void <init>(com.google.android.material.datepicker.SingleDateSelector,java.lang.String,java.text.DateFormat,com.google.android.material.textfield.TextInputLayout,com.google.android.material.datepicker.CalendarConstraints,com.google.android.material.datepicker.OnSelectionChangedListener) -> <init>
+    132:133:void onInvalidDate() -> onInvalidDate
+    122:128:void onValidDate(java.lang.Long) -> onValidDate
+com.google.android.material.datepicker.SingleDateSelector$2 -> com.google.android.material.datepicker.SingleDateSelector$2:
+    167:167:void <init>() -> <init>
+    167:167:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    171:173:com.google.android.material.datepicker.SingleDateSelector createFromParcel(android.os.Parcel) -> createFromParcel
+    167:167:java.lang.Object[] newArray(int) -> newArray
+    179:179:com.google.android.material.datepicker.SingleDateSelector[] newArray(int) -> newArray
+com.google.android.material.datepicker.SmoothCalendarLayoutManager -> com.google.android.material.datepicker.SmoothCalendarLayoutManager:
+    34:35:void <init>(android.content.Context,int,boolean) -> <init>
+    40:50:void smoothScrollToPosition(androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State,int) -> smoothScrollToPosition
+com.google.android.material.datepicker.SmoothCalendarLayoutManager$1 -> com.google.android.material.datepicker.SmoothCalendarLayoutManager$1:
+    41:41:void <init>(com.google.android.material.datepicker.SmoothCalendarLayoutManager,android.content.Context) -> <init>
+    45:45:float calculateSpeedPerPixel(android.util.DisplayMetrics) -> calculateSpeedPerPixel
+com.google.android.material.datepicker.TimeSource -> com.google.android.material.datepicker.TimeSource:
+    25:25:void <clinit>() -> <clinit>
+    31:34:void <init>(java.lang.Long,java.util.TimeZone) -> <init>
+    60:60:com.google.android.material.datepicker.TimeSource fixed(long,java.util.TimeZone) -> fixed
+    75:75:com.google.android.material.datepicker.TimeSource fixed(long) -> fixed
+    80:80:java.util.Calendar now() -> now
+    90:95:java.util.Calendar now(java.util.TimeZone) -> now
+    43:43:com.google.android.material.datepicker.TimeSource system() -> system
+com.google.android.material.datepicker.UtcDates -> com.google.android.material.datepicker.UtcDates:
+    40:40:void <clinit>() -> <clinit>
+    51:51:void <init>() -> <init>
+    130:133:long canonicalYearMonthDay(long) -> canonicalYearMonthDay
+    258:275:int findCharactersInDateFormatPattern(java.lang.String,java.lang.String,int,int) -> findCharactersInDateFormatPattern
+    187:187:android.icu.text.DateFormat getAbbrMonthDayFormat(java.util.Locale) -> getAbbrMonthDayFormat
+    192:192:android.icu.text.DateFormat getAbbrMonthWeekdayDayFormat(java.util.Locale) -> getAbbrMonthWeekdayDayFormat
+    138:141:android.icu.text.DateFormat getAndroidFormat(java.lang.String,java.util.Locale) -> getAndroidFormat
+    113:119:java.util.Calendar getDayCopy(java.util.Calendar) -> getDayCopy
+    145:147:java.text.DateFormat getFormat(int,java.util.Locale) -> getFormat
+    219:219:java.text.DateFormat getFullFormat() -> getFullFormat
+    223:223:java.text.DateFormat getFullFormat(java.util.Locale) -> getFullFormat
+    201:201:java.text.DateFormat getMediumFormat() -> getMediumFormat
+    205:205:java.text.DateFormat getMediumFormat(java.util.Locale) -> getMediumFormat
+    209:209:java.text.DateFormat getMediumNoYear() -> getMediumNoYear
+    213:215:java.text.DateFormat getMediumNoYear(java.util.Locale) -> getMediumNoYear
+    171:171:java.text.SimpleDateFormat getSimpleFormat(java.lang.String) -> getSimpleFormat
+    175:177:java.text.SimpleDateFormat getSimpleFormat(java.lang.String,java.util.Locale) -> getSimpleFormat
+    151:158:java.text.SimpleDateFormat getTextInputFormat() -> getTextInputFormat
+    162:167:java.lang.String getTextInputHint(android.content.res.Resources,java.text.SimpleDateFormat) -> getTextInputHint
+    47:48:com.google.android.material.datepicker.TimeSource getTimeSource() -> getTimeSource
+    54:54:java.util.TimeZone getTimeZone() -> getTimeZone
+    66:72:java.util.Calendar getTodayCalendar() -> getTodayCalendar
+    59:59:android.icu.util.TimeZone getUtcAndroidTimeZone() -> getUtcAndroidTimeZone
+    83:83:java.util.Calendar getUtcCalendar() -> getUtcCalendar
+    95:101:java.util.Calendar getUtcCalendarOf(java.util.Calendar) -> getUtcCalendarOf
+    182:182:android.icu.text.DateFormat getYearAbbrMonthDayFormat(java.util.Locale) -> getYearAbbrMonthDayFormat
+    197:197:android.icu.text.DateFormat getYearAbbrMonthWeekdayDayFormat(java.util.Locale) -> getYearAbbrMonthWeekdayDayFormat
+    228:250:java.lang.String removeYearFromDateFormatPattern(java.lang.String) -> removeYearFromDateFormatPattern
+    43:44:void setTimeSource(com.google.android.material.datepicker.TimeSource) -> setTimeSource
+com.google.android.material.datepicker.YearGridAdapter -> com.google.android.material.datepicker.YearGridAdapter:
+    45:47:void <init>(com.google.android.material.datepicker.MaterialCalendar) -> <init>
+    31:31:com.google.android.material.datepicker.MaterialCalendar access$000(com.google.android.material.datepicker.YearGridAdapter) -> access$000
+    84:84:android.view.View$OnClickListener createYearClickListener(int) -> createYearClickListener
+    98:98:int getItemCount() -> getItemCount
+    102:102:int getPositionForYear(int) -> getPositionForYear
+    106:106:int getYearForPosition(int) -> getYearForPosition
+    31:31:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    61:80:void onBindViewHolder(com.google.android.material.datepicker.YearGridAdapter$ViewHolder,int) -> onBindViewHolder
+    31:31:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    52:56:com.google.android.material.datepicker.YearGridAdapter$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+com.google.android.material.datepicker.YearGridAdapter$1 -> com.google.android.material.datepicker.YearGridAdapter$1:
+    84:84:void <init>(com.google.android.material.datepicker.YearGridAdapter,int) -> <init>
+    87:92:void onClick(android.view.View) -> onClick
+com.google.android.material.datepicker.YearGridAdapter$ViewHolder -> com.google.android.material.datepicker.YearGridAdapter$ViewHolder:
+    40:42:void <init>(android.widget.TextView) -> <init>
+com.google.android.material.dialog.InsetDialogOnTouchListener -> com.google.android.material.dialog.InsetDialogOnTouchListener:
+    45:50:void <init>(android.app.Dialog,android.graphics.Rect) -> <init>
+    54:76:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+com.google.android.material.dialog.MaterialAlertDialogBuilder -> com.google.android.material.dialog.MaterialAlertDialogBuilder:
+    69:73:void <clinit>() -> <clinit>
+    103:104:void <init>(android.content.Context) -> <init>
+    109:137:void <init>(android.content.Context,int) -> <init>
+    142:154:androidx.appcompat.app.AlertDialog create() -> create
+    88:93:android.content.Context createMaterialAlertDialogThemedContext(android.content.Context) -> createMaterialAlertDialogThemedContext
+    159:159:android.graphics.drawable.Drawable getBackground() -> getBackground
+    79:84:int getMaterialAlertDialogThemeOverlay(android.content.Context) -> getMaterialAlertDialogThemeOverlay
+    97:98:int getOverridingThemeResId(android.content.Context,int) -> getOverridingThemeResId
+    67:67:androidx.appcompat.app.AlertDialog$Builder setAdapter(android.widget.ListAdapter,android.content.DialogInterface$OnClickListener) -> setAdapter
+    359:359:com.google.android.material.dialog.MaterialAlertDialogBuilder setAdapter(android.widget.ListAdapter,android.content.DialogInterface$OnClickListener) -> setAdapter
+    164:165:com.google.android.material.dialog.MaterialAlertDialogBuilder setBackground(android.graphics.drawable.Drawable) -> setBackground
+    200:201:com.google.android.material.dialog.MaterialAlertDialogBuilder setBackgroundInsetBottom(int) -> setBackgroundInsetBottom
+    188:195:com.google.android.material.dialog.MaterialAlertDialogBuilder setBackgroundInsetEnd(int) -> setBackgroundInsetEnd
+    170:177:com.google.android.material.dialog.MaterialAlertDialogBuilder setBackgroundInsetStart(int) -> setBackgroundInsetStart
+    182:183:com.google.android.material.dialog.MaterialAlertDialogBuilder setBackgroundInsetTop(int) -> setBackgroundInsetTop
+    67:67:androidx.appcompat.app.AlertDialog$Builder setCancelable(boolean) -> setCancelable
+    318:318:com.google.android.material.dialog.MaterialAlertDialogBuilder setCancelable(boolean) -> setCancelable
+    67:67:androidx.appcompat.app.AlertDialog$Builder setCursor(android.database.Cursor,android.content.DialogInterface$OnClickListener,java.lang.String) -> setCursor
+    368:368:com.google.android.material.dialog.MaterialAlertDialogBuilder setCursor(android.database.Cursor,android.content.DialogInterface$OnClickListener,java.lang.String) -> setCursor
+    67:67:androidx.appcompat.app.AlertDialog$Builder setCustomTitle(android.view.View) -> setCustomTitle
+    222:222:com.google.android.material.dialog.MaterialAlertDialogBuilder setCustomTitle(android.view.View) -> setCustomTitle
+    67:67:androidx.appcompat.app.AlertDialog$Builder setIcon(int) -> setIcon
+    67:67:androidx.appcompat.app.AlertDialog$Builder setIcon(android.graphics.drawable.Drawable) -> setIcon
+    240:240:com.google.android.material.dialog.MaterialAlertDialogBuilder setIcon(int) -> setIcon
+    246:246:com.google.android.material.dialog.MaterialAlertDialogBuilder setIcon(android.graphics.drawable.Drawable) -> setIcon
+    67:67:androidx.appcompat.app.AlertDialog$Builder setIconAttribute(int) -> setIconAttribute
+    252:252:com.google.android.material.dialog.MaterialAlertDialogBuilder setIconAttribute(int) -> setIconAttribute
+    67:67:androidx.appcompat.app.AlertDialog$Builder setItems(int,android.content.DialogInterface$OnClickListener) -> setItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setItems(java.lang.CharSequence[],android.content.DialogInterface$OnClickListener) -> setItems
+    345:345:com.google.android.material.dialog.MaterialAlertDialogBuilder setItems(int,android.content.DialogInterface$OnClickListener) -> setItems
+    352:352:com.google.android.material.dialog.MaterialAlertDialogBuilder setItems(java.lang.CharSequence[],android.content.DialogInterface$OnClickListener) -> setItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setMessage(int) -> setMessage
+    67:67:androidx.appcompat.app.AlertDialog$Builder setMessage(java.lang.CharSequence) -> setMessage
+    228:228:com.google.android.material.dialog.MaterialAlertDialogBuilder setMessage(int) -> setMessage
+    234:234:com.google.android.material.dialog.MaterialAlertDialogBuilder setMessage(java.lang.CharSequence) -> setMessage
+    67:67:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(int,boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(android.database.Cursor,java.lang.String,java.lang.String,android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setMultiChoiceItems(java.lang.CharSequence[],boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    377:377:com.google.android.material.dialog.MaterialAlertDialogBuilder setMultiChoiceItems(int,boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    386:386:com.google.android.material.dialog.MaterialAlertDialogBuilder setMultiChoiceItems(java.lang.CharSequence[],boolean[],android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    396:397:com.google.android.material.dialog.MaterialAlertDialogBuilder setMultiChoiceItems(android.database.Cursor,java.lang.String,java.lang.String,android.content.DialogInterface$OnMultiChoiceClickListener) -> setMultiChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNegativeButton(int,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNegativeButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    279:279:com.google.android.material.dialog.MaterialAlertDialogBuilder setNegativeButton(int,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    286:286:com.google.android.material.dialog.MaterialAlertDialogBuilder setNegativeButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNegativeButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNegativeButtonIcon(android.graphics.drawable.Drawable) -> setNegativeButtonIcon
+    292:292:com.google.android.material.dialog.MaterialAlertDialogBuilder setNegativeButtonIcon(android.graphics.drawable.Drawable) -> setNegativeButtonIcon
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNeutralButton(int,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNeutralButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    299:299:com.google.android.material.dialog.MaterialAlertDialogBuilder setNeutralButton(int,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    306:306:com.google.android.material.dialog.MaterialAlertDialogBuilder setNeutralButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setNeutralButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setNeutralButtonIcon(android.graphics.drawable.Drawable) -> setNeutralButtonIcon
+    312:312:com.google.android.material.dialog.MaterialAlertDialogBuilder setNeutralButtonIcon(android.graphics.drawable.Drawable) -> setNeutralButtonIcon
+    67:67:androidx.appcompat.app.AlertDialog$Builder setOnCancelListener(android.content.DialogInterface$OnCancelListener) -> setOnCancelListener
+    325:325:com.google.android.material.dialog.MaterialAlertDialogBuilder setOnCancelListener(android.content.DialogInterface$OnCancelListener) -> setOnCancelListener
+    67:67:androidx.appcompat.app.AlertDialog$Builder setOnDismissListener(android.content.DialogInterface$OnDismissListener) -> setOnDismissListener
+    332:332:com.google.android.material.dialog.MaterialAlertDialogBuilder setOnDismissListener(android.content.DialogInterface$OnDismissListener) -> setOnDismissListener
+    67:67:androidx.appcompat.app.AlertDialog$Builder setOnItemSelectedListener(android.widget.AdapterView$OnItemSelectedListener) -> setOnItemSelectedListener
+    436:436:com.google.android.material.dialog.MaterialAlertDialogBuilder setOnItemSelectedListener(android.widget.AdapterView$OnItemSelectedListener) -> setOnItemSelectedListener
+    67:67:androidx.appcompat.app.AlertDialog$Builder setOnKeyListener(android.content.DialogInterface$OnKeyListener) -> setOnKeyListener
+    338:338:com.google.android.material.dialog.MaterialAlertDialogBuilder setOnKeyListener(android.content.DialogInterface$OnKeyListener) -> setOnKeyListener
+    67:67:androidx.appcompat.app.AlertDialog$Builder setPositiveButton(int,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setPositiveButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    259:259:com.google.android.material.dialog.MaterialAlertDialogBuilder setPositiveButton(int,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    266:266:com.google.android.material.dialog.MaterialAlertDialogBuilder setPositiveButton(java.lang.CharSequence,android.content.DialogInterface$OnClickListener) -> setPositiveButton
+    67:67:androidx.appcompat.app.AlertDialog$Builder setPositiveButtonIcon(android.graphics.drawable.Drawable) -> setPositiveButtonIcon
+    272:272:com.google.android.material.dialog.MaterialAlertDialogBuilder setPositiveButtonIcon(android.graphics.drawable.Drawable) -> setPositiveButtonIcon
+    67:67:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(int,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(android.database.Cursor,int,java.lang.String,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(android.widget.ListAdapter,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setSingleChoiceItems(java.lang.CharSequence[],int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    404:404:com.google.android.material.dialog.MaterialAlertDialogBuilder setSingleChoiceItems(int,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    414:415:com.google.android.material.dialog.MaterialAlertDialogBuilder setSingleChoiceItems(android.database.Cursor,int,java.lang.String,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    422:422:com.google.android.material.dialog.MaterialAlertDialogBuilder setSingleChoiceItems(java.lang.CharSequence[],int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    429:429:com.google.android.material.dialog.MaterialAlertDialogBuilder setSingleChoiceItems(android.widget.ListAdapter,int,android.content.DialogInterface$OnClickListener) -> setSingleChoiceItems
+    67:67:androidx.appcompat.app.AlertDialog$Builder setTitle(int) -> setTitle
+    67:67:androidx.appcompat.app.AlertDialog$Builder setTitle(java.lang.CharSequence) -> setTitle
+    210:210:com.google.android.material.dialog.MaterialAlertDialogBuilder setTitle(int) -> setTitle
+    216:216:com.google.android.material.dialog.MaterialAlertDialogBuilder setTitle(java.lang.CharSequence) -> setTitle
+    67:67:androidx.appcompat.app.AlertDialog$Builder setView(int) -> setView
+    67:67:androidx.appcompat.app.AlertDialog$Builder setView(android.view.View) -> setView
+    442:442:com.google.android.material.dialog.MaterialAlertDialogBuilder setView(int) -> setView
+    448:448:com.google.android.material.dialog.MaterialAlertDialogBuilder setView(android.view.View) -> setView
+com.google.android.material.dialog.MaterialDialogs -> com.google.android.material.dialog.MaterialDialogs:
+    43:43:void <init>() -> <init>
+    59:105:android.graphics.Rect getDialogBackgroundInsets(android.content.Context,int,int) -> getDialogBackgroundInsets
+    48:48:android.graphics.drawable.InsetDrawable insetDrawable(android.graphics.drawable.Drawable,android.graphics.Rect) -> insetDrawable
+com.google.android.material.drawable.DrawableUtils -> com.google.android.material.drawable.DrawableUtils:
+    53:53:void <init>() -> <init>
+    73:94:android.util.AttributeSet parseDrawableXml(android.content.Context,int,java.lang.CharSequence) -> parseDrawableXml
+    100:112:void setRippleDrawableRadius(android.graphics.drawable.RippleDrawable,int) -> setRippleDrawableRadius
+    61:66:android.graphics.PorterDuffColorFilter updateTintFilter(android.graphics.drawable.Drawable,android.content.res.ColorStateList,android.graphics.PorterDuff$Mode) -> updateTintFilter
+com.google.android.material.elevation.ElevationOverlayProvider -> com.google.android.material.elevation.ElevationOverlayProvider:
+    42:49:void <init>(android.content.Context) -> <init>
+    130:130:int calculateOverlayAlpha(float) -> calculateOverlayAlpha
+    138:144:float calculateOverlayAlphaFraction(float) -> calculateOverlayAlphaFraction
+    105:106:int compositeOverlay(int,float,android.view.View) -> compositeOverlay
+    117:122:int compositeOverlay(int,float) -> compositeOverlay
+    82:83:int compositeOverlayIfNeeded(int,float,android.view.View) -> compositeOverlayIfNeeded
+    94:97:int compositeOverlayIfNeeded(int,float) -> compositeOverlayIfNeeded
+    60:61:int compositeOverlayWithThemeSurfaceColorIfNeeded(float,android.view.View) -> compositeOverlayWithThemeSurfaceColorIfNeeded
+    70:70:int compositeOverlayWithThemeSurfaceColorIfNeeded(float) -> compositeOverlayWithThemeSurfaceColorIfNeeded
+    169:169:float getParentAbsoluteElevation(android.view.View) -> getParentAbsoluteElevation
+    155:155:int getThemeElevationOverlayColor() -> getThemeElevationOverlayColor
+    161:161:int getThemeSurfaceColor() -> getThemeSurfaceColor
+    149:149:boolean isThemeElevationOverlayEnabled() -> isThemeElevationOverlayEnabled
+    173:173:boolean isThemeSurfaceColor(int) -> isThemeSurfaceColor
+com.google.android.material.expandable.ExpandableWidgetHelper -> com.google.android.material.expandable.ExpandableWidgetHelper:
+    36:42:void <init>(com.google.android.material.expandable.ExpandableWidget) -> <init>
+    91:95:void dispatchExpandedStateChanged() -> dispatchExpandedStateChanged
+    87:87:int getExpandedComponentIdHint() -> getExpandedComponentIdHint
+    56:56:boolean isExpanded() -> isExpanded
+    71:77:void onRestoreInstanceState(android.os.Bundle) -> onRestoreInstanceState
+    62:66:android.os.Bundle onSaveInstanceState() -> onSaveInstanceState
+    46:51:boolean setExpanded(boolean) -> setExpanded
+    81:82:void setExpandedComponentIdHint(int) -> setExpandedComponentIdHint
+com.google.android.material.floatingactionbutton.AnimatorTracker -> com.google.android.material.floatingactionbutton.AnimatorTracker:
+    23:23:void <init>() -> <init>
+    33:36:void cancelCurrent() -> cancelCurrent
+    39:40:void clear() -> clear
+    28:30:void onNextAnimationStart(android.animation.Animator) -> onNextAnimationStart
+com.google.android.material.floatingactionbutton.BaseMotionStrategy -> com.google.android.material.floatingactionbutton.BaseMotionStrategy:
+    44:54:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.AnimatorTracker) -> <init>
+    40:40:com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton access$000(com.google.android.material.floatingactionbutton.BaseMotionStrategy) -> access$000
+    76:77:void addAnimationListener(android.animation.Animator$AnimatorListener) -> addAnimationListener
+    116:116:android.animation.AnimatorSet createAnimator() -> createAnimator
+    121:207:android.animation.AnimatorSet createAnimator(com.google.android.material.animation.MotionSpec) -> createAnimator
+    63:71:com.google.android.material.animation.MotionSpec getCurrentMotionSpec() -> getCurrentMotionSpec
+    87:87:java.util.List getListeners() -> getListeners
+    93:93:com.google.android.material.animation.MotionSpec getMotionSpec() -> getMotionSpec
+    111:112:void onAnimationCancel() -> onAnimationCancel
+    105:106:void onAnimationEnd() -> onAnimationEnd
+    99:100:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    81:82:void removeAnimationListener(android.animation.Animator$AnimatorListener) -> removeAnimationListener
+    58:59:void setMotionSpec(com.google.android.material.animation.MotionSpec) -> setMotionSpec
+com.google.android.material.floatingactionbutton.BaseMotionStrategy$1 -> com.google.android.material.floatingactionbutton.BaseMotionStrategy$1:
+    156:156:void <init>(com.google.android.material.floatingactionbutton.BaseMotionStrategy,java.lang.Class,java.lang.String) -> <init>
+    156:156:java.lang.Object get(java.lang.Object) -> get
+    161:166:java.lang.Float get(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> get
+    156:156:void set(java.lang.Object,java.lang.Object) -> set
+    173:200:void set(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,java.lang.Float) -> set
+com.google.android.material.floatingactionbutton.BorderDrawable -> com.google.android.material.floatingactionbutton.BorderDrawable:
+    60:86:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    224:249:android.graphics.Shader createGradientShader() -> createGradientShader
+    125:143:void draw(android.graphics.Canvas) -> draw
+    173:174:android.graphics.RectF getBoundsAsRectF() -> getBoundsAsRectF
+    256:256:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    194:194:int getOpacity() -> getOpacity
+    148:160:void getOutline(android.graphics.Outline) -> getOutline
+    164:168:boolean getPadding(android.graphics.Rect) -> getPadding
+    178:178:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    204:204:boolean isStateful() -> isStateful
+    199:200:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    209:219:boolean onStateChange(int[]) -> onStateChange
+    188:190:void setAlpha(int) -> setAlpha
+    98:104:void setBorderTint(android.content.res.ColorStateList) -> setBorderTint
+    89:95:void setBorderWidth(float) -> setBorderWidth
+    108:110:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    117:121:void setGradientColors(int,int,int,int) -> setGradientColors
+    182:184:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+com.google.android.material.floatingactionbutton.BorderDrawable$BorderState -> com.google.android.material.floatingactionbutton.BorderDrawable$BorderState:
+    263:263:void <init>(com.google.android.material.floatingactionbutton.BorderDrawable) -> <init>
+    263:263:void <init>(com.google.android.material.floatingactionbutton.BorderDrawable,com.google.android.material.floatingactionbutton.BorderDrawable$1) -> <init>
+    273:273:int getChangingConfigurations() -> getChangingConfigurations
+    268:268:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton:
+    76:769:void <clinit>() -> <clinit>
+    145:146:void <init>(android.content.Context) -> <init>
+    149:150:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    83:259:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    74:74:int access$000(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$000
+    74:74:int access$100(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$100
+    74:74:boolean access$1000(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$1000
+    74:74:boolean access$1100(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$1100
+    74:74:com.google.android.material.floatingactionbutton.MotionStrategy access$200(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$200
+    74:74:com.google.android.material.floatingactionbutton.MotionStrategy access$300(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$300
+    74:74:void access$400(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.MotionStrategy,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> access$400
+    74:74:com.google.android.material.floatingactionbutton.MotionStrategy access$500(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$500
+    74:74:com.google.android.material.floatingactionbutton.MotionStrategy access$600(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$600
+    74:74:boolean access$700(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> access$700
+    74:74:boolean access$702(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,boolean) -> access$702
+    74:74:boolean access$802(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,boolean) -> access$802
+    74:74:int access$902(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,int) -> access$902
+    430:431:void addOnExtendAnimationListener(android.animation.Animator$AnimatorListener) -> addOnExtendAnimationListener
+    384:385:void addOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> addOnHideAnimationListener
+    361:362:void addOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> addOnShowAnimationListener
+    407:408:void addOnShrinkAnimationListener(android.animation.Animator$AnimatorListener) -> addOnShrinkAnimationListener
+    494:495:void extend() -> extend
+    506:507:void extend(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> extend
+    298:298:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior getBehavior() -> getBehavior
+    800:800:int getCollapsedPadding() -> getCollapsedPadding
+    794:795:int getCollapsedSize() -> getCollapsedSize
+    585:585:com.google.android.material.animation.MotionSpec getExtendMotionSpec() -> getExtendMotionSpec
+    561:561:com.google.android.material.animation.MotionSpec getHideMotionSpec() -> getHideMotionSpec
+    537:537:com.google.android.material.animation.MotionSpec getShowMotionSpec() -> getShowMotionSpec
+    611:611:com.google.android.material.animation.MotionSpec getShrinkMotionSpec() -> getShrinkMotionSpec
+    449:450:void hide() -> hide
+    460:461:void hide(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> hide
+    319:319:boolean isExtended() -> isExtended
+    690:695:boolean isOrWillBeHidden() -> isOrWillBeHidden
+    680:685:boolean isOrWillBeShown() -> isOrWillBeShown
+    287:293:void onAttachedToWindow() -> onAttachedToWindow
+    634:677:void performMotion(com.google.android.material.floatingactionbutton.MotionStrategy,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> performMotion
+    440:441:void removeOnExtendAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnExtendAnimationListener
+    394:395:void removeOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnHideAnimationListener
+    371:372:void removeOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnShowAnimationListener
+    417:418:void removeOnShrinkAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnShrinkAnimationListener
+    274:275:void saveOriginalTextCsl() -> saveOriginalTextCsl
+    330:331:void setAnimateShowBeforeLayout(boolean) -> setAnimateShowBeforeLayout
+    594:595:void setExtendMotionSpec(com.google.android.material.animation.MotionSpec) -> setExtendMotionSpec
+    603:604:void setExtendMotionSpecResource(int) -> setExtendMotionSpecResource
+    306:316:void setExtended(boolean) -> setExtended
+    570:571:void setHideMotionSpec(com.google.android.material.animation.MotionSpec) -> setHideMotionSpec
+    579:580:void setHideMotionSpecResource(int) -> setHideMotionSpecResource
+    344:349:void setPadding(int,int,int,int) -> setPadding
+    335:340:void setPaddingRelative(int,int,int,int) -> setPaddingRelative
+    546:547:void setShowMotionSpec(com.google.android.material.animation.MotionSpec) -> setShowMotionSpec
+    555:556:void setShowMotionSpecResource(int) -> setShowMotionSpecResource
+    620:621:void setShrinkMotionSpec(com.google.android.material.animation.MotionSpec) -> setShrinkMotionSpec
+    629:630:void setShrinkMotionSpecResource(int) -> setShrinkMotionSpecResource
+    263:265:void setTextColor(int) -> setTextColor
+    269:271:void setTextColor(android.content.res.ColorStateList) -> setTextColor
+    700:701:boolean shouldAnimateVisibilityChange() -> shouldAnimateVisibilityChange
+    470:471:void show() -> show
+    482:483:void show(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> show
+    519:520:void shrink() -> shrink
+    531:532:void shrink(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> shrink
+    282:283:void silentlyUpdateTextColor(android.content.res.ColorStateList) -> silentlyUpdateTextColor
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$1 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$1:
+    185:185:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> <init>
+    196:196:int getHeight() -> getHeight
+    211:211:android.view.ViewGroup$LayoutParams getLayoutParams() -> getLayoutParams
+    206:206:int getPaddingEnd() -> getPaddingEnd
+    201:201:int getPaddingStart() -> getPaddingStart
+    188:191:int getWidth() -> getWidth
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$2 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$2:
+    219:219:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> <init>
+    227:227:int getHeight() -> getHeight
+    242:242:android.view.ViewGroup$LayoutParams getLayoutParams() -> getLayoutParams
+    237:237:int getPaddingEnd() -> getPaddingEnd
+    232:232:int getPaddingStart() -> getPaddingStart
+    222:222:int getWidth() -> getWidth
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$3 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$3:
+    648:648:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.MotionStrategy,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> <init>
+    659:661:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    665:669:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    653:655:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$4 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$4:
+    709:709:void <init>(java.lang.Class,java.lang.String) -> <init>
+    709:709:java.lang.Object get(java.lang.Object) -> get
+    719:719:java.lang.Float get(android.view.View) -> get
+    709:709:void set(java.lang.Object,java.lang.Object) -> set
+    712:714:void set(android.view.View,java.lang.Float) -> set
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$5 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$5:
+    728:728:void <init>(java.lang.Class,java.lang.String) -> <init>
+    728:728:java.lang.Object get(java.lang.Object) -> get
+    738:738:java.lang.Float get(android.view.View) -> get
+    728:728:void set(java.lang.Object,java.lang.Object) -> set
+    731:733:void set(android.view.View,java.lang.Float) -> set
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$6 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$6:
+    747:747:void <init>(java.lang.Class,java.lang.String) -> <init>
+    747:747:java.lang.Object get(java.lang.Object) -> get
+    761:761:java.lang.Float get(android.view.View) -> get
+    747:747:void set(java.lang.Object,java.lang.Object) -> set
+    750:756:void set(android.view.View,java.lang.Float) -> set
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$7 -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$7:
+    770:770:void <init>(java.lang.Class,java.lang.String) -> <init>
+    770:770:java.lang.Object get(java.lang.Object) -> get
+    784:784:java.lang.Float get(android.view.View) -> get
+    770:770:void set(java.lang.Object,java.lang.Object) -> set
+    773:779:void set(android.view.View,java.lang.Float) -> set
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ChangeSizeStrategy:
+    1092:1096:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.AnimatorTracker,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$Size,boolean) -> <init>
+    1140:1175:android.animation.AnimatorSet createAnimator() -> createAnimator
+    1132:1132:int getDefaultMotionSpecResource() -> getDefaultMotionSpecResource
+    1188:1198:void onAnimationEnd() -> onAnimationEnd
+    1180:1184:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    1119:1128:void onChange(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> onChange
+    1100:1115:void performNow() -> performNow
+    1202:1202:boolean shouldCancel() -> shouldCancel
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ExtendedFloatingActionButtonBehavior -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ExtendedFloatingActionButtonBehavior:
+    821:824:void <init>() -> <init>
+    830:843:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1041:1049:void extendOrShow(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> extendOrShow
+    808:808:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.graphics.Rect) -> getInsetDodgeRect
+    905:905:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,android.graphics.Rect) -> getInsetDodgeRect
+    869:869:boolean isAutoHideEnabled() -> isAutoHideEnabled
+    894:894:boolean isAutoShrinkEnabled() -> isAutoShrinkEnabled
+    931:935:boolean isBottomSheet(android.view.View) -> isBottomSheet
+    910:915:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    808:808:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    920:927:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,android.view.View) -> onDependentViewChanged
+    808:808:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    1057:1072:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,int) -> onLayoutChild
+    857:858:void setAutoHideEnabled(boolean) -> setAutoHideEnabled
+    882:883:void setAutoShrinkEnabled(boolean) -> setAutoShrinkEnabled
+    940:941:void setInternalAutoHideCallback(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> setInternalAutoHideCallback
+    945:946:void setInternalAutoShrinkCallback(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> setInternalAutoShrinkCallback
+    950:962:boolean shouldUpdateVisibility(android.view.View,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> shouldUpdateVisibility
+    1018:1026:void shrinkOrHide(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> shrinkOrHide
+    969:988:boolean updateFabVisibilityForAppBarLayout(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> updateFabVisibilityForAppBarLayout
+    993:1002:boolean updateFabVisibilityForBottomSheet(android.view.View,com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> updateFabVisibilityForBottomSheet
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$HideStrategy -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$HideStrategy:
+    1255:1257:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.AnimatorTracker) -> <init>
+    1278:1278:int getDefaultMotionSpecResource() -> getDefaultMotionSpecResource
+    1291:1293:void onAnimationCancel() -> onAnimationCancel
+    1297:1302:void onAnimationEnd() -> onAnimationEnd
+    1283:1287:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    1266:1269:void onChange(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> onChange
+    1261:1262:void performNow() -> performNow
+    1273:1273:boolean shouldCancel() -> shouldCancel
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback:
+    108:108:void <init>() -> <init>
+    133:133:void onExtended(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> onExtended
+    124:124:void onHidden(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> onHidden
+    116:116:void onShown(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> onShown
+    141:141:void onShrunken(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton) -> onShrunken
+com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ShowStrategy -> com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$ShowStrategy:
+    1208:1210:void <init>(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton,com.google.android.material.floatingactionbutton.AnimatorTracker) -> <init>
+    1229:1229:int getDefaultMotionSpecResource() -> getDefaultMotionSpecResource
+    1241:1243:void onAnimationEnd() -> onAnimationEnd
+    1234:1237:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    1222:1225:void onChange(com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton$OnChangedCallback) -> onChange
+    1214:1218:void performNow() -> performNow
+    1247:1247:boolean shouldCancel() -> shouldCancel
+com.google.android.material.floatingactionbutton.FloatingActionButton -> com.google.android.material.floatingactionbutton.FloatingActionButton:
+    110:110:void <clinit>() -> <clinit>
+    197:198:void <init>(android.content.Context) -> <init>
+    201:202:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    188:272:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    101:101:int access$000(com.google.android.material.floatingactionbutton.FloatingActionButton) -> access$000
+    101:101:void access$101(com.google.android.material.floatingactionbutton.FloatingActionButton,android.graphics.drawable.Drawable) -> access$101
+    627:628:void addOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> addOnHideAnimationListener
+    595:596:void addOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> addOnShowAnimationListener
+    1359:1360:void addTransformationCallback(com.google.android.material.animation.TransformationCallback) -> addTransformationCallback
+    780:781:void clearCustomSize() -> clearCustomSize
+    1452:1453:com.google.android.material.floatingactionbutton.FloatingActionButtonImpl createImpl() -> createImpl
+    823:825:void drawableStateChanged() -> drawableStateChanged
+    363:363:android.content.res.ColorStateList getBackgroundTintList() -> getBackgroundTintList
+    389:389:android.graphics.PorterDuff$Mode getBackgroundTintMode() -> getBackgroundTintMode
+    351:351:androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior getBehavior() -> getBehavior
+    1208:1208:float getCompatElevation() -> getCompatElevation
+    1244:1244:float getCompatHoveredFocusedTranslationZ() -> getCompatHoveredFocusedTranslationZ
+    1281:1281:float getCompatPressedTranslationZ() -> getCompatPressedTranslationZ
+    901:901:android.graphics.drawable.Drawable getContentBackground() -> getContentBackground
+    873:878:boolean getContentRect(android.graphics.Rect) -> getContentRect
+    770:770:int getCustomSize() -> getCustomSize
+    651:651:int getExpandedComponentIdHint() -> getExpandedComponentIdHint
+    1335:1335:com.google.android.material.animation.MotionSpec getHideMotionSpec() -> getHideMotionSpec
+    1444:1447:com.google.android.material.floatingactionbutton.FloatingActionButtonImpl getImpl() -> getImpl
+    887:889:void getMeasuredContentRect(android.graphics.Rect) -> getMeasuredContentRect
+    303:303:int getRippleColor() -> getRippleColor
+    314:314:android.content.res.ColorStateList getRippleColorStateList() -> getRippleColorStateList
+    538:538:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    1311:1311:com.google.android.material.animation.MotionSpec getShowMotionSpec() -> getShowMotionSpec
+    711:711:int getSize() -> getSize
+    784:784:int getSizeDimension() -> getSizeDimension
+    788:805:int getSizeDimension(int) -> getSizeDimension
+    423:423:android.content.res.ColorStateList getSupportBackgroundTintList() -> getSupportBackgroundTintList
+    442:442:android.graphics.PorterDuff$Mode getSupportBackgroundTintMode() -> getSupportBackgroundTintMode
+    456:456:android.content.res.ColorStateList getSupportImageTintList() -> getSupportImageTintList
+    470:470:android.graphics.PorterDuff$Mode getSupportImageTintMode() -> getSupportImageTintMode
+    679:679:boolean getUseCompatPadding() -> getUseCompatPadding
+    608:609:void hide() -> hide
+    619:620:void hide(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> hide
+    623:624:void hide(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener,boolean) -> hide
+    641:641:boolean isExpanded() -> isExpanded
+    735:735:boolean isOrWillBeHidden() -> isOrWillBeHidden
+    739:739:boolean isOrWillBeShown() -> isOrWillBeShown
+    829:831:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    892:896:void offsetRectWithShadow(android.graphics.Rect) -> offsetRectWithShadow
+    474:493:void onApplySupportImageTint() -> onApplySupportImageTint
+    811:813:void onAttachedToWindow() -> onAttachedToWindow
+    817:819:void onDetachedFromWindow() -> onDetachedFromWindow
+    276:291:void onMeasure(int,int) -> onMeasure
+    851:861:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    835:844:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    932:938:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    631:632:void removeOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnHideAnimationListener
+    599:600:void removeOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnShowAnimationListener
+    1368:1369:void removeTransformationCallback(com.google.android.material.animation.TransformationCallback) -> removeTransformationCallback
+    905:927:int resolveAdjustedSize(int,int) -> resolveAdjustedSize
+    507:508:void setBackgroundColor(int) -> setBackgroundColor
+    497:498:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    502:503:void setBackgroundResource(int) -> setBackgroundResource
+    374:378:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    401:405:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    1220:1221:void setCompatElevation(float) -> setCompatElevation
+    1232:1233:void setCompatElevationResource(int) -> setCompatElevationResource
+    1257:1258:void setCompatHoveredFocusedTranslationZ(float) -> setCompatHoveredFocusedTranslationZ
+    1270:1271:void setCompatHoveredFocusedTranslationZResource(int) -> setCompatHoveredFocusedTranslationZResource
+    1293:1294:void setCompatPressedTranslationZ(float) -> setCompatPressedTranslationZ
+    1305:1306:void setCompatPressedTranslationZResource(int) -> setCompatPressedTranslationZResource
+    753:761:void setCustomSize(int) -> setCustomSize
+    1196:1198:void setElevation(float) -> setElevation
+    559:563:void setEnsureMinTouchTargetSize(boolean) -> setEnsureMinTouchTargetSize
+    636:636:boolean setExpanded(boolean) -> setExpanded
+    646:647:void setExpandedComponentIdHint(int) -> setExpandedComponentIdHint
+    1344:1345:void setHideMotionSpec(com.google.android.material.animation.MotionSpec) -> setHideMotionSpec
+    1353:1354:void setHideMotionSpecResource(int) -> setHideMotionSpecResource
+    519:526:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    513:515:void setImageResource(int) -> setImageResource
+    328:329:void setRippleColor(int) -> setRippleColor
+    342:346:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    1422:1424:void setScaleX(float) -> setScaleX
+    1428:1430:void setScaleY(float) -> setScaleY
+    1440:1441:void setShadowPaddingEnabled(boolean) -> setShadowPaddingEnabled
+    531:532:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    1320:1321:void setShowMotionSpec(com.google.android.material.animation.MotionSpec) -> setShowMotionSpec
+    1329:1330:void setShowMotionSpecResource(int) -> setShowMotionSpecResource
+    696:701:void setSize(int) -> setSize
+    413:414:void setSupportBackgroundTintList(android.content.res.ColorStateList) -> setSupportBackgroundTintList
+    432:433:void setSupportBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setSupportBackgroundTintMode
+    447:451:void setSupportImageTintList(android.content.res.ColorStateList) -> setSupportImageTintList
+    461:465:void setSupportImageTintMode(android.graphics.PorterDuff$Mode) -> setSupportImageTintMode
+    1404:1406:void setTranslationX(float) -> setTranslationX
+    1410:1412:void setTranslationY(float) -> setTranslationY
+    1416:1418:void setTranslationZ(float) -> setTranslationZ
+    664:668:void setUseCompatPadding(boolean) -> setUseCompatPadding
+    567:568:void setVisibility(int) -> setVisibility
+    549:549:boolean shouldEnsureMinTouchTargetSize() -> shouldEnsureMinTouchTargetSize
+    576:577:void show() -> show
+    587:588:void show(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> show
+    591:592:void show(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener,boolean) -> show
+    717:721:com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalVisibilityChangedListener wrapOnVisibilityChangedListener(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> wrapOnVisibilityChangedListener
+com.google.android.material.floatingactionbutton.FloatingActionButton$1 -> com.google.android.material.floatingactionbutton.FloatingActionButton$1:
+    721:721:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButton,com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> <init>
+    729:730:void onHidden() -> onHidden
+    724:725:void onShown() -> onShown
+com.google.android.material.floatingactionbutton.FloatingActionButton$BaseBehavior -> com.google.android.material.floatingactionbutton.FloatingActionButton$BaseBehavior:
+    973:975:void <init>() -> <init>
+    978:986:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    964:964:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.graphics.Rect) -> getInsetDodgeRect
+    1143:1149:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,android.graphics.Rect) -> getInsetDodgeRect
+    1009:1009:boolean isAutoHideEnabled() -> isAutoHideEnabled
+    1035:1039:boolean isBottomSheet(android.view.View) -> isBottomSheet
+    1159:1190:void offsetIfNeeded(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton) -> offsetIfNeeded
+    1014:1019:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    964:964:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    1024:1031:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,android.view.View) -> onDependentViewChanged
+    964:964:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    1116:1133:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,int) -> onLayoutChild
+    997:998:void setAutoHideEnabled(boolean) -> setAutoHideEnabled
+    1044:1045:void setInternalAutoHideListener(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> setInternalAutoHideListener
+    1049:1067:boolean shouldUpdateVisibility(android.view.View,com.google.android.material.floatingactionbutton.FloatingActionButton) -> shouldUpdateVisibility
+    1074:1093:boolean updateFabVisibilityForAppBarLayout(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.appbar.AppBarLayout,com.google.android.material.floatingactionbutton.FloatingActionButton) -> updateFabVisibilityForAppBarLayout
+    1098:1107:boolean updateFabVisibilityForBottomSheet(android.view.View,com.google.android.material.floatingactionbutton.FloatingActionButton) -> updateFabVisibilityForBottomSheet
+com.google.android.material.floatingactionbutton.FloatingActionButton$Behavior -> com.google.android.material.floatingactionbutton.FloatingActionButton$Behavior:
+    950:951:void <init>() -> <init>
+    954:955:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    947:947:boolean getInsetDodgeRect(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,android.graphics.Rect) -> getInsetDodgeRect
+    947:947:boolean isAutoHideEnabled() -> isAutoHideEnabled
+    947:947:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    947:947:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,android.view.View) -> onDependentViewChanged
+    947:947:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,com.google.android.material.floatingactionbutton.FloatingActionButton,int) -> onLayoutChild
+    947:947:void setAutoHideEnabled(boolean) -> setAutoHideEnabled
+    947:947:void setInternalAutoHideListener(com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener) -> setInternalAutoHideListener
+com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener -> com.google.android.material.floatingactionbutton.FloatingActionButton$OnVisibilityChangedListener:
+    113:113:void <init>() -> <init>
+    127:127:void onHidden(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onHidden
+    119:119:void onShown(com.google.android.material.floatingactionbutton.FloatingActionButton) -> onShown
+com.google.android.material.floatingactionbutton.FloatingActionButton$ShadowDelegateImpl -> com.google.android.material.floatingactionbutton.FloatingActionButton$ShadowDelegateImpl:
+    1460:1460:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButton) -> <init>
+    1464:1464:float getRadius() -> getRadius
+    1483:1483:boolean isCompatPaddingEnabled() -> isCompatPaddingEnabled
+    1476:1479:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    1469:1472:void setShadowPadding(int,int,int,int) -> setShadowPadding
+com.google.android.material.floatingactionbutton.FloatingActionButton$TransformationCallbackWrapper -> com.google.android.material.floatingactionbutton.FloatingActionButton$TransformationCallbackWrapper:
+    1376:1378:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButton,com.google.android.material.animation.TransformationCallback) -> <init>
+    1392:1393:boolean equals(java.lang.Object) -> equals
+    1398:1398:int hashCode() -> hashCode
+    1387:1388:void onScaleChanged() -> onScaleChanged
+    1382:1383:void onTranslationChanged() -> onTranslationChanged
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl:
+    68:141:void <clinit>() -> <clinit>
+    92:182:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButton,com.google.android.material.shadow.ShadowViewDelegate) -> <init>
+    66:66:int access$002(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,int) -> access$002
+    66:66:android.animation.Animator access$102(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,android.animation.Animator) -> access$102
+    66:66:float access$202(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,float) -> access$202
+    401:405:void addOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> addOnHideAnimationListener
+    385:389:void addOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> addOnShowAnimationListener
+    623:627:void addTransformationCallback(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalTransformationCallback) -> addTransformationCallback
+    293:307:void calculateImageMatrixFromScale(float,android.graphics.Matrix) -> calculateImageMatrixFromScale
+    563:600:android.animation.AnimatorSet createAnimator(com.google.android.material.animation.MotionSpec,float,float,float) -> createAnimator
+    769:775:android.animation.ValueAnimator createElevationAnimator(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ShadowAnimatorImpl) -> createElevationAnimator
+    743:744:com.google.android.material.shape.MaterialShapeDrawable createShapeDrawable() -> createShapeDrawable
+    656:656:android.graphics.drawable.Drawable getContentBackground() -> getContentBackground
+    552:557:com.google.android.material.animation.MotionSpec getDefaultHideMotionSpec() -> getDefaultHideMotionSpec
+    543:548:com.google.android.material.animation.MotionSpec getDefaultShowMotionSpec() -> getDefaultShowMotionSpec
+    246:246:float getElevation() -> getElevation
+    352:352:boolean getEnsureMinTouchTargetSize() -> getEnsureMinTouchTargetSize
+    340:340:com.google.android.material.animation.MotionSpec getHideMotionSpec() -> getHideMotionSpec
+    250:250:float getHoveredFocusedTranslationZ() -> getHoveredFocusedTranslationZ
+    728:739:android.view.ViewTreeObserver$OnPreDrawListener getOrCreatePreDrawListener() -> getOrCreatePreDrawListener
+    671:679:void getPadding(android.graphics.Rect) -> getPadding
+    254:254:float getPressedTranslationZ() -> getPressedTranslationZ
+    326:326:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearance() -> getShapeAppearance
+    331:331:com.google.android.material.animation.MotionSpec getShowMotionSpec() -> getShowMotionSpec
+    417:477:void hide(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalVisibilityChangedListener,boolean) -> hide
+    191:210:void initializeBackgroundDrawable(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode,android.content.res.ColorStateList,int) -> initializeBackgroundDrawable
+    758:763:boolean isOrWillBeHidden() -> isOrWillBeHidden
+    748:753:boolean isOrWillBeShown() -> isOrWillBeShown
+    381:382:void jumpDrawableToCurrentState() -> jumpDrawableToCurrentState
+    697:704:void onAttachedToWindow() -> onAttachedToWindow
+    661:661:void onCompatShadowChanged() -> onCompatShadowChanged
+    707:712:void onDetachedFromWindow() -> onDetachedFromWindow
+    377:378:void onDrawableStateChanged(int[]) -> onDrawableStateChanged
+    366:368:void onElevationsChanged(float,float,float) -> onElevationsChanged
+    682:690:void onPaddingUpdated(android.graphics.Rect) -> onPaddingUpdated
+    719:724:void onPreDraw() -> onPreDraw
+    647:652:void onScaleChanged() -> onScaleChanged
+    639:644:void onTranslationChanged() -> onTranslationChanged
+    408:414:void removeOnHideAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnHideAnimationListener
+    392:398:void removeOnShowAnimationListener(android.animation.Animator$AnimatorListener) -> removeOnShowAnimationListener
+    630:636:void removeTransformationCallback(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalTransformationCallback) -> removeTransformationCallback
+    715:715:boolean requirePreDrawListener() -> requirePreDrawListener
+    213:219:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    222:225:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    239:243:void setElevation(float) -> setElevation
+    356:357:void setEnsureMinTouchTargetSize(boolean) -> setEnsureMinTouchTargetSize
+    344:345:void setHideMotionSpec(com.google.android.material.animation.MotionSpec) -> setHideMotionSpec
+    258:262:void setHoveredFocusedTranslationZ(float) -> setHoveredFocusedTranslationZ
+    285:290:void setImageMatrixScale(float) -> setImageMatrixScale
+    272:276:void setMaxImageSize(int) -> setMaxImageSize
+    228:229:void setMinTouchTargetSize(int) -> setMinTouchTargetSize
+    265:269:void setPressedTranslationZ(float) -> setPressedTranslationZ
+    232:236:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    360:362:void setShadowPaddingEnabled(boolean) -> setShadowPaddingEnabled
+    310:322:void setShapeAppearance(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearance
+    335:336:void setShowMotionSpec(com.google.android.material.animation.MotionSpec) -> setShowMotionSpec
+    693:693:boolean shouldAddPadding() -> shouldAddPadding
+    846:846:boolean shouldAnimateVisibilityChange() -> shouldAnimateVisibilityChange
+    348:348:boolean shouldExpandBoundsForA11y() -> shouldExpandBoundsForA11y
+    480:540:void show(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalVisibilityChangedListener,boolean) -> show
+    850:868:void updateFromViewRotation() -> updateFromViewRotation
+    281:282:void updateImageMatrixScale() -> updateImageMatrixScale
+    664:668:void updatePadding() -> updatePadding
+    371:374:void updateShapeElevation(float) -> updateShapeElevation
+    608:620:void workAroundOreoBug(android.animation.ObjectAnimator) -> workAroundOreoBug
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$1 -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$1:
+    434:434:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,boolean,com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalVisibilityChangedListener) -> <init>
+    448:449:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    453:462:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    439:444:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$2 -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$2:
+    505:505:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,boolean,com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$InternalVisibilityChangedListener) -> <init>
+    516:522:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    508:512:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$3 -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$3:
+    584:584:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    584:584:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    590:591:android.graphics.Matrix evaluate(float,android.graphics.Matrix,android.graphics.Matrix) -> evaluate
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$4 -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$4:
+    612:613:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    612:612:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    616:617:java.lang.Float evaluate(float,java.lang.Float,java.lang.Float) -> evaluate
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$5 -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$5:
+    730:730:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    733:734:boolean onPreDraw() -> onPreDraw
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$DisabledElevationAnimation -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$DisabledElevationAnimation:
+    837:837:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    841:841:float getTargetShadowSize() -> getTargetShadowSize
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ElevateToHoveredFocusedTranslationZAnimation -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ElevateToHoveredFocusedTranslationZAnimation:
+    819:819:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    823:823:float getTargetShadowSize() -> getTargetShadowSize
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ElevateToPressedTranslationZAnimation -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ElevateToPressedTranslationZAnimation:
+    828:828:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    832:832:float getTargetShadowSize() -> getTargetShadowSize
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ResetElevationAnimation -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ResetElevationAnimation:
+    810:810:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    814:814:float getTargetShadowSize() -> getTargetShadowSize
+com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ShadowAnimatorImpl -> com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$ShadowAnimatorImpl:
+    778:778:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl) -> <init>
+    778:778:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButtonImpl,com.google.android.material.floatingactionbutton.FloatingActionButtonImpl$1) -> <init>
+    801:803:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    787:797:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.floatingactionbutton.FloatingActionButtonImplLollipop -> com.google.android.material.floatingactionbutton.FloatingActionButtonImplLollipop:
+    53:54:void <init>(com.google.android.material.floatingactionbutton.FloatingActionButton,com.google.android.material.shadow.ShadowViewDelegate) -> <init>
+    216:225:com.google.android.material.floatingactionbutton.BorderDrawable createBorderDrawable(int,android.content.res.ColorStateList) -> createBorderDrawable
+    156:162:android.animation.Animator createElevationAnimator(float,float) -> createElevationAnimator
+    231:232:com.google.android.material.shape.MaterialShapeDrawable createShapeDrawable() -> createShapeDrawable
+    167:167:float getElevation() -> getElevation
+    237:245:void getPadding(android.graphics.Rect) -> getPadding
+    63:85:void initializeBackgroundDrawable(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode,android.content.res.ColorStateList,int) -> initializeBackgroundDrawable
+    202:202:void jumpDrawableToCurrentState() -> jumpDrawableToCurrentState
+    172:173:void onCompatShadowChanged() -> onCompatShadowChanged
+    182:197:void onDrawableStateChanged(int[]) -> onDrawableStateChanged
+    103:152:void onElevationsChanged(float,float,float) -> onElevationsChanged
+    211:211:boolean requirePreDrawListener() -> requirePreDrawListener
+    89:95:void setRippleColor(android.content.res.ColorStateList) -> setRippleColor
+    177:177:boolean shouldAddPadding() -> shouldAddPadding
+    207:207:void updateFromViewRotation() -> updateFromViewRotation
+com.google.android.material.floatingactionbutton.FloatingActionButtonImplLollipop$AlwaysStatefulMaterialShapeDrawable -> com.google.android.material.floatingactionbutton.FloatingActionButtonImplLollipop$AlwaysStatefulMaterialShapeDrawable:
+    256:257:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    261:261:boolean isStateful() -> isStateful
+com.google.android.material.imageview.ShapeableImageView -> com.google.android.material.imageview.ShapeableImageView:
+    60:60:void <clinit>() -> <clinit>
+    88:89:void <init>(android.content.Context) -> <init>
+    92:93:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    64:151:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    58:58:com.google.android.material.shape.ShapeAppearanceModel access$000(com.google.android.material.imageview.ShapeableImageView) -> access$000
+    58:58:com.google.android.material.shape.MaterialShapeDrawable access$100(com.google.android.material.imageview.ShapeableImageView) -> access$100
+    58:58:com.google.android.material.shape.MaterialShapeDrawable access$102(com.google.android.material.imageview.ShapeableImageView,com.google.android.material.shape.MaterialShapeDrawable) -> access$102
+    58:58:android.graphics.RectF access$200(com.google.android.material.imageview.ShapeableImageView) -> access$200
+    491:503:void drawStroke(android.graphics.Canvas) -> drawStroke
+    272:272:int getContentPaddingBottom() -> getContentPaddingBottom
+    283:286:int getContentPaddingEnd() -> getContentPaddingEnd
+    297:305:int getContentPaddingLeft() -> getContentPaddingLeft
+    315:323:int getContentPaddingRight() -> getContentPaddingRight
+    334:337:int getContentPaddingStart() -> getContentPaddingStart
+    348:348:int getContentPaddingTop() -> getContentPaddingTop
+    401:401:int getPaddingBottom() -> getPaddingBottom
+    412:412:int getPaddingEnd() -> getPaddingEnd
+    423:423:int getPaddingLeft() -> getPaddingLeft
+    434:434:int getPaddingRight() -> getPaddingRight
+    445:445:int getPaddingStart() -> getPaddingStart
+    456:456:int getPaddingTop() -> getPaddingTop
+    475:475:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    527:527:android.content.res.ColorStateList getStrokeColor() -> getStrokeColor
+    569:569:float getStrokeWidth() -> getStrokeWidth
+    262:262:boolean isContentPaddingRelative() -> isContentPaddingRelative
+    352:352:boolean isRtl() -> isRtl
+    161:163:void onAttachedToWindow() -> onAttachedToWindow
+    155:157:void onDetachedFromWindow() -> onDetachedFromWindow
+    198:201:void onDraw(android.graphics.Canvas) -> onDraw
+    167:194:void onMeasure(int,int) -> onMeasure
+    205:207:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    219:234:void setContentPadding(int,int,int,int) -> setContentPadding
+    249:259:void setContentPaddingRelative(int,int,int,int) -> setContentPaddingRelative
+    367:372:void setPadding(int,int,int,int) -> setPadding
+    386:391:void setPaddingRelative(int,int,int,int) -> setPaddingRelative
+    461:470:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    573:575:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    515:516:void setStrokeColorResource(int) -> setStrokeColorResource
+    540:544:void setStrokeWidth(float) -> setStrokeWidth
+    556:557:void setStrokeWidthResource(int) -> setStrokeWidthResource
+    479:488:void updateShapeMask(int,int) -> updateShapeMask
+com.google.android.material.imageview.ShapeableImageView$OutlineProvider -> com.google.android.material.imageview.ShapeableImageView$OutlineProvider:
+    578:580:void <init>(com.google.android.material.imageview.ShapeableImageView) -> <init>
+    584:595:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+com.google.android.material.internal.BaselineLayout -> com.google.android.material.internal.BaselineLayout:
+    31:35:void <init>(android.content.Context) -> <init>
+    31:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    31:43:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    114:114:int getBaseline() -> getBaseline
+    85:110:void onLayout(boolean,int,int,int,int) -> onLayout
+    47:81:void onMeasure(int,int) -> onMeasure
+com.google.android.material.internal.CheckableImageButton -> com.google.android.material.internal.CheckableImageButton:
+    41:41:void <clinit>() -> <clinit>
+    48:49:void <init>(android.content.Context) -> <init>
+    52:53:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    44:75:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    144:144:boolean isCheckable() -> isCheckable
+    88:88:boolean isChecked() -> isChecked
+    154:154:boolean isPressable() -> isPressable
+    105:110:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    125:132:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    117:120:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    136:140:void setCheckable(boolean) -> setCheckable
+    79:84:void setChecked(boolean) -> setChecked
+    149:150:void setPressable(boolean) -> setPressable
+    98:101:void setPressed(boolean) -> setPressed
+    93:94:void toggle() -> toggle
+com.google.android.material.internal.CheckableImageButton$1 -> com.google.android.material.internal.CheckableImageButton$1:
+    60:60:void <init>(com.google.android.material.internal.CheckableImageButton) -> <init>
+    63:65:void onInitializeAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onInitializeAccessibilityEvent
+    70:73:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.internal.CheckableImageButton$SavedState -> com.google.android.material.internal.CheckableImageButton$SavedState:
+    180:180:void <clinit>() -> <clinit>
+    162:163:void <init>(android.os.Parcelable) -> <init>
+    166:168:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    177:178:void readFromParcel(android.os.Parcel) -> readFromParcel
+    172:174:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.internal.CheckableImageButton$SavedState$1 -> com.google.android.material.internal.CheckableImageButton$SavedState$1:
+    181:181:void <init>() -> <init>
+    181:181:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    181:181:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    185:185:com.google.android.material.internal.CheckableImageButton$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    191:191:com.google.android.material.internal.CheckableImageButton$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    181:181:java.lang.Object[] newArray(int) -> newArray
+    197:197:com.google.android.material.internal.CheckableImageButton$SavedState[] newArray(int) -> newArray
+com.google.android.material.internal.CollapsingTextHelper -> com.google.android.material.internal.CollapsingTextHelper:
+    70:85:void <clinit>() -> <clinit>
+    99:174:void <init>(android.view.View) -> <init>
+    1118:1123:int blendColors(int,int,float) -> blendColors
+    654:746:void calculateBaseOffsets(boolean) -> calculateBaseOffsets
+    271:275:float calculateCollapsedTextWidth() -> calculateCollapsedTextWidth
+    542:543:void calculateCurrentOffsets() -> calculateCurrentOffsets
+    615:623:float calculateFadeModeTextAlpha(float) -> calculateFadeModeTextAlpha
+    306:306:float calculateFadeModeThresholdFraction() -> calculateFadeModeThresholdFraction
+    858:860:boolean calculateIsRtl(java.lang.CharSequence) -> calculateIsRtl
+    546:611:void calculateOffsets(float) -> calculateOffsets
+    890:891:void calculateUsingTextSize(float) -> calculateUsingTextSize
+    895:965:void calculateUsingTextSize(float,boolean) -> calculateUsingTextSize
+    1043:1047:void clearTexture() -> clearTexture
+    968:984:android.text.StaticLayout createStaticLayout(int,float,boolean) -> createStaticLayout
+    773:815:void draw(android.graphics.Canvas) -> draw
+    822:855:void drawMultilineTransition(android.graphics.Canvas,float,float) -> drawMultilineTransition
+    988:1008:void ensureExpandedTexture() -> ensureExpandedTexture
+    239:244:void getCollapsedTextActualBounds(android.graphics.RectF,int,int) -> getCollapsedTextActualBounds
+    1108:1108:android.content.res.ColorStateList getCollapsedTextColor() -> getCollapsedTextColor
+    357:357:int getCollapsedTextGravity() -> getCollapsedTextGravity
+    291:293:float getCollapsedTextHeight() -> getCollapsedTextHeight
+    247:254:float getCollapsedTextLeftBound(int,int) -> getCollapsedTextLeftBound
+    259:266:float getCollapsedTextRightBound(android.graphics.RectF,int,int) -> getCollapsedTextRightBound
+    526:526:float getCollapsedTextSize() -> getCollapsedTextSize
+    478:478:android.graphics.Typeface getCollapsedTypeface() -> getCollapsedTypeface
+    639:639:int getCurrentCollapsedTextColor() -> getCurrentCollapsedTextColor
+    644:650:int getCurrentColor(android.content.res.ColorStateList) -> getCurrentColor
+    634:634:int getCurrentExpandedTextColor() -> getCurrentExpandedTextColor
+    1104:1104:android.content.res.ColorStateList getExpandedTextColor() -> getExpandedTextColor
+    285:287:float getExpandedTextFullHeight() -> getExpandedTextFullHeight
+    346:346:int getExpandedTextGravity() -> getExpandedTextGravity
+    279:281:float getExpandedTextHeight() -> getExpandedTextHeight
+    530:530:float getExpandedTextSize() -> getExpandedTextSize
+    482:482:android.graphics.Typeface getExpandedTypeface() -> getExpandedTypeface
+    522:522:float getExpansionFraction() -> getExpansionFraction
+    518:518:float getFadeModeThresholdFraction() -> getFadeModeThresholdFraction
+    1092:1092:int getHyphenationFrequency() -> getHyphenationFrequency
+    1062:1062:int getLineCount() -> getLineCount
+    1072:1072:float getLineSpacingAdd() -> getLineSpacingAdd
+    1082:1082:float getLineSpacingMultiplier() -> getLineSpacingMultiplier
+    1058:1058:int getMaxLines() -> getMaxLines
+    1039:1039:java.lang.CharSequence getText() -> getText
+    323:328:void getTextPaintCollapsed(android.text.TextPaint) -> getTextPaintCollapsed
+    315:320:void getTextPaintExpanded(android.text.TextPaint) -> getTextPaintExpanded
+    749:760:void interpolateBounds(float) -> interpolateBounds
+    1100:1100:boolean isClose(float,float) -> isClose
+    865:865:boolean isDefaultIsRtl() -> isDefaultIsRtl
+    538:538:boolean isRtlTextDirectionHeuristicsEnabled() -> isRtlTextDirectionHeuristicsEnabled
+    513:514:boolean isStateful() -> isStateful
+    869:872:boolean isTextDirectionHeuristicsIsRtl(java.lang.CharSequence,boolean) -> isTextDirectionHeuristicsIsRtl
+    1128:1131:float lerp(float,float,float,android.animation.TimeInterpolator) -> lerp
+    331:336:void onBoundsChanged() -> onBoundsChanged
+    1011:1012:void recalculate() -> recalculate
+    1015:1021:void recalculate(boolean) -> recalculate
+    1135:1135:boolean rectEquals(android.graphics.Rect,int,int,int,int) -> rectEquals
+    227:232:void setCollapsedBounds(int,int,int,int) -> setCollapsedBounds
+    235:236:void setCollapsedBounds(android.graphics.Rect) -> setCollapsedBounds
+    361:393:void setCollapsedTextAppearance(int) -> setCollapsedTextAppearance
+    763:765:void setCollapsedTextBlend(float) -> setCollapsedTextBlend
+    201:205:void setCollapsedTextColor(android.content.res.ColorStateList) -> setCollapsedTextColor
+    350:354:void setCollapsedTextGravity(int) -> setCollapsedTextGravity
+    194:198:void setCollapsedTextSize(float) -> setCollapsedTextSize
+    430:433:void setCollapsedTypeface(android.graphics.Typeface) -> setCollapsedTypeface
+    453:460:boolean setCollapsedTypefaceInternal(android.graphics.Typeface) -> setCollapsedTypefaceInternal
+    297:298:void setCurrentOffsetY(int) -> setCurrentOffsetY
+    215:220:void setExpandedBounds(int,int,int,int) -> setExpandedBounds
+    223:224:void setExpandedBounds(android.graphics.Rect) -> setExpandedBounds
+    396:427:void setExpandedTextAppearance(int) -> setExpandedTextAppearance
+    768:770:void setExpandedTextBlend(float) -> setExpandedTextBlend
+    208:212:void setExpandedTextColor(android.content.res.ColorStateList) -> setExpandedTextColor
+    339:343:void setExpandedTextGravity(int) -> setExpandedTextGravity
+    187:191:void setExpandedTextSize(float) -> setExpandedTextSize
+    436:439:void setExpandedTypeface(android.graphics.Typeface) -> setExpandedTypeface
+    467:474:boolean setExpandedTypefaceInternal(android.graphics.Typeface) -> setExpandedTypefaceInternal
+    493:499:void setExpansionFraction(float) -> setExpansionFraction
+    311:312:void setFadeModeEnabled(boolean) -> setFadeModeEnabled
+    301:303:void setFadeModeStartFraction(float) -> setFadeModeStartFraction
+    1087:1088:void setHyphenationFrequency(int) -> setHyphenationFrequency
+    876:887:void setInterpolatedTextSize(float) -> setInterpolatedTextSize
+    1067:1068:void setLineSpacingAdd(float) -> setLineSpacingAdd
+    1077:1078:void setLineSpacingMultiplier(float) -> setLineSpacingMultiplier
+    1050:1055:void setMaxLines(int) -> setMaxLines
+    182:184:void setPositionInterpolator(android.animation.TimeInterpolator) -> setPositionInterpolator
+    534:535:void setRtlTextDirectionHeuristicsEnabled(boolean) -> setRtlTextDirectionHeuristicsEnabled
+    502:509:boolean setState(int[]) -> setState
+    1029:1035:void setText(java.lang.CharSequence) -> setText
+    177:179:void setTextSizeInterpolator(android.animation.TimeInterpolator) -> setTextSizeInterpolator
+    442:447:void setTypefaces(android.graphics.Typeface) -> setTypefaces
+    818:818:boolean shouldDrawMultiline() -> shouldDrawMultiline
+com.google.android.material.internal.CollapsingTextHelper$1 -> com.google.android.material.internal.CollapsingTextHelper$1:
+    383:383:void <init>(com.google.android.material.internal.CollapsingTextHelper) -> <init>
+    386:387:void apply(android.graphics.Typeface) -> apply
+com.google.android.material.internal.CollapsingTextHelper$2 -> com.google.android.material.internal.CollapsingTextHelper$2:
+    417:417:void <init>(com.google.android.material.internal.CollapsingTextHelper) -> <init>
+    420:421:void apply(android.graphics.Typeface) -> apply
+com.google.android.material.internal.ContextUtils -> com.google.android.material.internal.ContextUtils:
+    33:33:void <init>() -> <init>
+    41:47:android.app.Activity getActivity(android.content.Context) -> getActivity
+com.google.android.material.internal.DescendantOffsetUtils -> com.google.android.material.internal.DescendantOffsetUtils:
+    37:38:void <clinit>() -> <clinit>
+    36:36:void <init>() -> <init>
+    83:85:void getDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> getDescendantRect
+    89:101:void offsetDescendantMatrix(android.view.ViewParent,android.view.View,android.graphics.Matrix) -> offsetDescendantMatrix
+    50:72:void offsetDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> offsetDescendantRect
+com.google.android.material.internal.FlowLayout -> com.google.android.material.internal.FlowLayout:
+    50:51:void <init>(android.content.Context) -> <init>
+    54:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    58:61:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    66:69:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    88:88:int getItemSpacing() -> getItemSpacing
+    80:80:int getLineSpacing() -> getLineSpacing
+    178:184:int getMeasuredDimension(int,int,int) -> getMeasuredDimension
+    248:248:int getRowCount() -> getRowCount
+    253:257:int getRowIndex(android.view.View) -> getRowIndex
+    97:97:boolean isSingleLine() -> isSingleLine
+    72:77:void loadFromAttributes(android.content.Context,android.util.AttributeSet) -> loadFromAttributes
+    190:245:void onLayout(boolean,int,int,int,int) -> onLayout
+    107:175:void onMeasure(int,int) -> onMeasure
+    92:93:void setItemSpacing(int) -> setItemSpacing
+    84:85:void setLineSpacing(int) -> setLineSpacing
+    102:103:void setSingleLine(boolean) -> setSingleLine
+com.google.android.material.internal.ForegroundLinearLayout -> com.google.android.material.internal.ForegroundLinearLayout:
+    54:55:void <init>(android.content.Context) -> <init>
+    58:59:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    43:81:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    205:236:void draw(android.graphics.Canvas) -> draw
+    242:246:void drawableHotspotChanged(float,float) -> drawableHotspotChanged
+    138:142:void drawableStateChanged() -> drawableStateChanged
+    188:188:android.graphics.drawable.Drawable getForeground() -> getForeground
+    91:91:int getForegroundGravity() -> getForegroundGravity
+    130:134:void jumpDrawablesToCurrentState() -> jumpDrawablesToCurrentState
+    193:195:void onLayout(boolean,int,int,int,int) -> onLayout
+    199:201:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    153:177:void setForeground(android.graphics.drawable.Drawable) -> setForeground
+    102:120:void setForegroundGravity(int) -> setForegroundGravity
+    124:124:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+com.google.android.material.internal.ManufacturerUtils -> com.google.android.material.internal.ManufacturerUtils:
+    32:32:void <init>() -> <init>
+    53:53:boolean isDateInputKeyboardMissingSeparatorCharacters() -> isDateInputKeyboardMissingSeparatorCharacters
+    41:41:boolean isLGEDevice() -> isLGEDevice
+    36:36:boolean isMeizuDevice() -> isMeizuDevice
+    46:46:boolean isSamsungDevice() -> isSamsungDevice
+com.google.android.material.internal.NavigationMenu -> com.google.android.material.internal.NavigationMenu:
+    39:40:void <init>(android.content.Context) -> <init>
+    45:48:android.view.SubMenu addSubMenu(int,int,int,java.lang.CharSequence) -> addSubMenu
+com.google.android.material.internal.NavigationMenuItemView -> com.google.android.material.internal.NavigationMenuItemView:
+    55:55:void <clinit>() -> <clinit>
+    87:88:void <init>(android.content.Context) -> <init>
+    91:92:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    75:103:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    136:152:void adjustAppearance() -> adjustAppearance
+    175:184:android.graphics.drawable.StateListDrawable createDefaultBackground() -> createDefaultBackground
+    189:189:androidx.appcompat.view.menu.MenuItemImpl getItemData() -> getItemData
+    107:127:void initialize(androidx.appcompat.view.menu.MenuItemImpl,int) -> initialize
+    255:259:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    245:245:boolean prefersCondensedTitle() -> prefersCondensedTitle
+    155:159:void recycle() -> recycle
+    162:171:void setActionView(android.view.View) -> setActionView
+    199:205:void setCheckable(boolean) -> setCheckable
+    209:211:void setChecked(boolean) -> setChecked
+    284:285:void setHorizontalPadding(int) -> setHorizontalPadding
+    218:237:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    288:289:void setIconPadding(int) -> setIconPadding
+    240:241:void setIconSize(int) -> setIconSize
+    263:269:void setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    292:293:void setMaxLines(int) -> setMaxLines
+    280:281:void setNeedsEmptyIcon(boolean) -> setNeedsEmptyIcon
+    214:214:void setShortcut(boolean,char) -> setShortcut
+    272:273:void setTextAppearance(int) -> setTextAppearance
+    276:277:void setTextColor(android.content.res.ColorStateList) -> setTextColor
+    194:195:void setTitle(java.lang.CharSequence) -> setTitle
+    130:132:boolean shouldExpandActionArea() -> shouldExpandActionArea
+    250:250:boolean showsIcon() -> showsIcon
+com.google.android.material.internal.NavigationMenuItemView$1 -> com.google.android.material.internal.NavigationMenuItemView$1:
+    76:76:void <init>(com.google.android.material.internal.NavigationMenuItemView) -> <init>
+    81:83:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.internal.NavigationMenuPresenter -> com.google.android.material.internal.NavigationMenuPresenter:
+    57:408:void <init>() -> <init>
+    57:57:int access$000(com.google.android.material.internal.NavigationMenuPresenter) -> access$000
+    228:231:void addHeaderView(android.view.View) -> addHeaderView
+    161:161:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    349:359:void dispatchApplyWindowInsets(androidx.core.view.WindowInsetsCompat) -> dispatchApplyWindowInsets
+    156:156:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    151:151:boolean flagActionItems() -> flagActionItems
+    218:218:androidx.appcompat.view.menu.MenuItemImpl getCheckedItem() -> getCheckedItem
+    241:241:int getHeaderCount() -> getHeaderCount
+    245:245:android.view.View getHeaderView(int) -> getHeaderView
+    166:166:int getId() -> getId
+    276:276:android.graphics.drawable.Drawable getItemBackground() -> getItemBackground
+    285:285:int getItemHorizontalPadding() -> getItemHorizontalPadding
+    294:294:int getItemIconPadding() -> getItemIconPadding
+    308:308:int getItemMaxLines() -> getItemMaxLines
+    260:260:android.content.res.ColorStateList getItemTextColor() -> getItemTextColor
+    250:250:android.content.res.ColorStateList getItemTintList() -> getItemTintList
+    106:122:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    222:224:android.view.View inflateHeaderView(int) -> inflateHeaderView
+    97:102:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    335:335:boolean isBehindStatusBar() -> isBehindStatusBar
+    144:147:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    195:210:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    176:190:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    139:139:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    234:238:void removeHeaderView(android.view.View) -> removeHeaderView
+    327:331:void setBehindStatusBar(boolean) -> setBehindStatusBar
+    134:135:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    213:214:void setCheckedItem(androidx.appcompat.view.menu.MenuItemImpl) -> setCheckedItem
+    170:171:void setId(int) -> setId
+    280:282:void setItemBackground(android.graphics.drawable.Drawable) -> setItemBackground
+    289:291:void setItemHorizontalPadding(int) -> setItemHorizontalPadding
+    298:300:void setItemIconPadding(int) -> setItemIconPadding
+    312:317:void setItemIconSize(int) -> setItemIconSize
+    254:256:void setItemIconTintList(android.content.res.ColorStateList) -> setItemIconTintList
+    303:305:void setItemMaxLines(int) -> setItemMaxLines
+    269:272:void setItemTextAppearance(int) -> setItemTextAppearance
+    264:266:void setItemTextColor(android.content.res.ColorStateList) -> setItemTextColor
+    362:366:void setOverScrollMode(int) -> setOverScrollMode
+    320:323:void setUpdateSuspended(boolean) -> setUpdateSuspended
+    127:130:void updateMenuView(boolean) -> updateMenuView
+    339:346:void updateTopPadding() -> updateTopPadding
+com.google.android.material.internal.NavigationMenuPresenter$1 -> com.google.android.material.internal.NavigationMenuPresenter$1:
+    409:409:void <init>(com.google.android.material.internal.NavigationMenuPresenter) -> <init>
+    413:426:void onClick(android.view.View) -> onClick
+com.google.android.material.internal.NavigationMenuPresenter$HeaderViewHolder -> com.google.android.material.internal.NavigationMenuPresenter$HeaderViewHolder:
+    401:402:void <init>(android.view.View) -> <init>
+com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuAdapter -> com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuAdapter:
+    439:445:void <init>(com.google.android.material.internal.NavigationMenuPresenter) -> <init>
+    624:628:void appendTransparentIconIfMissing(int,int) -> appendTransparentIconIfMissing
+    647:666:android.os.Bundle createInstanceState() -> createInstanceState
+    642:642:androidx.appcompat.view.menu.MenuItemImpl getCheckedItem() -> getCheckedItem
+    454:454:int getItemCount() -> getItemCount
+    449:449:long getItemId(int) -> getItemId
+    459:472:int getItemViewType(int) -> getItemViewType
+    718:724:int getRowCount() -> getRowCount
+    429:429:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    493:536:void onBindViewHolder(com.google.android.material.internal.NavigationMenuPresenter$ViewHolder,int) -> onBindViewHolder
+    429:429:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    478:488:com.google.android.material.internal.NavigationMenuPresenter$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    429:429:void onViewRecycled(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewRecycled
+    540:543:void onViewRecycled(com.google.android.material.internal.NavigationMenuPresenter$ViewHolder) -> onViewRecycled
+    555:621:void prepareMenuItems() -> prepareMenuItems
+    670:710:void restoreInstanceState(android.os.Bundle) -> restoreInstanceState
+    631:639:void setCheckedItem(androidx.appcompat.view.menu.MenuItemImpl) -> setCheckedItem
+    713:714:void setUpdateSuspended(boolean) -> setUpdateSuspended
+    546:548:void update() -> update
+com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuHeaderItem -> com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuHeaderItem:
+    770:770:void <init>() -> <init>
+com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuSeparatorItem -> com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuSeparatorItem:
+    754:757:void <init>(int,int) -> <init>
+    764:764:int getPaddingBottom() -> getPaddingBottom
+    760:760:int getPaddingTop() -> getPaddingTop
+com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuTextItem -> com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuTextItem:
+    738:740:void <init>(androidx.appcompat.view.menu.MenuItemImpl) -> <init>
+    743:743:androidx.appcompat.view.menu.MenuItemImpl getMenuItem() -> getMenuItem
+com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuViewAccessibilityDelegate -> com.google.android.material.internal.NavigationMenuPresenter$NavigationMenuViewAccessibilityDelegate:
+    776:778:void <init>(com.google.android.material.internal.NavigationMenuPresenter,androidx.recyclerview.widget.RecyclerView) -> <init>
+    783:785:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.internal.NavigationMenuPresenter$NormalViewHolder -> com.google.android.material.internal.NavigationMenuPresenter$NormalViewHolder:
+    379:381:void <init>(android.view.LayoutInflater,android.view.ViewGroup,android.view.View$OnClickListener) -> <init>
+com.google.android.material.internal.NavigationMenuPresenter$SeparatorViewHolder -> com.google.android.material.internal.NavigationMenuPresenter$SeparatorViewHolder:
+    394:395:void <init>(android.view.LayoutInflater,android.view.ViewGroup) -> <init>
+com.google.android.material.internal.NavigationMenuPresenter$SubheaderViewHolder -> com.google.android.material.internal.NavigationMenuPresenter$SubheaderViewHolder:
+    387:388:void <init>(android.view.LayoutInflater,android.view.ViewGroup) -> <init>
+com.google.android.material.internal.NavigationMenuPresenter$ViewHolder -> com.google.android.material.internal.NavigationMenuPresenter$ViewHolder:
+    371:372:void <init>(android.view.View) -> <init>
+com.google.android.material.internal.NavigationMenuView -> com.google.android.material.internal.NavigationMenuView:
+    34:35:void <init>(android.content.Context) -> <init>
+    38:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:44:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    51:51:int getWindowAnimations() -> getWindowAnimations
+    47:47:void initialize(androidx.appcompat.view.menu.MenuBuilder) -> initialize
+com.google.android.material.internal.NavigationSubMenu -> com.google.android.material.internal.NavigationSubMenu:
+    37:38:void <init>(android.content.Context,com.google.android.material.internal.NavigationMenu,androidx.appcompat.view.menu.MenuItemImpl) -> <init>
+    42:44:void onItemsChanged(boolean) -> onItemsChanged
+com.google.android.material.internal.ParcelableSparseArray -> com.google.android.material.internal.ParcelableSparseArray:
+    66:66:void <clinit>() -> <clinit>
+    33:34:void <init>() -> <init>
+    37:45:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    49:49:int describeContents() -> describeContents
+    54:64:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.internal.ParcelableSparseArray$1 -> com.google.android.material.internal.ParcelableSparseArray$1:
+    67:67:void <init>() -> <init>
+    67:67:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    67:67:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    71:71:com.google.android.material.internal.ParcelableSparseArray createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    77:77:com.google.android.material.internal.ParcelableSparseArray createFromParcel(android.os.Parcel) -> createFromParcel
+    67:67:java.lang.Object[] newArray(int) -> newArray
+    83:83:com.google.android.material.internal.ParcelableSparseArray[] newArray(int) -> newArray
+com.google.android.material.internal.ParcelableSparseBooleanArray -> com.google.android.material.internal.ParcelableSparseBooleanArray:
+    70:70:void <clinit>() -> <clinit>
+    36:37:void <init>() -> <init>
+    40:41:void <init>(int) -> <init>
+    44:48:void <init>(android.util.SparseBooleanArray) -> <init>
+    52:52:int describeContents() -> describeContents
+    57:68:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.internal.ParcelableSparseBooleanArray$1 -> com.google.android.material.internal.ParcelableSparseBooleanArray$1:
+    71:71:void <init>() -> <init>
+    71:71:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    75:88:com.google.android.material.internal.ParcelableSparseBooleanArray createFromParcel(android.os.Parcel) -> createFromParcel
+    71:71:java.lang.Object[] newArray(int) -> newArray
+    94:94:com.google.android.material.internal.ParcelableSparseBooleanArray[] newArray(int) -> newArray
+com.google.android.material.internal.ParcelableSparseIntArray -> com.google.android.material.internal.ParcelableSparseIntArray:
+    70:70:void <clinit>() -> <clinit>
+    36:37:void <init>() -> <init>
+    40:41:void <init>(int) -> <init>
+    44:48:void <init>(android.util.SparseIntArray) -> <init>
+    52:52:int describeContents() -> describeContents
+    57:68:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.internal.ParcelableSparseIntArray$1 -> com.google.android.material.internal.ParcelableSparseIntArray$1:
+    71:71:void <init>() -> <init>
+    71:71:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    75:88:com.google.android.material.internal.ParcelableSparseIntArray createFromParcel(android.os.Parcel) -> createFromParcel
+    71:71:java.lang.Object[] newArray(int) -> newArray
+    94:94:com.google.android.material.internal.ParcelableSparseIntArray[] newArray(int) -> newArray
+com.google.android.material.internal.ScrimInsetsFrameLayout -> com.google.android.material.internal.ScrimInsetsFrameLayout:
+    50:51:void <init>(android.content.Context) -> <init>
+    54:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:92:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    109:143:void draw(android.graphics.Canvas) -> draw
+    147:151:void onAttachedToWindow() -> onAttachedToWindow
+    155:159:void onDetachedFromWindow() -> onDetachedFromWindow
+    161:161:void onInsetsChanged(androidx.core.view.WindowInsetsCompat) -> onInsetsChanged
+    104:105:void setDrawBottomInsetForeground(boolean) -> setDrawBottomInsetForeground
+    100:101:void setDrawTopInsetForeground(boolean) -> setDrawTopInsetForeground
+    96:97:void setScrimInsetForeground(android.graphics.drawable.Drawable) -> setScrimInsetForeground
+com.google.android.material.internal.ScrimInsetsFrameLayout$1 -> com.google.android.material.internal.ScrimInsetsFrameLayout$1:
+    74:74:void <init>(com.google.android.material.internal.ScrimInsetsFrameLayout) -> <init>
+    78:89:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.internal.StateListAnimator -> com.google.android.material.internal.StateListAnimator:
+    37:44:void <init>() -> <init>
+    62:65:void addState(int[],android.animation.ValueAnimator) -> addState
+    98:102:void cancel() -> cancel
+    110:114:void jumpToCurrentState() -> jumpToCurrentState
+    69:90:void setState(int[]) -> setState
+    93:95:void start(com.google.android.material.internal.StateListAnimator$Tuple) -> start
+com.google.android.material.internal.StateListAnimator$1 -> com.google.android.material.internal.StateListAnimator$1:
+    45:45:void <init>(com.google.android.material.internal.StateListAnimator) -> <init>
+    48:51:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.internal.StateListAnimator$Tuple -> com.google.android.material.internal.StateListAnimator$Tuple:
+    120:123:void <init>(int[],android.animation.ValueAnimator) -> <init>
+com.google.android.material.internal.StaticLayoutBuilderCompat -> com.google.android.material.internal.StaticLayoutBuilderCompat:
+    56:56:void <clinit>() -> <clinit>
+    88:101:void <init>(java.lang.CharSequence,android.text.TextPaint,int) -> <init>
+    224:262:android.text.StaticLayout build() -> build
+    309:350:void createConstructorWithReflection() -> createConstructorWithReflection
+    114:114:com.google.android.material.internal.StaticLayoutBuilderCompat obtain(java.lang.CharSequence,android.text.TextPaint,int) -> obtain
+    125:126:com.google.android.material.internal.StaticLayoutBuilderCompat setAlignment(android.text.Layout$Alignment) -> setAlignment
+    218:219:com.google.android.material.internal.StaticLayoutBuilderCompat setEllipsize(android.text.TextUtils$TruncateAt) -> setEllipsize
+    162:163:com.google.android.material.internal.StaticLayoutBuilderCompat setEnd(int) -> setEnd
+    204:205:com.google.android.material.internal.StaticLayoutBuilderCompat setHyphenationFrequency(int) -> setHyphenationFrequency
+    139:140:com.google.android.material.internal.StaticLayoutBuilderCompat setIncludePad(boolean) -> setIncludePad
+    353:354:com.google.android.material.internal.StaticLayoutBuilderCompat setIsRtl(boolean) -> setIsRtl
+    190:192:com.google.android.material.internal.StaticLayoutBuilderCompat setLineSpacing(float,float) -> setLineSpacing
+    176:177:com.google.android.material.internal.StaticLayoutBuilderCompat setMaxLines(int) -> setMaxLines
+    150:151:com.google.android.material.internal.StaticLayoutBuilderCompat setStart(int) -> setStart
+com.google.android.material.internal.StaticLayoutBuilderCompat$StaticLayoutBuilderCompatException -> com.google.android.material.internal.StaticLayoutBuilderCompat$StaticLayoutBuilderCompatException:
+    360:361:void <init>(java.lang.Throwable) -> <init>
+com.google.android.material.internal.TextDrawableHelper -> com.google.android.material.internal.TextDrawableHelper:
+    41:78:void <init>(com.google.android.material.internal.TextDrawableHelper$TextDrawableDelegate) -> <init>
+    39:39:boolean access$002(com.google.android.material.internal.TextDrawableHelper,boolean) -> access$002
+    39:39:java.lang.ref.WeakReference access$100(com.google.android.material.internal.TextDrawableHelper) -> access$100
+    110:113:float calculateTextWidth(java.lang.CharSequence) -> calculateTextWidth
+    123:123:com.google.android.material.resources.TextAppearance getTextAppearance() -> getTextAppearance
+    87:87:android.text.TextPaint getTextPaint() -> getTextPaint
+    100:106:float getTextWidth(java.lang.String) -> getTextWidth
+    95:95:boolean isTextWidthDirty() -> isTextWidthDirty
+    82:83:void setDelegate(com.google.android.material.internal.TextDrawableHelper$TextDrawableDelegate) -> setDelegate
+    134:153:void setTextAppearance(com.google.android.material.resources.TextAppearance,android.content.Context) -> setTextAppearance
+    91:92:void setTextWidthDirty(boolean) -> setTextWidthDirty
+    156:157:void updateTextPaintDrawState(android.content.Context) -> updateTextPaintDrawState
+com.google.android.material.internal.TextDrawableHelper$1 -> com.google.android.material.internal.TextDrawableHelper$1:
+    44:44:void <init>(com.google.android.material.internal.TextDrawableHelper) -> <init>
+    59:65:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    47:55:void onFontRetrieved(android.graphics.Typeface,boolean) -> onFontRetrieved
+com.google.android.material.internal.TextScale -> com.google.android.material.internal.TextScale:
+    34:34:void <init>() -> <init>
+    44:45:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    39:40:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    48:52:void captureValues(androidx.transition.TransitionValues) -> captureValues
+    59:87:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+com.google.android.material.internal.TextScale$1 -> com.google.android.material.internal.TextScale$1:
+    79:79:void <init>(com.google.android.material.internal.TextScale,android.widget.TextView) -> <init>
+    82:85:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.internal.TextWatcherAdapter -> com.google.android.material.internal.TextWatcherAdapter:
+    33:33:void <init>() -> <init>
+    42:42:void afterTextChanged(android.text.Editable) -> afterTextChanged
+    36:36:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+    39:39:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+com.google.android.material.internal.ThemeEnforcement -> com.google.android.material.internal.ThemeEnforcement:
+    43:46:void <clinit>() -> <clinit>
+    49:49:void <init>() -> <init>
+    213:214:void checkAppCompatTheme(android.content.Context) -> checkAppCompatTheme
+    129:149:void checkCompatibleTheme(android.content.Context,android.util.AttributeSet,int,int) -> checkCompatibleTheme
+    217:218:void checkMaterialTheme(android.content.Context) -> checkMaterialTheme
+    158:191:void checkTextAppearance(android.content.Context,android.util.AttributeSet,int[],int,int,int[]) -> checkTextAppearance
+    242:248:void checkTheme(android.content.Context,int[],java.lang.String) -> checkTheme
+    221:221:boolean isAppCompatTheme(android.content.Context) -> isAppCompatTheme
+    200:209:boolean isCustomTextAppearanceValid(android.content.Context,android.util.AttributeSet,int[],int,int,int[]) -> isCustomTextAppearanceValid
+    225:225:boolean isMaterialTheme(android.content.Context) -> isMaterialTheme
+    229:237:boolean isTheme(android.content.Context,int[]) -> isTheme
+    76:82:android.content.res.TypedArray obtainStyledAttributes(android.content.Context,android.util.AttributeSet,int[],int,int,int[]) -> obtainStyledAttributes
+    115:121:androidx.appcompat.widget.TintTypedArray obtainTintedStyledAttributes(android.content.Context,android.util.AttributeSet,int[],int,int,int[]) -> obtainTintedStyledAttributes
+com.google.android.material.internal.ToolbarUtils -> com.google.android.material.internal.ToolbarUtils:
+    41:43:void <init>() -> <init>
+    114:126:androidx.appcompat.view.menu.ActionMenuItemView getActionMenuItemView(androidx.appcompat.widget.Toolbar,int) -> getActionMenuItemView
+    83:89:androidx.appcompat.widget.ActionMenuView getActionMenuView(androidx.appcompat.widget.Toolbar) -> getActionMenuView
+    94:107:android.widget.ImageButton getNavigationIconButton(androidx.appcompat.widget.Toolbar) -> getNavigationIconButton
+    71:78:android.view.View getSecondaryActionMenuItemView(androidx.appcompat.widget.Toolbar) -> getSecondaryActionMenuItemView
+    52:52:android.widget.TextView getSubtitleTextView(androidx.appcompat.widget.Toolbar) -> getSubtitleTextView
+    57:66:android.widget.TextView getTextView(androidx.appcompat.widget.Toolbar,java.lang.CharSequence) -> getTextView
+    47:47:android.widget.TextView getTitleTextView(androidx.appcompat.widget.Toolbar) -> getTitleTextView
+com.google.android.material.internal.ViewGroupOverlayApi14 -> com.google.android.material.internal.ViewGroupOverlayApi14:
+    27:28:void <init>(android.content.Context,android.view.ViewGroup,android.view.View) -> <init>
+    36:37:void add(android.view.View) -> add
+    31:31:com.google.android.material.internal.ViewGroupOverlayApi14 createFrom(android.view.ViewGroup) -> createFrom
+    41:42:void remove(android.view.View) -> remove
+com.google.android.material.internal.ViewGroupOverlayApi18 -> com.google.android.material.internal.ViewGroupOverlayApi18:
+    31:33:void <init>(android.view.ViewGroup) -> <init>
+    37:38:void add(android.graphics.drawable.Drawable) -> add
+    47:48:void add(android.view.View) -> add
+    42:43:void remove(android.graphics.drawable.Drawable) -> remove
+    52:53:void remove(android.view.View) -> remove
+com.google.android.material.internal.ViewOverlayApi14 -> com.google.android.material.internal.ViewOverlayApi14:
+    45:47:void <init>(android.content.Context,android.view.ViewGroup,android.view.View) -> <init>
+    66:67:void add(android.graphics.drawable.Drawable) -> add
+    50:61:com.google.android.material.internal.ViewOverlayApi14 createFrom(android.view.View) -> createFrom
+    71:72:void remove(android.graphics.drawable.Drawable) -> remove
+com.google.android.material.internal.ViewOverlayApi14$OverlayViewGroup -> com.google.android.material.internal.ViewOverlayApi14$OverlayViewGroup:
+    99:105:void <clinit>() -> <clinit>
+    115:130:void <init>(android.content.Context,android.view.ViewGroup,android.view.View,com.google.android.material.internal.ViewOverlayApi14) -> <init>
+    140:151:void add(android.graphics.drawable.Drawable) -> add
+    169:195:void add(android.view.View) -> add
+    203:208:void assertNotDisposed() -> assertNotDisposed
+    225:238:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    135:135:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    211:215:void disposeIfEmpty() -> disposeIfEmpty
+    255:261:void getOffset(int[]) -> getOffset
+    283:297:android.view.ViewParent invalidateChildInParent(int[],android.graphics.Rect) -> invalidateChildInParent
+    266:277:android.view.ViewParent invalidateChildInParentFast(int,int,android.graphics.Rect) -> invalidateChildInParentFast
+    220:221:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    243:243:void onLayout(boolean,int,int,int,int) -> onLayout
+    155:161:void remove(android.graphics.drawable.Drawable) -> remove
+    198:200:void remove(android.view.View) -> remove
+    165:165:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+com.google.android.material.internal.ViewOverlayApi18 -> com.google.android.material.internal.ViewOverlayApi18:
+    30:32:void <init>(android.view.View) -> <init>
+    36:37:void add(android.graphics.drawable.Drawable) -> add
+    41:42:void remove(android.graphics.drawable.Drawable) -> remove
+com.google.android.material.internal.ViewUtils -> com.google.android.material.internal.ViewUtils:
+    55:55:void <init>() -> <init>
+    322:325:void addOnGlobalLayoutListener(android.view.View,android.view.ViewTreeObserver$OnGlobalLayoutListener) -> addOnGlobalLayoutListener
+    150:151:void doOnApplyWindowInsets(android.view.View,android.util.AttributeSet,int,int) -> doOnApplyWindowInsets
+    163:209:void doOnApplyWindowInsets(android.view.View,android.util.AttributeSet,int,int,com.google.android.material.internal.ViewUtils$OnApplyWindowInsetsListener) -> doOnApplyWindowInsets
+    218:236:void doOnApplyWindowInsets(android.view.View,com.google.android.material.internal.ViewUtils$OnApplyWindowInsetsListener) -> doOnApplyWindowInsets
+    81:82:float dpToPx(android.content.Context,int) -> dpToPx
+    291:309:android.view.ViewGroup getContentView(android.view.View) -> getContentView
+    317:317:com.google.android.material.internal.ViewOverlayImpl getContentViewOverlay(android.view.View) -> getContentViewOverlay
+    279:283:com.google.android.material.internal.ViewOverlayImpl getOverlay(android.view.View) -> getOverlay
+    264:270:float getParentAbsoluteElevation(android.view.View) -> getParentAbsoluteElevation
+    77:77:boolean isLayoutRtl(android.view.View) -> isLayoutRtl
+    58:72:android.graphics.PorterDuff$Mode parseTintMode(int,android.graphics.PorterDuff$Mode) -> parseTintMode
+    329:332:void removeOnGlobalLayoutListener(android.view.View,android.view.ViewTreeObserver$OnGlobalLayoutListener) -> removeOnGlobalLayoutListener
+    336:341:void removeOnGlobalLayoutListener(android.view.ViewTreeObserver,android.view.ViewTreeObserver$OnGlobalLayoutListener) -> removeOnGlobalLayoutListener
+    240:257:void requestApplyInsetsWhenAttached(android.view.View) -> requestApplyInsetsWhenAttached
+    86:97:void requestFocusAndShowKeyboard(android.view.View) -> requestFocusAndShowKeyboard
+com.google.android.material.internal.ViewUtils$1 -> com.google.android.material.internal.ViewUtils$1:
+    88:88:void <init>(android.view.View) -> <init>
+    91:95:void run() -> run
+com.google.android.material.internal.ViewUtils$2 -> com.google.android.material.internal.ViewUtils$2:
+    178:178:void <init>(boolean,boolean,boolean,com.google.android.material.internal.ViewUtils$OnApplyWindowInsetsListener) -> <init>
+    185:205:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,com.google.android.material.internal.ViewUtils$RelativePadding) -> onApplyWindowInsets
+com.google.android.material.internal.ViewUtils$3 -> com.google.android.material.internal.ViewUtils$3:
+    228:228:void <init>(com.google.android.material.internal.ViewUtils$OnApplyWindowInsetsListener,com.google.android.material.internal.ViewUtils$RelativePadding) -> <init>
+    231:231:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.internal.ViewUtils$4 -> com.google.android.material.internal.ViewUtils$4:
+    246:246:void <init>() -> <init>
+    249:251:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    254:254:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+com.google.android.material.internal.ViewUtils$RelativePadding -> com.google.android.material.internal.ViewUtils$RelativePadding:
+    124:129:void <init>(int,int,int,int) -> <init>
+    131:136:void <init>(com.google.android.material.internal.ViewUtils$RelativePadding) -> <init>
+    140:141:void applyToView(android.view.View) -> applyToView
+com.google.android.material.internal.VisibilityAwareImageButton -> com.google.android.material.internal.VisibilityAwareImageButton:
+    39:40:void <init>(android.content.Context) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:49:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    64:64:int getUserSetVisibility() -> getUserSetVisibility
+    57:61:void internalSetVisibility(int,boolean) -> internalSetVisibility
+    53:54:void setVisibility(int) -> setVisibility
+com.google.android.material.math.MathUtils -> com.google.android.material.math.MathUtils:
+    24:24:void <init>() -> <init>
+    28:30:float dist(float,float,float,float) -> dist
+    65:69:float distanceToFurthestCorner(float,float,float,float,float,float) -> distanceToFurthestCorner
+    82:87:float floorMod(float,int) -> floorMod
+    95:100:int floorMod(int,int) -> floorMod
+    49:49:boolean geq(float,float,float) -> geq
+    37:37:float lerp(float,float,float) -> lerp
+    74:74:float max(float,float,float,float) -> max
+com.google.android.material.navigation.NavigationBarItemView -> com.google.android.material.navigation.NavigationBarItemView:
+    68:68:void <clinit>() -> <clinit>
+    82:137:void <init>(android.content.Context) -> <init>
+    66:66:android.widget.ImageView access$000(com.google.android.material.navigation.NavigationBarItemView) -> access$000
+    66:66:void access$100(com.google.android.material.navigation.NavigationBarItemView,android.view.View) -> access$100
+    480:483:void calculateTextScaleFactors(float,float) -> calculateTextScaleFactors
+    507:507:com.google.android.material.badge.BadgeDrawable getBadge() -> getBadge
+    556:560:android.widget.FrameLayout getCustomParentForBadge(android.view.View) -> getCustomParentForBadge
+    597:597:int getItemBackgroundResId() -> getItemBackgroundResId
+    215:215:androidx.appcompat.view.menu.MenuItemImpl getItemData() -> getItemData
+    607:607:int getItemDefaultMarginResId() -> getItemDefaultMarginResId
+    187:187:int getItemPosition() -> getItemPosition
+    358:367:int getItemVisiblePosition() -> getItemVisiblePosition
+    578:587:int getSuggestedIconHeight() -> getSuggestedIconHeight
+    564:574:int getSuggestedIconWidth() -> getSuggestedIconWidth
+    150:153:int getSuggestedMinimumHeight() -> getSuggestedMinimumHeight
+    141:145:int getSuggestedMinimumWidth() -> getSuggestedMinimumWidth
+    515:515:boolean hasBadge() -> hasBadge
+    159:180:void initialize(androidx.appcompat.view.menu.MenuItemImpl,int) -> initialize
+    407:411:int[] onCreateDrawableState(int) -> onCreateDrawableState
+    326:349:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    439:439:boolean prefersCondensedTitle() -> prefersCondensedTitle
+    511:512:void removeBadge() -> removeBadge
+    499:503:void setBadge(com.google.android.material.badge.BadgeDrawable) -> setBadge
+    238:239:void setCheckable(boolean) -> setCheckable
+    243:322:void setChecked(boolean) -> setChecked
+    391:402:void setEnabled(boolean) -> setEnabled
+    419:435:void setIcon(android.graphics.drawable.Drawable) -> setIcon
+    456:460:void setIconSize(int) -> setIconSize
+    448:453:void setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    486:489:void setItemBackground(int) -> setItemBackground
+    492:496:void setItemBackground(android.graphics.drawable.Drawable) -> setItemBackground
+    183:184:void setItemPosition(int) -> setItemPosition
+    202:210:void setLabelVisibilityMode(int) -> setLabelVisibilityMode
+    191:199:void setShifting(boolean) -> setShifting
+    415:415:void setShortcut(boolean,char) -> setShortcut
+    468:470:void setTextAppearanceActive(int) -> setTextAppearanceActive
+    463:465:void setTextAppearanceInactive(int) -> setTextAppearanceInactive
+    473:477:void setTextColor(android.content.res.ColorStateList) -> setTextColor
+    220:234:void setTitle(java.lang.CharSequence) -> setTitle
+    371:375:void setViewLayoutParams(android.view.View,int,int) -> setViewLayoutParams
+    379:382:void setViewScaleValues(android.view.View,float,float,int) -> setViewScaleValues
+    444:444:boolean showsIcon() -> showsIcon
+    527:538:void tryAttachBadgeToAnchor(android.view.View) -> tryAttachBadgeToAnchor
+    541:552:void tryRemoveBadgeFromAnchor(android.view.View) -> tryRemoveBadgeFromAnchor
+    519:524:void tryUpdateBadgeBounds(android.view.View) -> tryUpdateBadgeBounds
+    385:387:void updateViewPaddingBottom(android.view.View,int) -> updateViewPaddingBottom
+com.google.android.material.navigation.NavigationBarItemView$1 -> com.google.android.material.navigation.NavigationBarItemView$1:
+    119:119:void <init>(com.google.android.material.navigation.NavigationBarItemView) -> <init>
+    131:134:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.google.android.material.navigation.NavigationBarMenu -> com.google.android.material.navigation.NavigationBarMenu:
+    44:47:void <init>(android.content.Context,java.lang.Class,int) -> <init>
+    65:82:android.view.MenuItem addInternal(int,int,int,java.lang.CharSequence) -> addInternal
+    57:58:android.view.SubMenu addSubMenu(int,int,int,java.lang.CharSequence) -> addSubMenu
+    51:51:int getMaxItemCount() -> getMaxItemCount
+com.google.android.material.navigation.NavigationBarMenuView -> com.google.android.material.navigation.NavigationBarMenuView:
+    63:64:void <clinit>() -> <clinit>
+    68:117:void <init>(android.content.Context) -> <init>
+    59:59:com.google.android.material.navigation.NavigationBarPresenter access$000(com.google.android.material.navigation.NavigationBarMenuView) -> access$000
+    59:59:androidx.appcompat.view.menu.MenuBuilder access$100(com.google.android.material.navigation.NavigationBarMenuView) -> access$100
+    397:451:void buildMenuView() -> buildMenuView
+    372:387:android.content.res.ColorStateList createDefaultColorStateList(int) -> createDefaultColorStateList
+    603:611:com.google.android.material.navigation.NavigationBarItemView findItemView(int) -> findItemView
+    536:536:com.google.android.material.badge.BadgeDrawable getBadge(int) -> getBadge
+    522:522:android.util.SparseArray getBadgeDrawables() -> getBadgeDrawables
+    162:162:android.content.res.ColorStateList getIconTintList() -> getIconTintList
+    315:320:android.graphics.drawable.Drawable getItemBackground() -> getItemBackground
+    291:291:int getItemBackgroundRes() -> getItemBackgroundRes
+    184:184:int getItemIconSize() -> getItemIconSize
+    266:266:int getItemTextAppearanceActive() -> getItemTextAppearanceActive
+    237:237:int getItemTextAppearanceInactive() -> getItemTextAppearanceInactive
+    208:208:android.content.res.ColorStateList getItemTextColor() -> getItemTextColor
+    347:347:int getLabelVisibilityMode() -> getLabelVisibilityMode
+    624:624:androidx.appcompat.view.menu.MenuBuilder getMenu() -> getMenu
+    490:494:com.google.android.material.navigation.NavigationBarItemView getNewItem() -> getNewItem
+    547:558:com.google.android.material.badge.BadgeDrawable getOrCreateBadge(int) -> getOrCreateBadge
+    498:498:int getSelectedItemId() -> getSelectedItemId
+    619:619:int getSelectedItemPosition() -> getSelectedItemPosition
+    126:126:int getWindowAnimations() -> getWindowAnimations
+    121:122:void initialize(androidx.appcompat.view.menu.MenuBuilder) -> initialize
+    503:503:boolean isShifting(int,int) -> isShifting
+    628:628:boolean isValidId(int) -> isValidId
+    131:139:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    562:571:void removeBadge(int) -> removeBadge
+    587:599:void removeUnusedBadges() -> removeUnusedBadges
+    526:532:void setBadgeDrawables(android.util.SparseArray) -> setBadgeDrawables
+    574:584:void setBadgeIfNeeded(com.google.android.material.navigation.NavigationBarItemView) -> setBadgeIfNeeded
+    147:153:void setIconTintList(android.content.res.ColorStateList) -> setIconTintList
+    300:306:void setItemBackground(android.graphics.drawable.Drawable) -> setItemBackground
+    275:281:void setItemBackgroundRes(int) -> setItemBackgroundRes
+    173:179:void setItemIconSize(int) -> setItemIconSize
+    356:368:void setItemOnTouchListener(int,android.view.View$OnTouchListener) -> setItemOnTouchListener
+    246:257:void setItemTextAppearanceActive(int) -> setItemTextAppearanceActive
+    217:228:void setItemTextAppearanceInactive(int) -> setItemTextAppearanceInactive
+    193:199:void setItemTextColor(android.content.res.ColorStateList) -> setItemTextColor
+    338:339:void setLabelVisibilityMode(int) -> setLabelVisibilityMode
+    392:393:void setPresenter(com.google.android.material.navigation.NavigationBarPresenter) -> setPresenter
+    509:519:void tryRestoreSelectedItemId(int) -> tryRestoreSelectedItemId
+    454:487:void updateMenuView() -> updateMenuView
+    632:635:void validateMenuItemId(int) -> validateMenuItemId
+com.google.android.material.navigation.NavigationBarMenuView$1 -> com.google.android.material.navigation.NavigationBarMenuView$1:
+    105:105:void <init>(com.google.android.material.navigation.NavigationBarMenuView) -> <init>
+    108:113:void onClick(android.view.View) -> onClick
+com.google.android.material.navigation.NavigationBarPresenter -> com.google.android.material.navigation.NavigationBarPresenter:
+    44:47:void <init>() -> <init>
+    101:101:boolean collapseItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> collapseItemActionView
+    96:96:boolean expandItemActionView(androidx.appcompat.view.menu.MenuBuilder,androidx.appcompat.view.menu.MenuItemImpl) -> expandItemActionView
+    91:91:boolean flagActionItems() -> flagActionItems
+    110:110:int getId() -> getId
+    63:63:androidx.appcompat.view.menu.MenuView getMenuView(android.view.ViewGroup) -> getMenuView
+    56:58:void initForMenu(android.content.Context,androidx.appcompat.view.menu.MenuBuilder) -> initForMenu
+    87:87:void onCloseMenu(androidx.appcompat.view.menu.MenuBuilder,boolean) -> onCloseMenu
+    125:132:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    116:120:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    83:83:boolean onSubMenuSelected(androidx.appcompat.view.menu.SubMenuBuilder) -> onSubMenuSelected
+    79:79:void setCallback(androidx.appcompat.view.menu.MenuPresenter$Callback) -> setCallback
+    105:106:void setId(int) -> setId
+    51:52:void setMenuView(com.google.android.material.navigation.NavigationBarMenuView) -> setMenuView
+    135:136:void setUpdateSuspended(boolean) -> setUpdateSuspended
+    68:76:void updateMenuView(boolean) -> updateMenuView
+com.google.android.material.navigation.NavigationBarPresenter$SavedState -> com.google.android.material.navigation.NavigationBarPresenter$SavedState:
+    160:160:void <clinit>() -> <clinit>
+    142:142:void <init>() -> <init>
+    144:147:void <init>(android.os.Parcel) -> <init>
+    151:151:int describeContents() -> describeContents
+    156:158:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.navigation.NavigationBarPresenter$SavedState$1 -> com.google.android.material.navigation.NavigationBarPresenter$SavedState$1:
+    161:161:void <init>() -> <init>
+    161:161:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    165:165:com.google.android.material.navigation.NavigationBarPresenter$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    161:161:java.lang.Object[] newArray(int) -> newArray
+    171:171:com.google.android.material.navigation.NavigationBarPresenter$SavedState[] newArray(int) -> newArray
+com.google.android.material.navigation.NavigationBarView -> com.google.android.material.navigation.NavigationBarView:
+    129:249:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    82:82:com.google.android.material.navigation.NavigationBarView$OnItemReselectedListener access$000(com.google.android.material.navigation.NavigationBarView) -> access$000
+    82:82:com.google.android.material.navigation.NavigationBarView$OnItemSelectedListener access$100(com.google.android.material.navigation.NavigationBarView) -> access$100
+    252:273:void applyWindowInsets() -> applyWindowInsets
+    277:284:com.google.android.material.shape.MaterialShapeDrawable createMaterialShapeDrawableBackground(android.content.Context) -> createMaterialShapeDrawableBackground
+    656:656:com.google.android.material.badge.BadgeDrawable getBadge(int) -> getBadge
+    476:476:android.graphics.drawable.Drawable getItemBackground() -> getItemBackground
+    451:451:int getItemBackgroundResource() -> getItemBackgroundResource
+    414:414:int getItemIconSize() -> getItemIconSize
+    369:369:android.content.res.ColorStateList getItemIconTintList() -> getItemIconTintList
+    502:502:android.content.res.ColorStateList getItemRippleColor() -> getItemRippleColor
+    635:635:int getItemTextAppearanceActive() -> getItemTextAppearanceActive
+    616:616:int getItemTextAppearanceInactive() -> getItemTextAppearanceInactive
+    427:427:android.content.res.ColorStateList getItemTextColor() -> getItemTextColor
+    597:597:int getLabelVisibilityMode() -> getLabelVisibilityMode
+    333:333:android.view.Menu getMenu() -> getMenu
+    721:724:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    344:344:androidx.appcompat.view.menu.MenuView getMenuView() -> getMenuView
+    669:669:com.google.android.material.badge.BadgeDrawable getOrCreateBadge(int) -> getOrCreateBadge
+    729:729:com.google.android.material.navigation.NavigationBarPresenter getPresenter() -> getPresenter
+    550:550:int getSelectedItemId() -> getSelectedItemId
+    355:359:void inflateMenu(int) -> inflateMenu
+    289:292:void onAttachedToWindow() -> onAttachedToWindow
+    744:751:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    735:739:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    680:681:void removeBadge(int) -> removeBadge
+    301:305:void setElevation(float) -> setElevation
+    489:491:void setItemBackground(android.graphics.drawable.Drawable) -> setItemBackground
+    464:466:void setItemBackgroundResource(int) -> setItemBackgroundResource
+    391:392:void setItemIconSize(int) -> setItemIconSize
+    403:404:void setItemIconSizeRes(int) -> setItemIconSizeRes
+    379:380:void setItemIconTintList(android.content.res.ColorStateList) -> setItemIconTintList
+    643:644:void setItemOnTouchListener(int,android.view.View$OnTouchListener) -> setItemOnTouchListener
+    514:541:void setItemRippleColor(android.content.res.ColorStateList) -> setItemRippleColor
+    625:626:void setItemTextAppearanceActive(int) -> setItemTextAppearanceActive
+    606:607:void setItemTextAppearanceInactive(int) -> setItemTextAppearanceInactive
+    438:439:void setItemTextColor(android.content.res.ColorStateList) -> setItemTextColor
+    583:587:void setLabelVisibilityMode(int) -> setLabelVisibilityMode
+    327:328:void setOnItemReselectedListener(com.google.android.material.navigation.NavigationBarView$OnItemReselectedListener) -> setOnItemReselectedListener
+    316:317:void setOnItemSelectedListener(com.google.android.material.navigation.NavigationBarView$OnItemSelectedListener) -> setOnItemSelectedListener
+    560:566:void setSelectedItemId(int) -> setSelectedItemId
+com.google.android.material.navigation.NavigationBarView$1 -> com.google.android.material.navigation.NavigationBarView$1:
+    234:234:void <init>(com.google.android.material.navigation.NavigationBarView) -> <init>
+    237:241:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    245:245:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+com.google.android.material.navigation.NavigationBarView$2 -> com.google.android.material.navigation.NavigationBarView$2:
+    254:254:void <init>(com.google.android.material.navigation.NavigationBarView) -> <init>
+    262:270:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat,com.google.android.material.internal.ViewUtils$RelativePadding) -> onApplyWindowInsets
+com.google.android.material.navigation.NavigationBarView$SavedState -> com.google.android.material.navigation.NavigationBarView$SavedState:
+    778:778:void <clinit>() -> <clinit>
+    757:758:void <init>(android.os.Parcelable) -> <init>
+    761:766:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    775:776:void readFromParcel(android.os.Parcel,java.lang.ClassLoader) -> readFromParcel
+    770:772:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.navigation.NavigationBarView$SavedState$1 -> com.google.android.material.navigation.NavigationBarView$SavedState$1:
+    779:779:void <init>() -> <init>
+    779:779:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    779:779:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    783:783:com.google.android.material.navigation.NavigationBarView$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    789:789:com.google.android.material.navigation.NavigationBarView$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    779:779:java.lang.Object[] newArray(int) -> newArray
+    795:795:com.google.android.material.navigation.NavigationBarView$SavedState[] newArray(int) -> newArray
+com.google.android.material.navigation.NavigationView -> com.google.android.material.navigation.NavigationView:
+    100:103:void <clinit>() -> <clinit>
+    118:119:void <init>(android.content.Context) -> <init>
+    122:123:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    107:247:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    98:98:int[] access$000(com.google.android.material.navigation.NavigationView) -> access$000
+    98:98:com.google.android.material.internal.NavigationMenuPresenter access$100(com.google.android.material.navigation.NavigationView) -> access$100
+    396:397:void addHeaderView(android.view.View) -> addHeaderView
+    643:658:android.content.res.ColorStateList createDefaultColorStateList(int) -> createDefaultColorStateList
+    285:301:android.graphics.drawable.Drawable createDefaultItemBackground(androidx.appcompat.widget.TintTypedArray) -> createDefaultItemBackground
+    594:594:android.view.MenuItem getCheckedItem() -> getCheckedItem
+    414:414:int getHeaderCount() -> getHeaderCount
+    425:425:android.view.View getHeaderView(int) -> getHeaderView
+    478:478:android.graphics.drawable.Drawable getItemBackground() -> getItemBackground
+    510:510:int getItemHorizontalPadding() -> getItemHorizontalPadding
+    541:541:int getItemIconPadding() -> getItemIconPadding
+    436:436:android.content.res.ColorStateList getItemIconTintList() -> getItemIconTintList
+    631:631:int getItemMaxLines() -> getItemMaxLines
+    457:457:android.content.res.ColorStateList getItemTextColor() -> getItemTextColor
+    377:377:android.view.Menu getMenu() -> getMenu
+    635:638:android.view.MenuInflater getMenuInflater() -> getMenuInflater
+    258:259:boolean hasShapeAppearance(androidx.appcompat.widget.TintTypedArray) -> hasShapeAppearance
+    387:387:android.view.View inflateHeaderView(int) -> inflateHeaderView
+    368:372:void inflateMenu(int) -> inflateMenu
+    264:267:void onAttachedToWindow() -> onAttachedToWindow
+    664:670:void onDetachedFromWindow() -> onDetachedFromWindow
+    357:358:void onInsetsChanged(androidx.core.view.WindowInsetsCompat) -> onInsetsChanged
+    336:351:void onMeasure(int,int) -> onMeasure
+    315:322:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    306:310:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    405:406:void removeHeaderView(android.view.View) -> removeHeaderView
+    570:574:void setCheckedItem(int) -> setCheckedItem
+    582:589:void setCheckedItem(android.view.MenuItem) -> setCheckedItem
+    271:275:void setElevation(float) -> setElevation
+    499:500:void setItemBackground(android.graphics.drawable.Drawable) -> setItemBackground
+    489:490:void setItemBackgroundResource(int) -> setItemBackgroundResource
+    520:521:void setItemHorizontalPadding(int) -> setItemHorizontalPadding
+    530:531:void setItemHorizontalPaddingResource(int) -> setItemHorizontalPaddingResource
+    551:552:void setItemIconPadding(int) -> setItemIconPadding
+    561:562:void setItemIconPaddingResource(int) -> setItemIconPaddingResource
+    613:614:void setItemIconSize(int) -> setItemIconSize
+    446:447:void setItemIconTintList(android.content.res.ColorStateList) -> setItemIconTintList
+    622:623:void setItemMaxLines(int) -> setItemMaxLines
+    603:604:void setItemTextAppearance(int) -> setItemTextAppearance
+    467:468:void setItemTextColor(android.content.res.ColorStateList) -> setItemTextColor
+    331:332:void setNavigationItemSelectedListener(com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener) -> setNavigationItemSelectedListener
+    251:255:void setOverScrollMode(int) -> setOverScrollMode
+    678:701:void setupInsetScrimsListener() -> setupInsetScrimsListener
+com.google.android.material.navigation.NavigationView$1 -> com.google.android.material.navigation.NavigationView$1:
+    214:214:void <init>(com.google.android.material.navigation.NavigationView) -> <init>
+    217:217:boolean onMenuItemSelected(androidx.appcompat.view.menu.MenuBuilder,android.view.MenuItem) -> onMenuItemSelected
+    221:221:void onMenuModeChange(androidx.appcompat.view.menu.MenuBuilder) -> onMenuModeChange
+com.google.android.material.navigation.NavigationView$2 -> com.google.android.material.navigation.NavigationView$2:
+    678:678:void <init>(com.google.android.material.navigation.NavigationView) -> <init>
+    681:695:void onGlobalLayout() -> onGlobalLayout
+com.google.android.material.navigation.NavigationView$SavedState -> com.google.android.material.navigation.NavigationView$SavedState:
+    736:736:void <clinit>() -> <clinit>
+    722:724:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    727:728:void <init>(android.os.Parcelable) -> <init>
+    732:734:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.navigation.NavigationView$SavedState$1 -> com.google.android.material.navigation.NavigationView$SavedState$1:
+    737:737:void <init>() -> <init>
+    737:737:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    737:737:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    741:741:com.google.android.material.navigation.NavigationView$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    747:747:com.google.android.material.navigation.NavigationView$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    737:737:java.lang.Object[] newArray(int) -> newArray
+    753:753:com.google.android.material.navigation.NavigationView$SavedState[] newArray(int) -> newArray
+com.google.android.material.navigationrail.NavigationRailItemView -> com.google.android.material.navigationrail.NavigationRailItemView:
+    36:37:void <init>(android.content.Context) -> <init>
+    64:64:int getItemDefaultMarginResId() -> getItemDefaultMarginResId
+    58:58:int getItemLayoutResId() -> getItemLayoutResId
+    41:53:void onMeasure(int,int) -> onMeasure
+com.google.android.material.navigationrail.NavigationRailMenuView -> com.google.android.material.navigationrail.NavigationRailMenuView:
+    39:47:void <init>(android.content.Context) -> <init>
+    86:86:com.google.android.material.navigation.NavigationBarItemView createNavigationBarItemView(android.content.Context) -> createNavigationBarItemView
+    152:152:int getMenuGravity() -> getMenuGravity
+    156:156:boolean isTopGravity() -> isTopGravity
+    90:92:int makeSharedHeightSpec(int,int,int) -> makeSharedHeightSpec
+    136:141:int measureChildHeight(android.view.View,int,int) -> measureChildHeight
+    112:132:int measureSharedChildHeights(int,int,int,android.view.View) -> measureSharedChildHeights
+    96:107:int measureShiftingChildHeights(int,int,int) -> measureShiftingChildHeights
+    70:81:void onLayout(boolean,int,int,int,int) -> onLayout
+    51:66:void onMeasure(int,int) -> onMeasure
+    145:149:void setMenuGravity(int) -> setMenuGravity
+com.google.android.material.navigationrail.NavigationRailView -> com.google.android.material.navigationrail.NavigationRailView:
+    102:103:void <init>(android.content.Context) -> <init>
+    106:107:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    111:112:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    116:137:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    187:188:void addHeaderView(int) -> addHeaderView
+    200:207:void addHeaderView(android.view.View) -> addHeaderView
+    92:92:com.google.android.material.navigation.NavigationBarMenuView createNavigationBarMenuView(android.content.Context) -> createNavigationBarMenuView
+    260:260:com.google.android.material.navigationrail.NavigationRailMenuView createNavigationBarMenuView(android.content.Context) -> createNavigationBarMenuView
+    219:219:android.view.View getHeaderView() -> getHeaderView
+    248:248:int getMaxItemCount() -> getMaxItemCount
+    243:243:int getMenuGravity() -> getMenuGravity
+    252:252:com.google.android.material.navigationrail.NavigationRailMenuView getNavigationRailMenuView() -> getNavigationRailMenuView
+    276:276:boolean isHeaderViewVisible() -> isHeaderViewVisible
+    264:272:int makeMinWidthSpec(int) -> makeMinWidthSpec
+    153:174:void onLayout(boolean,int,int,int,int) -> onLayout
+    141:149:void onMeasure(int,int) -> onMeasure
+    230:234:void removeHeaderView() -> removeHeaderView
+    238:239:void setMenuGravity(int) -> setMenuGravity
+com.google.android.material.progressindicator.AnimatorDurationScaleProvider -> com.google.android.material.progressindicator.AnimatorDurationScaleProvider:
+    38:38:void <clinit>() -> <clinit>
+    35:35:void <init>() -> <init>
+    42:43:float getSystemAnimatorDurationScale(android.content.ContentResolver) -> getSystemAnimatorDurationScale
+    60:61:void setDefaultSystemAnimatorDurationScale(float) -> setDefaultSystemAnimatorDurationScale
+com.google.android.material.progressindicator.BaseProgressIndicator -> com.google.android.material.progressindicator.BaseProgressIndicator:
+    80:80:void <clinit>() -> <clinit>
+    120:825:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    70:70:void access$000(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$000
+    70:70:void access$100(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$100
+    70:70:long access$202(com.google.android.material.progressindicator.BaseProgressIndicator,long) -> access$202
+    70:70:int access$300(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$300
+    70:70:boolean access$400(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$400
+    70:70:boolean access$500(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$500
+    70:70:int access$600(com.google.android.material.progressindicator.BaseProgressIndicator) -> access$600
+    276:282:void applyNewVisibility(boolean) -> applyNewVisibility
+    356:356:android.graphics.drawable.Drawable getCurrentDrawable() -> getCurrentDrawable
+    362:367:com.google.android.material.progressindicator.DrawingDelegate getCurrentDrawingDelegate() -> getCurrentDrawingDelegate
+    672:672:int getHideAnimationBehavior() -> getHideAnimationBehavior
+    70:70:android.graphics.drawable.Drawable getIndeterminateDrawable() -> getIndeterminateDrawable
+    426:426:com.google.android.material.progressindicator.IndeterminateDrawable getIndeterminateDrawable() -> getIndeterminateDrawable
+    562:562:int[] getIndicatorColor() -> getIndicatorColor
+    70:70:android.graphics.drawable.Drawable getProgressDrawable() -> getProgressDrawable
+    420:420:com.google.android.material.progressindicator.DeterminateDrawable getProgressDrawable() -> getProgressDrawable
+    647:647:int getShowAnimationBehavior() -> getShowAnimationBehavior
+    594:594:int getTrackColor() -> getTrackColor
+    621:621:int getTrackCornerRadius() -> getTrackCornerRadius
+    535:535:int getTrackThickness() -> getTrackThickness
+    225:239:void hide() -> hide
+    249:255:void internalHide() -> internalHide
+    213:218:void internalShow() -> internalShow
+    344:348:void invalidate() -> invalidate
+    463:476:boolean isEffectivelyVisible() -> isEffectivelyVisible
+    484:485:boolean isNoLongerNeedToBeVisible() -> isNoLongerNeedToBeVisible
+    286:292:void onAttachedToWindow() -> onAttachedToWindow
+    297:302:void onDetachedFromWindow() -> onDetachedFromWindow
+    307:322:void onDraw(android.graphics.Canvas) -> onDraw
+    325:340:void onMeasure(int,int) -> onMeasure
+    259:261:void onVisibilityChanged(android.view.View,int) -> onVisibilityChanged
+    265:267:void onWindowVisibilityChanged(int) -> onWindowVisibilityChanged
+    163:179:void registerAnimationCallbacks() -> registerAnimationCallbacks
+    763:770:void setAnimatorDurationScaleProvider(com.google.android.material.progressindicator.AnimatorDurationScaleProvider) -> setAnimatorDurationScaleProvider
+    684:686:void setHideAnimationBehavior(int) -> setHideAnimationBehavior
+    497:524:void setIndeterminate(boolean) -> setIndeterminate
+    404:415:void setIndeterminateDrawable(android.graphics.drawable.Drawable) -> setIndeterminateDrawable
+    574:583:void setIndicatorColor(int[]) -> setIndicatorColor
+    698:703:void setProgress(int) -> setProgress
+    716:742:void setProgressCompat(int,boolean) -> setProgressCompat
+    379:394:void setProgressDrawable(android.graphics.drawable.Drawable) -> setProgressDrawable
+    659:661:void setShowAnimationBehavior(int) -> setShowAnimationBehavior
+    606:610:void setTrackColor(int) -> setTrackColor
+    633:636:void setTrackCornerRadius(int) -> setTrackCornerRadius
+    547:551:void setTrackThickness(int) -> setTrackThickness
+    750:756:void setVisibilityAfterHide(int) -> setVisibilityAfterHide
+    198:204:void show() -> show
+    182:189:void unregisterAnimationCallbacks() -> unregisterAnimationCallbacks
+    434:436:boolean visibleToUser() -> visibleToUser
+com.google.android.material.progressindicator.BaseProgressIndicator$1 -> com.google.android.material.progressindicator.BaseProgressIndicator$1:
+    780:780:void <init>(com.google.android.material.progressindicator.BaseProgressIndicator) -> <init>
+    783:784:void run() -> run
+com.google.android.material.progressindicator.BaseProgressIndicator$2 -> com.google.android.material.progressindicator.BaseProgressIndicator$2:
+    793:793:void <init>(com.google.android.material.progressindicator.BaseProgressIndicator) -> <init>
+    796:798:void run() -> run
+com.google.android.material.progressindicator.BaseProgressIndicator$3 -> com.google.android.material.progressindicator.BaseProgressIndicator$3:
+    808:808:void <init>(com.google.android.material.progressindicator.BaseProgressIndicator) -> <init>
+    812:817:void onAnimationEnd(android.graphics.drawable.Drawable) -> onAnimationEnd
+com.google.android.material.progressindicator.BaseProgressIndicator$4 -> com.google.android.material.progressindicator.BaseProgressIndicator$4:
+    826:826:void <init>(com.google.android.material.progressindicator.BaseProgressIndicator) -> <init>
+    829:835:void onAnimationEnd(android.graphics.drawable.Drawable) -> onAnimationEnd
+com.google.android.material.progressindicator.BaseProgressIndicatorSpec -> com.google.android.material.progressindicator.BaseProgressIndicatorSpec:
+    57:111:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    178:178:boolean isHideAnimationEnabled() -> isHideAnimationEnabled
+    174:174:boolean isShowAnimationEnabled() -> isShowAnimationEnabled
+    122:146:void loadIndicatorColors(android.content.Context,android.content.res.TypedArray) -> loadIndicatorColors
+    157:171:void loadTrackColor(android.content.Context,android.content.res.TypedArray) -> loadTrackColor
+com.google.android.material.progressindicator.CircularDrawingDelegate -> com.google.android.material.progressindicator.CircularDrawingDelegate:
+    33:41:void <init>(com.google.android.material.progressindicator.CircularProgressIndicatorSpec) -> <init>
+    66:99:void adjustCanvas(android.graphics.Canvas,float) -> adjustCanvas
+    203:219:void drawRoundedEnd(android.graphics.Canvas,android.graphics.Paint,float,float,float,boolean,android.graphics.RectF) -> drawRoundedEnd
+    120:168:void fillIndicator(android.graphics.Canvas,android.graphics.Paint,float,float,int) -> fillIndicator
+    178:189:void fillTrack(android.graphics.Canvas,android.graphics.Paint) -> fillTrack
+    50:50:int getPreferredHeight() -> getPreferredHeight
+    45:45:int getPreferredWidth() -> getPreferredWidth
+    192:192:int getSize() -> getSize
+com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate -> com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate:
+    44:250:void <clinit>() -> <clinit>
+    61:72:void <init>(com.google.android.material.progressindicator.CircularProgressIndicatorSpec) -> <init>
+    34:34:int access$000(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> access$000
+    34:34:int access$002(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate,int) -> access$002
+    34:34:com.google.android.material.progressindicator.BaseProgressIndicatorSpec access$100(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> access$100
+    34:34:float access$200(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> access$200
+    34:34:float access$300(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> access$300
+    34:34:void access$400(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate,float) -> access$400
+    120:123:void cancelAnimatorImmediately() -> cancelAnimatorImmediately
+    214:214:float getAnimationFraction() -> getAnimationFraction
+    227:227:float getCompleteEndFraction() -> getCompleteEndFraction
+    141:142:void invalidateSpecValues() -> invalidateSpecValues
+    85:116:void maybeInitializeAnimators() -> maybeInitializeAnimators
+    182:201:void maybeUpdateSegmentColors(int) -> maybeUpdateSegmentColors
+    146:147:void registerAnimatorsCompleteCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimatorsCompleteCallback
+    128:137:void requestCancelAnimatorAfterCurrentCycle() -> requestCancelAnimatorAfterCurrentCycle
+    205:209:void resetPropertiesForNewStart() -> resetPropertiesForNewStart
+    219:224:void setAnimationFraction(float) -> setAnimationFraction
+    231:232:void setCompleteEndFraction(float) -> setCompleteEndFraction
+    78:82:void startAnimator() -> startAnimator
+    151:152:void unregisterAnimatorsCompleteCallback() -> unregisterAnimatorsCompleteCallback
+    159:178:void updateSegmentPositions(int) -> updateSegmentPositions
+com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$1 -> com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$1:
+    92:92:void <init>(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> <init>
+    95:98:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$2 -> com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$2:
+    107:107:void <init>(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> <init>
+    110:113:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$3 -> com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$3:
+    237:237:void <init>(java.lang.Class,java.lang.String) -> <init>
+    237:237:java.lang.Object get(java.lang.Object) -> get
+    240:240:java.lang.Float get(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> get
+    237:237:void set(java.lang.Object,java.lang.Object) -> set
+    245:246:void set(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate,java.lang.Float) -> set
+com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$4 -> com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate$4:
+    252:252:void <init>(java.lang.Class,java.lang.String) -> <init>
+    252:252:java.lang.Object get(java.lang.Object) -> get
+    255:255:java.lang.Float get(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate) -> get
+    252:252:void set(java.lang.Object,java.lang.Object) -> set
+    260:261:void set(com.google.android.material.progressindicator.CircularIndeterminateAnimatorDelegate,java.lang.Float) -> set
+com.google.android.material.progressindicator.CircularProgressIndicator -> com.google.android.material.progressindicator.CircularProgressIndicator:
+    55:55:void <clinit>() -> <clinit>
+    64:65:void <init>(android.content.Context) -> <init>
+    68:69:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    73:76:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    53:53:com.google.android.material.progressindicator.BaseProgressIndicatorSpec createSpec(android.content.Context,android.util.AttributeSet) -> createSpec
+    82:82:com.google.android.material.progressindicator.CircularProgressIndicatorSpec createSpec(android.content.Context,android.util.AttributeSet) -> createSpec
+    174:174:int getIndicatorDirection() -> getIndicatorDirection
+    118:118:int getIndicatorInset() -> getIndicatorInset
+    145:145:int getIndicatorSize() -> getIndicatorSize
+    88:90:void initializeDrawables() -> initializeDrawables
+    186:188:void setIndicatorDirection(int) -> setIndicatorDirection
+    130:134:void setIndicatorInset(int) -> setIndicatorInset
+    157:163:void setIndicatorSize(int) -> setIndicatorSize
+    105:107:void setTrackThickness(int) -> setTrackThickness
+com.google.android.material.progressindicator.CircularProgressIndicatorSpec -> com.google.android.material.progressindicator.CircularProgressIndicatorSpec:
+    63:64:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    68:69:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    76:106:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    109:109:void validateSpec() -> validateSpec
+com.google.android.material.progressindicator.DeterminateDrawable -> com.google.android.material.progressindicator.DeterminateDrawable:
+    221:221:void <clinit>() -> <clinit>
+    45:64:void <init>(android.content.Context,com.google.android.material.progressindicator.BaseProgressIndicatorSpec,com.google.android.material.progressindicator.DrawingDelegate) -> <init>
+    29:29:float access$000(com.google.android.material.progressindicator.DeterminateDrawable) -> access$000
+    29:29:void access$100(com.google.android.material.progressindicator.DeterminateDrawable,float) -> access$100
+    29:29:void clearAnimationCallbacks() -> clearAnimationCallbacks
+    89:89:com.google.android.material.progressindicator.DeterminateDrawable createCircularDrawable(android.content.Context,com.google.android.material.progressindicator.CircularProgressIndicatorSpec) -> createCircularDrawable
+    76:76:com.google.android.material.progressindicator.DeterminateDrawable createLinearDrawable(android.content.Context,com.google.android.material.progressindicator.LinearProgressIndicatorSpec) -> createLinearDrawable
+    179:196:void draw(android.graphics.Canvas) -> draw
+    29:29:int getAlpha() -> getAlpha
+    211:211:com.google.android.material.progressindicator.DrawingDelegate getDrawingDelegate() -> getDrawingDelegate
+    201:201:float getIndicatorFraction() -> getIndicatorFraction
+    161:161:int getIntrinsicHeight() -> getIntrinsicHeight
+    156:156:int getIntrinsicWidth() -> getIntrinsicWidth
+    29:29:int getOpacity() -> getOpacity
+    29:29:boolean hideNow() -> hideNow
+    29:29:boolean isHiding() -> isHiding
+    29:29:boolean isRunning() -> isRunning
+    29:29:boolean isShowing() -> isShowing
+    132:134:void jumpToCurrentState() -> jumpToCurrentState
+    144:151:boolean onLevelChange(int) -> onLevelChange
+    29:29:void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimationCallback
+    29:29:void setAlpha(int) -> setAlpha
+    29:29:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    215:217:void setDrawingDelegate(com.google.android.material.progressindicator.DrawingDelegate) -> setDrawingDelegate
+    205:207:void setIndicatorFraction(float) -> setIndicatorFraction
+    172:173:void setLevelByFraction(float) -> setLevelByFraction
+    29:29:boolean setVisible(boolean,boolean) -> setVisible
+    29:29:boolean setVisible(boolean,boolean,boolean) -> setVisible
+    113:124:boolean setVisibleInternal(boolean,boolean,boolean) -> setVisibleInternal
+    29:29:void start() -> start
+    29:29:void stop() -> stop
+    29:29:boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterAnimationCallback
+com.google.android.material.progressindicator.DeterminateDrawable$1 -> com.google.android.material.progressindicator.DeterminateDrawable$1:
+    222:222:void <init>(java.lang.String) -> <init>
+    222:222:float getValue(java.lang.Object) -> getValue
+    225:225:float getValue(com.google.android.material.progressindicator.DeterminateDrawable) -> getValue
+    222:222:void setValue(java.lang.Object,float) -> setValue
+    230:231:void setValue(com.google.android.material.progressindicator.DeterminateDrawable,float) -> setValue
+com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange -> com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange:
+    423:423:void <clinit>() -> <clinit>
+    77:89:void <init>(android.content.Context,com.google.android.material.progressindicator.BaseProgressIndicatorSpec) -> <init>
+    42:42:void access$000(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> access$000
+    42:42:boolean access$101(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange,boolean,boolean) -> access$101
+    42:42:void access$200(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> access$200
+    151:153:void clearAnimationCallbacks() -> clearAnimationCallbacks
+    178:186:void dispatchAnimationEnd() -> dispatchAnimationEnd
+    166:174:void dispatchAnimationStart() -> dispatchAnimationStart
+    298:304:void endAnimatorWithoutCallbacks(android.animation.ValueAnimator[]) -> endAnimatorWithoutCallbacks
+    316:316:int getAlpha() -> getAlpha
+    390:397:float getGrowFraction() -> getGrowFraction
+    357:357:android.animation.ValueAnimator getHideAnimator() -> getHideAnimator
+    327:327:int getOpacity() -> getOpacity
+    217:217:boolean hideNow() -> hideNow
+    212:212:boolean isHiding() -> isHiding
+    204:204:boolean isRunning() -> isRunning
+    208:208:boolean isShowing() -> isShowing
+    94:106:void maybeInitializeAnimators() -> maybeInitializeAnimators
+    122:128:void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimationCallback
+    310:312:void setAlpha(int) -> setAlpha
+    321:323:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    401:405:void setGrowFraction(float) -> setGrowFraction
+    367:386:void setHideAnimator(android.animation.ValueAnimator) -> setHideAnimator
+    161:162:void setInternalAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> setInternalAnimationCallback
+    417:419:void setMockHideAnimationRunning(boolean,float) -> setMockHideAnimationRunning
+    410:412:void setMockShowAnimationRunning(boolean,float) -> setMockShowAnimationRunning
+    337:353:void setShowAnimator(android.animation.ValueAnimator) -> setShowAnimator
+    222:222:boolean setVisible(boolean,boolean) -> setVisible
+    236:240:boolean setVisible(boolean,boolean,boolean) -> setVisible
+    253:294:boolean setVisibleInternal(boolean,boolean,boolean) -> setVisibleInternal
+    193:194:void start() -> start
+    199:200:void stop() -> stop
+    138:145:boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterAnimationCallback
+com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$1 -> com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$1:
+    345:345:void <init>(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> <init>
+    348:351:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$2 -> com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$2:
+    376:376:void <init>(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> <init>
+    379:384:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$3 -> com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange$3:
+    424:424:void <init>(java.lang.Class,java.lang.String) -> <init>
+    424:424:java.lang.Object get(java.lang.Object) -> get
+    427:427:java.lang.Float get(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> get
+    424:424:void set(java.lang.Object,java.lang.Object) -> set
+    432:433:void set(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange,java.lang.Float) -> set
+com.google.android.material.progressindicator.DrawingDelegate -> com.google.android.material.progressindicator.DrawingDelegate:
+    30:32:void <init>(com.google.android.material.progressindicator.BaseProgressIndicatorSpec) -> <init>
+    85:86:void registerDrawable(com.google.android.material.progressindicator.DrawableWithAnimatedVisibilityChange) -> registerDrawable
+    90:92:void validateSpecAndAdjustCanvas(android.graphics.Canvas,float) -> validateSpecAndAdjustCanvas
+com.google.android.material.progressindicator.IndeterminateAnimatorDelegate -> com.google.android.material.progressindicator.IndeterminateAnimatorDelegate:
+    40:43:void <init>(int) -> <init>
+    51:51:float getFractionInRange(int,int,int) -> getFractionInRange
+    47:48:void registerDrawable(com.google.android.material.progressindicator.IndeterminateDrawable) -> registerDrawable
+com.google.android.material.progressindicator.IndeterminateDrawable -> com.google.android.material.progressindicator.IndeterminateDrawable:
+    40:44:void <init>(android.content.Context,com.google.android.material.progressindicator.BaseProgressIndicatorSpec,com.google.android.material.progressindicator.DrawingDelegate,com.google.android.material.progressindicator.IndeterminateAnimatorDelegate) -> <init>
+    27:27:void clearAnimationCallbacks() -> clearAnimationCallbacks
+    76:76:com.google.android.material.progressindicator.IndeterminateDrawable createCircularDrawable(android.content.Context,com.google.android.material.progressindicator.CircularProgressIndicatorSpec) -> createCircularDrawable
+    56:56:com.google.android.material.progressindicator.IndeterminateDrawable createLinearDrawable(android.content.Context,com.google.android.material.progressindicator.LinearProgressIndicatorSpec) -> createLinearDrawable
+    132:156:void draw(android.graphics.Canvas) -> draw
+    27:27:int getAlpha() -> getAlpha
+    162:162:com.google.android.material.progressindicator.IndeterminateAnimatorDelegate getAnimatorDelegate() -> getAnimatorDelegate
+    173:173:com.google.android.material.progressindicator.DrawingDelegate getDrawingDelegate() -> getDrawingDelegate
+    124:124:int getIntrinsicHeight() -> getIntrinsicHeight
+    119:119:int getIntrinsicWidth() -> getIntrinsicWidth
+    27:27:int getOpacity() -> getOpacity
+    27:27:boolean hideNow() -> hideNow
+    27:27:boolean isHiding() -> isHiding
+    27:27:boolean isRunning() -> isRunning
+    27:27:boolean isShowing() -> isShowing
+    27:27:void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimationCallback
+    27:27:void setAlpha(int) -> setAlpha
+    167:169:void setAnimatorDelegate(com.google.android.material.progressindicator.IndeterminateAnimatorDelegate) -> setAnimatorDelegate
+    27:27:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    177:179:void setDrawingDelegate(com.google.android.material.progressindicator.DrawingDelegate) -> setDrawingDelegate
+    27:27:boolean setVisible(boolean,boolean) -> setVisible
+    27:27:boolean setVisible(boolean,boolean,boolean) -> setVisible
+    99:114:boolean setVisibleInternal(boolean,boolean,boolean) -> setVisibleInternal
+    27:27:void start() -> start
+    27:27:void stop() -> stop
+    27:27:boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> unregisterAnimationCallback
+com.google.android.material.progressindicator.LinearDrawingDelegate -> com.google.android.material.progressindicator.LinearDrawingDelegate:
+    34:41:void <init>(com.google.android.material.progressindicator.LinearProgressIndicatorSpec) -> <init>
+    65:98:void adjustCanvas(android.graphics.Canvas,float) -> adjustCanvas
+    226:243:void drawRoundedEnd(android.graphics.Canvas,android.graphics.Paint,float,float,float,boolean,android.graphics.RectF) -> drawRoundedEnd
+    119:168:void fillIndicator(android.graphics.Canvas,android.graphics.Paint,float,float,int) -> fillIndicator
+    178:215:void fillTrack(android.graphics.Canvas,android.graphics.Paint) -> fillTrack
+    50:50:int getPreferredHeight() -> getPreferredHeight
+    45:45:int getPreferredWidth() -> getPreferredWidth
+com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate -> com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate:
+    171:171:void <clinit>() -> <clinit>
+    50:60:void <init>(com.google.android.material.progressindicator.LinearProgressIndicatorSpec) -> <init>
+    36:36:int access$000(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate) -> access$000
+    36:36:int access$002(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate,int) -> access$002
+    36:36:com.google.android.material.progressindicator.BaseProgressIndicatorSpec access$100(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate) -> access$100
+    36:36:boolean access$202(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate,boolean) -> access$202
+    36:36:float access$300(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate) -> access$300
+    94:97:void cancelAnimatorImmediately() -> cancelAnimatorImmediately
+    156:156:float getAnimationFraction() -> getAnimationFraction
+    107:108:void invalidateSpecValues() -> invalidateSpecValues
+    73:90:void maybeInitializeAnimators() -> maybeInitializeAnimators
+    134:142:void maybeUpdateSegmentColors() -> maybeUpdateSegmentColors
+    113:113:void registerAnimatorsCompleteCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimatorsCompleteCallback
+    103:103:void requestCancelAnimatorAfterCurrentCycle() -> requestCancelAnimatorAfterCurrentCycle
+    146:151:void resetPropertiesForNewStart() -> resetPropertiesForNewStart
+    161:166:void setAnimationFraction(float) -> setAnimationFraction
+    66:70:void startAnimator() -> startAnimator
+    118:118:void unregisterAnimatorsCompleteCallback() -> unregisterAnimatorsCompleteCallback
+    124:130:void updateSegmentPositions(int) -> updateSegmentPositions
+com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate$1 -> com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate$1:
+    80:80:void <init>(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate) -> <init>
+    83:87:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate$2 -> com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate$2:
+    173:173:void <init>(java.lang.Class,java.lang.String) -> <init>
+    173:173:java.lang.Object get(java.lang.Object) -> get
+    176:176:java.lang.Float get(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate) -> get
+    173:173:void set(java.lang.Object,java.lang.Object) -> set
+    181:182:void set(com.google.android.material.progressindicator.LinearIndeterminateContiguousAnimatorDelegate,java.lang.Float) -> set
+com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate -> com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate:
+    47:205:void <clinit>() -> <clinit>
+    58:81:void <init>(android.content.Context,com.google.android.material.progressindicator.LinearProgressIndicatorSpec) -> <init>
+    42:42:int access$000(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> access$000
+    42:42:int access$002(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate,int) -> access$002
+    42:42:com.google.android.material.progressindicator.BaseProgressIndicatorSpec access$100(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> access$100
+    42:42:boolean access$202(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate,boolean) -> access$202
+    42:42:boolean access$300(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> access$300
+    42:42:boolean access$302(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate,boolean) -> access$302
+    42:42:android.animation.ObjectAnimator access$400(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> access$400
+    42:42:float access$500(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> access$500
+    124:127:void cancelAnimatorImmediately() -> cancelAnimatorImmediately
+    190:190:float getAnimationFraction() -> getAnimationFraction
+    141:142:void invalidateSpecValues() -> invalidateSpecValues
+    94:120:void maybeInitializeAnimators() -> maybeInitializeAnimators
+    169:176:void maybeUpdateSegmentColors() -> maybeUpdateSegmentColors
+    146:147:void registerAnimatorsCompleteCallback(androidx.vectordrawable.graphics.drawable.Animatable2Compat$AnimationCallback) -> registerAnimatorsCompleteCallback
+    131:137:void requestCancelAnimatorAfterCurrentCycle() -> requestCancelAnimatorAfterCurrentCycle
+    180:185:void resetPropertiesForNewStart() -> resetPropertiesForNewStart
+    195:200:void setAnimationFraction(float) -> setAnimationFraction
+    87:91:void startAnimator() -> startAnimator
+    151:152:void unregisterAnimatorsCompleteCallback() -> unregisterAnimatorsCompleteCallback
+    158:165:void updateSegmentPositions(int) -> updateSegmentPositions
+com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate$1 -> com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate$1:
+    101:101:void <init>(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> <init>
+    111:117:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    104:107:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate$2 -> com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate$2:
+    207:207:void <init>(java.lang.Class,java.lang.String) -> <init>
+    207:207:java.lang.Object get(java.lang.Object) -> get
+    210:210:java.lang.Float get(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate) -> get
+    207:207:void set(java.lang.Object,java.lang.Object) -> set
+    215:216:void set(com.google.android.material.progressindicator.LinearIndeterminateDisjointAnimatorDelegate,java.lang.Float) -> set
+com.google.android.material.progressindicator.LinearProgressIndicator -> com.google.android.material.progressindicator.LinearProgressIndicator:
+    54:54:void <clinit>() -> <clinit>
+    67:68:void <init>(android.content.Context) -> <init>
+    71:72:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    76:79:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    52:52:com.google.android.material.progressindicator.BaseProgressIndicatorSpec createSpec(android.content.Context,android.util.AttributeSet) -> createSpec
+    85:85:com.google.android.material.progressindicator.LinearProgressIndicatorSpec createSpec(android.content.Context,android.util.AttributeSet) -> createSpec
+    159:159:int getIndeterminateAnimationType() -> getIndeterminateAnimationType
+    201:201:int getIndicatorDirection() -> getIndicatorDirection
+    118:120:void initializeDrawables() -> initializeDrawables
+    90:99:void onLayout(boolean,int,int,int,int) -> onLayout
+    103:113:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    172:190:void setIndeterminateAnimationType(int) -> setIndeterminateAnimationType
+    133:135:void setIndicatorColor(int[]) -> setIndicatorColor
+    213:221:void setIndicatorDirection(int) -> setIndicatorDirection
+    236:242:void setProgressCompat(int,boolean) -> setProgressCompat
+    146:149:void setTrackCornerRadius(int) -> setTrackCornerRadius
+com.google.android.material.progressindicator.LinearProgressIndicatorSpec -> com.google.android.material.progressindicator.LinearProgressIndicatorSpec:
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    64:65:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    72:95:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    99:114:void validateSpec() -> validateSpec
+com.google.android.material.radiobutton.MaterialRadioButton -> com.google.android.material.radiobutton.MaterialRadioButton:
+    45:47:void <clinit>() -> <clinit>
+    58:59:void <init>(android.content.Context) -> <init>
+    62:63:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    67:88:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    119:136:android.content.res.ColorStateList getMaterialThemeColorsTintList() -> getMaterialThemeColorsTintList
+    115:115:boolean isUseMaterialThemeColors() -> isUseMaterialThemeColors
+    92:97:void onAttachedToWindow() -> onAttachedToWindow
+    105:111:void setUseMaterialThemeColors(boolean) -> setUseMaterialThemeColors
+com.google.android.material.resources.CancelableFontCallback -> com.google.android.material.resources.CancelableFontCallback:
+    42:45:void <init>(com.google.android.material.resources.CancelableFontCallback$ApplyFont,android.graphics.Typeface) -> <init>
+    64:65:void cancel() -> cancel
+    54:55:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    49:50:void onFontRetrieved(android.graphics.Typeface,boolean) -> onFontRetrieved
+    68:71:void updateIfNotCancelled(android.graphics.Typeface) -> updateIfNotCancelled
+com.google.android.material.resources.MaterialAttributes -> com.google.android.material.resources.MaterialAttributes:
+    38:38:void <init>() -> <init>
+    46:50:android.util.TypedValue resolve(android.content.Context,int) -> resolve
+    106:107:boolean resolveBoolean(android.content.Context,int,boolean) -> resolveBoolean
+    97:97:boolean resolveBooleanOrThrow(android.content.Context,int,java.lang.String) -> resolveBooleanOrThrow
+    138:142:int resolveDimension(android.content.Context,int,int) -> resolveDimension
+    118:119:int resolveInteger(android.content.Context,int,int) -> resolveInteger
+    127:127:int resolveMinimumAccessibleTouchTarget(android.content.Context) -> resolveMinimumAccessibleTouchTarget
+    62:74:int resolveOrThrow(android.content.Context,int,java.lang.String) -> resolveOrThrow
+    84:85:int resolveOrThrow(android.view.View,int) -> resolveOrThrow
+com.google.android.material.resources.MaterialResources -> com.google.android.material.resources.MaterialResources:
+    48:48:void <init>() -> <init>
+    57:76:android.content.res.ColorStateList getColorStateList(android.content.Context,android.content.res.TypedArray,int) -> getColorStateList
+    86:105:android.content.res.ColorStateList getColorStateList(android.content.Context,androidx.appcompat.widget.TintTypedArray,int) -> getColorStateList
+    168:176:int getDimensionPixelSize(android.content.Context,android.content.res.TypedArray,int,int) -> getDimensionPixelSize
+    117:126:android.graphics.drawable.Drawable getDrawable(android.content.Context,android.content.res.TypedArray,int) -> getDrawable
+    200:203:int getIndexWithValue(android.content.res.TypedArray,int,int) -> getIndexWithValue
+    137:143:com.google.android.material.resources.TextAppearance getTextAppearance(android.content.Context,android.content.res.TypedArray,int) -> getTextAppearance
+    183:183:boolean isFontScaleAtLeast1_3(android.content.Context) -> isFontScaleAtLeast1_3
+    190:190:boolean isFontScaleAtLeast2_0(android.content.Context) -> isFontScaleAtLeast2_0
+com.google.android.material.resources.TextAppearance -> com.google.android.material.resources.TextAppearance:
+    76:121:void <init>(android.content.Context,int) -> <init>
+    48:48:android.graphics.Typeface access$000(com.google.android.material.resources.TextAppearance) -> access$000
+    48:48:android.graphics.Typeface access$002(com.google.android.material.resources.TextAppearance,android.graphics.Typeface) -> access$002
+    48:48:boolean access$102(com.google.android.material.resources.TextAppearance,boolean) -> access$102
+    268:290:void createFallbackFont() -> createFallbackFont
+    262:263:android.graphics.Typeface getFallbackFont() -> getFallbackFont
+    131:153:android.graphics.Typeface getFont(android.content.Context) -> getFont
+    171:217:void getFontAsync(android.content.Context,com.google.android.material.resources.TextAppearanceFontCallback) -> getFontAsync
+    234:251:void getFontAsync(android.content.Context,android.text.TextPaint,com.google.android.material.resources.TextAppearanceFontCallback) -> getFontAsync
+    357:364:boolean shouldLoadFontSynchronously(android.content.Context) -> shouldLoadFontSynchronously
+    302:315:void updateDrawState(android.content.Context,android.text.TextPaint,com.google.android.material.resources.TextAppearanceFontCallback) -> updateDrawState
+    327:332:void updateMeasureState(android.content.Context,android.text.TextPaint,com.google.android.material.resources.TextAppearanceFontCallback) -> updateMeasureState
+    341:354:void updateTextPaintMeasureState(android.text.TextPaint,android.graphics.Typeface) -> updateTextPaintMeasureState
+com.google.android.material.resources.TextAppearance$1 -> com.google.android.material.resources.TextAppearance$1:
+    193:193:void <init>(com.google.android.material.resources.TextAppearance,com.google.android.material.resources.TextAppearanceFontCallback) -> <init>
+    203:205:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    196:199:void onFontRetrieved(android.graphics.Typeface) -> onFontRetrieved
+com.google.android.material.resources.TextAppearance$2 -> com.google.android.material.resources.TextAppearance$2:
+    238:238:void <init>(com.google.android.material.resources.TextAppearance,android.text.TextPaint,com.google.android.material.resources.TextAppearanceFontCallback) -> <init>
+    248:249:void onFontRetrievalFailed(int) -> onFontRetrievalFailed
+    242:244:void onFontRetrieved(android.graphics.Typeface,boolean) -> onFontRetrieved
+com.google.android.material.resources.TextAppearanceConfig -> com.google.android.material.resources.TextAppearanceConfig:
+    28:28:void <init>() -> <init>
+    38:39:void setShouldLoadFontSynchronously(boolean) -> setShouldLoadFontSynchronously
+    43:43:boolean shouldLoadFontSynchronously() -> shouldLoadFontSynchronously
+com.google.android.material.resources.TextAppearanceFontCallback -> com.google.android.material.resources.TextAppearanceFontCallback:
+    30:30:void <init>() -> <init>
+com.google.android.material.ripple.RippleDrawableCompat -> com.google.android.material.ripple.RippleDrawableCompat:
+    47:47:void <init>(com.google.android.material.ripple.RippleDrawableCompat$RippleDrawableCompatState,com.google.android.material.ripple.RippleDrawableCompat$1) -> <init>
+    58:59:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    62:64:void <init>(com.google.android.material.ripple.RippleDrawableCompat$RippleDrawableCompatState) -> <init>
+    126:129:void draw(android.graphics.Canvas) -> draw
+    140:140:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    163:163:int getOpacity() -> getOpacity
+    95:95:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    104:104:boolean isStateful() -> isStateful
+    46:46:android.graphics.drawable.Drawable mutate() -> mutate
+    146:148:com.google.android.material.ripple.RippleDrawableCompat mutate() -> mutate
+    133:135:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    109:120:boolean onStateChange(int[]) -> onStateChange
+    153:154:void setAlpha(int) -> setAlpha
+    158:159:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    83:84:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    68:69:void setTint(int) -> setTint
+    78:79:void setTintList(android.content.res.ColorStateList) -> setTintList
+    73:74:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+com.google.android.material.ripple.RippleDrawableCompat$RippleDrawableCompatState -> com.google.android.material.ripple.RippleDrawableCompat$RippleDrawableCompatState:
+    175:178:void <init>(com.google.android.material.shape.MaterialShapeDrawable) -> <init>
+    180:183:void <init>(com.google.android.material.ripple.RippleDrawableCompat$RippleDrawableCompatState) -> <init>
+    193:193:int getChangingConfigurations() -> getChangingConfigurations
+    170:170:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+    188:188:com.google.android.material.ripple.RippleDrawableCompat newDrawable() -> newDrawable
+com.google.android.material.ripple.RippleUtils -> com.google.android.material.ripple.RippleUtils:
+    42:77:void <clinit>() -> <clinit>
+    84:84:void <init>() -> <init>
+    112:184:android.content.res.ColorStateList convertToRippleDrawableColor(android.content.res.ColorStateList) -> convertToRippleDrawableColor
+    256:257:int doubleAlpha(int) -> doubleAlpha
+    241:246:int getColorForState(android.content.res.ColorStateList,int[]) -> getColorForState
+    203:213:android.content.res.ColorStateList sanitizeRippleDrawableColor(android.content.res.ColorStateList) -> sanitizeRippleDrawableColor
+    221:235:boolean shouldDrawRippleCompat(int[]) -> shouldDrawRippleCompat
+com.google.android.material.shadow.ShadowDrawableWrapper -> com.google.android.material.shadow.ShadowDrawableWrapper:
+    45:45:void <clinit>() -> <clinit>
+    72:100:void <init>(android.content.Context,android.graphics.drawable.Drawable,float,float,float) -> <init>
+    361:376:void buildComponents(android.graphics.Rect) -> buildComponents
+    310:355:void buildShadowCorners() -> buildShadowCorners
+    181:184:float calculateHorizontalPadding(float,float,boolean) -> calculateHorizontalPadding
+    172:175:float calculateVerticalPadding(float,float,boolean) -> calculateVerticalPadding
+    205:212:void draw(android.graphics.Canvas) -> draw
+    222:307:void drawShadow(android.graphics.Canvas) -> drawShadow
+    379:379:float getCornerRadius() -> getCornerRadius
+    387:387:float getMaxShadowSize() -> getMaxShadowSize
+    396:398:float getMinHeight() -> getMinHeight
+    391:392:float getMinWidth() -> getMinWidth
+    190:190:int getOpacity() -> getOpacity
+    158:167:boolean getPadding(android.graphics.Rect) -> getPadding
+    153:153:float getShadowSize() -> getShadowSize
+    122:123:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    109:111:void setAddPaddingForCorners(boolean) -> setAddPaddingForCorners
+    115:118:void setAlpha(int) -> setAlpha
+    194:201:void setCornerRadius(float) -> setCornerRadius
+    383:384:void setMaxShadowSize(float) -> setMaxShadowSize
+    215:219:void setRotation(float) -> setRotation
+    126:146:void setShadowSize(float,float) -> setShadowSize
+    149:150:void setShadowSize(float) -> setShadowSize
+    104:105:int toEven(float) -> toEven
+com.google.android.material.shadow.ShadowRenderer -> com.google.android.material.shadow.ShadowRenderer:
+    60:66:void <clinit>() -> <clinit>
+    72:73:void <init>() -> <init>
+    68:84:void <init>(int) -> <init>
+    130:183:void drawCornerShadow(android.graphics.Canvas,android.graphics.Matrix,android.graphics.RectF,int,float,float) -> drawCornerShadow
+    96:117:void drawEdgeShadow(android.graphics.Canvas,android.graphics.Matrix,android.graphics.RectF,int) -> drawEdgeShadow
+    187:187:android.graphics.Paint getShadowPaint() -> getShadowPaint
+    87:91:void setShadowColor(int) -> setShadowColor
+com.google.android.material.shape.AbsoluteCornerSize -> com.google.android.material.shape.AbsoluteCornerSize:
+    28:30:void <init>(float) -> <init>
+    46:53:boolean equals(java.lang.Object) -> equals
+    34:34:float getCornerSize(android.graphics.RectF) -> getCornerSize
+    41:41:float getCornerSize() -> getCornerSize
+    58:59:int hashCode() -> hashCode
+com.google.android.material.shape.AdjustedCornerSize -> com.google.android.material.shape.AdjustedCornerSize:
+    37:46:void <init>(float,com.google.android.material.shape.CornerSize) -> <init>
+    55:62:boolean equals(java.lang.Object) -> equals
+    50:50:float getCornerSize(android.graphics.RectF) -> getCornerSize
+    67:68:int hashCode() -> hashCode
+com.google.android.material.shape.CornerTreatment -> com.google.android.material.shape.CornerTreatment:
+    30:30:void <init>() -> <init>
+    50:50:void getCornerPath(float,float,com.google.android.material.shape.ShapePath) -> getCornerPath
+    70:71:void getCornerPath(com.google.android.material.shape.ShapePath,float,float,float) -> getCornerPath
+    98:99:void getCornerPath(com.google.android.material.shape.ShapePath,float,float,android.graphics.RectF,com.google.android.material.shape.CornerSize) -> getCornerPath
+com.google.android.material.shape.CutCornerTreatment -> com.google.android.material.shape.CutCornerTreatment:
+    24:26:void <init>() -> <init>
+    24:42:void <init>(float) -> <init>
+    47:53:void getCornerPath(com.google.android.material.shape.ShapePath,float,float,float) -> getCornerPath
+com.google.android.material.shape.EdgeTreatment -> com.google.android.material.shape.EdgeTreatment:
+    29:29:void <init>() -> <init>
+    73:73:boolean forceIntersection() -> forceIntersection
+    38:40:void getEdgePath(float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+    64:65:void getEdgePath(float,float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper -> com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper:
+    31:56:void <init>(android.view.View,com.google.android.material.shape.MaterialShapeDrawable,android.widget.ScrollView) -> <init>
+    73:74:void setContainingScrollView(android.widget.ScrollView) -> setContainingScrollView
+    64:65:void setMaterialShapeDrawable(com.google.android.material.shape.MaterialShapeDrawable) -> setMaterialShapeDrawable
+    83:84:void startListeningForScrollChanges(android.view.ViewTreeObserver) -> startListeningForScrollChanges
+    93:94:void stopListeningForScrollChanges(android.view.ViewTreeObserver) -> stopListeningForScrollChanges
+    101:131:void updateInterpolationForScreenPosition() -> updateInterpolationForScreenPosition
+com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper$1 -> com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper$1:
+    34:34:void <init>(com.google.android.material.shape.InterpolateOnScrollPositionChangeHelper) -> <init>
+    37:38:void onScrollChanged() -> onScrollChanged
+com.google.android.material.shape.MarkerEdgeTreatment -> com.google.android.material.shape.MarkerEdgeTreatment:
+    32:34:void <init>(float) -> <init>
+    48:48:boolean forceIntersection() -> forceIntersection
+    39:44:void getEdgePath(float,float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+com.google.android.material.shape.MaterialShapeDrawable -> com.google.android.material.shape.MaterialShapeDrawable:
+    77:109:void <clinit>() -> <clinit>
+    75:75:void <init>(com.google.android.material.shape.MaterialShapeDrawable$MaterialShapeDrawableState,com.google.android.material.shape.MaterialShapeDrawable$1) -> <init>
+    181:182:void <init>() -> <init>
+    189:190:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    194:195:void <init>(com.google.android.material.shape.ShapePathModel) -> <init>
+    202:203:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    114:229:void <init>(com.google.android.material.shape.MaterialShapeDrawable$MaterialShapeDrawableState) -> <init>
+    75:75:java.util.BitSet access$000(com.google.android.material.shape.MaterialShapeDrawable) -> access$000
+    75:75:com.google.android.material.shape.ShapePath$ShadowCompatOperation[] access$100(com.google.android.material.shape.MaterialShapeDrawable) -> access$100
+    75:75:com.google.android.material.shape.ShapePath$ShadowCompatOperation[] access$200(com.google.android.material.shape.MaterialShapeDrawable) -> access$200
+    75:75:boolean access$402(com.google.android.material.shape.MaterialShapeDrawable,boolean) -> access$402
+    1251:1258:android.graphics.PorterDuffColorFilter calculatePaintColorTintFilter(android.graphics.Paint,boolean) -> calculatePaintColorTintFilter
+    1201:1212:void calculatePath(android.graphics.RectF,android.graphics.Path) -> calculatePath
+    1140:1146:void calculatePathForSize(android.graphics.RectF,android.graphics.Path) -> calculatePathForSize
+    1152:1173:void calculateStrokePath() -> calculateStrokePath
+    1266:1270:android.graphics.PorterDuffColorFilter calculateTintColorTintFilter(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode,boolean) -> calculateTintColorTintFilter
+    1243:1245:android.graphics.PorterDuffColorFilter calculateTintFilter(android.content.res.ColorStateList,android.graphics.PorterDuff$Mode,android.graphics.Paint,boolean) -> calculateTintFilter
+    606:608:int compositeElevationOverlayIfNeeded(int) -> compositeElevationOverlayIfNeeded
+    158:158:com.google.android.material.shape.MaterialShapeDrawable createWithElevationOverlay(android.content.Context) -> createWithElevationOverlay
+    170:177:com.google.android.material.shape.MaterialShapeDrawable createWithElevationOverlay(android.content.Context,float) -> createWithElevationOverlay
+    942:968:void draw(android.graphics.Canvas) -> draw
+    1087:1111:void drawCompatShadow(android.graphics.Canvas) -> drawCompatShadow
+    1049:1050:void drawFillShape(android.graphics.Canvas) -> drawFillShape
+    1028:1029:void drawShape(android.graphics.Canvas,android.graphics.Paint,android.graphics.Path,android.graphics.RectF) -> drawShape
+    1038:1046:void drawShape(android.graphics.Canvas,android.graphics.Paint,android.graphics.Path,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF) -> drawShape
+    1053:1055:void drawStrokeShape(android.graphics.Canvas) -> drawStrokeShape
+    1351:1354:float getBottomLeftCornerResolvedSize() -> getBottomLeftCornerResolvedSize
+    1359:1362:float getBottomRightCornerResolvedSize() -> getBottomRightCornerResolvedSize
+    473:474:android.graphics.RectF getBoundsAsRectF() -> getBoundsAsRectF
+    1327:1330:android.graphics.RectF getBoundsInsetByStroke() -> getBoundsInsetByStroke
+    234:234:android.graphics.drawable.Drawable$ConstantState getConstantState() -> getConstantState
+    657:657:float getElevation() -> getElevation
+    317:317:android.content.res.ColorStateList getFillColor() -> getFillColor
+    620:620:float getInterpolation() -> getInterpolation
+    444:444:int getOpacity() -> getOpacity
+    1178:1198:void getOutline(android.graphics.Outline) -> getOutline
+    507:511:boolean getPadding(android.graphics.Rect) -> getPadding
+    901:901:android.graphics.Paint$Style getPaintStyle() -> getPaintStyle
+    640:640:float getParentAbsoluteElevation() -> getParentAbsoluteElevation
+    1130:1131:void getPathForSize(int,int,android.graphics.Path) -> getPathForSize
+    837:837:float getScale() -> getScale
+    784:784:int getShadowCompatRotation() -> getShadowCompatRotation
+    502:502:int getShadowCompatibilityMode() -> getShadowCompatibilityMode
+    727:727:int getShadowElevation() -> getShadowElevation
+    1115:1117:int getShadowOffsetX() -> getShadowOffsetX
+    1122:1124:int getShadowOffsetY() -> getShadowOffsetY
+    808:808:int getShadowRadius() -> getShadowRadius
+    749:749:int getShadowVerticalOffset() -> getShadowVerticalOffset
+    271:271:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearanceModel() -> getShapeAppearanceModel
+    294:295:com.google.android.material.shape.ShapePathModel getShapedViewModel() -> getShapedViewModel
+    339:339:android.content.res.ColorStateList getStrokeColor() -> getStrokeColor
+    1319:1322:float getStrokeInsetLength() -> getStrokeInsetLength
+    371:371:android.content.res.ColorStateList getStrokeTintList() -> getStrokeTintList
+    427:427:float getStrokeWidth() -> getStrokeWidth
+    361:361:android.content.res.ColorStateList getTintList() -> getTintList
+    1335:1338:float getTopLeftCornerResolvedSize() -> getTopLeftCornerResolvedSize
+    1343:1346:float getTopRightCornerResolvedSize() -> getTopRightCornerResolvedSize
+    678:678:float getTranslationZ() -> getTranslationZ
+    463:468:android.graphics.Region getTransparentRegion() -> getTransparentRegion
+    699:699:float getZ() -> getZ
+    916:918:boolean hasCompatShadow() -> hasCompatShadow
+    923:923:boolean hasFill() -> hasFill
+    929:931:boolean hasStroke() -> hasStroke
+    599:601:void initializeElevationOverlay(android.content.Context) -> initializeElevationOverlay
+    854:856:void invalidateSelf() -> invalidateSelf
+    863:864:void invalidateSelfIgnoreShape() -> invalidateSelfIgnoreShape
+    583:584:boolean isElevationOverlayEnabled() -> isElevationOverlayEnabled
+    589:589:boolean isElevationOverlayInitialized() -> isElevationOverlayInitialized
+    497:497:boolean isPointInTransparentRegion(int,int) -> isPointInTransparentRegion
+    1373:1373:boolean isRoundRect() -> isRoundRect
+    557:557:boolean isShadowEnabled() -> isShadowEnabled
+    1275:1279:boolean isStateful() -> isStateful
+    971:1015:void maybeDrawCompatShadow(android.graphics.Canvas) -> maybeDrawCompatShadow
+    246:247:int modulateAlpha(int,int) -> modulateAlpha
+    240:242:android.graphics.drawable.Drawable mutate() -> mutate
+    936:938:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    1284:1290:boolean onStateChange(int[]) -> onStateChange
+    1059:1077:void prepareCanvasForShadow(android.graphics.Canvas) -> prepareCanvasForShadow
+    827:828:boolean requiresCompatShadow() -> requiresCompatShadow
+    449:453:void setAlpha(int) -> setAlpha
+    457:459:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    479:480:void setCornerSize(float) -> setCornerSize
+    484:485:void setCornerSize(com.google.android.material.shape.CornerSize) -> setCornerSize
+    759:760:void setEdgeIntersectionCheckEnable(boolean) -> setEdgeIntersectionCheckEnable
+    666:670:void setElevation(float) -> setElevation
+    304:308:void setFillColor(android.content.res.ColorStateList) -> setFillColor
+    631:636:void setInterpolation(float) -> setInterpolation
+    524:530:void setPadding(int,int,int,int) -> setPadding
+    910:912:void setPaintStyle(android.graphics.Paint$Style) -> setPaintStyle
+    645:649:void setParentAbsoluteElevation(float) -> setParentAbsoluteElevation
+    846:850:void setScale(float) -> setScale
+    754:755:void setShadowBitmapDrawingEnable(boolean) -> setShadowBitmapDrawingEnable
+    890:893:void setShadowColor(int) -> setShadowColor
+    796:800:void setShadowCompatRotation(int) -> setShadowCompatRotation
+    543:547:void setShadowCompatibilityMode(int) -> setShadowCompatibilityMode
+    738:739:void setShadowElevation(int) -> setShadowElevation
+    574:576:void setShadowEnabled(boolean) -> setShadowEnabled
+    819:820:void setShadowRadius(int) -> setShadowRadius
+    773:777:void setShadowVerticalOffset(int) -> setShadowVerticalOffset
+    258:260:void setShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setShapeAppearanceModel
+    282:283:void setShapedViewModel(com.google.android.material.shape.ShapePathModel) -> setShapedViewModel
+    406:408:void setStroke(float,int) -> setStroke
+    417:419:void setStroke(float,android.content.res.ColorStateList) -> setStroke
+    326:330:void setStrokeColor(android.content.res.ColorStateList) -> setStrokeColor
+    385:388:void setStrokeTint(android.content.res.ColorStateList) -> setStrokeTint
+    396:397:void setStrokeTint(int) -> setStrokeTint
+    436:438:void setStrokeWidth(float) -> setStrokeWidth
+    376:377:void setTint(int) -> setTint
+    353:356:void setTintList(android.content.res.ColorStateList) -> setTintList
+    344:349:void setTintMode(android.graphics.PorterDuff$Mode) -> setTintMode
+    687:691:void setTranslationZ(float) -> setTranslationZ
+    874:878:void setUseTintColorForShadow(boolean) -> setUseTintColorForShadow
+    708:709:void setZ(float) -> setZ
+    1294:1315:boolean updateColorsForState(int[]) -> updateColorsForState
+    1215:1234:boolean updateTintFilter() -> updateTintFilter
+    712:718:void updateZ() -> updateZ
+com.google.android.material.shape.MaterialShapeDrawable$1 -> com.google.android.material.shape.MaterialShapeDrawable$1:
+    215:215:void <init>(com.google.android.material.shape.MaterialShapeDrawable) -> <init>
+    219:221:void onCornerPathCreated(com.google.android.material.shape.ShapePath,android.graphics.Matrix,int) -> onCornerPathCreated
+    225:227:void onEdgePathCreated(com.google.android.material.shape.ShapePath,android.graphics.Matrix,int) -> onEdgePathCreated
+com.google.android.material.shape.MaterialShapeDrawable$2 -> com.google.android.material.shape.MaterialShapeDrawable$2:
+    1156:1156:void <init>(com.google.android.material.shape.MaterialShapeDrawable,float) -> <init>
+    1162:1162:com.google.android.material.shape.CornerSize apply(com.google.android.material.shape.CornerSize) -> apply
+com.google.android.material.shape.MaterialShapeDrawable$MaterialShapeDrawableState -> com.google.android.material.shape.MaterialShapeDrawable$MaterialShapeDrawableState:
+    1382:1411:void <init>(com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.elevation.ElevationOverlayProvider) -> <init>
+    1382:1438:void <init>(com.google.android.material.shape.MaterialShapeDrawable$MaterialShapeDrawableState) -> <init>
+    1451:1451:int getChangingConfigurations() -> getChangingConfigurations
+    1443:1446:android.graphics.drawable.Drawable newDrawable() -> newDrawable
+com.google.android.material.shape.MaterialShapeUtils -> com.google.android.material.shape.MaterialShapeUtils:
+    27:27:void <init>() -> <init>
+    31:37:com.google.android.material.shape.CornerTreatment createCornerTreatment(int) -> createCornerTreatment
+    43:43:com.google.android.material.shape.CornerTreatment createDefaultCornerTreatment() -> createDefaultCornerTreatment
+    48:48:com.google.android.material.shape.EdgeTreatment createDefaultEdgeTreatment() -> createDefaultEdgeTreatment
+    57:61:void setElevation(android.view.View,float) -> setElevation
+    70:74:void setParentAbsoluteElevation(android.view.View) -> setParentAbsoluteElevation
+    83:86:void setParentAbsoluteElevation(android.view.View,com.google.android.material.shape.MaterialShapeDrawable) -> setParentAbsoluteElevation
+com.google.android.material.shape.OffsetEdgeTreatment -> com.google.android.material.shape.OffsetEdgeTreatment:
+    27:30:void <init>(com.google.android.material.shape.EdgeTreatment,float) -> <init>
+    40:40:boolean forceIntersection() -> forceIntersection
+    35:36:void getEdgePath(float,float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+com.google.android.material.shape.RelativeCornerSize -> com.google.android.material.shape.RelativeCornerSize:
+    36:38:void <init>(float) -> <init>
+    53:60:boolean equals(java.lang.Object) -> equals
+    48:48:float getCornerSize(android.graphics.RectF) -> getCornerSize
+    43:43:float getRelativePercent() -> getRelativePercent
+    65:66:int hashCode() -> hashCode
+com.google.android.material.shape.RoundedCornerTreatment -> com.google.android.material.shape.RoundedCornerTreatment:
+    24:26:void <init>() -> <init>
+    24:38:void <init>(float) -> <init>
+    43:45:void getCornerPath(com.google.android.material.shape.ShapePath,float,float,float) -> getCornerPath
+com.google.android.material.shape.ShapeAppearanceModel -> com.google.android.material.shape.ShapeAppearanceModel:
+    565:565:void <clinit>() -> <clinit>
+    41:41:void <init>(com.google.android.material.shape.ShapeAppearanceModel$Builder,com.google.android.material.shape.ShapeAppearanceModel$1) -> <init>
+    580:595:void <init>(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> <init>
+    598:613:void <init>() -> <init>
+    435:435:com.google.android.material.shape.ShapeAppearanceModel$Builder builder() -> builder
+    444:444:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,android.util.AttributeSet,int,int) -> builder
+    454:454:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,android.util.AttributeSet,int,int,int) -> builder
+    465:472:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,android.util.AttributeSet,int,int,com.google.android.material.shape.CornerSize) -> builder
+    480:480:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,int,int) -> builder
+    489:489:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,int,int,int) -> builder
+    503:541:com.google.android.material.shape.ShapeAppearanceModel$Builder builder(android.content.Context,int,int,com.google.android.material.shape.CornerSize) -> builder
+    732:732:com.google.android.material.shape.EdgeTreatment getBottomEdge() -> getBottomEdge
+    652:652:com.google.android.material.shape.CornerTreatment getBottomLeftCorner() -> getBottomLeftCorner
+    692:692:com.google.android.material.shape.CornerSize getBottomLeftCornerSize() -> getBottomLeftCornerSize
+    642:642:com.google.android.material.shape.CornerTreatment getBottomRightCorner() -> getBottomRightCorner
+    682:682:com.google.android.material.shape.CornerSize getBottomRightCornerSize() -> getBottomRightCornerSize
+    547:560:com.google.android.material.shape.CornerSize getCornerSize(android.content.res.TypedArray,int,com.google.android.material.shape.CornerSize) -> getCornerSize
+    702:702:com.google.android.material.shape.EdgeTreatment getLeftEdge() -> getLeftEdge
+    722:722:com.google.android.material.shape.EdgeTreatment getRightEdge() -> getRightEdge
+    712:712:com.google.android.material.shape.EdgeTreatment getTopEdge() -> getTopEdge
+    622:622:com.google.android.material.shape.CornerTreatment getTopLeftCorner() -> getTopLeftCorner
+    662:662:com.google.android.material.shape.CornerSize getTopLeftCornerSize() -> getTopLeftCornerSize
+    632:632:com.google.android.material.shape.CornerTreatment getTopRightCorner() -> getTopRightCorner
+    672:672:com.google.android.material.shape.CornerSize getTopRightCornerSize() -> getTopRightCornerSize
+    791:810:boolean isRoundRect(android.graphics.RectF) -> isRoundRect
+    738:738:com.google.android.material.shape.ShapeAppearanceModel$Builder toBuilder() -> toBuilder
+    747:747:com.google.android.material.shape.ShapeAppearanceModel withCornerSize(float) -> withCornerSize
+    752:752:com.google.android.material.shape.ShapeAppearanceModel withCornerSize(com.google.android.material.shape.CornerSize) -> withCornerSize
+    775:780:com.google.android.material.shape.ShapeAppearanceModel withTransformedCornerSizes(com.google.android.material.shape.ShapeAppearanceModel$CornerSizeUnaryOperator) -> withTransformedCornerSizes
+com.google.android.material.shape.ShapeAppearanceModel$Builder -> com.google.android.material.shape.ShapeAppearanceModel$Builder:
+    46:68:void <init>() -> <init>
+    46:85:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    44:44:com.google.android.material.shape.CornerTreatment access$100(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$100
+    44:44:com.google.android.material.shape.EdgeTreatment access$1000(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$1000
+    44:44:com.google.android.material.shape.EdgeTreatment access$1100(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$1100
+    44:44:com.google.android.material.shape.EdgeTreatment access$1200(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$1200
+    44:44:com.google.android.material.shape.CornerTreatment access$200(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$200
+    44:44:com.google.android.material.shape.CornerTreatment access$300(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$300
+    44:44:com.google.android.material.shape.CornerTreatment access$400(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$400
+    44:44:com.google.android.material.shape.CornerSize access$500(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$500
+    44:44:com.google.android.material.shape.CornerSize access$600(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$600
+    44:44:com.google.android.material.shape.CornerSize access$700(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$700
+    44:44:com.google.android.material.shape.CornerSize access$800(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$800
+    44:44:com.google.android.material.shape.EdgeTreatment access$900(com.google.android.material.shape.ShapeAppearanceModel$Builder) -> access$900
+    429:429:com.google.android.material.shape.ShapeAppearanceModel build() -> build
+    418:423:float compatCornerTreatmentSize(com.google.android.material.shape.CornerTreatment) -> compatCornerTreatmentSize
+    122:125:com.google.android.material.shape.ShapeAppearanceModel$Builder setAllCornerSizes(com.google.android.material.shape.CornerSize) -> setAllCornerSizes
+    131:134:com.google.android.material.shape.ShapeAppearanceModel$Builder setAllCornerSizes(float) -> setAllCornerSizes
+    98:99:com.google.android.material.shape.ShapeAppearanceModel$Builder setAllCorners(int,float) -> setAllCorners
+    109:112:com.google.android.material.shape.ShapeAppearanceModel$Builder setAllCorners(com.google.android.material.shape.CornerTreatment) -> setAllCorners
+    366:369:com.google.android.material.shape.ShapeAppearanceModel$Builder setAllEdges(com.google.android.material.shape.EdgeTreatment) -> setAllEdges
+    412:413:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomEdge(com.google.android.material.shape.EdgeTreatment) -> setBottomEdge
+    326:327:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomLeftCorner(int,float) -> setBottomLeftCorner
+    339:340:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomLeftCorner(int,com.google.android.material.shape.CornerSize) -> setBottomLeftCorner
+    350:356:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomLeftCorner(com.google.android.material.shape.CornerTreatment) -> setBottomLeftCorner
+    182:183:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomLeftCornerSize(float) -> setBottomLeftCornerSize
+    189:190:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomLeftCornerSize(com.google.android.material.shape.CornerSize) -> setBottomLeftCornerSize
+    284:285:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomRightCorner(int,float) -> setBottomRightCorner
+    297:298:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomRightCorner(int,com.google.android.material.shape.CornerSize) -> setBottomRightCorner
+    308:314:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomRightCorner(com.google.android.material.shape.CornerTreatment) -> setBottomRightCorner
+    168:169:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomRightCornerSize(float) -> setBottomRightCornerSize
+    175:176:com.google.android.material.shape.ShapeAppearanceModel$Builder setBottomRightCornerSize(com.google.android.material.shape.CornerSize) -> setBottomRightCornerSize
+    379:380:com.google.android.material.shape.ShapeAppearanceModel$Builder setLeftEdge(com.google.android.material.shape.EdgeTreatment) -> setLeftEdge
+    401:402:com.google.android.material.shape.ShapeAppearanceModel$Builder setRightEdge(com.google.android.material.shape.EdgeTreatment) -> setRightEdge
+    390:391:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopEdge(com.google.android.material.shape.EdgeTreatment) -> setTopEdge
+    201:202:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopLeftCorner(int,float) -> setTopLeftCorner
+    214:215:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopLeftCorner(int,com.google.android.material.shape.CornerSize) -> setTopLeftCorner
+    225:231:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopLeftCorner(com.google.android.material.shape.CornerTreatment) -> setTopLeftCorner
+    140:141:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopLeftCornerSize(float) -> setTopLeftCornerSize
+    147:148:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopLeftCornerSize(com.google.android.material.shape.CornerSize) -> setTopLeftCornerSize
+    242:243:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopRightCorner(int,float) -> setTopRightCorner
+    255:256:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopRightCorner(int,com.google.android.material.shape.CornerSize) -> setTopRightCorner
+    266:272:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopRightCorner(com.google.android.material.shape.CornerTreatment) -> setTopRightCorner
+    154:155:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopRightCornerSize(float) -> setTopRightCornerSize
+    161:162:com.google.android.material.shape.ShapeAppearanceModel$Builder setTopRightCornerSize(com.google.android.material.shape.CornerSize) -> setTopRightCornerSize
+com.google.android.material.shape.ShapeAppearancePathProvider -> com.google.android.material.shape.ShapeAppearancePathProvider:
+    55:77:void <init>() -> <init>
+    325:325:float angleOfEdge(int) -> angleOfEdge
+    170:182:void appendCornerPath(com.google.android.material.shape.ShapeAppearancePathProvider$ShapeAppearancePathSpec,int) -> appendCornerPath
+    185:230:void appendEdgePath(com.google.android.material.shape.ShapeAppearancePathProvider$ShapeAppearancePathSpec,int) -> appendEdgePath
+    99:100:void calculatePath(com.google.android.material.shape.ShapeAppearanceModel,float,android.graphics.RectF,android.graphics.Path) -> calculatePath
+    118:145:void calculatePath(com.google.android.material.shape.ShapeAppearanceModel,float,android.graphics.RectF,com.google.android.material.shape.ShapeAppearancePathProvider$PathListener,android.graphics.Path) -> calculatePath
+    307:322:void getCoordinatesOfCorner(int,android.graphics.RectF,android.graphics.PointF) -> getCoordinatesOfCorner
+    278:287:com.google.android.material.shape.CornerSize getCornerSizeForIndex(int,com.google.android.material.shape.ShapeAppearanceModel) -> getCornerSizeForIndex
+    263:272:com.google.android.material.shape.CornerTreatment getCornerTreatmentForIndex(int,com.google.android.material.shape.ShapeAppearanceModel) -> getCornerTreatmentForIndex
+    247:257:float getEdgeCenterForIndex(android.graphics.RectF,int) -> getEdgeCenterForIndex
+    293:302:com.google.android.material.shape.EdgeTreatment getEdgeTreatmentForIndex(int,com.google.android.material.shape.ShapeAppearanceModel) -> getEdgeTreatmentForIndex
+    83:83:com.google.android.material.shape.ShapeAppearancePathProvider getInstance() -> getInstance
+    234:243:boolean pathOverlapsCorner(android.graphics.Path,int) -> pathOverlapsCorner
+    148:157:void setCornerPathAndTransform(com.google.android.material.shape.ShapeAppearancePathProvider$ShapeAppearancePathSpec,int) -> setCornerPathAndTransform
+    329:330:void setEdgeIntersectionCheckEnable(boolean) -> setEdgeIntersectionCheckEnable
+    160:167:void setEdgePathAndTransform(int) -> setEdgePathAndTransform
+com.google.android.material.shape.ShapeAppearancePathProvider$Lazy -> com.google.android.material.shape.ShapeAppearancePathProvider$Lazy:
+    39:39:void <clinit>() -> <clinit>
+    38:38:void <init>() -> <init>
+com.google.android.material.shape.ShapeAppearancePathProvider$ShapeAppearancePathSpec -> com.google.android.material.shape.ShapeAppearancePathProvider$ShapeAppearancePathSpec:
+    348:354:void <init>(com.google.android.material.shape.ShapeAppearanceModel,float,android.graphics.RectF,com.google.android.material.shape.ShapeAppearancePathProvider$PathListener,android.graphics.Path) -> <init>
+com.google.android.material.shape.ShapePath -> com.google.android.material.shape.ShapePath:
+    90:96:void <init>() -> <init>
+    90:100:void <init>(float,float) -> <init>
+    211:233:void addArc(float,float,float,float,float,float) -> addArc
+    293:308:void addConnectingShadowIfNecessary(float) -> addConnectingShadowIfNecessary
+    275:278:void addShadowCompatOperation(com.google.android.material.shape.ShapePath$ShadowCompatOperation,float,float) -> addShadowCompatOperation
+    242:246:void applyToPath(android.graphics.Matrix,android.graphics.Path) -> applyToPath
+    285:285:boolean containsIncompatibleShadowOp() -> containsIncompatibleShadowOp
+    255:258:com.google.android.material.shape.ShapePath$ShadowCompatOperation createShadowCompatOperation(android.graphics.Matrix) -> createShadowCompatOperation
+    189:197:void cubicToPoint(float,float,float,float,float,float) -> cubicToPoint
+    327:327:float getCurrentShadowAngle() -> getCurrentShadowAngle
+    331:331:float getEndShadowAngle() -> getEndShadowAngle
+    319:319:float getEndX() -> getEndX
+    323:323:float getEndY() -> getEndY
+    311:311:float getStartX() -> getStartX
+    315:315:float getStartY() -> getStartY
+    130:145:void lineTo(float,float) -> lineTo
+    160:171:void quadToPoint(float,float,float,float) -> quadToPoint
+    107:108:void reset(float,float) -> reset
+    112:121:void reset(float,float,float,float) -> reset
+    351:352:void setCurrentShadowAngle(float) -> setCurrentShadowAngle
+    355:356:void setEndShadowAngle(float) -> setEndShadowAngle
+    343:344:void setEndX(float) -> setEndX
+    347:348:void setEndY(float) -> setEndY
+    335:336:void setStartX(float) -> setStartX
+    339:340:void setStartY(float) -> setStartY
+com.google.android.material.shape.ShapePath$1 -> com.google.android.material.shape.ShapePath$1:
+    258:258:void <init>(com.google.android.material.shape.ShapePath,java.util.List,android.graphics.Matrix) -> <init>
+    262:265:void draw(android.graphics.Matrix,com.google.android.material.shadow.ShadowRenderer,int,android.graphics.Canvas) -> draw
+com.google.android.material.shape.ShapePath$ArcShadowOperation -> com.google.android.material.shape.ShapePath$ArcShadowOperation:
+    415:417:void <init>(com.google.android.material.shape.ShapePath$PathArcOperation) -> <init>
+    425:432:void draw(android.graphics.Matrix,com.google.android.material.shadow.ShadowRenderer,int,android.graphics.Canvas) -> draw
+com.google.android.material.shape.ShapePath$LineShadowOperation -> com.google.android.material.shape.ShapePath$LineShadowOperation:
+    383:387:void <init>(com.google.android.material.shape.ShapePath$PathLineOperation,float,float) -> <init>
+    395:403:void draw(android.graphics.Matrix,com.google.android.material.shadow.ShadowRenderer,int,android.graphics.Canvas) -> draw
+    406:406:float getAngle() -> getAngle
+com.google.android.material.shape.ShapePath$PathArcOperation -> com.google.android.material.shape.ShapePath$PathArcOperation:
+    527:527:void <clinit>() -> <clinit>
+    560:565:void <init>(float,float,float,float) -> <init>
+    526:526:float access$1000(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$1000
+    526:526:float access$1100(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$1100
+    526:526:float access$1200(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$1200
+    526:526:float access$1300(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$1300
+    526:526:void access$600(com.google.android.material.shape.ShapePath$PathArcOperation,float) -> access$600
+    526:526:void access$700(com.google.android.material.shape.ShapePath$PathArcOperation,float) -> access$700
+    526:526:float access$800(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$800
+    526:526:float access$900(com.google.android.material.shape.ShapePath$PathArcOperation) -> access$900
+    569:575:void applyToPath(android.graphics.Matrix,android.graphics.Path) -> applyToPath
+    590:590:float getBottom() -> getBottom
+    578:578:float getLeft() -> getLeft
+    586:586:float getRight() -> getRight
+    610:610:float getStartAngle() -> getStartAngle
+    614:614:float getSweepAngle() -> getSweepAngle
+    582:582:float getTop() -> getTop
+    606:607:void setBottom(float) -> setBottom
+    594:595:void setLeft(float) -> setLeft
+    602:603:void setRight(float) -> setRight
+    618:619:void setStartAngle(float) -> setStartAngle
+    622:623:void setSweepAngle(float) -> setSweepAngle
+    598:599:void setTop(float) -> setTop
+com.google.android.material.shape.ShapePath$PathCubicOperation -> com.google.android.material.shape.ShapePath$PathCubicOperation:
+    647:654:void <init>(float,float,float,float,float,float) -> <init>
+    658:663:void applyToPath(android.graphics.Matrix,android.graphics.Path) -> applyToPath
+    666:666:float getControlX1() -> getControlX1
+    682:682:float getControlX2() -> getControlX2
+    674:674:float getControlY1() -> getControlY1
+    690:690:float getControlY2() -> getControlY2
+    698:698:float getEndX() -> getEndX
+    706:706:float getEndY() -> getEndY
+    670:671:void setControlX1(float) -> setControlX1
+    686:687:void setControlX2(float) -> setControlX2
+    678:679:void setControlY1(float) -> setControlY1
+    694:695:void setControlY2(float) -> setControlY2
+    702:703:void setEndX(float) -> setEndX
+    710:711:void setEndY(float) -> setEndY
+com.google.android.material.shape.ShapePath$PathLineOperation -> com.google.android.material.shape.ShapePath$PathLineOperation:
+    446:446:void <init>() -> <init>
+    446:446:float access$000(com.google.android.material.shape.ShapePath$PathLineOperation) -> access$000
+    446:446:float access$002(com.google.android.material.shape.ShapePath$PathLineOperation,float) -> access$002
+    446:446:float access$100(com.google.android.material.shape.ShapePath$PathLineOperation) -> access$100
+    446:446:float access$102(com.google.android.material.shape.ShapePath$PathLineOperation,float) -> access$102
+    452:457:void applyToPath(android.graphics.Matrix,android.graphics.Path) -> applyToPath
+com.google.android.material.shape.ShapePath$PathOperation -> com.google.android.material.shape.ShapePath$PathOperation:
+    436:439:void <init>() -> <init>
+com.google.android.material.shape.ShapePath$PathQuadOperation -> com.google.android.material.shape.ShapePath$PathQuadOperation:
+    461:461:void <init>() -> <init>
+    461:461:void access$200(com.google.android.material.shape.ShapePath$PathQuadOperation,float) -> access$200
+    461:461:void access$300(com.google.android.material.shape.ShapePath$PathQuadOperation,float) -> access$300
+    461:461:void access$400(com.google.android.material.shape.ShapePath$PathQuadOperation,float) -> access$400
+    461:461:void access$500(com.google.android.material.shape.ShapePath$PathQuadOperation,float) -> access$500
+    485:490:void applyToPath(android.graphics.Matrix,android.graphics.Path) -> applyToPath
+    517:517:float getControlX() -> getControlX
+    501:501:float getControlY() -> getControlY
+    493:493:float getEndX() -> getEndX
+    509:509:float getEndY() -> getEndY
+    521:522:void setControlX(float) -> setControlX
+    505:506:void setControlY(float) -> setControlY
+    497:498:void setEndX(float) -> setEndX
+    513:514:void setEndY(float) -> setEndY
+com.google.android.material.shape.ShapePath$ShadowCompatOperation -> com.google.android.material.shape.ShapePath$ShadowCompatOperation:
+    364:364:void <clinit>() -> <clinit>
+    362:362:void <init>() -> <init>
+    368:369:void draw(com.google.android.material.shadow.ShadowRenderer,int,android.graphics.Canvas) -> draw
+com.google.android.material.shape.ShapePathModel -> com.google.android.material.shape.ShapePathModel:
+    26:26:void <init>() -> <init>
+    36:40:void setAllCorners(com.google.android.material.shape.CornerTreatment) -> setAllCorners
+    50:54:void setAllEdges(com.google.android.material.shape.EdgeTreatment) -> setAllEdges
+    172:173:void setBottomEdge(com.google.android.material.shape.EdgeTreatment) -> setBottomEdge
+    139:140:void setBottomLeftCorner(com.google.android.material.shape.CornerTreatment) -> setBottomLeftCorner
+    128:129:void setBottomRightCorner(com.google.android.material.shape.CornerTreatment) -> setBottomRightCorner
+    71:75:void setCornerTreatments(com.google.android.material.shape.CornerTreatment,com.google.android.material.shape.CornerTreatment,com.google.android.material.shape.CornerTreatment,com.google.android.material.shape.CornerTreatment) -> setCornerTreatments
+    92:96:void setEdgeTreatments(com.google.android.material.shape.EdgeTreatment,com.google.android.material.shape.EdgeTreatment,com.google.android.material.shape.EdgeTreatment,com.google.android.material.shape.EdgeTreatment) -> setEdgeTreatments
+    183:184:void setLeftEdge(com.google.android.material.shape.EdgeTreatment) -> setLeftEdge
+    161:162:void setRightEdge(com.google.android.material.shape.EdgeTreatment) -> setRightEdge
+    150:151:void setTopEdge(com.google.android.material.shape.EdgeTreatment) -> setTopEdge
+    106:107:void setTopLeftCorner(com.google.android.material.shape.CornerTreatment) -> setTopLeftCorner
+    117:118:void setTopRightCorner(com.google.android.material.shape.CornerTreatment) -> setTopRightCorner
+com.google.android.material.shape.TriangleEdgeTreatment -> com.google.android.material.shape.TriangleEdgeTreatment:
+    42:45:void <init>(float,boolean) -> <init>
+    50:54:void getEdgePath(float,float,float,com.google.android.material.shape.ShapePath) -> getEdgePath
+com.google.android.material.slider.BaseSlider -> com.google.android.material.slider.BaseSlider:
+    196:218:void <clinit>() -> <clinit>
+    316:317:void <init>(android.content.Context) -> <init>
+    320:321:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    240:384:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    190:190:com.google.android.material.tooltip.TooltipDrawable access$000(android.content.Context,android.content.res.TypedArray) -> access$000
+    190:190:java.util.List access$100(com.google.android.material.slider.BaseSlider) -> access$100
+    190:190:com.google.android.material.slider.BaseSlider$AccessibilityHelper access$300(com.google.android.material.slider.BaseSlider) -> access$300
+    190:190:java.lang.String access$500(com.google.android.material.slider.BaseSlider,float) -> access$500
+    190:190:boolean access$600(com.google.android.material.slider.BaseSlider,int,float) -> access$600
+    190:190:void access$700(com.google.android.material.slider.BaseSlider) -> access$700
+    190:190:float access$800(com.google.android.material.slider.BaseSlider,int) -> access$800
+    823:824:void addOnChangeListener(com.google.android.material.slider.BaseOnChangeListener) -> addOnChangeListener
+    846:847:void addOnSliderTouchListener(com.google.android.material.slider.BaseOnSliderTouchListener) -> addOnSliderTouchListener
+    1430:1431:void attachLabelToContentView(com.google.android.material.tooltip.TooltipDrawable) -> attachLabelToContentView
+    2265:2278:java.lang.Float calculateIncrementForKey(int) -> calculateIncrementForKey
+    2284:2284:float calculateStepIncrement() -> calculateStepIncrement
+    2292:2298:float calculateStepIncrement(int) -> calculateStepIncrement
+    1514:1515:int calculateTop() -> calculateTop
+    837:838:void clearOnChangeListeners() -> clearOnChangeListeners
+    860:861:void clearOnSliderTouchListeners() -> clearOnSliderTouchListeners
+    1924:1948:android.animation.ValueAnimator createLabelAnimator(boolean) -> createLabelAnimator
+    719:743:void createLabelPool() -> createLabelPool
+    1448:1453:void detachLabelFromContentView(com.google.android.material.tooltip.TooltipDrawable) -> detachLabelFromContentView
+    1870:1873:float dimenToValue(float) -> dimenToValue
+    2349:2349:boolean dispatchHoverEvent(android.view.MotionEvent) -> dispatchHoverEvent
+    2356:2356:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    2074:2080:void dispatchOnChangedFromUser(int) -> dispatchOnChangedFromUser
+    2065:2070:void dispatchOnChangedProgramatically() -> dispatchOnChangedProgramatically
+    1591:1595:void drawActiveTrack(android.graphics.Canvas,int,int) -> drawActiveTrack
+    1565:1576:void drawInactiveTrack(android.graphics.Canvas,int,int) -> drawInactiveTrack
+    1627:1642:void drawThumbs(android.graphics.Canvas,int,int) -> drawThumbs
+    2098:2114:void drawableStateChanged() -> drawableStateChanged
+    1973:2007:void ensureLabelsAdded() -> ensureLabelsAdded
+    1954:1970:void ensureLabelsRemoved() -> ensureLabelsRemoved
+    2316:2334:void focusThumbOnFocusGained(int) -> focusThumbOnFocusGained
+    2123:2124:void forceDrawCompatHalo(boolean) -> forceDrawCompatHalo
+    2010:2014:java.lang.String formatValue(float) -> formatValue
+    2344:2344:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    2338:2338:int getAccessibilityFocusedVirtualViewId() -> getAccessibilityFocusedVirtualViewId
+    1555:1561:float[] getActiveRange() -> getActiveRange
+    813:813:int getActiveThumbIndex() -> getActiveThumbIndex
+    1906:1912:float getAnimatorCurrentValueOrDefault(android.animation.ValueAnimator,float) -> getAnimatorCurrentValueOrDefault
+    1858:1866:float getClampedValue(int,float) -> getClampedValue
+    2118:2118:int getColorForState(android.content.res.ColorStateList) -> getColorForState
+    794:794:int getFocusedThumbIndex() -> getFocusedThumbIndex
+    1047:1047:int getHaloRadius() -> getHaloRadius
+    1151:1151:android.content.res.ColorStateList getHaloTintList() -> getHaloTintList
+    1089:1089:int getLabelBehavior() -> getLabelBehavior
+    1881:1881:float getMinSeparation() -> getMinSeparation
+    755:755:float getStepSize() -> getStepSize
+    889:889:float getThumbElevation() -> getThumbElevation
+    921:921:int getThumbRadius() -> getThumbRadius
+    994:994:android.content.res.ColorStateList getThumbStrokeColor() -> getThumbStrokeColor
+    1035:1035:float getThumbStrokeWidth() -> getThumbStrokeWidth
+    1185:1185:android.content.res.ColorStateList getThumbTintList() -> getThumbTintList
+    1248:1248:android.content.res.ColorStateList getTickActiveTintList() -> getTickActiveTintList
+    1277:1277:android.content.res.ColorStateList getTickInactiveTintList() -> getTickInactiveTintList
+    1217:1222:android.content.res.ColorStateList getTickTintList() -> getTickTintList
+    1364:1364:android.content.res.ColorStateList getTrackActiveTintList() -> getTrackActiveTintList
+    1126:1126:int getTrackHeight() -> getTrackHeight
+    1393:1393:android.content.res.ColorStateList getTrackInactiveTintList() -> getTrackInactiveTintList
+    1109:1109:int getTrackSidePadding() -> getTrackSidePadding
+    1333:1338:android.content.res.ColorStateList getTrackTintList() -> getTrackTintList
+    1115:1115:int getTrackWidth() -> getTrackWidth
+    600:600:float getValueFrom() -> getValueFrom
+    1885:1891:float getValueOfTouchPosition() -> getValueOfTouchPosition
+    1820:1824:float getValueOfTouchPositionAbsolute() -> getValueOfTouchPositionAbsolute
+    626:626:float getValueTo() -> getValueTo
+    647:647:java.util.List getValues() -> getValues
+    868:868:boolean hasLabelFormatter() -> hasLabelFormatter
+    2037:2041:void invalidateTrack() -> invalidateTrack
+    2051:2060:boolean isInVerticalScrollingContainer() -> isInVerticalScrollingContainer
+    2219:2219:boolean isRtl() -> isRtl
+    1303:1303:boolean isTickVisible() -> isTickVisible
+    387:397:void loadResources(android.content.res.Resources) -> loadResources
+    1472:1490:void maybeCalculateTicksCoordinates() -> maybeCalculateTicksCoordinates
+    1646:1659:void maybeDrawHalo(android.graphics.Canvas,int,int) -> maybeDrawHalo
+    1598:1622:void maybeDrawTicks(android.graphics.Canvas) -> maybeDrawTicks
+    494:499:void maybeIncreaseTrackSidePadding() -> maybeIncreaseTrackSidePadding
+    2231:2244:boolean moveFocus(int) -> moveFocus
+    2255:2259:boolean moveFocusInAbsoluteDirection(int) -> moveFocusInAbsoluteDirection
+    1583:1587:float normalizeValue(float) -> normalizeValue
+    1422:1427:void onAttachedToWindow() -> onAttachedToWindow
+    1435:1445:void onDetachedFromWindow() -> onDetachedFromWindow
+    1520:1548:void onDraw(android.graphics.Canvas) -> onDraw
+    2304:2313:void onFocusChanged(boolean,int,android.graphics.Rect) -> onFocusChanged
+    2128:2172:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    2176:2209:java.lang.Boolean onKeyDownNoActiveThumb(int,android.view.KeyEvent) -> onKeyDownNoActiveThumb
+    2214:2215:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    1457:1463:void onMeasure(int,int) -> onMeasure
+    2403:2414:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    2391:2398:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    1467:1469:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    2084:2087:void onStartTrackingTouch() -> onStartTrackingTouch
+    2091:2094:void onStopTrackingTouch() -> onStopTrackingTouch
+    1669:1749:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    486:490:com.google.android.material.tooltip.TooltipDrawable parseLabelDrawable(android.content.Context,android.content.res.TypedArray) -> parseLabelDrawable
+    1778:1816:boolean pickActiveThumb() -> pickActiveThumb
+    1760:1760:int pivotIndex(float[],float) -> pivotIndex
+    400:481:void processAttributes(android.content.Context,android.util.AttributeSet,int) -> processAttributes
+    832:833:void removeOnChangeListener(com.google.android.material.slider.BaseOnChangeListener) -> removeOnChangeListener
+    855:856:void removeOnSliderTouchListener(com.google.android.material.slider.BaseOnSliderTouchListener) -> removeOnSliderTouchListener
+    2365:2372:void scheduleAccessibilityEventSender(int) -> scheduleAccessibilityEventSender
+    808:809:void setActiveThumbIndex(int) -> setActiveThumbIndex
+    1414:1418:void setEnabled(boolean) -> setEnabled
+    799:805:void setFocusedThumbIndex(int) -> setFocusedThumbIndex
+    1057:1069:void setHaloRadius(int) -> setHaloRadius
+    1078:1079:void setHaloRadiusResource(int) -> setHaloRadiusResource
+    1161:1175:void setHaloTintList(android.content.res.ColorStateList) -> setHaloTintList
+    1100:1104:void setLabelBehavior(int) -> setLabelBehavior
+    878:879:void setLabelFormatter(com.google.android.material.slider.LabelFormatter) -> setLabelFormatter
+    1877:1878:void setSeparationUnit(int) -> setSeparationUnit
+    777:790:void setStepSize(float) -> setStepSize
+    899:900:void setThumbElevation(float) -> setThumbElevation
+    909:910:void setThumbElevationResource(int) -> setThumbElevationResource
+    931:943:void setThumbRadius(int) -> setThumbRadius
+    952:953:void setThumbRadiusResource(int) -> setThumbRadiusResource
+    965:967:void setThumbStrokeColor(android.content.res.ColorStateList) -> setThumbStrokeColor
+    979:983:void setThumbStrokeColorResource(int) -> setThumbStrokeColorResource
+    1007:1009:void setThumbStrokeWidth(float) -> setThumbStrokeWidth
+    1021:1024:void setThumbStrokeWidthResource(int) -> setThumbStrokeWidthResource
+    1195:1201:void setThumbTintList(android.content.res.ColorStateList) -> setThumbTintList
+    1259:1265:void setTickActiveTintList(android.content.res.ColorStateList) -> setTickActiveTintList
+    1288:1294:void setTickInactiveTintList(android.content.res.ColorStateList) -> setTickInactiveTintList
+    1234:1236:void setTickTintList(android.content.res.ColorStateList) -> setTickTintList
+    1313:1317:void setTickVisible(boolean) -> setTickVisible
+    1375:1381:void setTrackActiveTintList(android.content.res.ColorStateList) -> setTrackActiveTintList
+    1136:1141:void setTrackHeight(int) -> setTrackHeight
+    1404:1410:void setTrackInactiveTintList(android.content.res.ColorStateList) -> setTrackInactiveTintList
+    1350:1352:void setTrackTintList(android.content.res.ColorStateList) -> setTrackTintList
+    2018:2034:void setValueForLabel(com.google.android.material.tooltip.TooltipDrawable,float) -> setValueForLabel
+    614:617:void setValueFrom(float) -> setValueFrom
+    640:643:void setValueTo(float) -> setValueTo
+    666:669:void setValues(java.lang.Float[]) -> setValues
+    687:688:void setValues(java.util.List) -> setValues
+    695:715:void setValuesInternal(java.util.ArrayList) -> setValuesInternal
+    1662:1664:boolean shouldDrawCompatHalo() -> shouldDrawCompatHalo
+    1838:1838:boolean snapActiveThumbToValue(float) -> snapActiveThumbToValue
+    1764:1769:double snapPosition(float) -> snapPosition
+    1843:1853:boolean snapThumbToValue(int,float) -> snapThumbToValue
+    1834:1834:boolean snapTouchPosition() -> snapTouchPosition
+    2468:2472:void updateBoundsForVirturalViewId(int,android.graphics.Rect) -> updateBoundsForVirturalViewId
+    1502:1511:void updateHaloHotspot() -> updateHaloHotspot
+    1494:1498:void updateTrackWidth(int) -> updateTrackWidth
+    583:591:void validateConfigurationIfDirty() -> validateConfigurationIfDirty
+    531:539:void validateStepSize() -> validateStepSize
+    502:507:void validateValueFrom() -> validateValueFrom
+    510:515:void validateValueTo() -> validateValueTo
+    542:561:void validateValues() -> validateValues
+    520:527:boolean valueLandsOnTick(float) -> valueLandsOnTick
+    1895:1895:float valueToX(float) -> valueToX
+    564:580:void warnAboutFloatingPointError() -> warnAboutFloatingPointError
+com.google.android.material.slider.BaseSlider$1 -> com.google.android.material.slider.BaseSlider$1:
+    357:357:void <init>(com.google.android.material.slider.BaseSlider,android.util.AttributeSet,int) -> <init>
+    360:365:com.google.android.material.tooltip.TooltipDrawable createTooltipDrawable() -> createTooltipDrawable
+com.google.android.material.slider.BaseSlider$2 -> com.google.android.material.slider.BaseSlider$2:
+    1937:1937:void <init>(com.google.android.material.slider.BaseSlider) -> <init>
+    1940:1946:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.slider.BaseSlider$3 -> com.google.android.material.slider.BaseSlider$3:
+    1959:1959:void <init>(com.google.android.material.slider.BaseSlider) -> <init>
+    1962:1966:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.slider.BaseSlider$AccessibilityEventSender -> com.google.android.material.slider.BaseSlider$AccessibilityEventSender:
+    2375:2376:void <init>(com.google.android.material.slider.BaseSlider) -> <init>
+    2375:2375:void <init>(com.google.android.material.slider.BaseSlider,com.google.android.material.slider.BaseSlider$1) -> <init>
+    2384:2386:void run() -> run
+    2379:2380:void setVirtualViewId(int) -> setVirtualViewId
+com.google.android.material.slider.BaseSlider$AccessibilityHelper -> com.google.android.material.slider.BaseSlider$AccessibilityHelper:
+    2477:2482:void <init>(com.google.android.material.slider.BaseSlider) -> <init>
+    2486:2493:int getVirtualViewAt(float,float) -> getVirtualViewAt
+    2498:2501:void getVisibleVirtualViews(java.util.List) -> getVisibleVirtualViews
+    2558:2608:boolean onPerformActionForVirtualView(int,int,android.os.Bundle) -> onPerformActionForVirtualView
+    2507:2539:void onPopulateNodeForVirtualView(int,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onPopulateNodeForVirtualView
+    2543:2552:java.lang.String startOrEndDescription(int) -> startOrEndDescription
+com.google.android.material.slider.BaseSlider$SliderState -> com.google.android.material.slider.BaseSlider$SliderState:
+    2424:2424:void <clinit>() -> <clinit>
+    2416:2416:void <init>(android.os.Parcel,com.google.android.material.slider.BaseSlider$1) -> <init>
+    2441:2442:void <init>(android.os.Parcelable) -> <init>
+    2445:2452:void <init>(android.os.Parcel) -> <init>
+    2456:2464:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.slider.BaseSlider$SliderState$1 -> com.google.android.material.slider.BaseSlider$SliderState$1:
+    2425:2425:void <init>() -> <init>
+    2425:2425:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2430:2430:com.google.android.material.slider.BaseSlider$SliderState createFromParcel(android.os.Parcel) -> createFromParcel
+    2425:2425:java.lang.Object[] newArray(int) -> newArray
+    2436:2436:com.google.android.material.slider.BaseSlider$SliderState[] newArray(int) -> newArray
+com.google.android.material.slider.BasicLabelFormatter -> com.google.android.material.slider.BasicLabelFormatter:
+    27:27:void <init>() -> <init>
+    37:47:java.lang.String getFormattedValue(float) -> getFormattedValue
+com.google.android.material.slider.RangeSlider -> com.google.android.material.slider.RangeSlider:
+    57:58:void <init>(android.content.Context) -> <init>
+    61:62:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    65:77:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    51:51:void clearOnChangeListeners() -> clearOnChangeListeners
+    51:51:void clearOnSliderTouchListeners() -> clearOnSliderTouchListeners
+    118:122:java.util.List convertToFloat(android.content.res.TypedArray) -> convertToFloat
+    51:51:boolean dispatchHoverEvent(android.view.MotionEvent) -> dispatchHoverEvent
+    51:51:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    51:51:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    51:51:int getActiveThumbIndex() -> getActiveThumbIndex
+    51:51:int getFocusedThumbIndex() -> getFocusedThumbIndex
+    51:51:int getHaloRadius() -> getHaloRadius
+    51:51:android.content.res.ColorStateList getHaloTintList() -> getHaloTintList
+    51:51:int getLabelBehavior() -> getLabelBehavior
+    133:133:float getMinSeparation() -> getMinSeparation
+    51:51:float getStepSize() -> getStepSize
+    51:51:float getThumbElevation() -> getThumbElevation
+    51:51:int getThumbRadius() -> getThumbRadius
+    51:51:android.content.res.ColorStateList getThumbStrokeColor() -> getThumbStrokeColor
+    51:51:float getThumbStrokeWidth() -> getThumbStrokeWidth
+    51:51:android.content.res.ColorStateList getThumbTintList() -> getThumbTintList
+    51:51:android.content.res.ColorStateList getTickActiveTintList() -> getTickActiveTintList
+    51:51:android.content.res.ColorStateList getTickInactiveTintList() -> getTickInactiveTintList
+    51:51:android.content.res.ColorStateList getTickTintList() -> getTickTintList
+    51:51:android.content.res.ColorStateList getTrackActiveTintList() -> getTrackActiveTintList
+    51:51:int getTrackHeight() -> getTrackHeight
+    51:51:android.content.res.ColorStateList getTrackInactiveTintList() -> getTrackInactiveTintList
+    51:51:int getTrackSidePadding() -> getTrackSidePadding
+    51:51:android.content.res.ColorStateList getTrackTintList() -> getTrackTintList
+    51:51:int getTrackWidth() -> getTrackWidth
+    51:51:float getValueFrom() -> getValueFrom
+    51:51:float getValueTo() -> getValueTo
+    114:114:java.util.List getValues() -> getValues
+    51:51:boolean hasLabelFormatter() -> hasLabelFormatter
+    51:51:boolean isTickVisible() -> isTickVisible
+    51:51:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    51:51:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    176:182:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    165:171:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    51:51:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    51:51:void setEnabled(boolean) -> setEnabled
+    51:51:void setFocusedThumbIndex(int) -> setFocusedThumbIndex
+    51:51:void setHaloRadius(int) -> setHaloRadius
+    51:51:void setHaloRadiusResource(int) -> setHaloRadiusResource
+    51:51:void setHaloTintList(android.content.res.ColorStateList) -> setHaloTintList
+    51:51:void setLabelBehavior(int) -> setLabelBehavior
+    51:51:void setLabelFormatter(com.google.android.material.slider.LabelFormatter) -> setLabelFormatter
+    143:146:void setMinSeparation(float) -> setMinSeparation
+    157:160:void setMinSeparationValue(float) -> setMinSeparationValue
+    51:51:void setStepSize(float) -> setStepSize
+    51:51:void setThumbElevation(float) -> setThumbElevation
+    51:51:void setThumbElevationResource(int) -> setThumbElevationResource
+    51:51:void setThumbRadius(int) -> setThumbRadius
+    51:51:void setThumbRadiusResource(int) -> setThumbRadiusResource
+    51:51:void setThumbStrokeColor(android.content.res.ColorStateList) -> setThumbStrokeColor
+    51:51:void setThumbStrokeColorResource(int) -> setThumbStrokeColorResource
+    51:51:void setThumbStrokeWidth(float) -> setThumbStrokeWidth
+    51:51:void setThumbStrokeWidthResource(int) -> setThumbStrokeWidthResource
+    51:51:void setThumbTintList(android.content.res.ColorStateList) -> setThumbTintList
+    51:51:void setTickActiveTintList(android.content.res.ColorStateList) -> setTickActiveTintList
+    51:51:void setTickInactiveTintList(android.content.res.ColorStateList) -> setTickInactiveTintList
+    51:51:void setTickTintList(android.content.res.ColorStateList) -> setTickTintList
+    51:51:void setTickVisible(boolean) -> setTickVisible
+    51:51:void setTrackActiveTintList(android.content.res.ColorStateList) -> setTrackActiveTintList
+    51:51:void setTrackHeight(int) -> setTrackHeight
+    51:51:void setTrackInactiveTintList(android.content.res.ColorStateList) -> setTrackInactiveTintList
+    51:51:void setTrackTintList(android.content.res.ColorStateList) -> setTrackTintList
+    51:51:void setValueFrom(float) -> setValueFrom
+    51:51:void setValueTo(float) -> setValueTo
+    97:98:void setValues(java.lang.Float[]) -> setValues
+    107:108:void setValues(java.util.List) -> setValues
+com.google.android.material.slider.RangeSlider$RangeSliderState -> com.google.android.material.slider.RangeSlider$RangeSliderState:
+    206:206:void <clinit>() -> <clinit>
+    184:184:void <init>(android.os.Parcel,com.google.android.material.slider.RangeSlider$1) -> <init>
+    190:191:void <init>(android.os.Parcelable) -> <init>
+    194:197:void <init>(android.os.Parcel) -> <init>
+    184:184:float access$000(com.google.android.material.slider.RangeSlider$RangeSliderState) -> access$000
+    184:184:float access$002(com.google.android.material.slider.RangeSlider$RangeSliderState,float) -> access$002
+    184:184:int access$100(com.google.android.material.slider.RangeSlider$RangeSliderState) -> access$100
+    184:184:int access$102(com.google.android.material.slider.RangeSlider$RangeSliderState,int) -> access$102
+    201:204:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.slider.RangeSlider$RangeSliderState$1 -> com.google.android.material.slider.RangeSlider$RangeSliderState$1:
+    207:207:void <init>() -> <init>
+    207:207:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    210:210:com.google.android.material.slider.RangeSlider$RangeSliderState createFromParcel(android.os.Parcel) -> createFromParcel
+    207:207:java.lang.Object[] newArray(int) -> newArray
+    215:215:com.google.android.material.slider.RangeSlider$RangeSliderState[] newArray(int) -> newArray
+com.google.android.material.slider.Slider -> com.google.android.material.slider.Slider:
+    52:53:void <init>(android.content.Context) -> <init>
+    56:57:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    60:66:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    40:40:void clearOnChangeListeners() -> clearOnChangeListeners
+    40:40:void clearOnSliderTouchListeners() -> clearOnSliderTouchListeners
+    40:40:boolean dispatchHoverEvent(android.view.MotionEvent) -> dispatchHoverEvent
+    40:40:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    40:40:java.lang.CharSequence getAccessibilityClassName() -> getAccessibilityClassName
+    40:40:int getActiveThumbIndex() -> getActiveThumbIndex
+    40:40:int getFocusedThumbIndex() -> getFocusedThumbIndex
+    40:40:int getHaloRadius() -> getHaloRadius
+    40:40:android.content.res.ColorStateList getHaloTintList() -> getHaloTintList
+    40:40:int getLabelBehavior() -> getLabelBehavior
+    40:40:float getStepSize() -> getStepSize
+    40:40:float getThumbElevation() -> getThumbElevation
+    40:40:int getThumbRadius() -> getThumbRadius
+    40:40:android.content.res.ColorStateList getThumbStrokeColor() -> getThumbStrokeColor
+    40:40:float getThumbStrokeWidth() -> getThumbStrokeWidth
+    40:40:android.content.res.ColorStateList getThumbTintList() -> getThumbTintList
+    40:40:android.content.res.ColorStateList getTickActiveTintList() -> getTickActiveTintList
+    40:40:android.content.res.ColorStateList getTickInactiveTintList() -> getTickInactiveTintList
+    40:40:android.content.res.ColorStateList getTickTintList() -> getTickTintList
+    40:40:android.content.res.ColorStateList getTrackActiveTintList() -> getTrackActiveTintList
+    40:40:int getTrackHeight() -> getTrackHeight
+    40:40:android.content.res.ColorStateList getTrackInactiveTintList() -> getTrackInactiveTintList
+    40:40:int getTrackSidePadding() -> getTrackSidePadding
+    40:40:android.content.res.ColorStateList getTrackTintList() -> getTrackTintList
+    40:40:int getTrackWidth() -> getTrackWidth
+    75:75:float getValue() -> getValue
+    40:40:float getValueFrom() -> getValueFrom
+    40:40:float getValueTo() -> getValueTo
+    40:40:boolean hasLabelFormatter() -> hasLabelFormatter
+    40:40:boolean isTickVisible() -> isTickVisible
+    40:40:boolean onKeyDown(int,android.view.KeyEvent) -> onKeyDown
+    40:40:boolean onKeyUp(int,android.view.KeyEvent) -> onKeyUp
+    40:40:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    100:105:boolean pickActiveThumb() -> pickActiveThumb
+    40:40:void setEnabled(boolean) -> setEnabled
+    40:40:void setFocusedThumbIndex(int) -> setFocusedThumbIndex
+    40:40:void setHaloRadius(int) -> setHaloRadius
+    40:40:void setHaloRadiusResource(int) -> setHaloRadiusResource
+    40:40:void setHaloTintList(android.content.res.ColorStateList) -> setHaloTintList
+    40:40:void setLabelBehavior(int) -> setLabelBehavior
+    40:40:void setLabelFormatter(com.google.android.material.slider.LabelFormatter) -> setLabelFormatter
+    40:40:void setStepSize(float) -> setStepSize
+    40:40:void setThumbElevation(float) -> setThumbElevation
+    40:40:void setThumbElevationResource(int) -> setThumbElevationResource
+    40:40:void setThumbRadius(int) -> setThumbRadius
+    40:40:void setThumbRadiusResource(int) -> setThumbRadiusResource
+    40:40:void setThumbStrokeColor(android.content.res.ColorStateList) -> setThumbStrokeColor
+    40:40:void setThumbStrokeColorResource(int) -> setThumbStrokeColorResource
+    40:40:void setThumbStrokeWidth(float) -> setThumbStrokeWidth
+    40:40:void setThumbStrokeWidthResource(int) -> setThumbStrokeWidthResource
+    40:40:void setThumbTintList(android.content.res.ColorStateList) -> setThumbTintList
+    40:40:void setTickActiveTintList(android.content.res.ColorStateList) -> setTickActiveTintList
+    40:40:void setTickInactiveTintList(android.content.res.ColorStateList) -> setTickInactiveTintList
+    40:40:void setTickTintList(android.content.res.ColorStateList) -> setTickTintList
+    40:40:void setTickVisible(boolean) -> setTickVisible
+    40:40:void setTrackActiveTintList(android.content.res.ColorStateList) -> setTrackActiveTintList
+    40:40:void setTrackHeight(int) -> setTrackHeight
+    40:40:void setTrackInactiveTintList(android.content.res.ColorStateList) -> setTrackInactiveTintList
+    40:40:void setTrackTintList(android.content.res.ColorStateList) -> setTrackTintList
+    95:96:void setValue(float) -> setValue
+    40:40:void setValueFrom(float) -> setValueFrom
+    40:40:void setValueTo(float) -> setValueTo
+com.google.android.material.snackbar.BaseTransientBottomBar -> com.google.android.material.snackbar.BaseTransientBottomBar:
+    227:254:void <clinit>() -> <clinit>
+    353:354:void <init>(android.view.ViewGroup,android.view.View,com.google.android.material.snackbar.ContentViewCallback) -> <init>
+    266:712:void <init>(android.content.Context,android.view.ViewGroup,android.view.View,com.google.android.material.snackbar.ContentViewCallback) -> <init>
+    95:95:boolean access$000(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$000
+    95:95:int access$1002(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> access$1002
+    95:95:int access$102(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> access$102
+    95:95:int access$1102(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> access$1102
+    95:95:void access$1200(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$1200
+    95:95:void access$1400(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$1400
+    95:95:void access$1500(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$1500
+    95:95:com.google.android.material.snackbar.ContentViewCallback access$1600(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$1600
+    95:95:boolean access$1700() -> access$1700
+    95:95:int access$200(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$200
+    95:95:void access$300(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$300
+    95:95:android.content.Context access$400(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$400
+    95:95:int access$500(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$500
+    95:95:int access$600(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$600
+    95:95:int access$700(com.google.android.material.snackbar.BaseTransientBottomBar) -> access$700
+    95:95:int access$702(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> access$702
+    95:95:java.lang.String access$800() -> access$800
+    95:95:int access$902(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> access$902
+    669:676:com.google.android.material.snackbar.BaseTransientBottomBar addCallback(com.google.android.material.snackbar.BaseTransientBottomBar$BaseCallback) -> addCallback
+    887:905:void animateViewIn() -> animateViewIn
+    908:913:void animateViewOut(int) -> animateViewOut
+    870:882:int calculateBottomMarginForAnchorView() -> calculateBottomMarginForAnchorView
+    653:654:void dismiss() -> dismiss
+    657:658:void dispatchDismiss(int) -> dispatchDismiss
+    946:955:android.animation.ValueAnimator getAlphaAnimator(float[]) -> getAlphaAnimator
+    569:569:android.view.View getAnchorView() -> getAnchorView
+    547:547:int getAnimationMode() -> getAnimationMode
+    631:631:com.google.android.material.snackbar.BaseTransientBottomBar$Behavior getBehavior() -> getBehavior
+    637:637:android.content.Context getContext() -> getContext
+    515:515:int getDuration() -> getDuration
+    729:729:com.google.android.material.behavior.SwipeDismissBehavior getNewBehavior() -> getNewBehavior
+    959:970:android.animation.ValueAnimator getScaleAnimator(float[]) -> getScaleAnimator
+    817:820:int getScreenHeight() -> getScreenHeight
+    481:481:int getSnackbarBaseLayoutResId() -> getSnackbarBaseLayoutResId
+    1058:1063:int getTranslationYBottom() -> getTranslationYBottom
+    643:643:android.view.View getView() -> getView
+    810:812:int getViewAbsoluteBottom() -> getViewAbsoluteBottom
+    490:493:boolean hasSnackbarStyleAttr() -> hasSnackbarStyleAttr
+    1067:1073:void hideView(int) -> hideView
+    601:601:boolean isAnchorViewLayoutListenerEnabled() -> isAnchorViewLayoutListenerEnabled
+    537:537:boolean isGestureInsetBottomIgnored() -> isGestureInsetBottomIgnored
+    701:701:boolean isShown() -> isShown
+    709:709:boolean isShownOrQueued() -> isShownOrQueued
+    473:475:boolean isSwipeDismissable() -> isSwipeDismissable
+    1089:1103:void onViewHidden(int) -> onViewHidden
+    1076:1085:void onViewShown() -> onViewShown
+    688:696:com.google.android.material.snackbar.BaseTransientBottomBar removeCallback(com.google.android.material.snackbar.BaseTransientBottomBar$BaseCallback) -> removeCallback
+    575:578:com.google.android.material.snackbar.BaseTransientBottomBar setAnchorView(android.view.View) -> setAnchorView
+    588:592:com.google.android.material.snackbar.BaseTransientBottomBar setAnchorView(int) -> setAnchorView
+    610:611:void setAnchorViewLayoutListenerEnabled(boolean) -> setAnchorViewLayoutListenerEnabled
+    558:559:com.google.android.material.snackbar.BaseTransientBottomBar setAnimationMode(int) -> setAnimationMode
+    621:622:com.google.android.material.snackbar.BaseTransientBottomBar setBehavior(com.google.android.material.snackbar.BaseTransientBottomBar$Behavior) -> setBehavior
+    504:505:com.google.android.material.snackbar.BaseTransientBottomBar setDuration(int) -> setDuration
+    528:529:com.google.android.material.snackbar.BaseTransientBottomBar setGestureInsetBottomIgnored(boolean) -> setGestureInsetBottomIgnored
+    825:867:void setUpBehavior(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> setUpBehavior
+    1107:1113:boolean shouldAnimate() -> shouldAnimate
+    469:469:boolean shouldUpdateGestureInset() -> shouldUpdateGestureInset
+    648:649:void show() -> show
+    733:794:void showView() -> showView
+    797:807:void showViewImpl() -> showViewImpl
+    916:930:void startFadeInAnimation() -> startFadeInAnimation
+    933:943:void startFadeOutAnimation(int) -> startFadeOutAnimation
+    974:1017:void startSlideInAnimation() -> startSlideInAnimation
+    1020:1055:void startSlideOutAnimation(int) -> startSlideOutAnimation
+    447:466:void updateMargins() -> updateMargins
+com.google.android.material.snackbar.BaseTransientBottomBar$1 -> com.google.android.material.snackbar.BaseTransientBottomBar$1:
+    239:239:void <init>() -> <init>
+    242:250:boolean handleMessage(android.os.Message) -> handleMessage
+com.google.android.material.snackbar.BaseTransientBottomBar$10 -> com.google.android.material.snackbar.BaseTransientBottomBar$10:
+    888:888:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    891:903:void run() -> run
+com.google.android.material.snackbar.BaseTransientBottomBar$11 -> com.google.android.material.snackbar.BaseTransientBottomBar$11:
+    923:923:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    926:927:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.snackbar.BaseTransientBottomBar$12 -> com.google.android.material.snackbar.BaseTransientBottomBar$12:
+    936:936:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> <init>
+    939:940:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.snackbar.BaseTransientBottomBar$13 -> com.google.android.material.snackbar.BaseTransientBottomBar$13:
+    949:949:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    952:953:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.snackbar.BaseTransientBottomBar$14 -> com.google.android.material.snackbar.BaseTransientBottomBar$14:
+    962:962:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    965:968:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.snackbar.BaseTransientBottomBar$15 -> com.google.android.material.snackbar.BaseTransientBottomBar$15:
+    986:986:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    995:996:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    989:991:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.snackbar.BaseTransientBottomBar$16 -> com.google.android.material.snackbar.BaseTransientBottomBar$16:
+    999:1000:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> <init>
+    1004:1014:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.snackbar.BaseTransientBottomBar$17 -> com.google.android.material.snackbar.BaseTransientBottomBar$17:
+    1025:1025:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar,int) -> <init>
+    1033:1034:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    1028:1029:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.snackbar.BaseTransientBottomBar$18 -> com.google.android.material.snackbar.BaseTransientBottomBar$18:
+    1037:1038:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    1042:1052:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.snackbar.BaseTransientBottomBar$2 -> com.google.android.material.snackbar.BaseTransientBottomBar$2:
+    268:268:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    271:276:void onGlobalLayout() -> onGlobalLayout
+com.google.android.material.snackbar.BaseTransientBottomBar$3 -> com.google.android.material.snackbar.BaseTransientBottomBar$3:
+    281:281:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    284:308:void run() -> run
+com.google.android.material.snackbar.BaseTransientBottomBar$4 -> com.google.android.material.snackbar.BaseTransientBottomBar$4:
+    406:406:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    412:416:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.google.android.material.snackbar.BaseTransientBottomBar$5 -> com.google.android.material.snackbar.BaseTransientBottomBar$5:
+    423:423:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    427:430:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    434:438:boolean performAccessibilityAction(android.view.View,int,android.os.Bundle) -> performAccessibilityAction
+com.google.android.material.snackbar.BaseTransientBottomBar$6 -> com.google.android.material.snackbar.BaseTransientBottomBar$6:
+    714:714:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    722:724:void dismiss(int) -> dismiss
+    717:718:void show() -> show
+com.google.android.material.snackbar.BaseTransientBottomBar$7 -> com.google.android.material.snackbar.BaseTransientBottomBar$7:
+    734:734:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    737:744:void onViewAttachedToWindow(android.view.View) -> onViewAttachedToWindow
+    748:761:void onViewDetachedFromWindow(android.view.View) -> onViewDetachedFromWindow
+com.google.android.material.snackbar.BaseTransientBottomBar$7$1 -> com.google.android.material.snackbar.BaseTransientBottomBar$7$1:
+    754:754:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar$7) -> <init>
+    757:758:void run() -> run
+com.google.android.material.snackbar.BaseTransientBottomBar$8 -> com.google.android.material.snackbar.BaseTransientBottomBar$8:
+    787:787:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    790:792:void onLayoutChange(android.view.View,int,int,int,int) -> onLayoutChange
+com.google.android.material.snackbar.BaseTransientBottomBar$9 -> com.google.android.material.snackbar.BaseTransientBottomBar$9:
+    835:835:void <init>(com.google.android.material.snackbar.BaseTransientBottomBar) -> <init>
+    838:842:void onDismiss(android.view.View) -> onDismiss
+    846:859:void onDragStateChanged(int) -> onDragStateChanged
+com.google.android.material.snackbar.BaseTransientBottomBar$BaseCallback -> com.google.android.material.snackbar.BaseTransientBottomBar$BaseCallback:
+    119:119:void <init>() -> <init>
+    159:159:void onDismissed(java.lang.Object,int) -> onDismissed
+    169:169:void onShown(java.lang.Object) -> onShown
+com.google.android.material.snackbar.BaseTransientBottomBar$Behavior -> com.google.android.material.snackbar.BaseTransientBottomBar$Behavior:
+    1299:1301:void <init>() -> <init>
+    1296:1296:void access$1300(com.google.android.material.snackbar.BaseTransientBottomBar$Behavior,com.google.android.material.snackbar.BaseTransientBottomBar) -> access$1300
+    1310:1310:boolean canSwipeDismissView(android.view.View) -> canSwipeDismissView
+    1316:1317:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    1305:1306:void setBaseTransientBottomBar(com.google.android.material.snackbar.BaseTransientBottomBar) -> setBaseTransientBottomBar
+com.google.android.material.snackbar.BaseTransientBottomBar$BehaviorDelegate -> com.google.android.material.snackbar.BaseTransientBottomBar$BehaviorDelegate:
+    1327:1331:void <init>(com.google.android.material.behavior.SwipeDismissBehavior) -> <init>
+    1339:1339:boolean canSwipeDismissView(android.view.View) -> canSwipeDismissView
+    1344:1359:void onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    1335:1336:void setBaseTransientBottomBar(com.google.android.material.snackbar.BaseTransientBottomBar) -> setBaseTransientBottomBar
+com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout -> com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout:
+    1120:1120:void <clinit>() -> <clinit>
+    1139:1140:void <init>(android.content.Context) -> <init>
+    1143:1170:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1274:1290:android.graphics.drawable.Drawable createThemedBackground() -> createThemedBackground
+    1269:1269:float getActionTextColorAlpha() -> getActionTextColorAlpha
+    1257:1257:int getAnimationMode() -> getAnimationMode
+    1265:1265:float getBackgroundOverlayColorAlpha() -> getBackgroundOverlayColorAlpha
+    1229:1235:void onAttachedToWindow() -> onAttachedToWindow
+    1239:1243:void onDetachedFromWindow() -> onDetachedFromWindow
+    1221:1225:void onLayout(boolean,int,int,int,int) -> onLayout
+    1261:1262:void setAnimationMode(int) -> setAnimationMode
+    1174:1175:void setBackground(android.graphics.drawable.Drawable) -> setBackground
+    1179:1185:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    1189:1198:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    1202:1210:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    1252:1253:void setOnAttachStateChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener) -> setOnAttachStateChangeListener
+    1215:1217:void setOnClickListener(android.view.View$OnClickListener) -> setOnClickListener
+    1247:1248:void setOnLayoutChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener) -> setOnLayoutChangeListener
+com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout$1 -> com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout$1:
+    1121:1121:void <init>() -> <init>
+    1126:1126:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+com.google.android.material.snackbar.Snackbar -> com.google.android.material.snackbar.Snackbar:
+    69:70:void <clinit>() -> <clinit>
+    111:114:void <init>(android.content.Context,android.view.ViewGroup,android.view.View,com.google.android.material.snackbar.ContentViewCallback) -> <init>
+    127:128:void dismiss() -> dismiss
+    267:291:android.view.ViewGroup findSuitableParent(android.view.View) -> findSuitableParent
+    363:375:int getDuration() -> getDuration
+    230:233:boolean hasSnackbarButtonStyleAttr(android.content.Context) -> hasSnackbarButtonStyleAttr
+    237:241:boolean hasSnackbarContentStyleAttrs(android.content.Context) -> hasSnackbarContentStyleAttrs
+    134:134:boolean isShown() -> isShown
+    157:157:com.google.android.material.snackbar.Snackbar make(android.view.View,java.lang.CharSequence,int) -> make
+    184:184:com.google.android.material.snackbar.Snackbar make(android.content.Context,android.view.View,java.lang.CharSequence,int) -> make
+    262:262:com.google.android.material.snackbar.Snackbar make(android.view.View,int,int) -> make
+    196:218:com.google.android.material.snackbar.Snackbar makeInternal(android.content.Context,android.view.View,java.lang.CharSequence,int) -> makeInternal
+    325:325:com.google.android.material.snackbar.Snackbar setAction(int,android.view.View$OnClickListener) -> setAction
+    337:357:com.google.android.material.snackbar.Snackbar setAction(java.lang.CharSequence,android.view.View$OnClickListener) -> setAction
+    410:413:com.google.android.material.snackbar.Snackbar setActionTextColor(android.content.res.ColorStateList) -> setActionTextColor
+    433:436:com.google.android.material.snackbar.Snackbar setActionTextColor(int) -> setActionTextColor
+    442:442:com.google.android.material.snackbar.Snackbar setBackgroundTint(int) -> setBackgroundTint
+    448:449:com.google.android.material.snackbar.Snackbar setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    454:455:com.google.android.material.snackbar.Snackbar setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    474:483:com.google.android.material.snackbar.Snackbar setCallback(com.google.android.material.snackbar.Snackbar$Callback) -> setCallback
+    422:424:com.google.android.material.snackbar.Snackbar setMaxInlineActionWidth(int) -> setMaxInlineActionWidth
+    301:304:com.google.android.material.snackbar.Snackbar setText(java.lang.CharSequence) -> setText
+    314:314:com.google.android.material.snackbar.Snackbar setText(int) -> setText
+    386:389:com.google.android.material.snackbar.Snackbar setTextColor(android.content.res.ColorStateList) -> setTextColor
+    398:401:com.google.android.material.snackbar.Snackbar setTextColor(int) -> setTextColor
+    120:121:void show() -> show
+com.google.android.material.snackbar.Snackbar$1 -> com.google.android.material.snackbar.Snackbar$1:
+    348:348:void <init>(com.google.android.material.snackbar.Snackbar,android.view.View$OnClickListener) -> <init>
+    351:354:void onClick(android.view.View) -> onClick
+com.google.android.material.snackbar.Snackbar$Callback -> com.google.android.material.snackbar.Snackbar$Callback:
+    81:81:void <init>() -> <init>
+    81:81:void onDismissed(java.lang.Object,int) -> onDismissed
+    101:101:void onDismissed(com.google.android.material.snackbar.Snackbar,int) -> onDismissed
+    81:81:void onShown(java.lang.Object) -> onShown
+    96:96:void onShown(com.google.android.material.snackbar.Snackbar) -> onShown
+com.google.android.material.snackbar.Snackbar$SnackbarLayout -> com.google.android.material.snackbar.Snackbar$SnackbarLayout:
+    493:494:void <init>(android.content.Context) -> <init>
+    497:498:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    502:517:void onMeasure(int,int) -> onMeasure
+    490:490:void setBackground(android.graphics.drawable.Drawable) -> setBackground
+    490:490:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    490:490:void setBackgroundTintList(android.content.res.ColorStateList) -> setBackgroundTintList
+    490:490:void setBackgroundTintMode(android.graphics.PorterDuff$Mode) -> setBackgroundTintMode
+    490:490:void setOnClickListener(android.view.View$OnClickListener) -> setOnClickListener
+com.google.android.material.snackbar.SnackbarContentLayout -> com.google.android.material.snackbar.SnackbarContentLayout:
+    45:46:void <init>(android.content.Context) -> <init>
+    49:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    148:155:void animateContentIn(int,int) -> animateContentIn
+    159:166:void animateContentOut(int,int) -> animateContentOut
+    69:69:android.widget.Button getActionView() -> getActionView
+    65:65:android.widget.TextView getMessageView() -> getMessageView
+    59:62:void onFinishInflate() -> onFinishInflate
+    84:115:void onMeasure(int,int) -> onMeasure
+    169:170:void setMaxInlineActionWidth(int) -> setMaxInlineActionWidth
+    73:80:void updateActionTextColorAlphaIfNeeded(float) -> updateActionTextColorAlphaIfNeeded
+    134:144:void updateTopBottomPadding(android.view.View,int,int) -> updateTopBottomPadding
+    119:129:boolean updateViewsWithinLayout(int,int,int) -> updateViewsWithinLayout
+com.google.android.material.snackbar.SnackbarManager -> com.google.android.material.snackbar.SnackbarManager:
+    49:66:void <init>() -> <init>
+    205:212:boolean cancelSnackbarLocked(com.google.android.material.snackbar.SnackbarManager$SnackbarRecord,int) -> cancelSnackbarLocked
+    107:114:void dismiss(com.google.android.material.snackbar.SnackbarManager$Callback,int) -> dismiss
+    37:40:com.google.android.material.snackbar.SnackbarManager getInstance() -> getInstance
+    240:245:void handleTimeout(com.google.android.material.snackbar.SnackbarManager$SnackbarRecord) -> handleTimeout
+    163:165:boolean isCurrent(com.google.android.material.snackbar.SnackbarManager$Callback) -> isCurrent
+    169:171:boolean isCurrentOrNext(com.google.android.material.snackbar.SnackbarManager$Callback) -> isCurrentOrNext
+    216:216:boolean isCurrentSnackbarLocked(com.google.android.material.snackbar.SnackbarManager$Callback) -> isCurrentSnackbarLocked
+    220:220:boolean isNextSnackbarLocked(com.google.android.material.snackbar.SnackbarManager$Callback) -> isNextSnackbarLocked
+    121:130:void onDismissed(com.google.android.material.snackbar.SnackbarManager$Callback) -> onDismissed
+    137:142:void onShown(com.google.android.material.snackbar.SnackbarManager$Callback) -> onShown
+    145:151:void pauseTimeout(com.google.android.material.snackbar.SnackbarManager$Callback) -> pauseTimeout
+    154:160:void restoreTimeoutIfPaused(com.google.android.material.snackbar.SnackbarManager$Callback) -> restoreTimeoutIfPaused
+    224:237:void scheduleTimeoutLocked(com.google.android.material.snackbar.SnackbarManager$SnackbarRecord) -> scheduleTimeoutLocked
+    75:104:void show(int,com.google.android.material.snackbar.SnackbarManager$Callback) -> show
+    190:202:void showNextSnackbarLocked() -> showNextSnackbarLocked
+com.google.android.material.snackbar.SnackbarManager$1 -> com.google.android.material.snackbar.SnackbarManager$1:
+    54:54:void <init>(com.google.android.material.snackbar.SnackbarManager) -> <init>
+    57:62:boolean handleMessage(android.os.Message) -> handleMessage
+com.google.android.material.snackbar.SnackbarManager$SnackbarRecord -> com.google.android.material.snackbar.SnackbarManager$SnackbarRecord:
+    179:182:void <init>(int,com.google.android.material.snackbar.SnackbarManager$Callback) -> <init>
+    185:185:boolean isSnackbar(com.google.android.material.snackbar.SnackbarManager$Callback) -> isSnackbar
+com.google.android.material.stateful.ExtendableSavedState -> com.google.android.material.stateful.ExtendableSavedState:
+    91:91:void <clinit>() -> <clinit>
+    36:36:void <init>(android.os.Parcel,java.lang.ClassLoader,com.google.android.material.stateful.ExtendableSavedState$1) -> <init>
+    41:43:void <init>(android.os.Parcelable) -> <init>
+    46:60:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    84:85:java.lang.String toString() -> toString
+    64:79:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.stateful.ExtendableSavedState$1 -> com.google.android.material.stateful.ExtendableSavedState$1:
+    92:92:void <init>() -> <init>
+    92:92:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    92:92:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    97:97:com.google.android.material.stateful.ExtendableSavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    103:103:com.google.android.material.stateful.ExtendableSavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    92:92:java.lang.Object[] newArray(int) -> newArray
+    109:109:com.google.android.material.stateful.ExtendableSavedState[] newArray(int) -> newArray
+com.google.android.material.switchmaterial.SwitchMaterial -> com.google.android.material.switchmaterial.SwitchMaterial:
+    46:47:void <clinit>() -> <clinit>
+    62:63:void <init>(android.content.Context) -> <init>
+    66:67:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    70:84:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    121:141:android.content.res.ColorStateList getMaterialThemeColorsThumbTintList() -> getMaterialThemeColorsThumbTintList
+    145:162:android.content.res.ColorStateList getMaterialThemeColorsTrackTintList() -> getMaterialThemeColorsTrackTintList
+    117:117:boolean isUseMaterialThemeColors() -> isUseMaterialThemeColors
+    88:96:void onAttachedToWindow() -> onAttachedToWindow
+    105:113:void setUseMaterialThemeColors(boolean) -> setUseMaterialThemeColors
+com.google.android.material.tabs.ElasticTabIndicatorInterpolator -> com.google.android.material.tabs.ElasticTabIndicatorInterpolator:
+    32:32:void <init>() -> <init>
+    43:43:float accInterp(float) -> accInterp
+    37:37:float decInterp(float) -> decInterp
+    55:78:void setIndicatorBoundsForOffset(com.google.android.material.tabs.TabLayout,android.view.View,android.view.View,float,android.graphics.drawable.Drawable) -> setIndicatorBoundsForOffset
+com.google.android.material.tabs.TabIndicatorInterpolator -> com.google.android.material.tabs.TabIndicatorInterpolator:
+    48:48:void <init>() -> <init>
+    104:114:android.graphics.RectF calculateIndicatorWidthForTab(com.google.android.material.tabs.TabLayout,android.view.View) -> calculateIndicatorWidthForTab
+    72:87:android.graphics.RectF calculateTabViewContentBounds(com.google.android.material.tabs.TabLayout$TabView,int) -> calculateTabViewContentBounds
+    161:170:void setIndicatorBoundsForOffset(com.google.android.material.tabs.TabLayout,android.view.View,android.view.View,float,android.graphics.drawable.Drawable) -> setIndicatorBoundsForOffset
+    129:135:void setIndicatorBoundsForTab(com.google.android.material.tabs.TabLayout,android.view.View,android.graphics.drawable.Drawable) -> setIndicatorBoundsForTab
+com.google.android.material.tabs.TabItem -> com.google.android.material.tabs.TabItem:
+    48:49:void <init>(android.content.Context) -> <init>
+    52:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.google.android.material.tabs.TabLayout -> com.google.android.material.tabs.TabLayout:
+    179:200:void <clinit>() -> <clinit>
+    484:485:void <init>(android.content.Context) -> <init>
+    488:489:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    425:613:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    177:177:com.google.android.material.tabs.TabIndicatorInterpolator access$1200(com.google.android.material.tabs.TabLayout) -> access$1200
+    177:177:int access$1400(com.google.android.material.tabs.TabLayout) -> access$1400
+    801:802:void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener) -> addOnTabSelectedListener
+    816:819:void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener) -> addOnTabSelectedListener
+    704:705:void addTab(com.google.android.material.tabs.TabLayout$Tab) -> addTab
+    715:716:void addTab(com.google.android.material.tabs.TabLayout$Tab,int) -> addTab
+    725:726:void addTab(com.google.android.material.tabs.TabLayout$Tab,boolean) -> addTab
+    736:745:void addTab(com.google.android.material.tabs.TabLayout$Tab,int,boolean) -> addTab
+    748:762:void addTabFromItemView(com.google.android.material.tabs.TabItem) -> addTabFromItemView
+    1576:1580:void addTabView(com.google.android.material.tabs.TabLayout$Tab) -> addTabView
+    1584:1585:void addView(android.view.View) -> addView
+    1589:1590:void addView(android.view.View,int) -> addView
+    1594:1595:void addView(android.view.View,android.view.ViewGroup$LayoutParams) -> addView
+    1599:1600:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    1603:1608:void addViewInternal(android.view.View) -> addViewInternal
+    1739:1764:void animateToTab(int) -> animateToTab
+    1922:1938:void applyGravityForModeScrollable(int) -> applyGravityForModeScrollable
+    1895:1919:void applyModeAndGravity() -> applyModeAndGravity
+    1873:1891:int calculateScrollXForTab(int,float) -> calculateScrollXForTab
+    845:846:void clearOnTabSelectedListeners() -> clearOnTabSelectedListeners
+    1566:1573:void configureTab(com.google.android.material.tabs.TabLayout$Tab,int) -> configureTab
+    3274:3287:android.content.res.ColorStateList createColorStateList(int,int) -> createColorStateList
+    1612:1615:android.widget.LinearLayout$LayoutParams createLayoutParamsForTabs() -> createLayoutParamsForTabs
+    869:873:com.google.android.material.tabs.TabLayout$Tab createTabFromPool() -> createTabFromPool
+    1550:1562:com.google.android.material.tabs.TabLayout$TabView createTabView(com.google.android.material.tabs.TabLayout$Tab) -> createTabView
+    1867:1870:void dispatchTabReselected(com.google.android.material.tabs.TabLayout$Tab) -> dispatchTabReselected
+    1855:1858:void dispatchTabSelected(com.google.android.material.tabs.TabLayout$Tab) -> dispatchTabSelected
+    1861:1864:void dispatchTabUnselected(com.google.android.material.tabs.TabLayout$Tab) -> dispatchTabUnselected
+    1767:1779:void ensureScrollAnimator() -> ensureScrollAnimator
+    176:176:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    3318:3318:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    3292:3300:int getDefaultHeight() -> getDefaultHeight
+    902:902:int getSelectedTabPosition() -> getSelectedTabPosition
+    893:893:com.google.android.material.tabs.TabLayout$Tab getTabAt(int) -> getTabAt
+    887:887:int getTabCount() -> getTabCount
+    1014:1014:int getTabGravity() -> getTabGravity
+    1263:1263:android.content.res.ColorStateList getTabIconTint() -> getTabIconTint
+    1088:1088:int getTabIndicatorAnimationMode() -> getTabIndicatorAnimationMode
+    1047:1047:int getTabIndicatorGravity() -> getTabIndicatorGravity
+    3322:3322:int getTabMaxWidth() -> getTabMaxWidth
+    3304:3309:int getTabMinWidth() -> getTabMinWidth
+    991:991:int getTabMode() -> getTabMode
+    1274:1274:android.content.res.ColorStateList getTabRippleColor() -> getTabRippleColor
+    1499:1500:int getTabScrollRange() -> getTabScrollRange
+    1321:1321:android.graphics.drawable.Drawable getTabSelectedIndicator() -> getTabSelectedIndicator
+    1225:1225:android.content.res.ColorStateList getTabTextColors() -> getTabTextColors
+    1207:1207:boolean hasUnboundedRipple() -> hasUnboundedRipple
+    1163:1163:boolean isInlineLabel() -> isInlineLabel
+    1120:1120:boolean isTabIndicatorFullWidth() -> isTabIndicatorFullWidth
+    857:864:com.google.android.material.tabs.TabLayout$Tab newTab() -> newTab
+    1471:1485:void onAttachedToWindow() -> onAttachedToWindow
+    1489:1496:void onDetachedFromWindow() -> onDetachedFromWindow
+    1651:1659:void onDraw(android.graphics.Canvas) -> onDraw
+    1638:1646:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    1665:1726:void onMeasure(int,int) -> onMeasure
+    1524:1540:void populateFromPagerAdapter() -> populateFromPagerAdapter
+    878:878:boolean releaseFromTabPool(com.google.android.material.tabs.TabLayout$Tab) -> releaseFromTabPool
+    948:960:void removeAllTabs() -> removeAllTabs
+    828:829:void removeOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener) -> removeOnTabSelectedListener
+    840:841:void removeOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener) -> removeOnTabSelectedListener
+    912:917:void removeTab(com.google.android.material.tabs.TabLayout$Tab) -> removeTab
+    926:943:void removeTabAt(int) -> removeTabAt
+    1729:1736:void removeTabViewAt(int) -> removeTabViewAt
+    1809:1810:void selectTab(com.google.android.material.tabs.TabLayout$Tab) -> selectTab
+    1821:1852:void selectTab(com.google.android.material.tabs.TabLayout$Tab,boolean) -> selectTab
+    1631:1634:void setElevation(float) -> setElevation
+    1131:1141:void setInlineLabel(boolean) -> setInlineLabel
+    1152:1153:void setInlineLabelResource(int) -> setInlineLabelResource
+    770:771:void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener) -> setOnTabSelectedListener
+    781:790:void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener) -> setOnTabSelectedListener
+    1504:1521:void setPagerAdapter(androidx.viewpager.widget.PagerAdapter,boolean) -> setPagerAdapter
+    1782:1784:void setScrollAnimatorListener(android.animation.Animator$AnimatorListener) -> setScrollAnimatorListener
+    655:656:void setScrollPosition(int,float,boolean) -> setScrollPosition
+    675:695:void setScrollPosition(int,float,boolean,boolean) -> setScrollPosition
+    1338:1342:void setSelectedTabIndicator(android.graphics.drawable.Drawable) -> setSelectedTabIndicator
+    1355:1361:void setSelectedTabIndicator(int) -> setSelectedTabIndicator
+    627:628:void setSelectedTabIndicatorColor(int) -> setSelectedTabIndicatorColor
+    1032:1036:void setSelectedTabIndicatorGravity(int) -> setSelectedTabIndicatorGravity
+    640:641:void setSelectedTabIndicatorHeight(int) -> setSelectedTabIndicatorHeight
+    1792:1800:void setSelectedTabView(int) -> setSelectedTabView
+    1001:1005:void setTabGravity(int) -> setTabGravity
+    1244:1248:void setTabIconTint(android.content.res.ColorStateList) -> setTabIconTint
+    1257:1258:void setTabIconTintResource(int) -> setTabIconTintResource
+    1063:1075:void setTabIndicatorAnimationMode(int) -> setTabIndicatorAnimationMode
+    1107:1109:void setTabIndicatorFullWidth(boolean) -> setTabIndicatorFullWidth
+    978:982:void setTabMode(int) -> setTabMode
+    1288:1297:void setTabRippleColor(android.content.res.ColorStateList) -> setTabRippleColor
+    1309:1310:void setTabRippleColorResource(int) -> setTabRippleColorResource
+    1216:1220:void setTabTextColors(android.content.res.ColorStateList) -> setTabTextColors
+    1235:1236:void setTabTextColors(int,int) -> setTabTextColors
+    1460:1461:void setTabsFromPagerAdapter(androidx.viewpager.widget.PagerAdapter) -> setTabsFromPagerAdapter
+    1176:1185:void setUnboundedRipple(boolean) -> setUnboundedRipple
+    1196:1197:void setUnboundedRippleResource(int) -> setUnboundedRippleResource
+    1372:1373:void setupWithViewPager(androidx.viewpager.widget.ViewPager) -> setupWithViewPager
+    1392:1393:void setupWithViewPager(androidx.viewpager.widget.ViewPager,boolean) -> setupWithViewPager
+    1397:1451:void setupWithViewPager(androidx.viewpager.widget.ViewPager,boolean,boolean) -> setupWithViewPager
+    1466:1466:boolean shouldDelayChildPressedState() -> shouldDelayChildPressedState
+    1543:1546:void updateAllTabs() -> updateAllTabs
+    1619:1626:void updateTabViewLayoutParams(android.widget.LinearLayout$LayoutParams) -> updateTabViewLayoutParams
+    1941:1949:void updateTabViews(boolean) -> updateTabViews
+com.google.android.material.tabs.TabLayout$1 -> com.google.android.material.tabs.TabLayout$1:
+    1772:1772:void <init>(com.google.android.material.tabs.TabLayout) -> <init>
+    1775:1776:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.tabs.TabLayout$AdapterChangeListener -> com.google.android.material.tabs.TabLayout$AdapterChangeListener:
+    3432:3432:void <init>(com.google.android.material.tabs.TabLayout) -> <init>
+    3439:3442:void onAdapterChanged(androidx.viewpager.widget.ViewPager,androidx.viewpager.widget.PagerAdapter,androidx.viewpager.widget.PagerAdapter) -> onAdapterChanged
+    3445:3446:void setAutoRefresh(boolean) -> setAutoRefresh
+com.google.android.material.tabs.TabLayout$PagerAdapterObserver -> com.google.android.material.tabs.TabLayout$PagerAdapterObserver:
+    3416:3416:void <init>(com.google.android.material.tabs.TabLayout) -> <init>
+    3420:3421:void onChanged() -> onChanged
+    3425:3426:void onInvalidated() -> onInvalidated
+com.google.android.material.tabs.TabLayout$SlidingTabIndicator -> com.google.android.material.tabs.TabLayout$SlidingTabIndicator:
+    2961:2971:void <init>(com.google.android.material.tabs.TabLayout,android.content.Context) -> <init>
+    2959:2959:void access$1300(com.google.android.material.tabs.TabLayout$SlidingTabIndicator,android.view.View,android.view.View,float) -> access$1300
+    3151:3156:void animateIndicatorToPosition(int,int) -> animateIndicatorToPosition
+    2980:2986:boolean childrenNeedLayout() -> childrenNeedLayout
+    3215:3269:void draw(android.graphics.Canvas) -> draw
+    3011:3011:float getIndicatorPosition() -> getIndicatorPosition
+    3107:3110:void jumpIndicatorToSelectedPosition() -> jumpIndicatorToSelectedPosition
+    3090:3103:void onLayout(boolean,int,int,int,int) -> onLayout
+    3030:3086:void onMeasure(int,int) -> onMeasure
+    3016:3026:void onRtlPropertiesChanged(int) -> onRtlPropertiesChanged
+    2997:3008:void setIndicatorPositionFromTabPosition(int,float) -> setIndicatorPositionFromTabPosition
+    2974:2977:void setSelectedIndicatorHeight(int) -> setSelectedIndicatorHeight
+    3128:3139:void tweenIndicatorPosition(android.view.View,android.view.View,float) -> tweenIndicatorPosition
+    3168:3211:void updateOrRecreateIndicatorAnimation(boolean,int,int) -> updateOrRecreateIndicatorAnimation
+com.google.android.material.tabs.TabLayout$SlidingTabIndicator$1 -> com.google.android.material.tabs.TabLayout$SlidingTabIndicator$1:
+    3179:3179:void <init>(com.google.android.material.tabs.TabLayout$SlidingTabIndicator,android.view.View,android.view.View) -> <init>
+    3182:3183:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.tabs.TabLayout$SlidingTabIndicator$2 -> com.google.android.material.tabs.TabLayout$SlidingTabIndicator$2:
+    3194:3194:void <init>(com.google.android.material.tabs.TabLayout$SlidingTabIndicator,int) -> <init>
+    3202:3203:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    3197:3198:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.tabs.TabLayout$Tab -> com.google.android.material.tabs.TabLayout$Tab:
+    1969:1982:void <init>() -> <init>
+    1953:1953:int access$000(com.google.android.material.tabs.TabLayout$Tab) -> access$000
+    1953:1953:int access$1100(com.google.android.material.tabs.TabLayout$Tab) -> access$1100
+    1953:1953:java.lang.CharSequence access$200(com.google.android.material.tabs.TabLayout$Tab) -> access$200
+    1953:1953:java.lang.CharSequence access$300(com.google.android.material.tabs.TabLayout$Tab) -> access$300
+    2200:2200:com.google.android.material.badge.BadgeDrawable getBadge() -> getBadge
+    2304:2304:java.lang.CharSequence getContentDescription() -> getContentDescription
+    2031:2031:android.view.View getCustomView() -> getCustomView
+    2077:2077:android.graphics.drawable.Drawable getIcon() -> getIcon
+    2020:2020:int getId() -> getId
+    2183:2183:com.google.android.material.badge.BadgeDrawable getOrCreateBadge() -> getOrCreateBadge
+    2087:2087:int getPosition() -> getPosition
+    2241:2241:int getTabLabelVisibility() -> getTabLabelVisibility
+    1987:1987:java.lang.Object getTag() -> getTag
+    2101:2101:java.lang.CharSequence getText() -> getText
+    2254:2257:boolean isSelected() -> isSelected
+    2191:2192:void removeBadge() -> removeBadge
+    2314:2323:void reset() -> reset
+    2246:2250:void select() -> select
+    2271:2274:com.google.android.material.tabs.TabLayout$Tab setContentDescription(int) -> setContentDescription
+    2288:2290:com.google.android.material.tabs.TabLayout$Tab setContentDescription(java.lang.CharSequence) -> setContentDescription
+    2047:2049:com.google.android.material.tabs.TabLayout$Tab setCustomView(android.view.View) -> setCustomView
+    2066:2067:com.google.android.material.tabs.TabLayout$Tab setCustomView(int) -> setCustomView
+    2112:2123:com.google.android.material.tabs.TabLayout$Tab setIcon(android.graphics.drawable.Drawable) -> setIcon
+    2134:2137:com.google.android.material.tabs.TabLayout$Tab setIcon(int) -> setIcon
+    2011:2015:com.google.android.material.tabs.TabLayout$Tab setId(int) -> setId
+    2091:2092:void setPosition(int) -> setPosition
+    2218:2229:com.google.android.material.tabs.TabLayout$Tab setTabLabelVisibility(int) -> setTabLabelVisibility
+    1998:1999:com.google.android.material.tabs.TabLayout$Tab setTag(java.lang.Object) -> setTag
+    2149:2157:com.google.android.material.tabs.TabLayout$Tab setText(java.lang.CharSequence) -> setText
+    2169:2172:com.google.android.material.tabs.TabLayout$Tab setText(int) -> setText
+    2308:2311:void updateView() -> updateView
+com.google.android.material.tabs.TabLayout$TabLayoutOnPageChangeListener -> com.google.android.material.tabs.TabLayout$TabLayoutOnPageChangeListener:
+    3339:3341:void <init>(com.google.android.material.tabs.TabLayout) -> <init>
+    3345:3347:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    3352:3365:void onPageScrolled(int,float,int) -> onPageScrolled
+    3369:3381:void onPageSelected(int) -> onPageSelected
+    3384:3385:void reset() -> reset
+com.google.android.material.tabs.TabLayout$TabView -> com.google.android.material.tabs.TabLayout$TabView:
+    2339:2351:void <init>(com.google.android.material.tabs.TabLayout,android.content.Context) -> <init>
+    2327:2327:void access$100(com.google.android.material.tabs.TabLayout$TabView,android.content.Context) -> access$100
+    2327:2327:void access$1000(com.google.android.material.tabs.TabLayout$TabView,android.view.View) -> access$1000
+    2327:2327:void access$400(com.google.android.material.tabs.TabLayout$TabView,android.graphics.Canvas) -> access$400
+    2327:2327:boolean access$500(com.google.android.material.tabs.TabLayout$TabView) -> access$500
+    2327:2327:com.google.android.material.badge.BadgeDrawable access$600(com.google.android.material.tabs.TabLayout$TabView) -> access$600
+    2327:2327:com.google.android.material.badge.BadgeDrawable access$700(com.google.android.material.tabs.TabLayout$TabView) -> access$700
+    2327:2327:void access$800(com.google.android.material.tabs.TabLayout$TabView) -> access$800
+    2327:2327:com.google.android.material.badge.BadgeDrawable access$900(com.google.android.material.tabs.TabLayout$TabView) -> access$900
+    2718:2739:void addOnLayoutChangeListener(android.view.View) -> addOnLayoutChangeListener
+    2955:2955:float approximateLineWidth(android.text.Layout,int,float) -> approximateLineWidth
+    2799:2806:void clipViewToPaddingForBadge(boolean) -> clipViewToPaddingForBadge
+    2678:2683:android.widget.FrameLayout createPreApi18BadgeAnchorRoot() -> createPreApi18BadgeAnchorRoot
+    2409:2413:void drawBackground(android.graphics.Canvas) -> drawBackground
+    2417:2428:void drawableStateChanged() -> drawableStateChanged
+    2707:2707:com.google.android.material.badge.BadgeDrawable getBadge() -> getBadge
+    2933:2945:int getContentHeight() -> getContentHeight
+    2911:2923:int getContentWidth() -> getContentWidth
+    2898:2901:android.widget.FrameLayout getCustomParentForBadge(android.view.View) -> getCustomParentForBadge
+    2695:2702:com.google.android.material.badge.BadgeDrawable getOrCreateBadge() -> getOrCreateBadge
+    2950:2950:com.google.android.material.tabs.TabLayout$Tab getTab() -> getTab
+    2893:2893:boolean hasBadgeDrawable() -> hasBadgeDrawable
+    2651:2661:void inflateAndAddDefaultIconView() -> inflateAndAddDefaultIconView
+    2664:2674:void inflateAndAddDefaultTextView() -> inflateAndAddDefaultTextView
+    2471:2491:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    2495:2556:void onMeasure(int,int) -> onMeasure
+    2432:2441:boolean performClick() -> performClick
+    2711:2715:void removeBadge() -> removeBadge
+    2566:2568:void reset() -> reset
+    2447:2467:void setSelected(boolean) -> setSelected
+    2559:2563:void setTab(com.google.android.material.tabs.TabLayout$Tab) -> setTab
+    2774:2783:void tryAttachBadgeToAnchor(android.view.View) -> tryAttachBadgeToAnchor
+    2786:2794:void tryRemoveBadgeFromAnchor() -> tryRemoveBadgeFromAnchor
+    2742:2771:void tryUpdateBadgeAnchor() -> tryUpdateBadgeAnchor
+    2887:2890:void tryUpdateBadgeDrawableBounds(android.view.View) -> tryUpdateBadgeDrawableBounds
+    2571:2648:void update() -> update
+    2354:2396:void updateBackgroundDrawable(android.content.Context) -> updateBackgroundDrawable
+    2809:2815:void updateOrientation() -> updateOrientation
+    2819:2883:void updateTextAndIcon(android.widget.TextView,android.widget.ImageView) -> updateTextAndIcon
+com.google.android.material.tabs.TabLayout$TabView$1 -> com.google.android.material.tabs.TabLayout$TabView$1:
+    2722:2722:void <init>(com.google.android.material.tabs.TabLayout$TabView,android.view.View) -> <init>
+    2734:2737:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.google.android.material.tabs.TabLayout$ViewPagerOnTabSelectedListener -> com.google.android.material.tabs.TabLayout$ViewPagerOnTabSelectedListener:
+    3395:3397:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    3412:3412:void onTabReselected(com.google.android.material.tabs.TabLayout$Tab) -> onTabReselected
+    3401:3402:void onTabSelected(com.google.android.material.tabs.TabLayout$Tab) -> onTabSelected
+    3407:3407:void onTabUnselected(com.google.android.material.tabs.TabLayout$Tab) -> onTabUnselected
+com.google.android.material.tabs.TabLayoutMediator -> com.google.android.material.tabs.TabLayoutMediator:
+    79:80:void <init>(com.google.android.material.tabs.TabLayout,androidx.viewpager2.widget.ViewPager2,com.google.android.material.tabs.TabLayoutMediator$TabConfigurationStrategy) -> <init>
+    87:88:void <init>(com.google.android.material.tabs.TabLayout,androidx.viewpager2.widget.ViewPager2,boolean,com.google.android.material.tabs.TabLayoutMediator$TabConfigurationStrategy) -> <init>
+    95:101:void <init>(com.google.android.material.tabs.TabLayout,androidx.viewpager2.widget.ViewPager2,boolean,boolean,com.google.android.material.tabs.TabLayoutMediator$TabConfigurationStrategy) -> <init>
+    112:142:void attach() -> attach
+    150:160:void detach() -> detach
+    166:166:boolean isAttached() -> isAttached
+    171:189:void populateTabsFromPagerAdapter() -> populateTabsFromPagerAdapter
+com.google.android.material.tabs.TabLayoutMediator$PagerAdapterObserver -> com.google.android.material.tabs.TabLayoutMediator$PagerAdapterObserver:
+    283:283:void <init>(com.google.android.material.tabs.TabLayoutMediator) -> <init>
+    287:288:void onChanged() -> onChanged
+    292:293:void onItemRangeChanged(int,int) -> onItemRangeChanged
+    297:298:void onItemRangeChanged(int,int,java.lang.Object) -> onItemRangeChanged
+    302:303:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    312:313:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    307:308:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+com.google.android.material.tabs.TabLayoutMediator$TabLayoutOnPageChangeCallback -> com.google.android.material.tabs.TabLayoutMediator$TabLayoutOnPageChangeCallback:
+    204:207:void <init>(com.google.android.material.tabs.TabLayout) -> <init>
+    211:213:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    217:230:void onPageScrolled(int,float,int) -> onPageScrolled
+    234:246:void onPageSelected(int) -> onPageSelected
+    249:250:void reset() -> reset
+com.google.android.material.tabs.TabLayoutMediator$ViewPagerOnTabSelectedListener -> com.google.android.material.tabs.TabLayoutMediator$ViewPagerOnTabSelectedListener:
+    261:264:void <init>(androidx.viewpager2.widget.ViewPager2,boolean) -> <init>
+    279:279:void onTabReselected(com.google.android.material.tabs.TabLayout$Tab) -> onTabReselected
+    268:269:void onTabSelected(com.google.android.material.tabs.TabLayout$Tab) -> onTabSelected
+    274:274:void onTabUnselected(com.google.android.material.tabs.TabLayout$Tab) -> onTabUnselected
+com.google.android.material.textfield.ClearTextEndIconDelegate -> com.google.android.material.textfield.ClearTextEndIconDelegate:
+    46:109:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    40:40:boolean access$000(android.text.Editable) -> access$000
+    40:40:void access$100(com.google.android.material.textfield.ClearTextEndIconDelegate,boolean) -> access$100
+    40:40:android.view.View$OnFocusChangeListener access$200(com.google.android.material.textfield.ClearTextEndIconDelegate) -> access$200
+    40:40:android.text.TextWatcher access$300(com.google.android.material.textfield.ClearTextEndIconDelegate) -> access$300
+    143:157:void animateIcon(boolean) -> animateIcon
+    182:194:android.animation.ValueAnimator getAlphaAnimator(float[]) -> getAlphaAnimator
+    198:210:android.animation.ValueAnimator getScaleAnimator() -> getScaleAnimator
+    214:214:boolean hasText(android.text.Editable) -> hasText
+    160:179:void initAnimators() -> initAnimators
+    113:132:void initialize() -> initialize
+    136:140:void onSuffixVisibilityChanged(boolean) -> onSuffixVisibilityChanged
+com.google.android.material.textfield.ClearTextEndIconDelegate$1 -> com.google.android.material.textfield.ClearTextEndIconDelegate$1:
+    47:47:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    56:60:void afterTextChanged(android.text.Editable) -> afterTextChanged
+    49:49:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+    52:52:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+com.google.android.material.textfield.ClearTextEndIconDelegate$2 -> com.google.android.material.textfield.ClearTextEndIconDelegate$2:
+    63:63:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    66:68:void onFocusChange(android.view.View,boolean) -> onFocusChange
+com.google.android.material.textfield.ClearTextEndIconDelegate$3 -> com.google.android.material.textfield.ClearTextEndIconDelegate$3:
+    71:71:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    74:81:void onEditTextAttached(com.google.android.material.textfield.TextInputLayout) -> onEditTextAttached
+com.google.android.material.textfield.ClearTextEndIconDelegate$4 -> com.google.android.material.textfield.ClearTextEndIconDelegate$4:
+    84:84:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    87:101:void onEndIconChanged(com.google.android.material.textfield.TextInputLayout,int) -> onEndIconChanged
+com.google.android.material.textfield.ClearTextEndIconDelegate$4$1 -> com.google.android.material.textfield.ClearTextEndIconDelegate$4$1:
+    91:91:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate$4,android.widget.EditText) -> <init>
+    94:95:void run() -> run
+com.google.android.material.textfield.ClearTextEndIconDelegate$5 -> com.google.android.material.textfield.ClearTextEndIconDelegate$5:
+    118:118:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    121:127:void onClick(android.view.View) -> onClick
+com.google.android.material.textfield.ClearTextEndIconDelegate$6 -> com.google.android.material.textfield.ClearTextEndIconDelegate$6:
+    165:165:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    168:169:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.textfield.ClearTextEndIconDelegate$7 -> com.google.android.material.textfield.ClearTextEndIconDelegate$7:
+    173:173:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    176:177:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.textfield.ClearTextEndIconDelegate$8 -> com.google.android.material.textfield.ClearTextEndIconDelegate$8:
+    186:186:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    189:191:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.textfield.ClearTextEndIconDelegate$9 -> com.google.android.material.textfield.ClearTextEndIconDelegate$9:
+    202:202:void <init>(com.google.android.material.textfield.ClearTextEndIconDelegate) -> <init>
+    205:208:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.textfield.CustomEndIconDelegate -> com.google.android.material.textfield.CustomEndIconDelegate:
+    27:28:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    32:34:void initialize() -> initialize
+com.google.android.material.textfield.CutoutDrawable -> com.google.android.material.textfield.CutoutDrawable:
+    44:45:void <init>() -> <init>
+    48:52:void <init>(com.google.android.material.shape.ShapeAppearanceModel) -> <init>
+    87:94:void draw(android.graphics.Canvas) -> draw
+    61:61:boolean hasCutout() -> hasCutout
+    121:124:void postDraw(android.graphics.Canvas) -> postDraw
+    97:109:void preDraw(android.graphics.Canvas) -> preDraw
+    82:83:void removeCutout() -> removeCutout
+    112:118:void saveCanvasLayer(android.graphics.Canvas) -> saveCanvasLayer
+    67:74:void setCutout(float,float,float,float) -> setCutout
+    77:78:void setCutout(android.graphics.RectF) -> setCutout
+    55:58:void setPaintStyles() -> setPaintStyles
+    127:127:boolean useHardwareLayer(android.graphics.drawable.Drawable$Callback) -> useHardwareLayer
+com.google.android.material.textfield.DropdownMenuEndIconDelegate -> com.google.android.material.textfield.DropdownMenuEndIconDelegate:
+    69:69:void <clinit>() -> <clinit>
+    73:203:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    67:67:android.widget.AutoCompleteTextView access$000(android.widget.EditText) -> access$000
+    67:67:android.view.accessibility.AccessibilityManager access$100(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$100
+    67:67:com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate access$1000(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$1000
+    67:67:android.view.View$OnFocusChangeListener access$1100(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$1100
+    67:67:boolean access$1200() -> access$1200
+    67:67:boolean access$1300(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$1300
+    67:67:long access$1402(com.google.android.material.textfield.DropdownMenuEndIconDelegate,long) -> access$1402
+    67:67:boolean access$1500(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$1500
+    67:67:android.animation.ValueAnimator access$1600(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$1600
+    67:67:boolean access$200(android.widget.EditText) -> access$200
+    67:67:void access$300(com.google.android.material.textfield.DropdownMenuEndIconDelegate,boolean) -> access$300
+    67:67:boolean access$402(com.google.android.material.textfield.DropdownMenuEndIconDelegate,boolean) -> access$402
+    67:67:void access$500(com.google.android.material.textfield.DropdownMenuEndIconDelegate,android.widget.AutoCompleteTextView) -> access$500
+    67:67:void access$600(com.google.android.material.textfield.DropdownMenuEndIconDelegate,android.widget.AutoCompleteTextView) -> access$600
+    67:67:void access$700(com.google.android.material.textfield.DropdownMenuEndIconDelegate,android.widget.AutoCompleteTextView) -> access$700
+    67:67:void access$800(com.google.android.material.textfield.DropdownMenuEndIconDelegate,android.widget.AutoCompleteTextView) -> access$800
+    67:67:android.text.TextWatcher access$900(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> access$900
+    311:328:void addRippleEffect(android.widget.AutoCompleteTextView) -> addRippleEffect
+    366:388:void addRippleEffectOnFilledLayout(android.widget.AutoCompleteTextView,int,int[][],com.google.android.material.shape.MaterialShapeDrawable) -> addRippleEffectOnFilledLayout
+    336:359:void addRippleEffectOnOutlinedLayout(android.widget.AutoCompleteTextView,int,int[][],com.google.android.material.shape.MaterialShapeDrawable) -> addRippleEffectOnOutlinedLayout
+    444:450:android.widget.AutoCompleteTextView castAutoCompleteTextViewOrThrow(android.widget.EditText) -> castAutoCompleteTextViewOrThrow
+    479:491:android.animation.ValueAnimator getAlphaAnimator(int,float[]) -> getAlphaAnimator
+    424:434:com.google.android.material.shape.MaterialShapeDrawable getPopUpMaterialShapeDrawable(float,float,float,int) -> getPopUpMaterialShapeDrawable
+    466:476:void initAnimators() -> initAnimators
+    207:261:void initialize() -> initialize
+    270:270:boolean isBoxBackgroundModeSupported(int) -> isBoxBackgroundModeSupported
+    438:439:boolean isDropdownPopupActive() -> isDropdownPopupActive
+    454:454:boolean isEditable(android.widget.EditText) -> isEditable
+    458:463:void setEndIconChecked(boolean) -> setEndIconChecked
+    299:307:void setPopupBackground(android.widget.AutoCompleteTextView) -> setPopupBackground
+    394:419:void setUpDropdownShowHideBehavior(android.widget.AutoCompleteTextView) -> setUpDropdownShowHideBehavior
+    265:265:boolean shouldTintIconOnError() -> shouldTintIconOnError
+    274:296:void showHideDropdown(android.widget.AutoCompleteTextView) -> showHideDropdown
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$1 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$1:
+    74:74:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    78:95:void afterTextChanged(android.text.Editable) -> afterTextChanged
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$1$1 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$1$1:
+    87:87:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate$1,android.widget.AutoCompleteTextView) -> <init>
+    90:93:void run() -> run
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$10 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$10:
+    483:483:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    486:488:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$2 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$2:
+    98:98:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    101:106:void onFocusChange(android.view.View,boolean) -> onFocusChange
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$3 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$3:
+    109:109:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate,com.google.android.material.textfield.TextInputLayout) -> <init>
+    113:123:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+    127:138:void onPopulateAccessibilityEvent(android.view.View,android.view.accessibility.AccessibilityEvent) -> onPopulateAccessibilityEvent
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$4 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$4:
+    141:141:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    144:161:void onEditTextAttached(com.google.android.material.textfield.TextInputLayout) -> onEditTextAttached
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$5 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$5:
+    167:167:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    170:189:void onEndIconChanged(com.google.android.material.textfield.TextInputLayout,int) -> onEndIconChanged
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$5$1 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$5$1:
+    175:175:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate$5,android.widget.AutoCompleteTextView) -> <init>
+    178:179:void run() -> run
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$6 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$6:
+    249:249:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    252:254:void onClick(android.view.View) -> onClick
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$7 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$7:
+    395:395:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate,android.widget.AutoCompleteTextView) -> <init>
+    398:404:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$8 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$8:
+    410:410:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    413:416:void onDismiss() -> onDismiss
+com.google.android.material.textfield.DropdownMenuEndIconDelegate$9 -> com.google.android.material.textfield.DropdownMenuEndIconDelegate$9:
+    469:469:void <init>(com.google.android.material.textfield.DropdownMenuEndIconDelegate) -> <init>
+    472:474:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.textfield.EndIconDelegate -> com.google.android.material.textfield.EndIconDelegate:
+    36:40:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    61:61:boolean isBoxBackgroundModeSupported(int) -> isBoxBackgroundModeSupported
+    70:70:void onSuffixVisibilityChanged(boolean) -> onSuffixVisibilityChanged
+    52:52:boolean shouldTintIconOnError() -> shouldTintIconOnError
+com.google.android.material.textfield.IndicatorViewController -> com.google.android.material.textfield.IndicatorViewController:
+    121:126:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    62:62:int access$002(com.google.android.material.textfield.IndicatorViewController,int) -> access$002
+    62:62:android.animation.Animator access$102(com.google.android.material.textfield.IndicatorViewController,android.animation.Animator) -> access$102
+    62:62:android.widget.TextView access$200(com.google.android.material.textfield.IndicatorViewController) -> access$200
+    391:416:void addIndicator(android.widget.TextView,int) -> addIndicator
+    356:377:void adjustIndicatorPadding() -> adjustIndicatorPadding
+    380:380:boolean canAdjustIndicatorPadding() -> canAdjustIndicatorPadding
+    333:336:void cancelCaptionAnimator() -> cancelCaptionAnimator
+    303:314:void createCaptionAnimators(java.util.List,boolean,android.widget.TextView,int,int,int) -> createCaptionAnimators
+    317:321:android.animation.ObjectAnimator createCaptionOpacityAnimator(android.widget.TextView,boolean) -> createCaptionOpacityAnimator
+    325:329:android.animation.ObjectAnimator createCaptionTranslationYAnimator(android.widget.TextView) -> createCaptionTranslationYAnimator
+    515:515:boolean errorIsDisplayed() -> errorIsDisplayed
+    519:519:boolean errorShouldBeShown() -> errorShouldBeShown
+    344:352:android.widget.TextView getCaptionViewFromDisplayState(int) -> getCaptionViewFromDisplayState
+    599:599:java.lang.CharSequence getErrorContentDescription() -> getErrorContentDescription
+    544:544:java.lang.CharSequence getErrorText() -> getErrorText
+    568:568:int getErrorViewCurrentTextColor() -> getErrorViewCurrentTextColor
+    573:573:android.content.res.ColorStateList getErrorViewTextColors() -> getErrorViewTextColors
+    548:548:java.lang.CharSequence getHelperText() -> getHelperText
+    609:609:android.content.res.ColorStateList getHelperTextViewColors() -> getHelperTextViewColors
+    604:604:int getHelperTextViewCurrentTextColor() -> getHelperTextViewCurrentTextColor
+    385:386:int getIndicatorPadding(boolean,int,int) -> getIndicatorPadding
+    529:529:boolean helperTextIsDisplayed() -> helperTextIsDisplayed
+    533:533:boolean helperTextShouldBeShown() -> helperTextShouldBeShown
+    166:180:void hideError() -> hideError
+    142:150:void hideHelperText() -> hideHelperText
+    523:525:boolean isCaptionStateError(int) -> isCaptionStateError
+    537:539:boolean isCaptionStateHelperText(int) -> isCaptionStateHelperText
+    339:339:boolean isCaptionView(int) -> isCaptionView
+    473:473:boolean isErrorEnabled() -> isErrorEnabled
+    477:477:boolean isHelperTextEnabled() -> isHelperTextEnabled
+    419:430:void removeIndicator(android.widget.TextView,int) -> removeIndicator
+    270:293:void setCaptionViewVisibilities(int,int) -> setCaptionViewVisibilities
+    591:595:void setErrorContentDescription(java.lang.CharSequence) -> setErrorContentDescription
+    440:470:void setErrorEnabled(boolean) -> setErrorEnabled
+    584:588:void setErrorTextAppearance(int) -> setErrorTextAppearance
+    577:581:void setErrorViewTextColor(android.content.res.ColorStateList) -> setErrorViewTextColor
+    620:624:void setHelperTextAppearance(int) -> setHelperTextAppearance
+    482:512:void setHelperTextEnabled(boolean) -> setHelperTextEnabled
+    613:617:void setHelperTextViewTextColor(android.content.res.ColorStateList) -> setHelperTextViewTextColor
+    561:564:void setTextViewTypeface(android.widget.TextView,android.graphics.Typeface) -> setTextViewTypeface
+    553:558:void setTypefaces(android.graphics.Typeface) -> setTypefaces
+    433:436:void setViewGroupGoneIfEmpty(android.view.ViewGroup,int) -> setViewGroupGoneIfEmpty
+    192:196:boolean shouldAnimateCaptionView(android.widget.TextView,java.lang.CharSequence) -> shouldAnimateCaptionView
+    153:163:void showError(java.lang.CharSequence) -> showError
+    129:139:void showHelper(java.lang.CharSequence) -> showHelper
+    204:266:void updateCaptionViewsVisibility(int,int,boolean) -> updateCaptionViewsVisibility
+com.google.android.material.textfield.IndicatorViewController$1 -> com.google.android.material.textfield.IndicatorViewController$1:
+    234:234:void <init>(com.google.android.material.textfield.IndicatorViewController,int,android.widget.TextView,int,android.widget.TextView) -> <init>
+    237:250:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    254:257:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.textfield.MaterialAutoCompleteTextView -> com.google.android.material.textfield.MaterialAutoCompleteTextView:
+    65:66:void <init>(android.content.Context) -> <init>
+    70:71:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    62:131:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    56:56:androidx.appcompat.widget.ListPopupWindow access$000(com.google.android.material.textfield.MaterialAutoCompleteTextView) -> access$000
+    56:56:void access$100(com.google.android.material.textfield.MaterialAutoCompleteTextView,java.lang.Object) -> access$100
+    241:248:com.google.android.material.textfield.TextInputLayout findTextInputLayoutAncestor() -> findTextInputLayoutAncestor
+    169:173:java.lang.CharSequence getHint() -> getHint
+    193:236:int measureContentWidth() -> measureContentWidth
+    150:162:void onAttachedToWindow() -> onAttachedToWindow
+    178:190:void onMeasure(int,int) -> onMeasure
+    144:146:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    135:140:void showDropDown() -> showDropDown
+    253:261:void updateText(java.lang.Object) -> updateText
+com.google.android.material.textfield.MaterialAutoCompleteTextView$1 -> com.google.android.material.textfield.MaterialAutoCompleteTextView$1:
+    107:107:void <init>(com.google.android.material.textfield.MaterialAutoCompleteTextView) -> <init>
+    110:127:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+com.google.android.material.textfield.NoEndIconDelegate -> com.google.android.material.textfield.NoEndIconDelegate:
+    26:27:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    31:34:void initialize() -> initialize
+com.google.android.material.textfield.PasswordToggleEndIconDelegate -> com.google.android.material.textfield.PasswordToggleEndIconDelegate:
+    36:82:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    34:34:boolean access$000(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> access$000
+    34:34:android.text.TextWatcher access$100(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> access$100
+    123:125:boolean hasPasswordTransformation() -> hasPasswordTransformation
+    86:120:void initialize() -> initialize
+    129:133:boolean isInputTypePassword(android.widget.EditText) -> isInputTypePassword
+com.google.android.material.textfield.PasswordToggleEndIconDelegate$1 -> com.google.android.material.textfield.PasswordToggleEndIconDelegate$1:
+    37:37:void <init>(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> <init>
+    42:43:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+com.google.android.material.textfield.PasswordToggleEndIconDelegate$2 -> com.google.android.material.textfield.PasswordToggleEndIconDelegate$2:
+    47:47:void <init>(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> <init>
+    50:57:void onEditTextAttached(com.google.android.material.textfield.TextInputLayout) -> onEditTextAttached
+com.google.android.material.textfield.PasswordToggleEndIconDelegate$3 -> com.google.android.material.textfield.PasswordToggleEndIconDelegate$3:
+    60:60:void <init>(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> <init>
+    63:77:void onEndIconChanged(com.google.android.material.textfield.TextInputLayout,int) -> onEndIconChanged
+com.google.android.material.textfield.PasswordToggleEndIconDelegate$3$1 -> com.google.android.material.textfield.PasswordToggleEndIconDelegate$3$1:
+    70:70:void <init>(com.google.android.material.textfield.PasswordToggleEndIconDelegate$3,android.widget.EditText) -> <init>
+    73:74:void run() -> run
+com.google.android.material.textfield.PasswordToggleEndIconDelegate$4 -> com.google.android.material.textfield.PasswordToggleEndIconDelegate$4:
+    91:91:void <init>(com.google.android.material.textfield.PasswordToggleEndIconDelegate) -> <init>
+    94:111:void onClick(android.view.View) -> onClick
+com.google.android.material.textfield.TextInputEditText -> com.google.android.material.textfield.TextInputEditText:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    51:77:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    206:222:java.lang.String getAccessibilityNodeInfoText(com.google.android.material.textfield.TextInputLayout) -> getAccessibilityNodeInfoText
+    153:161:void getFocusedRect(android.graphics.Rect) -> getFocusedRect
+    165:173:boolean getGlobalVisibleRect(android.graphics.Rect,android.graphics.Point) -> getGlobalVisibleRect
+    100:104:java.lang.CharSequence getHint() -> getHint
+    133:134:java.lang.CharSequence getHintFromLayout() -> getHintFromLayout
+    121:128:com.google.android.material.textfield.TextInputLayout getTextInputLayout() -> getTextInputLayout
+    148:148:boolean isTextInputLayoutFocusedRectEnabled() -> isTextInputLayoutFocusedRectEnabled
+    81:93:void onAttachedToWindow() -> onAttachedToWindow
+    110:116:android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) -> onCreateInputConnection
+    194:202:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    178:189:boolean requestRectangleOnScreen(android.graphics.Rect) -> requestRectangleOnScreen
+    141:142:void setTextInputLayoutFocusedRectEnabled(boolean) -> setTextInputLayoutFocusedRectEnabled
+com.google.android.material.textfield.TextInputLayout -> com.google.android.material.textfield.TextInputLayout:
+    181:181:void <clinit>() -> <clinit>
+    424:425:void <init>(android.content.Context) -> <init>
+    428:429:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    198:852:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    179:179:boolean access$000(com.google.android.material.textfield.TextInputLayout) -> access$000
+    179:179:boolean access$100(com.google.android.material.textfield.TextInputLayout) -> access$100
+    179:179:void access$200(com.google.android.material.textfield.TextInputLayout,int) -> access$200
+    179:179:com.google.android.material.internal.CheckableImageButton access$300(com.google.android.material.textfield.TextInputLayout) -> access$300
+    3569:3573:void addOnEditTextAttachedListener(com.google.android.material.textfield.TextInputLayout$OnEditTextAttachedListener) -> addOnEditTextAttachedListener
+    3541:3542:void addOnEndIconChangedListener(com.google.android.material.textfield.TextInputLayout$OnEndIconChangedListener) -> addOnEndIconChangedListener
+    2315:2319:void addPlaceholderTextView() -> addPlaceholderTextView
+    857:874:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    986:1010:void adjustFilledEditTextPaddingForLargeFont() -> adjustFilledEditTextPaddingForLargeFont
+    4300:4317:void animateToExpansionFraction(float) -> animateToExpansionFraction
+    2751:2769:void applyBoxAttributes() -> applyBoxAttributes
+    2773:2781:void applyBoxUnderlineAttributes() -> applyBoxUnderlineAttributes
+    4105:4107:void applyCutoutPadding(android.graphics.RectF) -> applyCutoutPadding
+    3832:3834:void applyEndIconTint() -> applyEndIconTint
+    3946:3961:void applyIconTint(com.google.android.material.internal.CheckableImageButton,boolean,android.content.res.ColorStateList,boolean,android.graphics.PorterDuff$Mode) -> applyIconTint
+    3800:3806:void applyStartIconTint() -> applyStartIconTint
+    932:953:void assignBoxBackgroundByMode() -> assignBoxBackgroundByMode
+    2742:2747:int calculateBoxBackgroundColor() -> calculateBoxBackgroundColor
+    2649:2672:android.graphics.Rect calculateCollapsedTextBounds(android.graphics.Rect) -> calculateCollapsedTextBounds
+    2721:2727:int calculateExpandedLabelBottom(android.graphics.Rect,android.graphics.Rect,float) -> calculateExpandedLabelBottom
+    2713:2716:int calculateExpandedLabelTop(android.graphics.Rect,float) -> calculateExpandedLabelTop
+    2696:2709:android.graphics.Rect calculateExpandedTextBounds(android.graphics.Rect) -> calculateExpandedTextBounds
+    2632:2643:int calculateLabelMarginTop() -> calculateLabelMarginTop
+    2784:2784:boolean canDrawOutlineStroke() -> canDrawOutlineStroke
+    2788:2788:boolean canDrawStroke() -> canDrawStroke
+    3587:3588:void clearOnEditTextAttachedListeners() -> clearOnEditTextAttachedListeners
+    3556:3557:void clearOnEndIconChangedListeners() -> clearOnEndIconChangedListeners
+    4099:4102:void closeCutout() -> closeCutout
+    4051:4067:void collapseHint(boolean) -> collapseHint
+    4070:4070:boolean cutoutEnabled() -> cutoutEnabled
+    4111:4111:boolean cutoutIsOpen() -> cutoutIsOpen
+    3794:3797:void dispatchOnEditTextAttached() -> dispatchOnEditTextAttached
+    3813:3816:void dispatchOnEndIconChanged(int) -> dispatchOnEndIconChanged
+    1351:1387:void dispatchProvideAutofillStructure(android.view.ViewStructure,int) -> dispatchProvideAutofillStructure
+    2937:2940:void dispatchRestoreInstanceState(android.util.SparseArray) -> dispatchRestoreInstanceState
+    4030:4033:void draw(android.graphics.Canvas) -> draw
+    4042:4048:void drawBoxUnderline(android.graphics.Canvas) -> drawBoxUnderline
+    4036:4039:void drawHint(android.graphics.Canvas) -> drawHint
+    4116:4146:void drawableStateChanged() -> drawableStateChanged
+    4280:4296:void expandHint(boolean) -> expandHint
+    1496:1499:int getBaseline() -> getBaseline
+    878:881:com.google.android.material.shape.MaterialShapeDrawable getBoxBackground() -> getBoxBackground
+    1224:1224:int getBoxBackgroundColor() -> getBoxBackgroundColor
+    917:917:int getBoxBackgroundMode() -> getBoxBackgroundMode
+    1308:1308:float getBoxCornerRadiusBottomEnd() -> getBoxCornerRadiusBottomEnd
+    1318:1318:float getBoxCornerRadiusBottomStart() -> getBoxCornerRadiusBottomStart
+    1298:1298:float getBoxCornerRadiusTopEnd() -> getBoxCornerRadiusTopEnd
+    1288:1288:float getBoxCornerRadiusTopStart() -> getBoxCornerRadiusTopStart
+    1107:1107:int getBoxStrokeColor() -> getBoxStrokeColor
+    1157:1157:android.content.res.ColorStateList getBoxStrokeErrorColor() -> getBoxStrokeErrorColor
+    1045:1045:int getBoxStrokeWidth() -> getBoxStrokeWidth
+    1082:1082:int getBoxStrokeWidthFocused() -> getBoxStrokeWidthFocused
+    2577:2577:int getCounterMaxLength() -> getCounterMaxLength
+    2586:2589:java.lang.CharSequence getCounterOverflowDescription() -> getCounterOverflowDescription
+    2150:2150:android.content.res.ColorStateList getCounterOverflowTextColor() -> getCounterOverflowTextColor
+    2107:2107:android.content.res.ColorStateList getCounterTextColor() -> getCounterTextColor
+    1808:1808:android.content.res.ColorStateList getDefaultHintTextColor() -> getDefaultHintTextColor
+    1552:1552:android.widget.EditText getEditText() -> getEditText
+    3493:3493:java.lang.CharSequence getEndIconContentDescription() -> getEndIconContentDescription
+    3789:3790:com.google.android.material.textfield.EndIconDelegate getEndIconDelegate() -> getEndIconDelegate
+    3453:3453:android.graphics.drawable.Drawable getEndIconDrawable() -> getEndIconDrawable
+    3297:3297:int getEndIconMode() -> getEndIconMode
+    3931:3936:com.google.android.material.internal.CheckableImageButton getEndIconToUpdateDummyDrawable() -> getEndIconToUpdateDummyDrawable
+    3785:3785:com.google.android.material.internal.CheckableImageButton getEndIconView() -> getEndIconView
+    2950:2950:java.lang.CharSequence getError() -> getError
+    1940:1940:java.lang.CharSequence getErrorContentDescription() -> getErrorContentDescription
+    1839:1839:int getErrorCurrentTextColors() -> getErrorCurrentTextColors
+    2000:2000:android.graphics.drawable.Drawable getErrorIconDrawable() -> getErrorIconDrawable
+    4341:4341:int getErrorTextCurrentColor() -> getErrorTextCurrentColor
+    2962:2963:java.lang.CharSequence getHelperText() -> getHelperText
+    1916:1916:int getHelperTextCurrentTextColor() -> getHelperTextCurrentTextColor
+    1680:1680:java.lang.CharSequence getHint() -> getHint
+    4336:4336:float getHintCollapsedTextHeight() -> getHintCollapsedTextHeight
+    4331:4331:int getHintCurrentCollapsedTextColor() -> getHintCurrentCollapsedTextColor
+    1789:1789:android.content.res.ColorStateList getHintTextColor() -> getHintTextColor
+    2677:2682:int getLabelLeftBoundAlightWithPrefix(int,boolean) -> getLabelLeftBoundAlightWithPrefix
+    2686:2691:int getLabelRightBoundAlignedWithSuffix(int,boolean) -> getLabelRightBoundAlignedWithSuffix
+    1634:1634:int getMaxWidth() -> getMaxWidth
+    1593:1593:int getMinWidth() -> getMinWidth
+    3678:3678:java.lang.CharSequence getPasswordVisibilityToggleContentDescription() -> getPasswordVisibilityToggleContentDescription
+    3664:3664:android.graphics.drawable.Drawable getPasswordVisibilityToggleDrawable() -> getPasswordVisibilityToggleDrawable
+    2260:2260:java.lang.CharSequence getPlaceholderText() -> getPlaceholderText
+    2371:2371:int getPlaceholderTextAppearance() -> getPlaceholderTextAppearance
+    2348:2348:android.content.res.ColorStateList getPlaceholderTextColor() -> getPlaceholderTextColor
+    2396:2396:java.lang.CharSequence getPrefixText() -> getPrefixText
+    2433:2433:android.content.res.ColorStateList getPrefixTextColor() -> getPrefixTextColor
+    2409:2409:android.widget.TextView getPrefixTextView() -> getPrefixTextView
+    3224:3224:java.lang.CharSequence getStartIconContentDescription() -> getStartIconContentDescription
+    3107:3107:android.graphics.drawable.Drawable getStartIconDrawable() -> getStartIconDrawable
+    2482:2482:java.lang.CharSequence getSuffixText() -> getSuffixText
+    2524:2524:android.content.res.ColorStateList getSuffixTextColor() -> getSuffixTextColor
+    2495:2495:android.widget.TextView getSuffixTextView() -> getSuffixTextView
+    1345:1345:android.graphics.Typeface getTypeface() -> getTypeface
+    3809:3809:boolean hasEndIcon() -> hasEndIcon
+    2308:2312:void hidePlaceholderText() -> hidePlaceholderText
+    2160:2160:boolean isCounterEnabled() -> isCounterEnabled
+    3415:3415:boolean isEndIconCheckable() -> isEndIconCheckable
+    3375:3375:boolean isEndIconVisible() -> isEndIconVisible
+    1863:1863:boolean isErrorEnabled() -> isErrorEnabled
+    4249:4249:boolean isErrorIconVisible() -> isErrorIconVisible
+    2995:2995:boolean isExpandedHintEnabled() -> isExpandedHintEnabled
+    4326:4326:boolean isHelperTextDisplayed() -> isHelperTextDisplayed
+    1910:1910:boolean isHelperTextEnabled() -> isHelperTextEnabled
+    2974:2974:boolean isHintAnimationEnabled() -> isHintAnimationEnabled
+    1733:1733:boolean isHintEnabled() -> isHintEnabled
+    4321:4321:boolean isHintExpanded() -> isHintExpanded
+    3689:3689:boolean isPasswordVisibilityToggleEnabled() -> isPasswordVisibilityToggleEnabled
+    1745:1745:boolean isProvidingHint() -> isProvidingHint
+    2731:2732:boolean isSingleLineFilledTextField() -> isSingleLineFilledTextField
+    3184:3184:boolean isStartIconCheckable() -> isStartIconCheckable
+    3153:3153:boolean isStartIconVisible() -> isStartIconVisible
+    4268:4276:int[] mergeIconState(com.google.android.material.internal.CheckableImageButton) -> mergeIconState
+    921:929:void onApplyBoxBackgroundMode() -> onApplyBoxBackgroundMode
+    3995:4019:void onLayout(boolean,int,int,int,int) -> onLayout
+    3014:3030:void onMeasure(int,int) -> onMeasure
+    2910:2933:void onRestoreInstanceState(android.os.Parcelable) -> onRestoreInstanceState
+    2896:2905:android.os.Parcelable onSaveInstanceState() -> onSaveInstanceState
+    4074:4088:void openCutout() -> openCutout
+    3761:3767:void passwordVisibilityToggleRequested(boolean) -> passwordVisibilityToggleRequested
+    2562:2569:void recursiveSetEnabled(android.view.ViewGroup,boolean) -> recursiveSetEnabled
+    3392:3393:void refreshEndIconDrawableState() -> refreshEndIconDrawableState
+    3353:3354:void refreshErrorIconDrawableState() -> refreshErrorIconDrawableState
+    4254:4265:void refreshIconDrawableState(com.google.android.material.internal.CheckableImageButton,android.content.res.ColorStateList) -> refreshIconDrawableState
+    3161:3162:void refreshStartIconDrawableState() -> refreshStartIconDrawableState
+    3582:3583:void removeOnEditTextAttachedListener(com.google.android.material.textfield.TextInputLayout$OnEditTextAttachedListener) -> removeOnEditTextAttachedListener
+    3551:3552:void removeOnEndIconChangedListener(com.google.android.material.textfield.TextInputLayout$OnEndIconChangedListener) -> removeOnEndIconChangedListener
+    2322:2325:void removePlaceholderTextView() -> removePlaceholderTextView
+    1185:1192:void setBoxBackgroundColor(int) -> setBoxBackgroundColor
+    1170:1171:void setBoxBackgroundColorResource(int) -> setBoxBackgroundColorResource
+    1204:1215:void setBoxBackgroundColorStateList(android.content.res.ColorStateList) -> setBoxBackgroundColorStateList
+    900:907:void setBoxBackgroundMode(int) -> setBoxBackgroundMode
+    1265:1279:void setBoxCornerRadii(float,float,float,float) -> setBoxCornerRadii
+    1241:1246:void setBoxCornerRadiiResources(int,int,int,int) -> setBoxCornerRadiiResources
+    1094:1098:void setBoxStrokeColor(int) -> setBoxStrokeColor
+    1116:1132:void setBoxStrokeColorStateList(android.content.res.ColorStateList) -> setBoxStrokeColorStateList
+    1143:1147:void setBoxStrokeErrorColor(android.content.res.ColorStateList) -> setBoxStrokeErrorColor
+    1034:1036:void setBoxStrokeWidth(int) -> setBoxStrokeWidth
+    1071:1073:void setBoxStrokeWidthFocused(int) -> setBoxStrokeWidthFocused
+    1059:1060:void setBoxStrokeWidthFocusedResource(int) -> setBoxStrokeWidthFocusedResource
+    1022:1023:void setBoxStrokeWidthResource(int) -> setBoxStrokeWidthResource
+    2047:2067:void setCounterEnabled(boolean) -> setCounterEnabled
+    2170:2180:void setCounterMaxLength(int) -> setCounterMaxLength
+    2118:2122:void setCounterOverflowTextAppearance(int) -> setCounterOverflowTextAppearance
+    2134:2138:void setCounterOverflowTextColor(android.content.res.ColorStateList) -> setCounterOverflowTextColor
+    2077:2081:void setCounterTextAppearance(int) -> setCounterTextAppearance
+    2092:2096:void setCounterTextColor(android.content.res.ColorStateList) -> setCounterTextColor
+    1794:1800:void setDefaultHintTextColor(android.content.res.ColorStateList) -> setDefaultHintTextColor
+    1391:1478:void setEditText(android.widget.EditText) -> setEditText
+    957:960:void setEditTextBoxBackground() -> setEditTextBoxBackground
+    2557:2559:void setEnabled(boolean) -> setEnabled
+    3384:3385:void setEndIconActivated(boolean) -> setEndIconActivated
+    3406:3407:void setEndIconCheckable(boolean) -> setEndIconCheckable
+    3466:3467:void setEndIconContentDescription(int) -> setEndIconContentDescription
+    3480:3483:void setEndIconContentDescription(java.lang.CharSequence) -> setEndIconContentDescription
+    3428:3429:void setEndIconDrawable(int) -> setEndIconDrawable
+    3441:3443:void setEndIconDrawable(android.graphics.drawable.Drawable) -> setEndIconDrawable
+    3272:3286:void setEndIconMode(int) -> setEndIconMode
+    3308:3309:void setEndIconOnClickListener(android.view.View$OnClickListener) -> setEndIconOnClickListener
+    3331:3333:void setEndIconOnLongClickListener(android.view.View$OnLongClickListener) -> setEndIconOnLongClickListener
+    3508:3513:void setEndIconTintList(android.content.res.ColorStateList) -> setEndIconTintList
+    3524:3529:void setEndIconTintMode(android.graphics.PorterDuff$Mode) -> setEndIconTintMode
+    3362:3367:void setEndIconVisible(boolean) -> setEndIconVisible
+    1954:1968:void setError(java.lang.CharSequence) -> setError
+    1930:1931:void setErrorContentDescription(java.lang.CharSequence) -> setErrorContentDescription
+    1819:1820:void setErrorEnabled(boolean) -> setErrorEnabled
+    1977:1979:void setErrorIconDrawable(int) -> setErrorIconDrawable
+    1988:1990:void setErrorIconDrawable(android.graphics.drawable.Drawable) -> setErrorIconDrawable
+    3319:3320:void setErrorIconOnClickListener(android.view.View$OnClickListener) -> setErrorIconOnClickListener
+    3344:3346:void setErrorIconOnLongClickListener(android.view.View$OnLongClickListener) -> setErrorIconOnLongClickListener
+    2010:2020:void setErrorIconTintList(android.content.res.ColorStateList) -> setErrorIconTintList
+    2030:2039:void setErrorIconTintMode(android.graphics.PorterDuff$Mode) -> setErrorIconTintMode
+    4240:4246:void setErrorIconVisible(boolean) -> setErrorIconVisible
+    1828:1829:void setErrorTextAppearance(int) -> setErrorTextAppearance
+    1833:1834:void setErrorTextColor(android.content.res.ColorStateList) -> setErrorTextColor
+    3006:3010:void setExpandedHintEnabled(boolean) -> setExpandedHintEnabled
+    1891:1901:void setHelperText(java.lang.CharSequence) -> setHelperText
+    1853:1854:void setHelperTextColor(android.content.res.ColorStateList) -> setHelperTextColor
+    1874:1875:void setHelperTextEnabled(boolean) -> setHelperTextEnabled
+    1848:1849:void setHelperTextTextAppearance(int) -> setHelperTextTextAppearance
+    1644:1648:void setHint(java.lang.CharSequence) -> setHint
+    1658:1659:void setHint(int) -> setHint
+    2984:2985:void setHintAnimationEnabled(boolean) -> setHintAnimationEnabled
+    1695:1724:void setHintEnabled(boolean) -> setHintEnabled
+    1662:1670:void setHintInternal(java.lang.CharSequence) -> setHintInternal
+    1754:1762:void setHintTextAppearance(int) -> setHintTextAppearance
+    1769:1780:void setHintTextColor(android.content.res.ColorStateList) -> setHintTextColor
+    3979:3991:void setIconClickable(com.google.android.material.internal.CheckableImageButton,android.view.View$OnLongClickListener) -> setIconClickable
+    3967:3969:void setIconOnClickListener(com.google.android.material.internal.CheckableImageButton,android.view.View$OnClickListener,android.view.View$OnLongClickListener) -> setIconOnClickListener
+    3973:3975:void setIconOnLongClickListener(com.google.android.material.internal.CheckableImageButton,android.view.View$OnLongClickListener) -> setIconOnLongClickListener
+    1606:1610:void setMaxWidth(int) -> setMaxWidth
+    1622:1623:void setMaxWidthResource(int) -> setMaxWidthResource
+    1565:1569:void setMinWidth(int) -> setMinWidth
+    1581:1582:void setMinWidthResource(int) -> setMinWidthResource
+    3634:3636:void setPasswordVisibilityToggleContentDescription(int) -> setPasswordVisibilityToggleContentDescription
+    3651:3652:void setPasswordVisibilityToggleContentDescription(java.lang.CharSequence) -> setPasswordVisibilityToggleContentDescription
+    3602:3604:void setPasswordVisibilityToggleDrawable(int) -> setPasswordVisibilityToggleDrawable
+    3618:3619:void setPasswordVisibilityToggleDrawable(android.graphics.drawable.Drawable) -> setPasswordVisibilityToggleDrawable
+    3704:3711:void setPasswordVisibilityToggleEnabled(boolean) -> setPasswordVisibilityToggleEnabled
+    3727:3730:void setPasswordVisibilityToggleTintList(android.content.res.ColorStateList) -> setPasswordVisibilityToggleTintList
+    3743:3746:void setPasswordVisibilityToggleTintMode(android.graphics.PorterDuff$Mode) -> setPasswordVisibilityToggleTintMode
+    2240:2250:void setPlaceholderText(java.lang.CharSequence) -> setPlaceholderText
+    2358:2362:void setPlaceholderTextAppearance(int) -> setPlaceholderTextAppearance
+    2333:2339:void setPlaceholderTextColor(android.content.res.ColorStateList) -> setPlaceholderTextColor
+    2265:2285:void setPlaceholderTextEnabled(boolean) -> setPlaceholderTextEnabled
+    2383:2386:void setPrefixText(java.lang.CharSequence) -> setPrefixText
+    2442:2443:void setPrefixTextAppearance(int) -> setPrefixTextAppearance
+    2423:2424:void setPrefixTextColor(android.content.res.ColorStateList) -> setPrefixTextColor
+    3175:3176:void setStartIconCheckable(boolean) -> setStartIconCheckable
+    3197:3198:void setStartIconContentDescription(int) -> setStartIconContentDescription
+    3211:3214:void setStartIconContentDescription(java.lang.CharSequence) -> setStartIconContentDescription
+    3073:3074:void setStartIconDrawable(int) -> setStartIconDrawable
+    3086:3096:void setStartIconDrawable(android.graphics.drawable.Drawable) -> setStartIconDrawable
+    3118:3119:void setStartIconOnClickListener(android.view.View$OnClickListener) -> setStartIconOnClickListener
+    3130:3132:void setStartIconOnLongClickListener(android.view.View$OnLongClickListener) -> setStartIconOnLongClickListener
+    3239:3244:void setStartIconTintList(android.content.res.ColorStateList) -> setStartIconTintList
+    3255:3260:void setStartIconTintMode(android.graphics.PorterDuff$Mode) -> setStartIconTintMode
+    3140:3145:void setStartIconVisible(boolean) -> setStartIconVisible
+    2469:2472:void setSuffixText(java.lang.CharSequence) -> setSuffixText
+    2533:2534:void setSuffixTextAppearance(int) -> setSuffixTextAppearance
+    2514:2515:void setSuffixTextColor(android.content.res.ColorStateList) -> setSuffixTextColor
+    2607:2629:void setTextAppearanceCompatWithErrorFallback(android.widget.TextView,int) -> setTextAppearanceCompatWithErrorFallback
+    3778:3781:void setTextInputAccessibilityDelegate(com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate) -> setTextInputAccessibilityDelegate
+    1328:1338:void setTypeface(android.graphics.Typeface) -> setTypeface
+    3923:3926:boolean shouldUpdateEndDummyDrawable() -> shouldUpdateEndDummyDrawable
+    3918:3919:boolean shouldUpdateStartDummyDrawable() -> shouldUpdateStartDummyDrawable
+    965:967:boolean shouldUseEditTextBackgroundForBoxBackground() -> shouldUseEditTextBackgroundForBoxBackground
+    2300:2305:void showPlaceholderText() -> showPlaceholderText
+    3819:3829:void tintEndIconOnError(boolean) -> tintEndIconOnError
+    972:983:void updateBoxCollapsedPaddingTop() -> updateBoxCollapsedPaddingTop
+    4022:4026:void updateBoxUnderlineBounds(android.graphics.Rect) -> updateBoxUnderlineBounds
+    2183:2186:void updateCounter() -> updateCounter
+    2189:2213:void updateCounter(int) -> updateCounter
+    2221:2228:void updateCounterContentDescription(android.content.Context,android.widget.TextView,int,int,boolean) -> updateCounterContentDescription
+    2593:2603:void updateCounterTextAppearanceAndColor() -> updateCounterTextAppearanceAndColor
+    4092:4096:void updateCutout() -> updateCutout
+    3841:3914:boolean updateDummyDrawables() -> updateDummyDrawables
+    2794:2823:void updateEditTextBackground() -> updateEditTextBackground
+    3033:3046:boolean updateEditTextHeightBasedOnIcon() -> updateEditTextHeightBasedOnIcon
+    1483:1492:void updateInputLayoutMargins() -> updateInputLayoutMargins
+    1504:1505:void updateLabelState(boolean) -> updateLabelState
+    1508:1547:void updateLabelState(boolean,boolean) -> updateLabelState
+    3050:3061:void updatePlaceholderMeasurementsBasedOnEditText() -> updatePlaceholderMeasurementsBasedOnEditText
+    2288:2289:void updatePlaceholderText() -> updatePlaceholderText
+    2292:2297:void updatePlaceholderText(int) -> updatePlaceholderText
+    2446:2458:void updatePrefixTextViewPadding() -> updatePrefixTextViewPadding
+    2413:2415:void updatePrefixTextVisibility() -> updatePrefixTextVisibility
+    4221:4237:void updateStrokeErrorColor(boolean,boolean) -> updateStrokeErrorColor
+    2537:2550:void updateSuffixTextViewPadding() -> updateSuffixTextViewPadding
+    2499:2506:void updateSuffixTextVisibility() -> updateSuffixTextVisibility
+    4149:4218:void updateTextInputBoxState() -> updateTextInputBoxState
+com.google.android.material.textfield.TextInputLayout$1 -> com.google.android.material.textfield.TextInputLayout$1:
+    1419:1419:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    1422:1429:void afterTextChanged(android.text.Editable) -> afterTextChanged
+    1432:1432:void beforeTextChanged(java.lang.CharSequence,int,int,int) -> beforeTextChanged
+    1435:1435:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+com.google.android.material.textfield.TextInputLayout$2 -> com.google.android.material.textfield.TextInputLayout$2:
+    2920:2920:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    2923:2926:void run() -> run
+com.google.android.material.textfield.TextInputLayout$3 -> com.google.android.material.textfield.TextInputLayout$3:
+    3020:3020:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    3023:3024:void run() -> run
+com.google.android.material.textfield.TextInputLayout$4 -> com.google.android.material.textfield.TextInputLayout$4:
+    4308:4308:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    4311:4312:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate -> com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate:
+    4353:4355:void <init>(com.google.android.material.textfield.TextInputLayout) -> <init>
+    4360:4410:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.textfield.TextInputLayout$SavedState -> com.google.android.material.textfield.TextInputLayout$SavedState:
+    2871:2871:void <clinit>() -> <clinit>
+    2833:2834:void <init>(android.os.Parcelable) -> <init>
+    2837:2843:void <init>(android.os.Parcel,java.lang.ClassLoader) -> <init>
+    2858:2859:java.lang.String toString() -> toString
+    2847:2853:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.textfield.TextInputLayout$SavedState$1 -> com.google.android.material.textfield.TextInputLayout$SavedState$1:
+    2872:2872:void <init>() -> <init>
+    2872:2872:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    2872:2872:java.lang.Object createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2876:2876:com.google.android.material.textfield.TextInputLayout$SavedState createFromParcel(android.os.Parcel,java.lang.ClassLoader) -> createFromParcel
+    2882:2882:com.google.android.material.textfield.TextInputLayout$SavedState createFromParcel(android.os.Parcel) -> createFromParcel
+    2872:2872:java.lang.Object[] newArray(int) -> newArray
+    2888:2888:com.google.android.material.textfield.TextInputLayout$SavedState[] newArray(int) -> newArray
+com.google.android.material.textview.MaterialTextView -> com.google.android.material.textview.MaterialTextView:
+    79:80:void <init>(android.content.Context) -> <init>
+    83:84:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    88:89:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    93:107:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    119:131:void applyLineHeightFromViewAppearance(android.content.res.Resources$Theme,int) -> applyLineHeightFromViewAppearance
+    134:134:boolean canApplyTextAppearanceLineHeight(android.content.Context) -> canApplyTextAppearanceLineHeight
+    172:178:int findViewAppearanceResourceId(android.content.res.Resources$Theme,android.util.AttributeSet,int,int) -> findViewAppearanceResourceId
+    141:147:int readFirstAvailableDimension(android.content.Context,android.content.res.TypedArray,int[]) -> readFirstAvailableDimension
+    111:116:void setTextAppearance(android.content.Context,int) -> setTextAppearance
+    156:167:boolean viewAttrsHasLineHeight(android.content.Context,android.content.res.Resources$Theme,android.util.AttributeSet,int,int) -> viewAttrsHasLineHeight
+com.google.android.material.theme.MaterialComponentsViewInflater -> com.google.android.material.theme.MaterialComponentsViewInflater:
+    39:39:void <init>() -> <init>
+    68:68:androidx.appcompat.widget.AppCompatAutoCompleteTextView createAutoCompleteTextView(android.content.Context,android.util.AttributeSet) -> createAutoCompleteTextView
+    43:43:androidx.appcompat.widget.AppCompatButton createButton(android.content.Context,android.util.AttributeSet) -> createButton
+    49:49:androidx.appcompat.widget.AppCompatCheckBox createCheckBox(android.content.Context,android.util.AttributeSet) -> createCheckBox
+    55:55:androidx.appcompat.widget.AppCompatRadioButton createRadioButton(android.content.Context,android.util.AttributeSet) -> createRadioButton
+    61:61:androidx.appcompat.widget.AppCompatTextView createTextView(android.content.Context,android.util.AttributeSet) -> createTextView
+com.google.android.material.theme.overlay.MaterialThemeOverlay -> com.google.android.material.theme.overlay.MaterialThemeOverlay:
+    48:51:void <clinit>() -> <clinit>
+    45:46:void <init>() -> <init>
+    94:99:int obtainAndroidThemeOverlayId(android.content.Context,android.util.AttributeSet) -> obtainAndroidThemeOverlayId
+    112:118:int obtainMaterialThemeOverlayId(android.content.Context,android.util.AttributeSet,int,int) -> obtainMaterialThemeOverlayId
+    66:84:android.content.Context wrap(android.content.Context,android.util.AttributeSet,int,int) -> wrap
+com.google.android.material.timepicker.ChipTextInputComboView -> com.google.android.material.timepicker.ChipTextInputComboView:
+    58:59:void <init>(android.content.Context) -> <init>
+    62:63:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    67:80:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    49:49:java.lang.String access$100(com.google.android.material.timepicker.ChipTextInputComboView,java.lang.CharSequence) -> access$100
+    49:49:com.google.android.material.chip.Chip access$200(com.google.android.material.timepicker.ChipTextInputComboView) -> access$200
+    145:149:void addInputFilter(android.text.InputFilter) -> addInputFilter
+    123:123:java.lang.String formatText(java.lang.CharSequence) -> formatText
+    152:152:com.google.android.material.textfield.TextInputLayout getTextInput() -> getTextInput
+    92:92:boolean isChecked() -> isChecked
+    176:178:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+    97:106:void setChecked(boolean) -> setChecked
+    156:157:void setChipDelegate(androidx.core.view.AccessibilityDelegateCompat) -> setChipDelegate
+    141:142:void setCursorVisible(boolean) -> setCursorVisible
+    137:138:void setHelperText(java.lang.CharSequence) -> setHelperText
+    128:129:void setOnClickListener(android.view.View$OnClickListener) -> setOnClickListener
+    133:134:void setTag(int,java.lang.Object) -> setTag
+    114:120:void setText(java.lang.CharSequence) -> setText
+    110:111:void toggle() -> toggle
+    83:88:void updateHintLocales() -> updateHintLocales
+com.google.android.material.timepicker.ChipTextInputComboView$TextFormatter -> com.google.android.material.timepicker.ChipTextInputComboView$TextFormatter:
+    159:159:void <init>(com.google.android.material.timepicker.ChipTextInputComboView) -> <init>
+    159:159:void <init>(com.google.android.material.timepicker.ChipTextInputComboView,com.google.android.material.timepicker.ChipTextInputComboView$1) -> <init>
+    165:171:void afterTextChanged(android.text.Editable) -> afterTextChanged
+com.google.android.material.timepicker.ClickActionDelegate -> com.google.android.material.timepicker.ClickActionDelegate:
+    28:32:void <init>(android.content.Context,int) -> <init>
+    36:38:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.timepicker.ClockFaceView -> com.google.android.material.timepicker.ClockFaceView:
+    89:90:void <init>(android.content.Context) -> <init>
+    93:94:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    69:178:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    62:62:com.google.android.material.timepicker.ClockHandView access$000(com.google.android.material.timepicker.ClockFaceView) -> access$000
+    62:62:int access$100(com.google.android.material.timepicker.ClockFaceView) -> access$100
+    62:62:android.util.SparseArray access$200(com.google.android.material.timepicker.ClockFaceView) -> access$200
+    251:266:void findIntersectingTextView() -> findIntersectingTextView
+    269:276:android.graphics.RadialGradient getGradientForTextView(android.graphics.RectF,android.graphics.RectF) -> getGradientForTextView
+    308:308:float max3(float,float,float) -> max3
+    221:229:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    241:243:void onLayout(boolean,int,int,int,int) -> onLayout
+    292:305:void onMeasure(int,int) -> onMeasure
+    284:288:void onRotate(float,boolean) -> onRotate
+    246:248:void setHandRotation(float) -> setHandRotation
+    233:237:void setRadius(int) -> setRadius
+    185:187:void setValues(java.lang.String[],int) -> setValues
+    190:217:void updateTextViews(int) -> updateTextViews
+com.google.android.material.timepicker.ClockFaceView$1 -> com.google.android.material.timepicker.ClockFaceView$1:
+    132:132:void <init>(com.google.android.material.timepicker.ClockFaceView) -> <init>
+    135:142:boolean onPreDraw() -> onPreDraw
+com.google.android.material.timepicker.ClockFaceView$2 -> com.google.android.material.timepicker.ClockFaceView$2:
+    149:149:void <init>(com.google.android.material.timepicker.ClockFaceView) -> <init>
+    153:167:void onInitializeAccessibilityNodeInfo(android.view.View,androidx.core.view.accessibility.AccessibilityNodeInfoCompat) -> onInitializeAccessibilityNodeInfo
+com.google.android.material.timepicker.ClockHandView -> com.google.android.material.timepicker.ClockHandView:
+    87:88:void <init>(android.content.Context) -> <init>
+    91:92:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    67:116:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    47:47:void access$000(com.google.android.material.timepicker.ClockHandView,float,boolean) -> access$000
+    209:210:void addOnRotateListener(com.google.android.material.timepicker.ClockHandView$OnRotateListener) -> addOnRotateListener
+    229:252:void drawSelector(android.graphics.Canvas) -> drawSelector
+    256:256:android.graphics.RectF getCurrentSelectorBox() -> getCurrentSelectorBox
+    334:342:int getDegreesFromXY(float,float) -> getDegreesFromXY
+    218:218:float getHandRotation() -> getHandRotation
+    261:261:int getSelectorRadius() -> getSelectorRadius
+    161:176:android.util.Pair getValuesForAnimation(float) -> getValuesForAnimation
+    319:330:boolean handleTouchInput(float,float,boolean,boolean,boolean) -> handleTouchInput
+    223:226:void onDraw(android.graphics.Canvas) -> onDraw
+    120:123:void onLayout(boolean,int,int,int,int) -> onLayout
+    276:314:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    205:206:void setAnimateOnTouchUp(boolean) -> setAnimateOnTouchUp
+    269:271:void setCircleRadius(int) -> setCircleRadius
+    126:127:void setHandRotation(float) -> setHandRotation
+    130:158:void setHandRotation(float,boolean) -> setHandRotation
+    181:202:void setHandRotationInternal(float,boolean) -> setHandRotationInternal
+    213:214:void setOnActionUpListener(com.google.android.material.timepicker.ClockHandView$OnActionUpListener) -> setOnActionUpListener
+com.google.android.material.timepicker.ClockHandView$1 -> com.google.android.material.timepicker.ClockHandView$1:
+    142:142:void <init>(com.google.android.material.timepicker.ClockHandView) -> <init>
+    145:147:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.timepicker.ClockHandView$2 -> com.google.android.material.timepicker.ClockHandView$2:
+    150:150:void <init>(com.google.android.material.timepicker.ClockHandView) -> <init>
+    153:154:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+com.google.android.material.timepicker.MaterialTimePicker -> com.google.android.material.timepicker.MaterialTimePicker:
+    59:99:void <init>() -> <init>
+    59:59:java.util.Set access$1000(com.google.android.material.timepicker.MaterialTimePicker) -> access$1000
+    59:59:com.google.android.material.timepicker.MaterialTimePicker access$1100(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$1100
+    59:59:int access$500(com.google.android.material.timepicker.MaterialTimePicker) -> access$500
+    59:59:int access$502(com.google.android.material.timepicker.MaterialTimePicker,int) -> access$502
+    59:59:com.google.android.material.button.MaterialButton access$600(com.google.android.material.timepicker.MaterialTimePicker) -> access$600
+    59:59:void access$700(com.google.android.material.timepicker.MaterialTimePicker,com.google.android.material.button.MaterialButton) -> access$700
+    59:59:com.google.android.material.timepicker.TimePickerTextInputPresenter access$800(com.google.android.material.timepicker.MaterialTimePicker) -> access$800
+    59:59:java.util.Set access$900(com.google.android.material.timepicker.MaterialTimePicker) -> access$900
+    396:396:boolean addOnCancelListener(android.content.DialogInterface$OnCancelListener) -> addOnCancelListener
+    420:420:boolean addOnDismissListener(android.content.DialogInterface$OnDismissListener) -> addOnDismissListener
+    368:368:boolean addOnNegativeButtonClickListener(android.view.View$OnClickListener) -> addOnNegativeButtonClickListener
+    347:347:boolean addOnPositiveButtonClickListener(android.view.View$OnClickListener) -> addOnPositiveButtonClickListener
+    412:413:void clearOnCancelListeners() -> clearOnCancelListeners
+    436:437:void clearOnDismissListeners() -> clearOnDismissListeners
+    384:385:void clearOnNegativeButtonClickListeners() -> clearOnNegativeButtonClickListeners
+    363:364:void clearOnPositiveButtonClickListeners() -> clearOnPositiveButtonClickListeners
+    330:337:android.util.Pair dataForMode(int) -> dataForMode
+    125:125:int getHour() -> getHour
+    130:130:int getInputMode() -> getInputMode
+    119:119:int getMinute() -> getMinute
+    440:444:int getThemeResId() -> getThemeResId
+    342:342:com.google.android.material.timepicker.TimePickerClockPresenter getTimePickerClockPresenter() -> getTimePickerClockPresenter
+    310:326:com.google.android.material.timepicker.TimePickerPresenter initializeOrRetrieveActivePresenterForMode(int) -> initializeOrRetrieveActivePresenterForMode
+    103:114:com.google.android.material.timepicker.MaterialTimePicker newInstance(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> newInstance
+    281:285:void onCancel(android.content.DialogInterface) -> onCancel
+    174:176:void onCreate(android.os.Bundle) -> onCreate
+    136:169:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    209:267:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
+    289:294:void onDismiss(android.content.DialogInterface) -> onDismiss
+    180:186:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    272:277:void onStop() -> onStop
+    404:404:boolean removeOnCancelListener(android.content.DialogInterface$OnCancelListener) -> removeOnCancelListener
+    428:428:boolean removeOnDismissListener(android.content.DialogInterface$OnDismissListener) -> removeOnDismissListener
+    376:376:boolean removeOnNegativeButtonClickListener(android.view.View$OnClickListener) -> removeOnNegativeButtonClickListener
+    355:355:boolean removeOnPositiveButtonClickListener(android.view.View$OnClickListener) -> removeOnPositiveButtonClickListener
+    189:201:void restoreState(android.os.Bundle) -> restoreState
+    297:307:void updateInputMode(com.google.android.material.button.MaterialButton) -> updateInputMode
+com.google.android.material.timepicker.MaterialTimePicker$1 -> com.google.android.material.timepicker.MaterialTimePicker$1:
+    213:213:void <init>(com.google.android.material.timepicker.MaterialTimePicker) -> <init>
+    216:219:void onDoubleTap() -> onDoubleTap
+com.google.android.material.timepicker.MaterialTimePicker$2 -> com.google.android.material.timepicker.MaterialTimePicker$2:
+    236:236:void <init>(com.google.android.material.timepicker.MaterialTimePicker) -> <init>
+    239:243:void onClick(android.view.View) -> onClick
+com.google.android.material.timepicker.MaterialTimePicker$3 -> com.google.android.material.timepicker.MaterialTimePicker$3:
+    248:248:void <init>(com.google.android.material.timepicker.MaterialTimePicker) -> <init>
+    251:255:void onClick(android.view.View) -> onClick
+com.google.android.material.timepicker.MaterialTimePicker$4 -> com.google.android.material.timepicker.MaterialTimePicker$4:
+    259:259:void <init>(com.google.android.material.timepicker.MaterialTimePicker) -> <init>
+    262:264:void onClick(android.view.View) -> onClick
+com.google.android.material.timepicker.MaterialTimePicker$Builder -> com.google.android.material.timepicker.MaterialTimePicker$Builder:
+    448:455:void <init>() -> <init>
+    448:448:com.google.android.material.timepicker.TimeModel access$000(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$000
+    448:448:int access$100(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$100
+    448:448:int access$200(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$200
+    448:448:int access$300(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$300
+    448:448:java.lang.CharSequence access$400(com.google.android.material.timepicker.MaterialTimePicker$Builder) -> access$400
+    527:527:com.google.android.material.timepicker.MaterialTimePicker build() -> build
+    472:473:com.google.android.material.timepicker.MaterialTimePicker$Builder setHour(int) -> setHour
+    460:461:com.google.android.material.timepicker.MaterialTimePicker$Builder setInputMode(int) -> setInputMode
+    479:480:com.google.android.material.timepicker.MaterialTimePicker$Builder setMinute(int) -> setMinute
+    520:521:com.google.android.material.timepicker.MaterialTimePicker$Builder setTheme(int) -> setTheme
+    491:496:com.google.android.material.timepicker.MaterialTimePicker$Builder setTimeFormat(int) -> setTimeFormat
+    504:505:com.google.android.material.timepicker.MaterialTimePicker$Builder setTitleText(int) -> setTitleText
+    513:514:com.google.android.material.timepicker.MaterialTimePicker$Builder setTitleText(java.lang.CharSequence) -> setTitleText
+com.google.android.material.timepicker.MaxInputValidator -> com.google.android.material.timepicker.MaxInputValidator:
+    26:28:void <init>(int) -> <init>
+    42:52:java.lang.CharSequence filter(java.lang.CharSequence,int,int,android.text.Spanned,int,int) -> filter
+    35:35:int getMax() -> getMax
+    31:32:void setMax(int) -> setMax
+com.google.android.material.timepicker.RadialViewGroup -> com.google.android.material.timepicker.RadialViewGroup:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    63:77:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    94:99:void addView(android.view.View,int,android.view.ViewGroup$LayoutParams) -> addView
+    80:83:android.graphics.drawable.Drawable createBackground() -> createBackground
+    158:158:int getRadius() -> getRadius
+    119:121:void onFinishInflate() -> onFinishInflate
+    103:106:void onViewRemoved(android.view.View) -> onViewRemoved
+    89:90:void setBackgroundColor(int) -> setBackgroundColor
+    152:154:void setRadius(int) -> setRadius
+    162:162:boolean shouldSkipView(android.view.View) -> shouldSkipView
+    125:149:void updateLayoutParams() -> updateLayoutParams
+    110:115:void updateLayoutParamsAsync() -> updateLayoutParamsAsync
+com.google.android.material.timepicker.RadialViewGroup$1 -> com.google.android.material.timepicker.RadialViewGroup$1:
+    70:70:void <init>(com.google.android.material.timepicker.RadialViewGroup) -> <init>
+    73:74:void run() -> run
+com.google.android.material.timepicker.TimeModel -> com.google.android.material.timepicker.TimeModel:
+    159:159:void <clinit>() -> <clinit>
+    52:53:void <init>() -> <init>
+    56:57:void <init>(int) -> <init>
+    59:67:void <init>(int,int,int,int) -> <init>
+    70:71:void <init>(android.os.Parcel) -> <init>
+    147:147:int describeContents() -> describeContents
+    130:139:boolean equals(java.lang.Object) -> equals
+    183:183:java.lang.String formatText(android.content.res.Resources,java.lang.CharSequence) -> formatText
+    187:190:java.lang.String formatText(android.content.res.Resources,java.lang.CharSequence,java.lang.String) -> formatText
+    99:111:int getHourForDisplay() -> getHourForDisplay
+    119:119:com.google.android.material.timepicker.MaxInputValidator getHourInputValidator() -> getHourInputValidator
+    115:115:com.google.android.material.timepicker.MaxInputValidator getMinuteInputValidator() -> getMinuteInputValidator
+    81:81:int getPeriod(int) -> getPeriod
+    124:125:int hashCode() -> hashCode
+    86:92:void setHour(int) -> setHour
+    75:77:void setHourOfDay(int) -> setHourOfDay
+    95:96:void setMinute(int) -> setMinute
+    172:180:void setPeriod(int) -> setPeriod
+    152:156:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+com.google.android.material.timepicker.TimeModel$1 -> com.google.android.material.timepicker.TimeModel$1:
+    159:159:void <init>() -> <init>
+    159:159:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    162:162:com.google.android.material.timepicker.TimeModel createFromParcel(android.os.Parcel) -> createFromParcel
+    159:159:java.lang.Object[] newArray(int) -> newArray
+    167:167:com.google.android.material.timepicker.TimeModel[] newArray(int) -> newArray
+com.google.android.material.timepicker.TimePickerClockPresenter -> com.google.android.material.timepicker.TimePickerClockPresenter:
+    47:53:void <clinit>() -> <clinit>
+    64:70:void <init>(com.google.android.material.timepicker.TimePickerView,com.google.android.material.timepicker.TimeModel) -> <init>
+    110:110:int getDegreesPerHour() -> getDegreesPerHour
+    106:106:java.lang.String[] getHourClockValues() -> getHourClockValues
+    102:103:void hide() -> hide
+    74:84:void initialize() -> initialize
+    88:93:void invalidate() -> invalidate
+    174:202:void onActionUp(float,boolean) -> onActionUp
+    153:154:void onPeriodChange(int) -> onPeriodChange
+    115:137:void onRotate(float,boolean) -> onRotate
+    148:149:void onSelectionChanged(int) -> onSelectionChanged
+    140:144:void performHapticFeedback(int,int) -> performHapticFeedback
+    157:170:void setSelection(int,boolean) -> setSelection
+    97:98:void show() -> show
+    205:206:void updateTime() -> updateTime
+    210:213:void updateValues() -> updateValues
+    216:219:void updateValues(java.lang.String[],java.lang.String) -> updateValues
+com.google.android.material.timepicker.TimePickerTextInputKeyController -> com.google.android.material.timepicker.TimePickerTextInputKeyController:
+    47:56:void <init>(com.google.android.material.timepicker.ChipTextInputComboView,com.google.android.material.timepicker.ChipTextInputComboView,com.google.android.material.timepicker.TimeModel) -> <init>
+    60:71:void bind() -> bind
+    74:77:void moveSelection(int) -> moveSelection
+    81:86:boolean onEditorAction(android.widget.TextView,int,android.view.KeyEvent) -> onEditorAction
+    119:136:boolean onHourKeyPress(int,android.view.KeyEvent,android.widget.EditText) -> onHourKeyPress
+    91:102:boolean onKey(android.view.View,int,android.view.KeyEvent) -> onKey
+    106:115:boolean onMinuteKeyPress(int,android.view.KeyEvent,android.widget.EditText) -> onMinuteKeyPress
+com.google.android.material.timepicker.TimePickerTextInputPresenter -> com.google.android.material.timepicker.TimePickerTextInputPresenter:
+    58:145:void <init>(android.widget.LinearLayout,com.google.android.material.timepicker.TimeModel) -> <init>
+    54:54:com.google.android.material.timepicker.TimeModel access$000(com.google.android.material.timepicker.TimePickerTextInputPresenter) -> access$000
+    155:157:void addTextWatchers() -> addTextWatchers
+    268:270:void clearCheck() -> clearCheck
+    217:229:void hide() -> hide
+    149:152:void initialize() -> initialize
+    233:234:void invalidate() -> invalidate
+    204:208:void onSelectionChanged(int) -> onSelectionChanged
+    160:162:void removeTextWatchers() -> removeTextWatchers
+    263:265:void resetChecked() -> resetChecked
+    243:260:void setCursorDrawableColor(android.widget.EditText,int) -> setCursorDrawableColor
+    165:173:void setTime(com.google.android.material.timepicker.TimeModel) -> setTime
+    176:189:void setupPeriodToggle() -> setupPeriodToggle
+    212:213:void show() -> show
+    192:200:void updateSelection() -> updateSelection
+com.google.android.material.timepicker.TimePickerTextInputPresenter$1 -> com.google.android.material.timepicker.TimePickerTextInputPresenter$1:
+    59:59:void <init>(com.google.android.material.timepicker.TimePickerTextInputPresenter) -> <init>
+    63:72:void afterTextChanged(android.text.Editable) -> afterTextChanged
+com.google.android.material.timepicker.TimePickerTextInputPresenter$2 -> com.google.android.material.timepicker.TimePickerTextInputPresenter$2:
+    76:76:void <init>(com.google.android.material.timepicker.TimePickerTextInputPresenter) -> <init>
+    80:89:void afterTextChanged(android.text.Editable) -> afterTextChanged
+com.google.android.material.timepicker.TimePickerTextInputPresenter$3 -> com.google.android.material.timepicker.TimePickerTextInputPresenter$3:
+    117:117:void <init>(com.google.android.material.timepicker.TimePickerTextInputPresenter) -> <init>
+    120:121:void onClick(android.view.View) -> onClick
+com.google.android.material.timepicker.TimePickerTextInputPresenter$4 -> com.google.android.material.timepicker.TimePickerTextInputPresenter$4:
+    179:179:void <init>(com.google.android.material.timepicker.TimePickerTextInputPresenter) -> <init>
+    183:185:void onButtonChecked(com.google.android.material.button.MaterialButtonToggleGroup,int,boolean) -> onButtonChecked
+com.google.android.material.timepicker.TimePickerView -> com.google.android.material.timepicker.TimePickerView:
+    91:92:void <init>(android.content.Context) -> <init>
+    95:96:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    76:122:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    55:55:com.google.android.material.timepicker.TimePickerView$OnSelectionChange access$000(com.google.android.material.timepicker.TimePickerView) -> access$000
+    55:55:com.google.android.material.timepicker.TimePickerView$OnPeriodChangeListener access$100(com.google.android.material.timepicker.TimePickerView) -> access$100
+    55:55:com.google.android.material.timepicker.TimePickerView$OnDoubleTapListener access$200(com.google.android.material.timepicker.TimePickerView) -> access$200
+    212:213:void addOnRotateListener(com.google.android.material.timepicker.ClockHandView$OnRotateListener) -> addOnRotateListener
+    246:248:void onAttachedToWindow() -> onAttachedToWindow
+    238:242:void onVisibilityChanged(android.view.View,int) -> onVisibilityChanged
+    207:209:void setActiveSelection(int) -> setActiveSelection
+    188:189:void setAnimateOnTouchUp(boolean) -> setAnimateOnTouchUp
+    180:181:void setHandRotation(float) -> setHandRotation
+    184:185:void setHandRotation(float,boolean) -> setHandRotation
+    162:163:void setHourClickDelegate(androidx.core.view.AccessibilityDelegateCompat) -> setHourClickDelegate
+    158:159:void setMinuteHourDelegate(androidx.core.view.AccessibilityDelegateCompat) -> setMinuteHourDelegate
+    216:217:void setOnActionUpListener(com.google.android.material.timepicker.ClockHandView$OnActionUpListener) -> setOnActionUpListener
+    229:230:void setOnDoubleTapListener(com.google.android.material.timepicker.TimePickerView$OnDoubleTapListener) -> setOnDoubleTapListener
+    220:221:void setOnPeriodChangeListener(com.google.android.material.timepicker.TimePickerView$OnPeriodChangeListener) -> setOnPeriodChangeListener
+    225:226:void setOnSelectionChangeListener(com.google.android.material.timepicker.TimePickerView$OnSelectionChange) -> setOnSelectionChangeListener
+    166:171:void setUpDisplay() -> setUpDisplay
+    175:176:void setValues(java.lang.String[],int) -> setValues
+    126:155:void setupDoubleTap() -> setupDoubleTap
+    233:234:void showToggle() -> showToggle
+    194:203:void updateTime(int,int,int) -> updateTime
+    251:261:void updateToggleConstraints() -> updateToggleConstraints
+com.google.android.material.timepicker.TimePickerView$1 -> com.google.android.material.timepicker.TimePickerView$1:
+    77:77:void <init>(com.google.android.material.timepicker.TimePickerView) -> <init>
+    80:83:void onClick(android.view.View) -> onClick
+com.google.android.material.timepicker.TimePickerView$2 -> com.google.android.material.timepicker.TimePickerView$2:
+    104:104:void <init>(com.google.android.material.timepicker.TimePickerView) -> <init>
+    108:112:void onButtonChecked(com.google.android.material.button.MaterialButtonToggleGroup,int,boolean) -> onButtonChecked
+com.google.android.material.timepicker.TimePickerView$3 -> com.google.android.material.timepicker.TimePickerView$3:
+    129:129:void <init>(com.google.android.material.timepicker.TimePickerView) -> <init>
+    132:137:boolean onDoubleTap(android.view.MotionEvent) -> onDoubleTap
+com.google.android.material.timepicker.TimePickerView$4 -> com.google.android.material.timepicker.TimePickerView$4:
+    142:142:void <init>(com.google.android.material.timepicker.TimePickerView,android.view.GestureDetector) -> <init>
+    145:149:boolean onTouch(android.view.View,android.view.MotionEvent) -> onTouch
+com.google.android.material.tooltip.TooltipDrawable -> com.google.android.material.tooltip.TooltipDrawable:
+    67:68:void <clinit>() -> <clinit>
+    72:145:void <init>(android.content.Context,android.util.AttributeSet,int,int) -> <init>
+    65:65:void access$000(com.google.android.material.tooltip.TooltipDrawable,android.view.View) -> access$000
+    463:469:float calculatePointerOffset() -> calculatePointerOffset
+    524:525:float calculateTextCenterFromBaseline() -> calculateTextCenterFromBaseline
+    508:508:float calculateTextOriginAndAlignment(android.graphics.Rect) -> calculateTextOriginAndAlignment
+    133:133:com.google.android.material.tooltip.TooltipDrawable create(android.content.Context) -> create
+    118:121:com.google.android.material.tooltip.TooltipDrawable createFromAttributes(android.content.Context,android.util.AttributeSet,int,int) -> createFromAttributes
+    128:128:com.google.android.material.tooltip.TooltipDrawable createFromAttributes(android.content.Context,android.util.AttributeSet) -> createFromAttributes
+    473:478:com.google.android.material.shape.EdgeTreatment createMarkerEdge() -> createMarkerEdge
+    387:391:void detachView(android.view.View) -> detachView
+    405:432:void draw(android.graphics.Canvas) -> draw
+    482:497:void drawText(android.graphics.Canvas) -> drawText
+    400:400:int getIntrinsicHeight() -> getIntrinsicHeight
+    395:395:int getIntrinsicWidth() -> getIntrinsicWidth
+    329:329:int getLayoutMargin() -> getLayoutMargin
+    285:285:int getMinHeight() -> getMinHeight
+    263:263:int getMinWidth() -> getMinWidth
+    197:197:java.lang.CharSequence getText() -> getText
+    233:233:com.google.android.material.resources.TextAppearance getTextAppearance() -> getTextAppearance
+    307:307:int getTextPadding() -> getTextPadding
+    500:503:float getTextWidth() -> getTextWidth
+    149:188:void loadFromAttributes(android.util.AttributeSet,int,int) -> loadFromAttributes
+    436:442:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    447:447:boolean onStateChange(int[]) -> onStateChange
+    452:453:void onTextSizeChange() -> onTextSizeChange
+    340:342:void setLayoutMargin(int) -> setLayoutMargin
+    296:298:void setMinHeight(int) -> setMinHeight
+    274:276:void setMinWidth(int) -> setMinWidth
+    373:379:void setRelativeToView(android.view.View) -> setRelativeToView
+    359:364:void setRevealFraction(float) -> setRevealFraction
+    219:224:void setText(java.lang.CharSequence) -> setText
+    253:254:void setTextAppearance(com.google.android.material.resources.TextAppearance) -> setTextAppearance
+    243:244:void setTextAppearanceResource(int) -> setTextAppearanceResource
+    318:320:void setTextPadding(int) -> setTextPadding
+    208:209:void setTextResource(int) -> setTextResource
+    456:460:void updateLocationOnScreen(android.view.View) -> updateLocationOnScreen
+com.google.android.material.tooltip.TooltipDrawable$1 -> com.google.android.material.tooltip.TooltipDrawable$1:
+    80:80:void <init>(com.google.android.material.tooltip.TooltipDrawable) -> <init>
+    92:93:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.google.android.material.transformation.ExpandableBehavior -> com.google.android.material.transformation.ExpandableBehavior:
+    65:67:void <init>() -> <init>
+    65:71:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    43:43:int access$000(com.google.android.material.transformation.ExpandableBehavior) -> access$000
+    150:155:boolean didStateChange(boolean) -> didStateChange
+    139:146:com.google.android.material.expandable.ExpandableWidget findExpandableWidget(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> findExpandableWidget
+    168:177:com.google.android.material.transformation.ExpandableBehavior from(android.view.View,java.lang.Class) -> from
+    126:133:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    98:120:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+com.google.android.material.transformation.ExpandableBehavior$1 -> com.google.android.material.transformation.ExpandableBehavior$1:
+    106:106:void <init>(com.google.android.material.transformation.ExpandableBehavior,android.view.View,int,com.google.android.material.expandable.ExpandableWidget) -> <init>
+    109:114:boolean onPreDraw() -> onPreDraw
+com.google.android.material.transformation.ExpandableTransformationBehavior -> com.google.android.material.transformation.ExpandableTransformationBehavior:
+    46:46:void <init>() -> <init>
+    49:50:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:42:android.animation.AnimatorSet access$002(com.google.android.material.transformation.ExpandableTransformationBehavior,android.animation.AnimatorSet) -> access$002
+    75:97:boolean onExpandedStateChange(android.view.View,android.view.View,boolean,boolean) -> onExpandedStateChange
+com.google.android.material.transformation.ExpandableTransformationBehavior$1 -> com.google.android.material.transformation.ExpandableTransformationBehavior$1:
+    83:83:void <init>(com.google.android.material.transformation.ExpandableTransformationBehavior) -> <init>
+    86:87:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transformation.FabTransformationBehavior -> com.google.android.material.transformation.FabTransformationBehavior:
+    79:89:void <init>() -> <init>
+    79:93:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    710:722:android.view.ViewGroup calculateChildContentContainer(android.view.View) -> calculateChildContentContainer
+    668:686:void calculateChildVisibleBoundsAtEndOfExpansion(android.view.View,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,com.google.android.material.animation.MotionTiming,com.google.android.material.animation.MotionTiming,float,float,float,float,android.graphics.RectF) -> calculateChildVisibleBoundsAtEndOfExpansion
+    626:628:void calculateDependencyWindowBounds(android.view.View,android.graphics.RectF) -> calculateDependencyWindowBounds
+    542:556:android.util.Pair calculateMotionTiming(float,float,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec) -> calculateMotionTiming
+    632:641:float calculateRevealCenterX(android.view.View,android.view.View,com.google.android.material.animation.Positioning) -> calculateRevealCenterX
+    646:655:float calculateRevealCenterY(android.view.View,android.view.View,com.google.android.material.animation.Positioning) -> calculateRevealCenterY
+    561:582:float calculateTranslationX(android.view.View,android.view.View,com.google.android.material.animation.Positioning) -> calculateTranslationX
+    587:608:float calculateTranslationY(android.view.View,android.view.View,com.google.android.material.animation.Positioning) -> calculateTranslationY
+    690:703:float calculateValueOfAnimationAtEndOfExpansion(com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,com.google.android.material.animation.MotionTiming,float,float) -> calculateValueOfAnimationAtEndOfExpansion
+    612:623:void calculateWindowBounds(android.view.View,android.graphics.RectF) -> calculateWindowBounds
+    502:532:void createChildrenFadeAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List,java.util.List) -> createChildrenFadeAnimation
+    462:492:void createColorAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List,java.util.List) -> createColorAnimation
+    230:256:void createDependencyTranslationAnimation(android.view.View,android.view.View,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List) -> createDependencyTranslationAnimation
+    207:222:void createElevationAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List,java.util.List) -> createElevationAnimation
+    377:452:void createExpansionAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,float,float,java.util.List,java.util.List) -> createExpansionAnimation
+    315:365:void createIconFadeAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List,java.util.List) -> createIconFadeAnimation
+    774:785:void createPostFillRadialExpansion(android.view.View,long,long,long,int,int,float,java.util.List) -> createPostFillRadialExpansion
+    751:762:void createPreFillRadialExpansion(android.view.View,long,int,int,float,java.util.List) -> createPreFillRadialExpansion
+    267:305:void createTranslationAnimation(android.view.View,android.view.View,boolean,boolean,com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec,java.util.List,java.util.List,android.graphics.RectF) -> createTranslationAnimation
+    735:739:int getBackgroundTint(android.view.View) -> getBackgroundTint
+    99:109:boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> layoutDependsOn
+    115:120:void onAttachedToLayoutParams(androidx.coordinatorlayout.widget.CoordinatorLayout$LayoutParams) -> onAttachedToLayoutParams
+    129:193:android.animation.AnimatorSet onCreateExpandedStateChangeAnimation(android.view.View,android.view.View,boolean,boolean) -> onCreateExpandedStateChangeAnimation
+    727:730:android.view.ViewGroup toViewGroupOrNull(android.view.View) -> toViewGroupOrNull
+com.google.android.material.transformation.FabTransformationBehavior$1 -> com.google.android.material.transformation.FabTransformationBehavior$1:
+    169:169:void <init>(com.google.android.material.transformation.FabTransformationBehavior,boolean,android.view.View,android.view.View) -> <init>
+    182:188:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    172:178:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.transformation.FabTransformationBehavior$2 -> com.google.android.material.transformation.FabTransformationBehavior$2:
+    342:342:void <init>(com.google.android.material.transformation.FabTransformationBehavior,android.view.View) -> <init>
+    345:346:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transformation.FabTransformationBehavior$3 -> com.google.android.material.transformation.FabTransformationBehavior$3:
+    353:353:void <init>(com.google.android.material.transformation.FabTransformationBehavior,com.google.android.material.circularreveal.CircularRevealWidget,android.graphics.drawable.Drawable) -> <init>
+    362:363:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    357:358:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.transformation.FabTransformationBehavior$4 -> com.google.android.material.transformation.FabTransformationBehavior$4:
+    405:405:void <init>(com.google.android.material.transformation.FabTransformationBehavior,com.google.android.material.circularreveal.CircularRevealWidget) -> <init>
+    410:413:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec -> com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec:
+    788:788:void <init>() -> <init>
+com.google.android.material.transformation.FabTransformationScrimBehavior -> com.google.android.material.transformation.FabTransformationScrimBehavior:
+    52:55:void <init>() -> <init>
+    52:59:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    112:126:void createScrimAnimation(android.view.View,boolean,boolean,java.util.List,java.util.List) -> createScrimAnimation
+    63:63:boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> layoutDependsOn
+    80:103:android.animation.AnimatorSet onCreateExpandedStateChangeAnimation(android.view.View,android.view.View,boolean,boolean) -> onCreateExpandedStateChangeAnimation
+    70:70:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+com.google.android.material.transformation.FabTransformationScrimBehavior$1 -> com.google.android.material.transformation.FabTransformationScrimBehavior$1:
+    88:88:void <init>(com.google.android.material.transformation.FabTransformationScrimBehavior,boolean,android.view.View) -> <init>
+    98:101:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    91:94:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.google.android.material.transformation.FabTransformationSheetBehavior -> com.google.android.material.transformation.FabTransformationSheetBehavior:
+    53:53:void <init>() -> <init>
+    56:57:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    63:72:com.google.android.material.transformation.FabTransformationBehavior$FabTransformationSpec onCreateMotionSpec(android.content.Context,boolean) -> onCreateMotionSpec
+    79:80:boolean onExpandedStateChange(android.view.View,android.view.View,boolean,boolean) -> onExpandedStateChange
+    84:127:void updateImportantForAccessibility(android.view.View,boolean) -> updateImportantForAccessibility
+com.google.android.material.transformation.TransformationChildCard -> com.google.android.material.transformation.TransformationChildCard:
+    39:40:void <init>(android.content.Context) -> <init>
+    43:44:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.google.android.material.transformation.TransformationChildLayout -> com.google.android.material.transformation.TransformationChildLayout:
+    42:43:void <init>(android.content.Context) -> <init>
+    46:47:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.google.android.material.transition.FadeModeEvaluators -> com.google.android.material.transition.FadeModeEvaluators:
+    29:62:void <clinit>() -> <clinit>
+    91:91:void <init>() -> <init>
+    77:87:com.google.android.material.transition.FadeModeEvaluator get(int,boolean) -> get
+com.google.android.material.transition.FadeModeEvaluators$1 -> com.google.android.material.transition.FadeModeEvaluators$1:
+    30:30:void <init>() -> <init>
+    34:36:com.google.android.material.transition.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.FadeModeEvaluators$2 -> com.google.android.material.transition.FadeModeEvaluators$2:
+    41:41:void <init>() -> <init>
+    45:47:com.google.android.material.transition.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.FadeModeEvaluators$3 -> com.google.android.material.transition.FadeModeEvaluators$3:
+    52:52:void <init>() -> <init>
+    56:58:com.google.android.material.transition.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.FadeModeEvaluators$4 -> com.google.android.material.transition.FadeModeEvaluators$4:
+    63:63:void <init>() -> <init>
+    67:72:com.google.android.material.transition.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.FadeModeResult -> com.google.android.material.transition.FadeModeResult:
+    32:36:void <init>(int,int,boolean) -> <init>
+    29:29:com.google.android.material.transition.FadeModeResult endOnTop(int,int) -> endOnTop
+    25:25:com.google.android.material.transition.FadeModeResult startOnTop(int,int) -> startOnTop
+com.google.android.material.transition.FadeProvider -> com.google.android.material.transition.FadeProvider:
+    32:34:void <init>() -> <init>
+    60:61:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    73:74:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    90:107:android.animation.Animator createFadeAnimator(android.view.View,float,float,float,float,float) -> createFadeAnimator
+    42:42:float getIncomingEndThreshold() -> getIncomingEndThreshold
+    54:55:void setIncomingEndThreshold(float) -> setIncomingEndThreshold
+com.google.android.material.transition.FadeProvider$1 -> com.google.android.material.transition.FadeProvider$1:
+    92:92:void <init>(android.view.View,float,float,float,float) -> <init>
+    95:97:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.FadeProvider$2 -> com.google.android.material.transition.FadeProvider$2:
+    100:100:void <init>(android.view.View,float) -> <init>
+    104:105:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.FadeThroughProvider -> com.google.android.material.transition.FadeThroughProvider:
+    36:40:void <init>() -> <init>
+    65:66:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    78:79:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    95:112:android.animation.Animator createFadeThroughAnimator(android.view.View,float,float,float,float,float) -> createFadeThroughAnimator
+    49:49:float getProgressThreshold() -> getProgressThreshold
+    59:60:void setProgressThreshold(float) -> setProgressThreshold
+com.google.android.material.transition.FadeThroughProvider$1 -> com.google.android.material.transition.FadeThroughProvider$1:
+    97:97:void <init>(android.view.View,float,float,float,float) -> <init>
+    100:102:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.FadeThroughProvider$2 -> com.google.android.material.transition.FadeThroughProvider$2:
+    105:105:void <init>(android.view.View,float) -> <init>
+    109:110:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.FitModeEvaluators -> com.google.android.material.transition.FitModeEvaluators:
+    29:75:void <clinit>() -> <clinit>
+    148:148:void <init>() -> <init>
+    124:132:com.google.android.material.transition.FitModeEvaluator get(int,boolean,android.graphics.RectF,android.graphics.RectF) -> get
+    138:145:boolean shouldAutoFitToWidth(boolean,android.graphics.RectF,android.graphics.RectF) -> shouldAutoFitToWidth
+com.google.android.material.transition.FitModeEvaluators$1 -> com.google.android.material.transition.FitModeEvaluators$1:
+    30:30:void <init>() -> <init>
+    69:72:void applyMask(android.graphics.RectF,float,com.google.android.material.transition.FitModeResult) -> applyMask
+    41:53:com.google.android.material.transition.FitModeResult evaluate(float,float,float,float,float,float,float) -> evaluate
+    64:64:boolean shouldMaskStartBounds(com.google.android.material.transition.FitModeResult) -> shouldMaskStartBounds
+com.google.android.material.transition.FitModeEvaluators$2 -> com.google.android.material.transition.FitModeEvaluators$2:
+    76:76:void <init>() -> <init>
+    115:119:void applyMask(android.graphics.RectF,float,com.google.android.material.transition.FitModeResult) -> applyMask
+    87:99:com.google.android.material.transition.FitModeResult evaluate(float,float,float,float,float,float,float) -> evaluate
+    110:110:boolean shouldMaskStartBounds(com.google.android.material.transition.FitModeResult) -> shouldMaskStartBounds
+com.google.android.material.transition.FitModeResult -> com.google.android.material.transition.FitModeResult:
+    33:40:void <init>(float,float,float,float,float,float) -> <init>
+com.google.android.material.transition.Hold -> com.google.android.material.transition.Hold:
+    32:32:void <init>() -> <init>
+    41:41:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    51:51:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+com.google.android.material.transition.MaskEvaluator -> com.google.android.material.transition.MaskEvaluator:
+    37:43:void <init>() -> <init>
+    83:89:void clip(android.graphics.Canvas) -> clip
+    59:79:void evaluate(float,com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,android.graphics.RectF,android.graphics.RectF,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> evaluate
+    96:96:com.google.android.material.shape.ShapeAppearanceModel getCurrentShapeAppearanceModel() -> getCurrentShapeAppearanceModel
+    92:92:android.graphics.Path getPath() -> getPath
+com.google.android.material.transition.MaterialArcMotion -> com.google.android.material.transition.MaterialArcMotion:
+    32:32:void <init>() -> <init>
+    46:49:android.graphics.PointF getControlPoint(float,float,float,float) -> getControlPoint
+    37:42:android.graphics.Path getPath(float,float,float,float) -> getPath
+com.google.android.material.transition.MaterialContainerTransform -> com.google.android.material.transition.MaterialContainerTransform:
+    193:223:void <clinit>() -> <clinit>
+    232:260:void <init>() -> <init>
+    232:265:void <init>(android.content.Context,boolean) -> <init>
+    121:121:boolean access$300(com.google.android.material.transition.MaterialContainerTransform) -> access$300
+    1045:1050:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup buildThresholdsGroup(boolean) -> buildThresholdsGroup
+    1022:1027:android.graphics.RectF calculateDrawableBounds(android.view.View,android.view.View,float,float) -> calculateDrawableBounds
+    806:807:void captureEndValues(androidx.transition.TransitionValues) -> captureEndValues
+    844:846:com.google.android.material.shape.ShapeAppearanceModel captureShapeAppearance(android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel) -> captureShapeAppearance
+    801:802:void captureStartValues(androidx.transition.TransitionValues) -> captureStartValues
+    814:837:void captureValues(androidx.transition.TransitionValues,android.view.View,int,com.google.android.material.shape.ShapeAppearanceModel) -> captureValues
+    888:1003:android.animation.Animator createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> createAnimator
+    486:486:int getContainerColor() -> getContainerColor
+    458:458:int getDrawingViewId() -> getDrawingViewId
+    1017:1017:float getElevationOrDefault(float,android.view.View) -> getElevationOrDefault
+    545:545:int getEndContainerColor() -> getEndContainerColor
+    442:442:float getEndElevation() -> getEndElevation
+    378:378:com.google.android.material.shape.ShapeAppearanceModel getEndShapeAppearanceModel() -> getEndShapeAppearanceModel
+    335:335:android.view.View getEndView() -> getEndView
+    303:303:int getEndViewId() -> getEndViewId
+    632:632:int getFadeMode() -> getFadeMode
+    671:671:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds getFadeProgressThresholds() -> getFadeProgressThresholds
+    652:652:int getFitMode() -> getFitMode
+    713:713:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds getScaleMaskProgressThresholds() -> getScaleMaskProgressThresholds
+    692:692:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds getScaleProgressThresholds() -> getScaleProgressThresholds
+    586:586:int getScrimColor() -> getScrimColor
+    853:871:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearance(android.view.View,com.google.android.material.shape.ShapeAppearanceModel) -> getShapeAppearance
+    735:735:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds getShapeMaskProgressThresholds() -> getShapeMaskProgressThresholds
+    518:518:int getStartContainerColor() -> getStartContainerColor
+    422:422:float getStartElevation() -> getStartElevation
+    353:353:com.google.android.material.shape.ShapeAppearanceModel getStartShapeAppearanceModel() -> getStartShapeAppearanceModel
+    320:320:android.view.View getStartView() -> getStartView
+    270:270:int getStartViewId() -> getStartViewId
+    1058:1064:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup getThresholdsOrDefault(boolean,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup) -> getThresholdsOrDefault
+    614:614:int getTransitionDirection() -> getTransitionDirection
+    796:796:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    876:879:int getTransitionShapeAppearanceResId(android.content.Context) -> getTransitionShapeAppearanceResId
+    775:775:boolean isDrawDebugEnabled() -> isDrawDebugEnabled
+    396:396:boolean isElevationShadowEnabled() -> isElevationShadowEnabled
+    1032:1040:boolean isEntering(android.graphics.RectF,android.graphics.RectF) -> isEntering
+    756:756:boolean isHoldAtEndEnabled() -> isHoldAtEndEnabled
+    1007:1014:void maybeApplyThemeValues(android.content.Context,boolean) -> maybeApplyThemeValues
+    575:578:void setAllContainerColors(int) -> setAllContainerColors
+    508:509:void setContainerColor(int) -> setContainerColor
+    784:785:void setDrawDebugEnabled(boolean) -> setDrawDebugEnabled
+    476:477:void setDrawingViewId(int) -> setDrawingViewId
+    412:413:void setElevationShadowEnabled(boolean) -> setElevationShadowEnabled
+    560:561:void setEndContainerColor(int) -> setEndContainerColor
+    452:453:void setEndElevation(float) -> setEndElevation
+    388:389:void setEndShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setEndShapeAppearanceModel
+    344:345:void setEndView(android.view.View) -> setEndView
+    314:315:void setEndViewId(int) -> setEndViewId
+    646:647:void setFadeMode(int) -> setFadeMode
+    682:683:void setFadeProgressThresholds(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> setFadeProgressThresholds
+    661:662:void setFitMode(int) -> setFitMode
+    766:767:void setHoldAtEndEnabled(boolean) -> setHoldAtEndEnabled
+    789:791:void setPathMotion(androidx.transition.PathMotion) -> setPathMotion
+    725:726:void setScaleMaskProgressThresholds(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> setScaleMaskProgressThresholds
+    703:704:void setScaleProgressThresholds(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> setScaleProgressThresholds
+    602:603:void setScrimColor(int) -> setScrimColor
+    747:748:void setShapeMaskProgressThresholds(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> setShapeMaskProgressThresholds
+    535:536:void setStartContainerColor(int) -> setStartContainerColor
+    432:433:void setStartElevation(float) -> setStartElevation
+    369:370:void setStartShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setStartShapeAppearanceModel
+    329:330:void setStartView(android.view.View) -> setStartView
+    288:289:void setStartViewId(int) -> setStartViewId
+    626:627:void setTransitionDirection(int) -> setTransitionDirection
+com.google.android.material.transition.MaterialContainerTransform$1 -> com.google.android.material.transition.MaterialContainerTransform$1:
+    968:968:void <init>(com.google.android.material.transition.MaterialContainerTransform,com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable) -> <init>
+    971:972:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.MaterialContainerTransform$2 -> com.google.android.material.transition.MaterialContainerTransform$2:
+    976:976:void <init>(com.google.android.material.transition.MaterialContainerTransform,android.view.View,com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable,android.view.View,android.view.View) -> <init>
+    989:1000:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    980:985:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds -> com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds:
+    1540:1543:void <init>(float,float) -> <init>
+    1531:1531:float access$1000(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> access$1000
+    1531:1531:float access$1100(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> access$1100
+    1552:1552:float getEnd() -> getEnd
+    1547:1547:float getStart() -> getStart
+com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup -> com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup:
+    1556:1556:void <init>(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$1) -> <init>
+    1566:1571:void <init>(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds) -> <init>
+    1556:1556:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds access$400(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup) -> access$400
+    1556:1556:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds access$500(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup) -> access$500
+    1556:1556:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds access$600(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup) -> access$600
+    1556:1556:com.google.android.material.transition.MaterialContainerTransform$ProgressThresholds access$700(com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup) -> access$700
+com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable -> com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable:
+    1071:1071:void <init>(androidx.transition.PathMotion,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,int,int,int,int,boolean,boolean,com.google.android.material.transition.FadeModeEvaluator,com.google.android.material.transition.FitModeEvaluator,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup,boolean,com.google.android.material.transition.MaterialContainerTransform$1) -> <init>
+    1094:1211:void <init>(androidx.transition.PathMotion,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,int,int,int,int,boolean,boolean,com.google.android.material.transition.FadeModeEvaluator,com.google.android.material.transition.FitModeEvaluator,com.google.android.material.transition.MaterialContainerTransform$ProgressThresholdsGroup,boolean) -> <init>
+    1071:1071:void access$200(com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable,float) -> access$200
+    1071:1071:android.view.View access$800(com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable) -> access$800
+    1071:1071:android.view.View access$900(com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable) -> access$900
+    1485:1485:float calculateElevationDxMultiplier(android.graphics.RectF,float) -> calculateElevationDxMultiplier
+    1497:1497:float calculateElevationDyMultiplier(android.graphics.RectF,float) -> calculateElevationDyMultiplier
+    1215:1247:void draw(android.graphics.Canvas) -> draw
+    1502:1511:void drawDebugCumulativePath(android.graphics.Canvas,android.graphics.RectF,android.graphics.Path,int) -> drawDebugCumulativePath
+    1514:1516:void drawDebugRect(android.graphics.Canvas,android.graphics.RectF,int) -> drawDebugRect
+    1251:1261:void drawElevationShadow(android.graphics.Canvas) -> drawElevationShadow
+    1278:1287:void drawElevationShadowWithMaterialShapeDrawable(android.graphics.Canvas) -> drawElevationShadowWithMaterialShapeDrawable
+    1264:1275:void drawElevationShadowWithPaintShadowLayer(android.graphics.Canvas) -> drawElevationShadowWithPaintShadowLayer
+    1309:1323:void drawEndView(android.graphics.Canvas) -> drawEndView
+    1291:1305:void drawStartView(android.graphics.Canvas) -> drawStartView
+    1467:1467:android.graphics.PointF getMotionPathPoint(android.graphics.RectF) -> getMotionPathPoint
+    1345:1345:int getOpacity() -> getOpacity
+    1329:1332:void maybeDrawContainerColor(android.graphics.Canvas,android.graphics.Paint) -> maybeDrawContainerColor
+    1336:1336:void setAlpha(int) -> setAlpha
+    1340:1340:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    1349:1352:void setProgress(float) -> setProgress
+    1355:1464:void updateProgress(float) -> updateProgress
+com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable$1 -> com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable$1:
+    1299:1299:void <init>(com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable) -> <init>
+    1302:1303:void run(android.graphics.Canvas) -> run
+com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable$2 -> com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable$2:
+    1317:1317:void <init>(com.google.android.material.transition.MaterialContainerTransform$TransitionDrawable) -> <init>
+    1320:1321:void run(android.graphics.Canvas) -> run
+com.google.android.material.transition.MaterialElevationScale -> com.google.android.material.transition.MaterialElevationScale:
+    33:35:void <init>(boolean) -> <init>
+    26:26:void addAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    26:26:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    42:45:com.google.android.material.transition.ScaleProvider createPrimaryAnimatorProvider(boolean) -> createPrimaryAnimatorProvider
+    49:49:com.google.android.material.transition.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    26:26:com.google.android.material.transition.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    38:38:boolean isGrowing() -> isGrowing
+    26:26:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    26:26:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    26:26:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    26:26:void setSecondaryAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.MaterialFade -> com.google.android.material.transition.MaterialFade:
+    40:45:void <clinit>() -> <clinit>
+    48:49:void <init>() -> <init>
+    34:34:void addAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    34:34:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    52:54:com.google.android.material.transition.FadeProvider createPrimaryAnimatorProvider() -> createPrimaryAnimatorProvider
+    58:61:com.google.android.material.transition.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    81:81:android.animation.TimeInterpolator getDefaultEasingInterpolator(boolean) -> getDefaultEasingInterpolator
+    67:67:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    75:75:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    34:34:com.google.android.material.transition.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    34:34:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    34:34:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    34:34:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    34:34:void setSecondaryAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.MaterialFadeThrough -> com.google.android.material.transition.MaterialFadeThrough:
+    35:36:void <clinit>() -> <clinit>
+    39:40:void <init>() -> <init>
+    31:31:void addAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    31:31:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    43:43:com.google.android.material.transition.FadeThroughProvider createPrimaryAnimatorProvider() -> createPrimaryAnimatorProvider
+    47:50:com.google.android.material.transition.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    56:56:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    62:62:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    31:31:com.google.android.material.transition.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    31:31:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    31:31:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    31:31:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    31:31:void setSecondaryAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.MaterialSharedAxis -> com.google.android.material.transition.MaterialSharedAxis:
+    86:87:void <clinit>() -> <clinit>
+    90:93:void <init>(int,boolean) -> <init>
+    51:51:void addAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    51:51:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    106:114:com.google.android.material.transition.VisibilityAnimatorProvider createPrimaryAnimatorProvider(int,boolean) -> createPrimaryAnimatorProvider
+    119:119:com.google.android.material.transition.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    97:97:int getAxis() -> getAxis
+    125:125:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    131:131:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    51:51:com.google.android.material.transition.VisibilityAnimatorProvider getPrimaryAnimatorProvider() -> getPrimaryAnimatorProvider
+    51:51:com.google.android.material.transition.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    101:101:boolean isForward() -> isForward
+    51:51:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    51:51:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    51:51:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    51:51:void setSecondaryAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.MaterialVisibility -> com.google.android.material.transition.MaterialVisibility:
+    40:46:void <init>(com.google.android.material.transition.VisibilityAnimatorProvider,com.google.android.material.transition.VisibilityAnimatorProvider) -> <init>
+    87:88:void addAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    147:157:void addAnimatorIfNeeded(java.util.List,com.google.android.material.transition.VisibilityAnimatorProvider,android.view.ViewGroup,android.view.View,boolean) -> addAnimatorIfNeeded
+    107:108:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    124:138:android.animation.Animator createAnimator(android.view.ViewGroup,android.view.View,boolean) -> createAnimator
+    177:177:android.animation.TimeInterpolator getDefaultEasingInterpolator(boolean) -> getDefaultEasingInterpolator
+    167:167:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    172:172:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    54:54:com.google.android.material.transition.VisibilityAnimatorProvider getPrimaryAnimatorProvider() -> getPrimaryAnimatorProvider
+    65:65:com.google.android.material.transition.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    160:163:void maybeApplyThemeValues(android.content.Context,boolean) -> maybeApplyThemeValues
+    113:113:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onAppear
+    119:119:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,androidx.transition.TransitionValues,androidx.transition.TransitionValues) -> onDisappear
+    97:97:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    74:75:void setSecondaryAnimatorProvider(com.google.android.material.transition.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.ScaleProvider -> com.google.android.material.transition.ScaleProvider:
+    47:48:void <init>() -> <init>
+    38:52:void <init>(boolean) -> <init>
+    150:153:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    160:167:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    172:189:android.animation.Animator createScaleAnimator(android.view.View,float,float) -> createScaleAnimator
+    136:136:float getIncomingEndScale() -> getIncomingEndScale
+    120:120:float getIncomingStartScale() -> getIncomingStartScale
+    104:104:float getOutgoingEndScale() -> getOutgoingEndScale
+    88:88:float getOutgoingStartScale() -> getOutgoingStartScale
+    56:56:boolean isGrowing() -> isGrowing
+    70:70:boolean isScaleOnDisappear() -> isScaleOnDisappear
+    61:62:void setGrowing(boolean) -> setGrowing
+    144:145:void setIncomingEndScale(float) -> setIncomingEndScale
+    128:129:void setIncomingStartScale(float) -> setIncomingStartScale
+    112:113:void setOutgoingEndScale(float) -> setOutgoingEndScale
+    96:97:void setOutgoingStartScale(float) -> setOutgoingStartScale
+    80:81:void setScaleOnDisappear(boolean) -> setScaleOnDisappear
+com.google.android.material.transition.ScaleProvider$1 -> com.google.android.material.transition.ScaleProvider$1:
+    182:182:void <init>(android.view.View,float,float) -> <init>
+    185:187:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.SlideDistanceProvider -> com.google.android.material.transition.SlideDistanceProvider:
+    59:63:void <init>(int) -> <init>
+    106:107:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    113:114:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    129:153:android.animation.Animator createTranslationAppearAnimator(android.view.View,android.view.View,int,int) -> createTranslationAppearAnimator
+    159:183:android.animation.Animator createTranslationDisappearAnimator(android.view.View,android.view.View,int,int) -> createTranslationDisappearAnimator
+    192:203:android.animation.Animator createTranslationXAnimator(android.view.View,float,float,float) -> createTranslationXAnimator
+    211:222:android.animation.Animator createTranslationYAnimator(android.view.View,float,float,float) -> createTranslationYAnimator
+    82:82:int getSlideDistance() -> getSlideDistance
+    118:124:int getSlideDistanceOrDefault(android.content.Context) -> getSlideDistanceOrDefault
+    67:67:int getSlideEdge() -> getSlideEdge
+    226:226:boolean isRtl(android.view.View) -> isRtl
+    95:101:void setSlideDistance(int) -> setSlideDistance
+    71:72:void setSlideEdge(int) -> setSlideEdge
+com.google.android.material.transition.SlideDistanceProvider$1 -> com.google.android.material.transition.SlideDistanceProvider$1:
+    197:197:void <init>(android.view.View,float) -> <init>
+    200:201:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.SlideDistanceProvider$2 -> com.google.android.material.transition.SlideDistanceProvider$2:
+    216:216:void <init>(android.view.View,float) -> <init>
+    219:220:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.TransitionListenerAdapter -> com.google.android.material.transition.TransitionListenerAdapter:
+    21:21:void <init>() -> <init>
+    30:30:void onTransitionCancel(androidx.transition.Transition) -> onTransitionCancel
+    27:27:void onTransitionEnd(androidx.transition.Transition) -> onTransitionEnd
+    33:33:void onTransitionPause(androidx.transition.Transition) -> onTransitionPause
+    36:36:void onTransitionResume(androidx.transition.Transition) -> onTransitionResume
+    24:24:void onTransitionStart(androidx.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.TransitionUtils -> com.google.android.material.transition.TransitionUtils:
+    388:388:void <clinit>() -> <clinit>
+    65:65:void <init>() -> <init>
+    385:385:float calculateArea(android.graphics.RectF) -> calculateArea
+    188:188:com.google.android.material.shape.ShapeAppearanceModel convertToRelativeCornerSizes(com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF) -> convertToRelativeCornerSizes
+    334:334:android.graphics.Shader createColorShader(int) -> createColorShader
+    381:381:java.lang.Object defaultIfNull(java.lang.Object,java.lang.Object) -> defaultIfNull
+    346:358:android.view.View findAncestorById(android.view.View,int) -> findAncestorById
+    338:342:android.view.View findDescendantOrAncestorById(android.view.View,int) -> findDescendantOrAncestorById
+    152:158:float getControlPoint(java.lang.String[],int) -> getControlPoint
+    146:148:java.lang.String getEasingContent(java.lang.String,java.lang.String) -> getEasingContent
+    370:376:android.graphics.RectF getLocationOnScreen(android.view.View) -> getLocationOnScreen
+    362:362:android.graphics.RectF getRelativeBounds(android.view.View) -> getRelativeBounds
+    366:366:android.graphics.Rect getRelativeBoundsRect(android.view.View) -> getRelativeBoundsRect
+    141:142:boolean isEasingType(java.lang.String,java.lang.String) -> isEasingType
+    237:240:boolean isShapeAppearanceSignificant(com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF) -> isShapeAppearanceSignificant
+    249:249:float lerp(float,float,float) -> lerp
+    259:259:float lerp(float,float,float,float,float) -> lerp
+    270:280:float lerp(float,float,float,float,float,boolean) -> lerp
+    289:296:int lerp(int,int,float,float,float) -> lerp
+    307:314:com.google.android.material.shape.ShapeAppearanceModel lerp(com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,android.graphics.RectF,float,float,float) -> lerp
+    431:434:void maybeAddTransition(androidx.transition.TransitionSet,androidx.transition.Transition) -> maybeAddTransition
+    83:90:boolean maybeApplyThemeDuration(androidx.transition.Transition,android.content.Context,int) -> maybeApplyThemeDuration
+    72:78:boolean maybeApplyThemeInterpolator(androidx.transition.Transition,android.content.Context,int,android.animation.TimeInterpolator) -> maybeApplyThemeInterpolator
+    95:102:boolean maybeApplyThemePath(androidx.transition.Transition,android.content.Context,int) -> maybeApplyThemePath
+    437:440:void maybeRemoveTransition(androidx.transition.TransitionSet,androidx.transition.Transition) -> maybeRemoveTransition
+    107:137:android.animation.TimeInterpolator resolveThemeInterpolator(android.content.Context,int,android.animation.TimeInterpolator) -> resolveThemeInterpolator
+    163:183:androidx.transition.PathMotion resolveThemePath(android.content.Context,int) -> resolveThemePath
+    391:393:int saveLayerAlphaCompat(android.graphics.Canvas,android.graphics.Rect,int) -> saveLayerAlphaCompat
+    412:424:void transform(android.graphics.Canvas,android.graphics.Rect,float,float,float,int,com.google.android.material.transition.TransitionUtils$CanvasOperation) -> transform
+    210:232:com.google.android.material.shape.ShapeAppearanceModel transformCornerSizes(com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,com.google.android.material.transition.TransitionUtils$CornerSizeBinaryOperator) -> transformCornerSizes
+com.google.android.material.transition.TransitionUtils$1 -> com.google.android.material.transition.TransitionUtils$1:
+    189:189:void <init>(android.graphics.RectF) -> <init>
+    193:195:com.google.android.material.shape.CornerSize apply(com.google.android.material.shape.CornerSize) -> apply
+com.google.android.material.transition.TransitionUtils$2 -> com.google.android.material.transition.TransitionUtils$2:
+    318:318:void <init>(android.graphics.RectF,android.graphics.RectF,float,float,float) -> <init>
+    323:328:com.google.android.material.shape.CornerSize apply(com.google.android.material.shape.CornerSize,com.google.android.material.shape.CornerSize) -> apply
+com.google.android.material.transition.platform.FadeModeEvaluators -> com.google.android.material.transition.platform.FadeModeEvaluators:
+    34:67:void <clinit>() -> <clinit>
+    96:96:void <init>() -> <init>
+    82:92:com.google.android.material.transition.platform.FadeModeEvaluator get(int,boolean) -> get
+com.google.android.material.transition.platform.FadeModeEvaluators$1 -> com.google.android.material.transition.platform.FadeModeEvaluators$1:
+    35:35:void <init>() -> <init>
+    39:41:com.google.android.material.transition.platform.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.platform.FadeModeEvaluators$2 -> com.google.android.material.transition.platform.FadeModeEvaluators$2:
+    46:46:void <init>() -> <init>
+    50:52:com.google.android.material.transition.platform.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.platform.FadeModeEvaluators$3 -> com.google.android.material.transition.platform.FadeModeEvaluators$3:
+    57:57:void <init>() -> <init>
+    61:63:com.google.android.material.transition.platform.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.platform.FadeModeEvaluators$4 -> com.google.android.material.transition.platform.FadeModeEvaluators$4:
+    68:68:void <init>() -> <init>
+    72:77:com.google.android.material.transition.platform.FadeModeResult evaluate(float,float,float,float) -> evaluate
+com.google.android.material.transition.platform.FadeModeResult -> com.google.android.material.transition.platform.FadeModeResult:
+    37:41:void <init>(int,int,boolean) -> <init>
+    34:34:com.google.android.material.transition.platform.FadeModeResult endOnTop(int,int) -> endOnTop
+    30:30:com.google.android.material.transition.platform.FadeModeResult startOnTop(int,int) -> startOnTop
+com.google.android.material.transition.platform.FadeProvider -> com.google.android.material.transition.platform.FadeProvider:
+    37:39:void <init>() -> <init>
+    65:66:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    78:79:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    95:112:android.animation.Animator createFadeAnimator(android.view.View,float,float,float,float,float) -> createFadeAnimator
+    47:47:float getIncomingEndThreshold() -> getIncomingEndThreshold
+    59:60:void setIncomingEndThreshold(float) -> setIncomingEndThreshold
+com.google.android.material.transition.platform.FadeProvider$1 -> com.google.android.material.transition.platform.FadeProvider$1:
+    97:97:void <init>(android.view.View,float,float,float,float) -> <init>
+    100:102:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.platform.FadeProvider$2 -> com.google.android.material.transition.platform.FadeProvider$2:
+    105:105:void <init>(android.view.View,float) -> <init>
+    109:110:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.platform.FadeThroughProvider -> com.google.android.material.transition.platform.FadeThroughProvider:
+    41:45:void <init>() -> <init>
+    70:71:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    83:84:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    100:117:android.animation.Animator createFadeThroughAnimator(android.view.View,float,float,float,float,float) -> createFadeThroughAnimator
+    54:54:float getProgressThreshold() -> getProgressThreshold
+    64:65:void setProgressThreshold(float) -> setProgressThreshold
+com.google.android.material.transition.platform.FadeThroughProvider$1 -> com.google.android.material.transition.platform.FadeThroughProvider$1:
+    102:102:void <init>(android.view.View,float,float,float,float) -> <init>
+    105:107:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.platform.FadeThroughProvider$2 -> com.google.android.material.transition.platform.FadeThroughProvider$2:
+    110:110:void <init>(android.view.View,float) -> <init>
+    114:115:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.platform.FitModeEvaluators -> com.google.android.material.transition.platform.FitModeEvaluators:
+    34:80:void <clinit>() -> <clinit>
+    153:153:void <init>() -> <init>
+    129:137:com.google.android.material.transition.platform.FitModeEvaluator get(int,boolean,android.graphics.RectF,android.graphics.RectF) -> get
+    143:150:boolean shouldAutoFitToWidth(boolean,android.graphics.RectF,android.graphics.RectF) -> shouldAutoFitToWidth
+com.google.android.material.transition.platform.FitModeEvaluators$1 -> com.google.android.material.transition.platform.FitModeEvaluators$1:
+    35:35:void <init>() -> <init>
+    74:77:void applyMask(android.graphics.RectF,float,com.google.android.material.transition.platform.FitModeResult) -> applyMask
+    46:58:com.google.android.material.transition.platform.FitModeResult evaluate(float,float,float,float,float,float,float) -> evaluate
+    69:69:boolean shouldMaskStartBounds(com.google.android.material.transition.platform.FitModeResult) -> shouldMaskStartBounds
+com.google.android.material.transition.platform.FitModeEvaluators$2 -> com.google.android.material.transition.platform.FitModeEvaluators$2:
+    81:81:void <init>() -> <init>
+    120:124:void applyMask(android.graphics.RectF,float,com.google.android.material.transition.platform.FitModeResult) -> applyMask
+    92:104:com.google.android.material.transition.platform.FitModeResult evaluate(float,float,float,float,float,float,float) -> evaluate
+    115:115:boolean shouldMaskStartBounds(com.google.android.material.transition.platform.FitModeResult) -> shouldMaskStartBounds
+com.google.android.material.transition.platform.FitModeResult -> com.google.android.material.transition.platform.FitModeResult:
+    38:45:void <init>(float,float,float,float,float,float) -> <init>
+com.google.android.material.transition.platform.Hold -> com.google.android.material.transition.platform.Hold:
+    37:37:void <init>() -> <init>
+    46:46:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    56:56:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+com.google.android.material.transition.platform.MaskEvaluator -> com.google.android.material.transition.platform.MaskEvaluator:
+    42:48:void <init>() -> <init>
+    88:94:void clip(android.graphics.Canvas) -> clip
+    64:84:void evaluate(float,com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,android.graphics.RectF,android.graphics.RectF,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> evaluate
+    101:101:com.google.android.material.shape.ShapeAppearanceModel getCurrentShapeAppearanceModel() -> getCurrentShapeAppearanceModel
+    97:97:android.graphics.Path getPath() -> getPath
+com.google.android.material.transition.platform.MaterialArcMotion -> com.google.android.material.transition.platform.MaterialArcMotion:
+    37:37:void <init>() -> <init>
+    51:54:android.graphics.PointF getControlPoint(float,float,float,float) -> getControlPoint
+    42:47:android.graphics.Path getPath(float,float,float,float) -> getPath
+com.google.android.material.transition.platform.MaterialContainerTransform -> com.google.android.material.transition.platform.MaterialContainerTransform:
+    198:228:void <clinit>() -> <clinit>
+    237:265:void <init>() -> <init>
+    237:270:void <init>(android.content.Context,boolean) -> <init>
+    126:126:boolean access$300(com.google.android.material.transition.platform.MaterialContainerTransform) -> access$300
+    1050:1055:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup buildThresholdsGroup(boolean) -> buildThresholdsGroup
+    1027:1032:android.graphics.RectF calculateDrawableBounds(android.view.View,android.view.View,float,float) -> calculateDrawableBounds
+    811:812:void captureEndValues(android.transition.TransitionValues) -> captureEndValues
+    849:851:com.google.android.material.shape.ShapeAppearanceModel captureShapeAppearance(android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel) -> captureShapeAppearance
+    806:807:void captureStartValues(android.transition.TransitionValues) -> captureStartValues
+    819:842:void captureValues(android.transition.TransitionValues,android.view.View,int,com.google.android.material.shape.ShapeAppearanceModel) -> captureValues
+    893:1008:android.animation.Animator createAnimator(android.view.ViewGroup,android.transition.TransitionValues,android.transition.TransitionValues) -> createAnimator
+    491:491:int getContainerColor() -> getContainerColor
+    463:463:int getDrawingViewId() -> getDrawingViewId
+    1022:1022:float getElevationOrDefault(float,android.view.View) -> getElevationOrDefault
+    550:550:int getEndContainerColor() -> getEndContainerColor
+    447:447:float getEndElevation() -> getEndElevation
+    383:383:com.google.android.material.shape.ShapeAppearanceModel getEndShapeAppearanceModel() -> getEndShapeAppearanceModel
+    340:340:android.view.View getEndView() -> getEndView
+    308:308:int getEndViewId() -> getEndViewId
+    637:637:int getFadeMode() -> getFadeMode
+    676:676:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds getFadeProgressThresholds() -> getFadeProgressThresholds
+    657:657:int getFitMode() -> getFitMode
+    718:718:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds getScaleMaskProgressThresholds() -> getScaleMaskProgressThresholds
+    697:697:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds getScaleProgressThresholds() -> getScaleProgressThresholds
+    591:591:int getScrimColor() -> getScrimColor
+    858:876:com.google.android.material.shape.ShapeAppearanceModel getShapeAppearance(android.view.View,com.google.android.material.shape.ShapeAppearanceModel) -> getShapeAppearance
+    740:740:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds getShapeMaskProgressThresholds() -> getShapeMaskProgressThresholds
+    523:523:int getStartContainerColor() -> getStartContainerColor
+    427:427:float getStartElevation() -> getStartElevation
+    358:358:com.google.android.material.shape.ShapeAppearanceModel getStartShapeAppearanceModel() -> getStartShapeAppearanceModel
+    325:325:android.view.View getStartView() -> getStartView
+    275:275:int getStartViewId() -> getStartViewId
+    1063:1069:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup getThresholdsOrDefault(boolean,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup) -> getThresholdsOrDefault
+    619:619:int getTransitionDirection() -> getTransitionDirection
+    801:801:java.lang.String[] getTransitionProperties() -> getTransitionProperties
+    881:884:int getTransitionShapeAppearanceResId(android.content.Context) -> getTransitionShapeAppearanceResId
+    780:780:boolean isDrawDebugEnabled() -> isDrawDebugEnabled
+    401:401:boolean isElevationShadowEnabled() -> isElevationShadowEnabled
+    1037:1045:boolean isEntering(android.graphics.RectF,android.graphics.RectF) -> isEntering
+    761:761:boolean isHoldAtEndEnabled() -> isHoldAtEndEnabled
+    1012:1019:void maybeApplyThemeValues(android.content.Context,boolean) -> maybeApplyThemeValues
+    580:583:void setAllContainerColors(int) -> setAllContainerColors
+    513:514:void setContainerColor(int) -> setContainerColor
+    789:790:void setDrawDebugEnabled(boolean) -> setDrawDebugEnabled
+    481:482:void setDrawingViewId(int) -> setDrawingViewId
+    417:418:void setElevationShadowEnabled(boolean) -> setElevationShadowEnabled
+    565:566:void setEndContainerColor(int) -> setEndContainerColor
+    457:458:void setEndElevation(float) -> setEndElevation
+    393:394:void setEndShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setEndShapeAppearanceModel
+    349:350:void setEndView(android.view.View) -> setEndView
+    319:320:void setEndViewId(int) -> setEndViewId
+    651:652:void setFadeMode(int) -> setFadeMode
+    687:688:void setFadeProgressThresholds(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> setFadeProgressThresholds
+    666:667:void setFitMode(int) -> setFitMode
+    771:772:void setHoldAtEndEnabled(boolean) -> setHoldAtEndEnabled
+    794:796:void setPathMotion(android.transition.PathMotion) -> setPathMotion
+    730:731:void setScaleMaskProgressThresholds(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> setScaleMaskProgressThresholds
+    708:709:void setScaleProgressThresholds(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> setScaleProgressThresholds
+    607:608:void setScrimColor(int) -> setScrimColor
+    752:753:void setShapeMaskProgressThresholds(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> setShapeMaskProgressThresholds
+    540:541:void setStartContainerColor(int) -> setStartContainerColor
+    437:438:void setStartElevation(float) -> setStartElevation
+    374:375:void setStartShapeAppearanceModel(com.google.android.material.shape.ShapeAppearanceModel) -> setStartShapeAppearanceModel
+    334:335:void setStartView(android.view.View) -> setStartView
+    293:294:void setStartViewId(int) -> setStartViewId
+    631:632:void setTransitionDirection(int) -> setTransitionDirection
+com.google.android.material.transition.platform.MaterialContainerTransform$1 -> com.google.android.material.transition.platform.MaterialContainerTransform$1:
+    973:973:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform,com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable) -> <init>
+    976:977:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.google.android.material.transition.platform.MaterialContainerTransform$2 -> com.google.android.material.transition.platform.MaterialContainerTransform$2:
+    981:981:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform,android.view.View,com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable,android.view.View,android.view.View) -> <init>
+    994:1005:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    985:990:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds -> com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds:
+    1545:1548:void <init>(float,float) -> <init>
+    1536:1536:float access$1000(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> access$1000
+    1536:1536:float access$1100(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> access$1100
+    1557:1557:float getEnd() -> getEnd
+    1552:1552:float getStart() -> getStart
+com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup -> com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup:
+    1561:1561:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$1) -> <init>
+    1571:1576:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds) -> <init>
+    1561:1561:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds access$400(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup) -> access$400
+    1561:1561:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds access$500(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup) -> access$500
+    1561:1561:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds access$600(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup) -> access$600
+    1561:1561:com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholds access$700(com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup) -> access$700
+com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable -> com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable:
+    1076:1076:void <init>(android.transition.PathMotion,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,int,int,int,int,boolean,boolean,com.google.android.material.transition.platform.FadeModeEvaluator,com.google.android.material.transition.platform.FitModeEvaluator,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup,boolean,com.google.android.material.transition.platform.MaterialContainerTransform$1) -> <init>
+    1099:1216:void <init>(android.transition.PathMotion,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,android.view.View,android.graphics.RectF,com.google.android.material.shape.ShapeAppearanceModel,float,int,int,int,int,boolean,boolean,com.google.android.material.transition.platform.FadeModeEvaluator,com.google.android.material.transition.platform.FitModeEvaluator,com.google.android.material.transition.platform.MaterialContainerTransform$ProgressThresholdsGroup,boolean) -> <init>
+    1076:1076:void access$200(com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable,float) -> access$200
+    1076:1076:android.view.View access$800(com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable) -> access$800
+    1076:1076:android.view.View access$900(com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable) -> access$900
+    1490:1490:float calculateElevationDxMultiplier(android.graphics.RectF,float) -> calculateElevationDxMultiplier
+    1502:1502:float calculateElevationDyMultiplier(android.graphics.RectF,float) -> calculateElevationDyMultiplier
+    1220:1252:void draw(android.graphics.Canvas) -> draw
+    1507:1516:void drawDebugCumulativePath(android.graphics.Canvas,android.graphics.RectF,android.graphics.Path,int) -> drawDebugCumulativePath
+    1519:1521:void drawDebugRect(android.graphics.Canvas,android.graphics.RectF,int) -> drawDebugRect
+    1256:1266:void drawElevationShadow(android.graphics.Canvas) -> drawElevationShadow
+    1283:1292:void drawElevationShadowWithMaterialShapeDrawable(android.graphics.Canvas) -> drawElevationShadowWithMaterialShapeDrawable
+    1269:1280:void drawElevationShadowWithPaintShadowLayer(android.graphics.Canvas) -> drawElevationShadowWithPaintShadowLayer
+    1314:1328:void drawEndView(android.graphics.Canvas) -> drawEndView
+    1296:1310:void drawStartView(android.graphics.Canvas) -> drawStartView
+    1472:1472:android.graphics.PointF getMotionPathPoint(android.graphics.RectF) -> getMotionPathPoint
+    1350:1350:int getOpacity() -> getOpacity
+    1334:1337:void maybeDrawContainerColor(android.graphics.Canvas,android.graphics.Paint) -> maybeDrawContainerColor
+    1341:1341:void setAlpha(int) -> setAlpha
+    1345:1345:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    1354:1357:void setProgress(float) -> setProgress
+    1360:1469:void updateProgress(float) -> updateProgress
+com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable$1 -> com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable$1:
+    1304:1304:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable) -> <init>
+    1307:1308:void run(android.graphics.Canvas) -> run
+com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable$2 -> com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable$2:
+    1322:1322:void <init>(com.google.android.material.transition.platform.MaterialContainerTransform$TransitionDrawable) -> <init>
+    1325:1326:void run(android.graphics.Canvas) -> run
+com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback -> com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback:
+    52:60:void <init>() -> <init>
+    52:52:void access$000(android.view.Window) -> access$000
+    52:52:void access$100(android.view.Window) -> access$100
+    52:52:java.lang.ref.WeakReference access$200() -> access$200
+    52:52:java.lang.ref.WeakReference access$202(java.lang.ref.WeakReference) -> access$202
+    172:172:com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$ShapeProvider getShapeProvider() -> getShapeProvider
+    217:217:boolean isSharedElementReenterTransitionEnabled() -> isSharedElementReenterTransitionEnabled
+    193:193:boolean isTransparentWindowBackgroundEnabled() -> isTransparentWindowBackgroundEnabled
+    88:89:android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View,android.graphics.Matrix,android.graphics.RectF) -> onCaptureSharedElementSnapshot
+    95:106:android.view.View onCreateSnapshotView(android.content.Context,android.os.Parcelable) -> onCreateSnapshotView
+    112:126:void onMapSharedElements(java.util.List,java.util.Map) -> onMapSharedElements
+    156:167:void onSharedElementEnd(java.util.List,java.util.List,java.util.List) -> onSharedElementEnd
+    133:149:void onSharedElementStart(java.util.List,java.util.List,java.util.List) -> onSharedElementStart
+    301:308:void removeWindowBackground(android.view.Window) -> removeWindowBackground
+    316:317:void restoreWindowBackground(android.view.Window) -> restoreWindowBackground
+    183:184:void setShapeProvider(com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$ShapeProvider) -> setShapeProvider
+    227:228:void setSharedElementReenterTransitionEnabled(boolean) -> setSharedElementReenterTransitionEnabled
+    208:209:void setTransparentWindowBackgroundEnabled(boolean) -> setTransparentWindowBackgroundEnabled
+    231:253:void setUpEnterTransform(android.view.Window) -> setUpEnterTransform
+    256:289:void setUpReturnTransform(android.app.Activity,android.view.Window) -> setUpReturnTransform
+    325:328:void updateBackgroundFadeDuration(android.view.Window,com.google.android.material.transition.platform.MaterialContainerTransform) -> updateBackgroundFadeDuration
+com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$1 -> com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$1:
+    240:240:void <init>(com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback,android.view.Window) -> <init>
+    248:249:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    243:244:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$2 -> com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$2:
+    261:261:void <init>(com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback,android.app.Activity) -> <init>
+    265:276:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$3 -> com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$3:
+    281:281:void <init>(com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback,android.view.Window) -> <init>
+    284:285:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$ShapeableViewShapeProvider -> com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback$ShapeableViewShapeProvider:
+    72:72:void <init>() -> <init>
+    76:77:com.google.android.material.shape.ShapeAppearanceModel provideShape(android.view.View) -> provideShape
+com.google.android.material.transition.platform.MaterialElevationScale -> com.google.android.material.transition.platform.MaterialElevationScale:
+    38:40:void <init>(boolean) -> <init>
+    30:30:void addAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    30:30:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    47:50:com.google.android.material.transition.platform.ScaleProvider createPrimaryAnimatorProvider(boolean) -> createPrimaryAnimatorProvider
+    54:54:com.google.android.material.transition.platform.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    30:30:com.google.android.material.transition.platform.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    43:43:boolean isGrowing() -> isGrowing
+    30:30:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    30:30:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+    30:30:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    30:30:void setSecondaryAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.platform.MaterialFade -> com.google.android.material.transition.platform.MaterialFade:
+    45:50:void <clinit>() -> <clinit>
+    53:54:void <init>() -> <init>
+    38:38:void addAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    38:38:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    57:59:com.google.android.material.transition.platform.FadeProvider createPrimaryAnimatorProvider() -> createPrimaryAnimatorProvider
+    63:66:com.google.android.material.transition.platform.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    86:86:android.animation.TimeInterpolator getDefaultEasingInterpolator(boolean) -> getDefaultEasingInterpolator
+    72:72:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    80:80:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    38:38:com.google.android.material.transition.platform.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    38:38:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    38:38:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+    38:38:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    38:38:void setSecondaryAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.platform.MaterialFadeThrough -> com.google.android.material.transition.platform.MaterialFadeThrough:
+    40:41:void <clinit>() -> <clinit>
+    44:45:void <init>() -> <init>
+    35:35:void addAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    35:35:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    48:48:com.google.android.material.transition.platform.FadeThroughProvider createPrimaryAnimatorProvider() -> createPrimaryAnimatorProvider
+    52:55:com.google.android.material.transition.platform.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    61:61:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    67:67:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    35:35:com.google.android.material.transition.platform.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    35:35:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    35:35:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+    35:35:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    35:35:void setSecondaryAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.platform.MaterialSharedAxis -> com.google.android.material.transition.platform.MaterialSharedAxis:
+    91:92:void <clinit>() -> <clinit>
+    95:98:void <init>(int,boolean) -> <init>
+    55:55:void addAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    55:55:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    111:119:com.google.android.material.transition.platform.VisibilityAnimatorProvider createPrimaryAnimatorProvider(int,boolean) -> createPrimaryAnimatorProvider
+    124:124:com.google.android.material.transition.platform.VisibilityAnimatorProvider createSecondaryAnimatorProvider() -> createSecondaryAnimatorProvider
+    102:102:int getAxis() -> getAxis
+    130:130:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    136:136:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    55:55:com.google.android.material.transition.platform.VisibilityAnimatorProvider getPrimaryAnimatorProvider() -> getPrimaryAnimatorProvider
+    55:55:com.google.android.material.transition.platform.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    106:106:boolean isForward() -> isForward
+    55:55:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    55:55:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+    55:55:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    55:55:void setSecondaryAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.platform.MaterialVisibility -> com.google.android.material.transition.platform.MaterialVisibility:
+    45:51:void <init>(com.google.android.material.transition.platform.VisibilityAnimatorProvider,com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> <init>
+    92:93:void addAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> addAdditionalAnimatorProvider
+    152:162:void addAnimatorIfNeeded(java.util.List,com.google.android.material.transition.platform.VisibilityAnimatorProvider,android.view.ViewGroup,android.view.View,boolean) -> addAnimatorIfNeeded
+    112:113:void clearAdditionalAnimatorProvider() -> clearAdditionalAnimatorProvider
+    129:143:android.animation.Animator createAnimator(android.view.ViewGroup,android.view.View,boolean) -> createAnimator
+    182:182:android.animation.TimeInterpolator getDefaultEasingInterpolator(boolean) -> getDefaultEasingInterpolator
+    172:172:int getDurationThemeAttrResId(boolean) -> getDurationThemeAttrResId
+    177:177:int getEasingThemeAttrResId(boolean) -> getEasingThemeAttrResId
+    59:59:com.google.android.material.transition.platform.VisibilityAnimatorProvider getPrimaryAnimatorProvider() -> getPrimaryAnimatorProvider
+    70:70:com.google.android.material.transition.platform.VisibilityAnimatorProvider getSecondaryAnimatorProvider() -> getSecondaryAnimatorProvider
+    165:168:void maybeApplyThemeValues(android.content.Context,boolean) -> maybeApplyThemeValues
+    118:118:android.animation.Animator onAppear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onAppear
+    124:124:android.animation.Animator onDisappear(android.view.ViewGroup,android.view.View,android.transition.TransitionValues,android.transition.TransitionValues) -> onDisappear
+    102:102:boolean removeAdditionalAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> removeAdditionalAnimatorProvider
+    79:80:void setSecondaryAnimatorProvider(com.google.android.material.transition.platform.VisibilityAnimatorProvider) -> setSecondaryAnimatorProvider
+com.google.android.material.transition.platform.ScaleProvider -> com.google.android.material.transition.platform.ScaleProvider:
+    52:53:void <init>() -> <init>
+    43:57:void <init>(boolean) -> <init>
+    155:158:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    165:172:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    177:194:android.animation.Animator createScaleAnimator(android.view.View,float,float) -> createScaleAnimator
+    141:141:float getIncomingEndScale() -> getIncomingEndScale
+    125:125:float getIncomingStartScale() -> getIncomingStartScale
+    109:109:float getOutgoingEndScale() -> getOutgoingEndScale
+    93:93:float getOutgoingStartScale() -> getOutgoingStartScale
+    61:61:boolean isGrowing() -> isGrowing
+    75:75:boolean isScaleOnDisappear() -> isScaleOnDisappear
+    66:67:void setGrowing(boolean) -> setGrowing
+    149:150:void setIncomingEndScale(float) -> setIncomingEndScale
+    133:134:void setIncomingStartScale(float) -> setIncomingStartScale
+    117:118:void setOutgoingEndScale(float) -> setOutgoingEndScale
+    101:102:void setOutgoingStartScale(float) -> setOutgoingStartScale
+    85:86:void setScaleOnDisappear(boolean) -> setScaleOnDisappear
+com.google.android.material.transition.platform.ScaleProvider$1 -> com.google.android.material.transition.platform.ScaleProvider$1:
+    187:187:void <init>(android.view.View,float,float) -> <init>
+    190:192:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.platform.SlideDistanceProvider -> com.google.android.material.transition.platform.SlideDistanceProvider:
+    64:68:void <init>(int) -> <init>
+    111:112:android.animation.Animator createAppear(android.view.ViewGroup,android.view.View) -> createAppear
+    118:119:android.animation.Animator createDisappear(android.view.ViewGroup,android.view.View) -> createDisappear
+    134:158:android.animation.Animator createTranslationAppearAnimator(android.view.View,android.view.View,int,int) -> createTranslationAppearAnimator
+    164:188:android.animation.Animator createTranslationDisappearAnimator(android.view.View,android.view.View,int,int) -> createTranslationDisappearAnimator
+    197:208:android.animation.Animator createTranslationXAnimator(android.view.View,float,float,float) -> createTranslationXAnimator
+    216:227:android.animation.Animator createTranslationYAnimator(android.view.View,float,float,float) -> createTranslationYAnimator
+    87:87:int getSlideDistance() -> getSlideDistance
+    123:129:int getSlideDistanceOrDefault(android.content.Context) -> getSlideDistanceOrDefault
+    72:72:int getSlideEdge() -> getSlideEdge
+    231:231:boolean isRtl(android.view.View) -> isRtl
+    100:106:void setSlideDistance(int) -> setSlideDistance
+    76:77:void setSlideEdge(int) -> setSlideEdge
+com.google.android.material.transition.platform.SlideDistanceProvider$1 -> com.google.android.material.transition.platform.SlideDistanceProvider$1:
+    202:202:void <init>(android.view.View,float) -> <init>
+    205:206:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.platform.SlideDistanceProvider$2 -> com.google.android.material.transition.platform.SlideDistanceProvider$2:
+    221:221:void <init>(android.view.View,float) -> <init>
+    224:225:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.google.android.material.transition.platform.TransitionListenerAdapter -> com.google.android.material.transition.platform.TransitionListenerAdapter:
+    26:26:void <init>() -> <init>
+    35:35:void onTransitionCancel(android.transition.Transition) -> onTransitionCancel
+    32:32:void onTransitionEnd(android.transition.Transition) -> onTransitionEnd
+    38:38:void onTransitionPause(android.transition.Transition) -> onTransitionPause
+    41:41:void onTransitionResume(android.transition.Transition) -> onTransitionResume
+    29:29:void onTransitionStart(android.transition.Transition) -> onTransitionStart
+com.google.android.material.transition.platform.TransitionUtils -> com.google.android.material.transition.platform.TransitionUtils:
+    393:393:void <clinit>() -> <clinit>
+    70:70:void <init>() -> <init>
+    390:390:float calculateArea(android.graphics.RectF) -> calculateArea
+    193:193:com.google.android.material.shape.ShapeAppearanceModel convertToRelativeCornerSizes(com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF) -> convertToRelativeCornerSizes
+    339:339:android.graphics.Shader createColorShader(int) -> createColorShader
+    386:386:java.lang.Object defaultIfNull(java.lang.Object,java.lang.Object) -> defaultIfNull
+    351:363:android.view.View findAncestorById(android.view.View,int) -> findAncestorById
+    343:347:android.view.View findDescendantOrAncestorById(android.view.View,int) -> findDescendantOrAncestorById
+    157:163:float getControlPoint(java.lang.String[],int) -> getControlPoint
+    151:153:java.lang.String getEasingContent(java.lang.String,java.lang.String) -> getEasingContent
+    375:381:android.graphics.RectF getLocationOnScreen(android.view.View) -> getLocationOnScreen
+    367:367:android.graphics.RectF getRelativeBounds(android.view.View) -> getRelativeBounds
+    371:371:android.graphics.Rect getRelativeBoundsRect(android.view.View) -> getRelativeBoundsRect
+    146:147:boolean isEasingType(java.lang.String,java.lang.String) -> isEasingType
+    242:245:boolean isShapeAppearanceSignificant(com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF) -> isShapeAppearanceSignificant
+    254:254:float lerp(float,float,float) -> lerp
+    264:264:float lerp(float,float,float,float,float) -> lerp
+    275:285:float lerp(float,float,float,float,float,boolean) -> lerp
+    294:301:int lerp(int,int,float,float,float) -> lerp
+    312:319:com.google.android.material.shape.ShapeAppearanceModel lerp(com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,android.graphics.RectF,float,float,float) -> lerp
+    436:439:void maybeAddTransition(android.transition.TransitionSet,android.transition.Transition) -> maybeAddTransition
+    88:95:boolean maybeApplyThemeDuration(android.transition.Transition,android.content.Context,int) -> maybeApplyThemeDuration
+    77:83:boolean maybeApplyThemeInterpolator(android.transition.Transition,android.content.Context,int,android.animation.TimeInterpolator) -> maybeApplyThemeInterpolator
+    100:107:boolean maybeApplyThemePath(android.transition.Transition,android.content.Context,int) -> maybeApplyThemePath
+    442:445:void maybeRemoveTransition(android.transition.TransitionSet,android.transition.Transition) -> maybeRemoveTransition
+    112:142:android.animation.TimeInterpolator resolveThemeInterpolator(android.content.Context,int,android.animation.TimeInterpolator) -> resolveThemeInterpolator
+    168:188:android.transition.PathMotion resolveThemePath(android.content.Context,int) -> resolveThemePath
+    396:398:int saveLayerAlphaCompat(android.graphics.Canvas,android.graphics.Rect,int) -> saveLayerAlphaCompat
+    417:429:void transform(android.graphics.Canvas,android.graphics.Rect,float,float,float,int,com.google.android.material.transition.platform.TransitionUtils$CanvasOperation) -> transform
+    215:237:com.google.android.material.shape.ShapeAppearanceModel transformCornerSizes(com.google.android.material.shape.ShapeAppearanceModel,com.google.android.material.shape.ShapeAppearanceModel,android.graphics.RectF,com.google.android.material.transition.platform.TransitionUtils$CornerSizeBinaryOperator) -> transformCornerSizes
+com.google.android.material.transition.platform.TransitionUtils$1 -> com.google.android.material.transition.platform.TransitionUtils$1:
+    194:194:void <init>(android.graphics.RectF) -> <init>
+    198:200:com.google.android.material.shape.CornerSize apply(com.google.android.material.shape.CornerSize) -> apply
+com.google.android.material.transition.platform.TransitionUtils$2 -> com.google.android.material.transition.platform.TransitionUtils$2:
+    323:323:void <init>(android.graphics.RectF,android.graphics.RectF,float,float,float) -> <init>
+    328:333:com.google.android.material.shape.CornerSize apply(com.google.android.material.shape.CornerSize,com.google.android.material.shape.CornerSize) -> apply
+com.google.gson.DefaultDateTypeAdapter -> com.google.gson.DefaultDateTypeAdapter:
+    54:73:void <init>(java.lang.Class,java.lang.String) -> <init>
+    54:99:void <init>(java.lang.Class,int,int) -> <init>
+    158:162:java.lang.String toString() -> toString
+    102:105:java.lang.Class verifyDateType(java.lang.Class) -> verifyDateType
+    44:44:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    112:120:void write(com.google.gson.stream.JsonWriter,java.util.Date) -> write
+com.google.gson.FieldAttributes -> com.google.gson.FieldAttributes:
+    44:47:void <init>(java.lang.reflect.Field) -> <init>
+com.google.gson.FieldNamingPolicy -> com.google.gson.FieldNamingPolicy:
+    31:136:void <clinit>() -> <clinit>
+    31:31:void <init>(java.lang.String,int) -> <init>
+    31:31:void <init>(java.lang.String,int,com.google.gson.FieldNamingPolicy$1) -> <init>
+    185:187:java.lang.String modifyString(char,java.lang.String,int) -> modifyString
+    147:155:java.lang.String separateCamelCase(java.lang.String,java.lang.String) -> separateCamelCase
+    162:180:java.lang.String upperCaseFirstLetter(java.lang.String) -> upperCaseFirstLetter
+    31:31:com.google.gson.FieldNamingPolicy valueOf(java.lang.String) -> valueOf
+    31:31:com.google.gson.FieldNamingPolicy[] values() -> values
+com.google.gson.FieldNamingPolicy$1 -> com.google.gson.FieldNamingPolicy$1:
+    37:37:void <init>(java.lang.String,int) -> <init>
+    39:39:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.FieldNamingPolicy$2 -> com.google.gson.FieldNamingPolicy$2:
+    53:53:void <init>(java.lang.String,int) -> <init>
+    55:55:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.FieldNamingPolicy$3 -> com.google.gson.FieldNamingPolicy$3:
+    72:72:void <init>(java.lang.String,int) -> <init>
+    74:74:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.FieldNamingPolicy$4 -> com.google.gson.FieldNamingPolicy$4:
+    90:90:void <init>(java.lang.String,int) -> <init>
+    92:92:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.FieldNamingPolicy$5 -> com.google.gson.FieldNamingPolicy$5:
+    113:113:void <init>(java.lang.String,int) -> <init>
+    115:115:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.FieldNamingPolicy$6 -> com.google.gson.FieldNamingPolicy$6:
+    136:136:void <init>(java.lang.String,int) -> <init>
+    138:138:java.lang.String translateName(java.lang.reflect.Field) -> translateName
+com.google.gson.Gson -> com.google.gson.Gson:
+    114:114:void <clinit>() -> <clinit>
+    186:193:void <init>() -> <init>
+    124:281:void <init>(com.google.gson.internal.Excluder,com.google.gson.FieldNamingStrategy,java.util.Map,boolean,boolean,boolean,boolean,boolean,boolean,boolean,com.google.gson.LongSerializationPolicy,java.lang.String,int,int,java.util.List,java.util.List,java.util.List) -> <init>
+    388:396:com.google.gson.TypeAdapter atomicLongAdapter(com.google.gson.TypeAdapter) -> atomicLongAdapter
+    400:423:com.google.gson.TypeAdapter atomicLongArrayAdapter(com.google.gson.TypeAdapter) -> atomicLongArrayAdapter
+    358:363:void checkValidFloatingPoint(double) -> checkValidFloatingPoint
+    310:313:com.google.gson.TypeAdapter doubleAdapter(boolean) -> doubleAdapter
+    334:337:com.google.gson.TypeAdapter floatAdapter(boolean) -> floatAdapter
+    434:470:com.google.gson.TypeAdapter getAdapter(com.google.gson.reflect.TypeToken) -> getAdapter
+    556:556:com.google.gson.TypeAdapter getAdapter(java.lang.Class) -> getAdapter
+    528:546:com.google.gson.TypeAdapter getDelegateAdapter(com.google.gson.TypeAdapterFactory,com.google.gson.reflect.TypeToken) -> getDelegateAdapter
+    366:369:com.google.gson.TypeAdapter longAdapter(com.google.gson.LongSerializationPolicy) -> longAdapter
+    750:758:com.google.gson.stream.JsonWriter newJsonWriter(java.io.Writer) -> newJsonWriter
+    615:618:java.lang.String toJson(java.lang.Object) -> toJson
+    637:639:java.lang.String toJson(java.lang.Object,java.lang.reflect.Type) -> toJson
+    682:687:void toJson(java.lang.Object,java.lang.reflect.Type,java.lang.Appendable) -> toJson
+    696:714:void toJson(java.lang.Object,java.lang.reflect.Type,com.google.gson.stream.JsonWriter) -> toJson
+    724:726:java.lang.String toJson(com.google.gson.JsonElement) -> toJson
+    739:744:void toJson(com.google.gson.JsonElement,java.lang.Appendable) -> toJson
+    775:792:void toJson(com.google.gson.JsonElement,com.google.gson.stream.JsonWriter) -> toJson
+    1024:1029:java.lang.String toString() -> toString
+com.google.gson.Gson$1 -> com.google.gson.Gson$1:
+    313:313:void <init>(com.google.gson.Gson) -> <init>
+    313:313:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    322:329:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.Gson$2 -> com.google.gson.Gson$2:
+    337:337:void <init>(com.google.gson.Gson) -> <init>
+    337:337:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    346:353:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.Gson$3 -> com.google.gson.Gson$3:
+    369:369:void <init>() -> <init>
+    369:369:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    378:383:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.Gson$4 -> com.google.gson.Gson$4:
+    388:388:void <init>(com.google.gson.TypeAdapter) -> <init>
+    388:388:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    390:391:void write(com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicLong) -> write
+com.google.gson.Gson$5 -> com.google.gson.Gson$5:
+    400:400:void <init>(com.google.gson.TypeAdapter) -> <init>
+    400:400:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    402:407:void write(com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicLongArray) -> write
+com.google.gson.Gson$FutureTypeAdapter -> com.google.gson.Gson$FutureTypeAdapter:
+    997:997:void <init>() -> <init>
+    1001:1005:void setDelegate(com.google.gson.TypeAdapter) -> setDelegate
+    1015:1019:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.GsonBuilder -> com.google.gson.GsonBuilder:
+    79:105:void <init>() -> <init>
+    611:626:void addTypeAdaptersForDate(java.lang.String,int,int,java.util.List) -> addTypeAdaptersForDate
+    587:597:com.google.gson.Gson create() -> create
+    193:194:com.google.gson.GsonBuilder serializeNulls() -> serializeNulls
+    386:387:com.google.gson.GsonBuilder setPrettyPrinting() -> setPrettyPrinting
+com.google.gson.JsonArray -> com.google.gson.JsonArray:
+    39:41:void <init>() -> <init>
+    105:109:void add(com.google.gson.JsonElement) -> add
+    377:377:boolean equals(java.lang.Object) -> equals
+    382:382:int hashCode() -> hashCode
+    182:182:java.util.Iterator iterator() -> iterator
+com.google.gson.JsonElement -> com.google.gson.JsonElement:
+    33:33:void <init>() -> <init>
+    104:107:com.google.gson.JsonArray getAsJsonArray() -> getAsJsonArray
+    88:91:com.google.gson.JsonObject getAsJsonObject() -> getAsJsonObject
+    120:123:com.google.gson.JsonPrimitive getAsJsonPrimitive() -> getAsJsonPrimitive
+    47:47:boolean isJsonArray() -> isJsonArray
+    75:75:boolean isJsonNull() -> isJsonNull
+    56:56:boolean isJsonObject() -> isJsonObject
+    65:65:boolean isJsonPrimitive() -> isJsonPrimitive
+    322:328:java.lang.String toString() -> toString
+com.google.gson.JsonIOException -> com.google.gson.JsonIOException:
+    29:30:void <init>(java.lang.String) -> <init>
+    33:34:void <init>(java.lang.String,java.lang.Throwable) -> <init>
+    43:44:void <init>(java.lang.Throwable) -> <init>
+com.google.gson.JsonNull -> com.google.gson.JsonNull:
+    32:32:void <clinit>() -> <clinit>
+    39:41:void <init>() -> <init>
+    65:65:boolean equals(java.lang.Object) -> equals
+    57:57:int hashCode() -> hashCode
+com.google.gson.JsonObject -> com.google.gson.JsonObject:
+    32:33:void <init>() -> <init>
+    58:62:void add(java.lang.String,com.google.gson.JsonElement) -> add
+    136:136:java.util.Set entrySet() -> entrySet
+    210:211:boolean equals(java.lang.Object) -> equals
+    216:216:int hashCode() -> hashCode
+com.google.gson.JsonParseException -> com.google.gson.JsonParseException:
+    42:43:void <init>(java.lang.String) -> <init>
+    52:53:void <init>(java.lang.String,java.lang.Throwable) -> <init>
+    62:63:void <init>(java.lang.Throwable) -> <init>
+com.google.gson.JsonPrimitive -> com.google.gson.JsonPrimitive:
+    35:35:void <clinit>() -> <clinit>
+    46:48:void <init>(java.lang.Boolean) -> <init>
+    55:57:void <init>(java.lang.Number) -> <init>
+    64:66:void <init>(java.lang.String) -> <init>
+    310:330:boolean equals(java.lang.Object) -> equals
+    136:140:boolean getAsBoolean() -> getAsBoolean
+    126:126:java.lang.Boolean getAsBooleanWrapper() -> getAsBooleanWrapper
+    161:161:java.lang.Number getAsNumber() -> getAsNumber
+    180:185:java.lang.String getAsString() -> getAsString
+    293:305:int hashCode() -> hashCode
+    116:116:boolean isBoolean() -> isBoolean
+    338:343:boolean isIntegral(com.google.gson.JsonPrimitive) -> isIntegral
+    150:150:boolean isNumber() -> isNumber
+    278:288:boolean isPrimitiveOrString(java.lang.Object) -> isPrimitiveOrString
+    170:170:boolean isString() -> isString
+    98:108:void setValue(java.lang.Object) -> setValue
+com.google.gson.LongSerializationPolicy -> com.google.gson.LongSerializationPolicy:
+    27:45:void <clinit>() -> <clinit>
+    27:27:void <init>(java.lang.String,int) -> <init>
+    27:27:void <init>(java.lang.String,int,com.google.gson.LongSerializationPolicy$1) -> <init>
+    27:27:com.google.gson.LongSerializationPolicy valueOf(java.lang.String) -> valueOf
+    27:27:com.google.gson.LongSerializationPolicy[] values() -> values
+com.google.gson.LongSerializationPolicy$1 -> com.google.gson.LongSerializationPolicy$1:
+    34:34:void <init>(java.lang.String,int) -> <init>
+com.google.gson.LongSerializationPolicy$2 -> com.google.gson.LongSerializationPolicy$2:
+    45:45:void <init>(java.lang.String,int) -> <init>
+com.google.gson.TypeAdapter -> com.google.gson.TypeAdapter:
+    119:119:void <init>() -> <init>
+    186:186:com.google.gson.TypeAdapter nullSafe() -> nullSafe
+    233:237:com.google.gson.JsonElement toJsonTree(java.lang.Object) -> toJsonTree
+com.google.gson.TypeAdapter$1 -> com.google.gson.TypeAdapter$1:
+    186:186:void <init>(com.google.gson.TypeAdapter) -> <init>
+    188:193:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.$Gson$Preconditions -> com.google.gson.internal.$Gson$Preconditions:
+# {"id":"sourceFile","fileName":"$Gson$Preconditions.java"}
+    45:48:void checkArgument(boolean) -> checkArgument
+    38:41:java.lang.Object checkNotNull(java.lang.Object) -> checkNotNull
+com.google.gson.internal.$Gson$Types -> com.google.gson.internal.$Gson$Types:
+# {"id":"sourceFile","fileName":"$Gson$Types.java"}
+    40:40:void <clinit>() -> <clinit>
+    64:64:java.lang.reflect.GenericArrayType arrayOf(java.lang.reflect.Type) -> arrayOf
+    104:123:java.lang.reflect.Type canonicalize(java.lang.reflect.Type) -> canonicalize
+    457:458:void checkNotPrimitive(java.lang.reflect.Type) -> checkNotPrimitive
+    450:451:java.lang.Class declaringClassOf(java.lang.reflect.TypeVariable) -> declaringClassOf
+    162:162:boolean equal(java.lang.Object,java.lang.Object) -> equal
+    169:219:boolean equals(java.lang.reflect.Type,java.lang.reflect.Type) -> equals
+    292:294:java.lang.reflect.Type getArrayComponentType(java.lang.reflect.Type) -> getArrayComponentType
+    302:310:java.lang.reflect.Type getCollectionElementType(java.lang.reflect.Type,java.lang.Class) -> getCollectionElementType
+    237:267:java.lang.reflect.Type getGenericSupertype(java.lang.reflect.Type,java.lang.Class,java.lang.Class) -> getGenericSupertype
+    323:333:java.lang.reflect.Type[] getMapKeyAndValueTypes(java.lang.reflect.Type,java.lang.Class) -> getMapKeyAndValueTypes
+    128:156:java.lang.Class getRawType(java.lang.reflect.Type) -> getRawType
+    278:284:java.lang.reflect.Type getSupertype(java.lang.reflect.Type,java.lang.Class,java.lang.Class) -> getSupertype
+    224:224:int hashCodeOrZero(java.lang.Object) -> hashCodeOrZero
+    437:442:int indexOf(java.lang.Object[],java.lang.Object) -> indexOf
+    54:54:java.lang.reflect.ParameterizedType newParameterizedTypeWithOwner(java.lang.reflect.Type,java.lang.reflect.Type,java.lang.reflect.Type[]) -> newParameterizedTypeWithOwner
+    337:337:java.lang.reflect.Type resolve(java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Type) -> resolve
+    344:414:java.lang.reflect.Type resolve(java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Type,java.util.Collection) -> resolve
+    420:433:java.lang.reflect.Type resolveTypeVariable(java.lang.reflect.Type,java.lang.Class,java.lang.reflect.TypeVariable) -> resolveTypeVariable
+    75:80:java.lang.reflect.WildcardType subtypeOf(java.lang.reflect.Type) -> subtypeOf
+    90:95:java.lang.reflect.WildcardType supertypeOf(java.lang.reflect.Type) -> supertypeOf
+    228:228:java.lang.String typeToString(java.lang.reflect.Type) -> typeToString
+com.google.gson.internal.$Gson$Types$GenericArrayTypeImpl -> com.google.gson.internal.$Gson$Types$GenericArrayTypeImpl:
+# {"id":"sourceFile","fileName":"$Gson$Types.java"}
+    527:529:void <init>(java.lang.reflect.Type) -> <init>
+    536:537:boolean equals(java.lang.Object) -> equals
+    532:532:java.lang.reflect.Type getGenericComponentType() -> getGenericComponentType
+    541:541:int hashCode() -> hashCode
+    545:545:java.lang.String toString() -> toString
+com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl -> com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl:
+# {"id":"sourceFile","fileName":"$Gson$Types.java"}
+    465:482:void <init>(java.lang.reflect.Type,java.lang.reflect.Type,java.lang.reflect.Type[]) -> <init>
+    497:498:boolean equals(java.lang.Object) -> equals
+    485:485:java.lang.reflect.Type[] getActualTypeArguments() -> getActualTypeArguments
+    493:493:java.lang.reflect.Type getOwnerType() -> getOwnerType
+    489:489:java.lang.reflect.Type getRawType() -> getRawType
+    502:504:int hashCode() -> hashCode
+    508:518:java.lang.String toString() -> toString
+com.google.gson.internal.$Gson$Types$WildcardTypeImpl -> com.google.gson.internal.$Gson$Types$WildcardTypeImpl:
+# {"id":"sourceFile","fileName":"$Gson$Types.java"}
+    560:577:void <init>(java.lang.reflect.Type[],java.lang.reflect.Type[]) -> <init>
+    588:589:boolean equals(java.lang.Object) -> equals
+    584:584:java.lang.reflect.Type[] getLowerBounds() -> getLowerBounds
+    580:580:java.lang.reflect.Type[] getUpperBounds() -> getUpperBounds
+    594:595:int hashCode() -> hashCode
+    599:604:java.lang.String toString() -> toString
+com.google.gson.internal.ConstructorConstructor -> com.google.gson.internal.ConstructorConstructor:
+    51:55:void <init>(java.util.Map) -> <init>
+    58:96:com.google.gson.internal.ObjectConstructor get(com.google.gson.reflect.TypeToken) -> get
+    101:125:com.google.gson.internal.ObjectConstructor newDefaultConstructor(java.lang.Class) -> newDefaultConstructor
+    136:215:com.google.gson.internal.ObjectConstructor newDefaultImplementationConstructor(java.lang.reflect.Type,java.lang.Class) -> newDefaultImplementationConstructor
+    220:220:com.google.gson.internal.ObjectConstructor newUnsafeAllocator(java.lang.reflect.Type,java.lang.Class) -> newUnsafeAllocator
+    236:236:java.lang.String toString() -> toString
+com.google.gson.internal.ConstructorConstructor$1 -> com.google.gson.internal.ConstructorConstructor$1:
+    66:66:void <init>(com.google.gson.internal.ConstructorConstructor,com.google.gson.InstanceCreator,java.lang.reflect.Type) -> <init>
+    68:68:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$10 -> com.google.gson.internal.ConstructorConstructor$10:
+    188:188:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    190:190:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$11 -> com.google.gson.internal.ConstructorConstructor$11:
+    194:194:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    196:196:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$12 -> com.google.gson.internal.ConstructorConstructor$12:
+    201:201:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    203:203:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$13 -> com.google.gson.internal.ConstructorConstructor$13:
+    207:207:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    209:209:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$14 -> com.google.gson.internal.ConstructorConstructor$14:
+    220:221:void <init>(com.google.gson.internal.ConstructorConstructor,java.lang.Class,java.lang.reflect.Type) -> <init>
+    225:228:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$2 -> com.google.gson.internal.ConstructorConstructor$2:
+    78:78:void <init>(com.google.gson.internal.ConstructorConstructor,com.google.gson.InstanceCreator,java.lang.reflect.Type) -> <init>
+    80:80:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$3 -> com.google.gson.internal.ConstructorConstructor$3:
+    105:105:void <init>(com.google.gson.internal.ConstructorConstructor,java.lang.reflect.Constructor) -> <init>
+    109:120:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$4 -> com.google.gson.internal.ConstructorConstructor$4:
+    138:138:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    140:140:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$5 -> com.google.gson.internal.ConstructorConstructor$5:
+    144:144:void <init>(com.google.gson.internal.ConstructorConstructor,java.lang.reflect.Type) -> <init>
+    147:155:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$6 -> com.google.gson.internal.ConstructorConstructor$6:
+    160:160:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    162:162:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$7 -> com.google.gson.internal.ConstructorConstructor$7:
+    166:166:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    168:168:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$8 -> com.google.gson.internal.ConstructorConstructor$8:
+    172:172:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    174:174:java.lang.Object construct() -> construct
+com.google.gson.internal.ConstructorConstructor$9 -> com.google.gson.internal.ConstructorConstructor$9:
+    182:182:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    184:184:java.lang.Object construct() -> construct
+com.google.gson.internal.Excluder -> com.google.gson.internal.Excluder:
+    52:52:void <clinit>() -> <clinit>
+    50:59:void <init>() -> <init>
+    50:50:java.lang.Object clone() -> clone
+    63:65:com.google.gson.internal.Excluder clone() -> clone
+    112:122:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    210:211:boolean excludeClass(java.lang.Class,boolean) -> excludeClass
+    194:206:boolean excludeClassChecks(java.lang.Class) -> excludeClassChecks
+    215:221:boolean excludeClassInStrategy(java.lang.Class,boolean) -> excludeClassInStrategy
+    152:190:boolean excludeField(java.lang.reflect.Field,boolean) -> excludeField
+    225:226:boolean isAnonymousOrLocal(java.lang.Class) -> isAnonymousOrLocal
+    230:230:boolean isInnerClass(java.lang.Class) -> isInnerClass
+    234:234:boolean isStatic(java.lang.Class) -> isStatic
+    242:248:boolean isValidSince(com.google.gson.annotations.Since) -> isValidSince
+    252:258:boolean isValidUntil(com.google.gson.annotations.Until) -> isValidUntil
+    238:238:boolean isValidVersion(com.google.gson.annotations.Since,com.google.gson.annotations.Until) -> isValidVersion
+com.google.gson.internal.Excluder$1 -> com.google.gson.internal.Excluder$1:
+    122:122:void <init>(com.google.gson.internal.Excluder,boolean,boolean,com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> <init>
+    143:146:com.google.gson.TypeAdapter delegate() -> delegate
+    135:140:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.JavaVersion -> com.google.gson.internal.JavaVersion:
+    26:26:void <clinit>() -> <clinit>
+    29:30:int determineMajorJavaVersion() -> determineMajorJavaVersion
+    62:73:int extractBeginningInt(java.lang.String) -> extractBeginningInt
+    35:42:int getMajorJavaVersion(java.lang.String) -> getMajorJavaVersion
+    81:81:int getMajorJavaVersion() -> getMajorJavaVersion
+    88:88:boolean isJava9OrLater() -> isJava9OrLater
+    48:56:int parseDotted(java.lang.String) -> parseDotted
+com.google.gson.internal.LazilyParsedNumber -> com.google.gson.internal.LazilyParsedNumber:
+    30:32:void <init>(java.lang.String) -> <init>
+    63:63:double doubleValue() -> doubleValue
+    87:94:boolean equals(java.lang.Object) -> equals
+    58:58:float floatValue() -> floatValue
+    82:82:int hashCode() -> hashCode
+    37:42:int intValue() -> intValue
+    50:52:long longValue() -> longValue
+    68:68:java.lang.String toString() -> toString
+    77:77:java.lang.Object writeReplace() -> writeReplace
+com.google.gson.internal.LinkedTreeMap -> com.google.gson.internal.LinkedTreeMap:
+    38:40:void <clinit>() -> <clinit>
+    60:61:void <init>() -> <init>
+    48:75:void <init>(java.util.Comparator) -> <init>
+    101:108:void clear() -> clear
+    87:87:boolean containsKey(java.lang.Object) -> containsKey
+    430:431:java.util.Set entrySet() -> entrySet
+    208:208:boolean equal(java.lang.Object,java.lang.Object) -> equal
+    122:180:com.google.gson.internal.LinkedTreeMap$Node find(java.lang.Object,boolean) -> find
+    202:204:com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry) -> findByEntry
+    186:188:com.google.gson.internal.LinkedTreeMap$Node findByObject(java.lang.Object) -> findByObject
+    82:83:java.lang.Object get(java.lang.Object) -> get
+    435:436:java.util.Set keySet() -> keySet
+    91:97:java.lang.Object put(java.lang.Object,java.lang.Object) -> put
+    311:368:void rebalance(com.google.gson.internal.LinkedTreeMap$Node,boolean) -> rebalance
+    111:112:java.lang.Object remove(java.lang.Object) -> remove
+    218:274:void removeInternal(com.google.gson.internal.LinkedTreeMap$Node,boolean) -> removeInternal
+    277:281:com.google.gson.internal.LinkedTreeMap$Node removeInternalByKey(java.lang.Object) -> removeInternalByKey
+    285:301:void replaceInParent(com.google.gson.internal.LinkedTreeMap$Node,com.google.gson.internal.LinkedTreeMap$Node) -> replaceInParent
+    374:396:void rotateLeft(com.google.gson.internal.LinkedTreeMap$Node) -> rotateLeft
+    402:424:void rotateRight(com.google.gson.internal.LinkedTreeMap$Node) -> rotateRight
+    78:78:int size() -> size
+    628:628:java.lang.Object writeReplace() -> writeReplace
+com.google.gson.internal.LinkedTreeMap$1 -> com.google.gson.internal.LinkedTreeMap$1:
+    40:40:void <init>() -> <init>
+    40:40:int compare(java.lang.Object,java.lang.Object) -> compare
+    42:42:int compare(java.lang.Comparable,java.lang.Comparable) -> compare
+com.google.gson.internal.LinkedTreeMap$EntrySet -> com.google.gson.internal.LinkedTreeMap$EntrySet:
+    560:560:void <init>(com.google.gson.internal.LinkedTreeMap) -> <init>
+    591:592:void clear() -> clear
+    574:574:boolean contains(java.lang.Object) -> contains
+    566:566:java.util.Iterator iterator() -> iterator
+    578:587:boolean remove(java.lang.Object) -> remove
+    562:562:int size() -> size
+com.google.gson.internal.LinkedTreeMap$EntrySet$1 -> com.google.gson.internal.LinkedTreeMap$EntrySet$1:
+    566:566:void <init>(com.google.gson.internal.LinkedTreeMap$EntrySet) -> <init>
+    566:566:java.lang.Object next() -> next
+    568:568:java.util.Map$Entry next() -> next
+com.google.gson.internal.LinkedTreeMap$KeySet -> com.google.gson.internal.LinkedTreeMap$KeySet:
+    595:595:void <init>(com.google.gson.internal.LinkedTreeMap) -> <init>
+    617:618:void clear() -> clear
+    609:609:boolean contains(java.lang.Object) -> contains
+    601:601:java.util.Iterator iterator() -> iterator
+    613:613:boolean remove(java.lang.Object) -> remove
+    597:597:int size() -> size
+com.google.gson.internal.LinkedTreeMap$KeySet$1 -> com.google.gson.internal.LinkedTreeMap$KeySet$1:
+    601:601:void <init>(com.google.gson.internal.LinkedTreeMap$KeySet) -> <init>
+    603:603:java.lang.Object next() -> next
+com.google.gson.internal.LinkedTreeMap$LinkedTreeMapIterator -> com.google.gson.internal.LinkedTreeMap$LinkedTreeMapIterator:
+    527:532:void <init>(com.google.gson.internal.LinkedTreeMap) -> <init>
+    535:535:boolean hasNext() -> hasNext
+    539:547:com.google.gson.internal.LinkedTreeMap$Node nextNode() -> nextNode
+    551:557:void remove() -> remove
+com.google.gson.internal.LinkedTreeMap$Node -> com.google.gson.internal.LinkedTreeMap$Node:
+    450:453:void <init>() -> <init>
+    456:464:void <init>(com.google.gson.internal.LinkedTreeMap$Node,java.lang.Object,com.google.gson.internal.LinkedTreeMap$Node,com.google.gson.internal.LinkedTreeMap$Node) -> <init>
+    482:487:boolean equals(java.lang.Object) -> equals
+    503:509:com.google.gson.internal.LinkedTreeMap$Node first() -> first
+    467:467:java.lang.Object getKey() -> getKey
+    471:471:java.lang.Object getValue() -> getValue
+    491:492:int hashCode() -> hashCode
+    516:522:com.google.gson.internal.LinkedTreeMap$Node last() -> last
+    475:477:java.lang.Object setValue(java.lang.Object) -> setValue
+    496:496:java.lang.String toString() -> toString
+com.google.gson.internal.PreJava9DateFormatProvider -> com.google.gson.internal.PreJava9DateFormatProvider:
+    59:69:java.lang.String getDatePartOfDateTimePattern(int) -> getDatePartOfDateTimePattern
+    74:83:java.lang.String getTimePartOfDateTimePattern(int) -> getTimePartOfDateTimePattern
+    39:40:java.text.DateFormat getUSDateTimeFormat(int,int) -> getUSDateTimeFormat
+com.google.gson.internal.Primitives -> com.google.gson.internal.Primitives:
+    45:60:void <clinit>() -> <clinit>
+    64:66:void add(java.util.Map,java.util.Map,java.lang.Class,java.lang.Class) -> add
+    72:72:boolean isPrimitive(java.lang.reflect.Type) -> isPrimitive
+com.google.gson.internal.Streams -> com.google.gson.internal.Streams:
+    72:73:void write(com.google.gson.JsonElement,com.google.gson.stream.JsonWriter) -> write
+    76:76:java.io.Writer writerForAppendable(java.lang.Appendable) -> writerForAppendable
+com.google.gson.internal.Streams$AppendableWriter -> com.google.gson.internal.Streams$AppendableWriter:
+    85:89:void <init>(java.lang.Appendable) -> <init>
+    101:101:void close() -> close
+    100:100:void flush() -> flush
+    92:94:void write(char[],int,int) -> write
+    97:98:void write(int) -> write
+com.google.gson.internal.Streams$AppendableWriter$CurrentWrite -> com.google.gson.internal.Streams$AppendableWriter$CurrentWrite:
+    106:106:void <init>() -> <init>
+    112:112:char charAt(int) -> charAt
+    109:109:int length() -> length
+    115:115:java.lang.CharSequence subSequence(int,int) -> subSequence
+com.google.gson.internal.UnsafeAllocator -> com.google.gson.internal.UnsafeAllocator:
+    31:31:void <init>() -> <init>
+    115:122:void assertInstantiable(java.lang.Class) -> assertInstantiable
+    40:101:com.google.gson.internal.UnsafeAllocator create() -> create
+com.google.gson.internal.UnsafeAllocator$1 -> com.google.gson.internal.UnsafeAllocator$1:
+    45:45:void <init>(java.lang.reflect.Method,java.lang.Object) -> <init>
+    49:50:java.lang.Object newInstance(java.lang.Class) -> newInstance
+com.google.gson.internal.UnsafeAllocator$2 -> com.google.gson.internal.UnsafeAllocator$2:
+    69:69:void <init>(java.lang.reflect.Method,int) -> <init>
+    73:74:java.lang.Object newInstance(java.lang.Class) -> newInstance
+com.google.gson.internal.UnsafeAllocator$3 -> com.google.gson.internal.UnsafeAllocator$3:
+    89:89:void <init>(java.lang.reflect.Method) -> <init>
+    93:94:java.lang.Object newInstance(java.lang.Class) -> newInstance
+com.google.gson.internal.UnsafeAllocator$4 -> com.google.gson.internal.UnsafeAllocator$4:
+    101:101:void <init>() -> <init>
+    104:104:java.lang.Object newInstance(java.lang.Class) -> newInstance
+com.google.gson.internal.bind.ArrayTypeAdapter -> com.google.gson.internal.bind.ArrayTypeAdapter:
+    39:39:void <clinit>() -> <clinit>
+    57:61:void <init>(com.google.gson.Gson,com.google.gson.TypeAdapter,java.lang.Class) -> <init>
+    87:98:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.ArrayTypeAdapter$1 -> com.google.gson.internal.bind.ArrayTypeAdapter$1:
+    39:39:void <init>() -> <init>
+    42:50:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.CollectionTypeAdapterFactory -> com.google.gson.internal.bind.CollectionTypeAdapterFactory:
+    39:41:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    45:58:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter -> com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter:
+    67:71:void <init>(com.google.gson.Gson,java.lang.reflect.Type,com.google.gson.TypeAdapter,com.google.gson.internal.ObjectConstructor) -> <init>
+    61:61:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    90:100:void write(com.google.gson.stream.JsonWriter,java.util.Collection) -> write
+com.google.gson.internal.bind.DateTypeAdapter -> com.google.gson.internal.bind.DateTypeAdapter:
+    47:47:void <clinit>() -> <clinit>
+    58:68:void <init>() -> <init>
+    46:46:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    91:98:void write(com.google.gson.stream.JsonWriter,java.util.Date) -> write
+com.google.gson.internal.bind.DateTypeAdapter$1 -> com.google.gson.internal.bind.DateTypeAdapter$1:
+    47:47:void <init>() -> <init>
+    50:50:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory -> com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory:
+    37:39:void <init>(com.google.gson.internal.ConstructorConstructor) -> <init>
+    44:49:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    55:81:com.google.gson.TypeAdapter getTypeAdapter(com.google.gson.internal.ConstructorConstructor,com.google.gson.Gson,com.google.gson.reflect.TypeToken,com.google.gson.annotations.JsonAdapter) -> getTypeAdapter
+com.google.gson.internal.bind.JsonTreeWriter -> com.google.gson.internal.bind.JsonTreeWriter:
+    34:46:void <clinit>() -> <clinit>
+    49:59:void <init>() -> <init>
+    95:98:com.google.gson.stream.JsonWriter beginArray() -> beginArray
+    114:117:com.google.gson.stream.JsonWriter beginObject() -> beginObject
+    203:207:void close() -> close
+    102:110:com.google.gson.stream.JsonWriter endArray() -> endArray
+    121:129:com.google.gson.stream.JsonWriter endObject() -> endObject
+    200:200:void flush() -> flush
+    65:68:com.google.gson.JsonElement get() -> get
+    133:141:com.google.gson.stream.JsonWriter name(java.lang.String) -> name
+    153:154:com.google.gson.stream.JsonWriter nullValue() -> nullValue
+    72:72:com.google.gson.JsonElement peek() -> peek
+    76:92:void put(com.google.gson.JsonElement) -> put
+    145:149:com.google.gson.stream.JsonWriter value(java.lang.String) -> value
+    158:159:com.google.gson.stream.JsonWriter value(boolean) -> value
+    163:167:com.google.gson.stream.JsonWriter value(java.lang.Boolean) -> value
+    179:180:com.google.gson.stream.JsonWriter value(long) -> value
+    184:196:com.google.gson.stream.JsonWriter value(java.lang.Number) -> value
+com.google.gson.internal.bind.JsonTreeWriter$1 -> com.google.gson.internal.bind.JsonTreeWriter$1:
+    34:34:void <init>() -> <init>
+    42:42:void close() -> close
+    39:39:void flush() -> flush
+    36:36:void write(char[],int,int) -> write
+com.google.gson.internal.bind.MapTypeAdapterFactory -> com.google.gson.internal.bind.MapTypeAdapterFactory:
+    110:113:void <init>(com.google.gson.internal.ConstructorConstructor,boolean) -> <init>
+    116:133:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    140:142:com.google.gson.TypeAdapter getKeyAdapter(com.google.gson.Gson,java.lang.reflect.Type) -> getKeyAdapter
+com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter -> com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter:
+    152:158:void <init>(com.google.gson.internal.bind.MapTypeAdapterFactory,com.google.gson.Gson,java.lang.reflect.Type,com.google.gson.TypeAdapter,java.lang.reflect.Type,com.google.gson.TypeAdapter,com.google.gson.internal.ObjectConstructor) -> <init>
+    246:260:java.lang.String keyToString(com.google.gson.JsonElement) -> keyToString
+    145:145:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    199:243:void write(com.google.gson.stream.JsonWriter,java.util.Map) -> write
+com.google.gson.internal.bind.ObjectTypeAdapter -> com.google.gson.internal.bind.ObjectTypeAdapter:
+    38:38:void <clinit>() -> <clinit>
+    50:52:void <init>(com.google.gson.Gson) -> <init>
+    95:108:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.ObjectTypeAdapter$1 -> com.google.gson.internal.bind.ObjectTypeAdapter$1:
+    38:38:void <init>() -> <init>
+    41:44:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.ReflectiveTypeAdapterFactory -> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory:
+    53:62:void <init>(com.google.gson.internal.ConstructorConstructor,com.google.gson.FieldNamingStrategy,com.google.gson.internal.Excluder,com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory) -> <init>
+    95:102:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    108:120:com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$BoundField createBoundField(com.google.gson.Gson,java.lang.reflect.Field,java.lang.String,com.google.gson.reflect.TypeToken,boolean,boolean) -> createBoundField
+    65:65:boolean excludeField(java.lang.reflect.Field,boolean) -> excludeField
+    69:69:boolean excludeField(java.lang.reflect.Field,boolean,com.google.gson.internal.Excluder) -> excludeField
+    145:179:java.util.Map getBoundFields(com.google.gson.Gson,com.google.gson.reflect.TypeToken,java.lang.Class) -> getBoundFields
+    74:91:java.util.List getFieldNames(java.lang.reflect.Field) -> getFieldNames
+com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1 -> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1:
+    120:120:void <init>(com.google.gson.internal.bind.ReflectiveTypeAdapterFactory,java.lang.String,boolean,boolean,java.lang.reflect.Field,boolean,com.google.gson.TypeAdapter,com.google.gson.Gson,com.google.gson.reflect.TypeToken,boolean) -> <init>
+    124:128:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    137:139:boolean writeField(java.lang.Object) -> writeField
+com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter -> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter:
+    201:204:void <init>(com.google.gson.internal.ObjectConstructor,java.util.Map) -> <init>
+    235:252:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$BoundField -> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$BoundField:
+    187:191:void <init>(java.lang.String,boolean,boolean) -> <init>
+com.google.gson.internal.bind.SqlDateTypeAdapter -> com.google.gson.internal.bind.SqlDateTypeAdapter:
+    39:39:void <clinit>() -> <clinit>
+    38:47:void <init>() -> <init>
+    38:38:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    64:66:void write(com.google.gson.stream.JsonWriter,java.sql.Date) -> write
+com.google.gson.internal.bind.SqlDateTypeAdapter$1 -> com.google.gson.internal.bind.SqlDateTypeAdapter$1:
+    39:39:void <init>() -> <init>
+    42:42:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.TimeTypeAdapter -> com.google.gson.internal.bind.TimeTypeAdapter:
+    41:41:void <clinit>() -> <clinit>
+    40:48:void <init>() -> <init>
+    40:40:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    63:65:void write(com.google.gson.stream.JsonWriter,java.sql.Time) -> write
+com.google.gson.internal.bind.TimeTypeAdapter$1 -> com.google.gson.internal.bind.TimeTypeAdapter$1:
+    41:41:void <init>() -> <init>
+    44:44:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.TreeTypeAdapter -> com.google.gson.internal.bind.TreeTypeAdapter:
+    47:59:void <init>(com.google.gson.JsonSerializer,com.google.gson.JsonDeserializer,com.google.gson.Gson,com.google.gson.reflect.TypeToken,com.google.gson.TypeAdapterFactory) -> <init>
+    86:89:com.google.gson.TypeAdapter delegate() -> delegate
+    73:83:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl -> com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl:
+    153:153:void <init>(com.google.gson.internal.bind.TreeTypeAdapter) -> <init>
+    153:153:void <init>(com.google.gson.internal.bind.TreeTypeAdapter,com.google.gson.internal.bind.TreeTypeAdapter$1) -> <init>
+com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper -> com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper:
+    33:37:void <init>(com.google.gson.Gson,com.google.gson.TypeAdapter,java.lang.reflect.Type) -> <init>
+    76:80:java.lang.reflect.Type getRuntimeTypeIfMoreSpecific(java.lang.reflect.Type,java.lang.Object) -> getRuntimeTypeIfMoreSpecific
+    53:70:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.TypeAdapters -> com.google.gson.internal.bind.TypeAdapters:
+    69:808:void <clinit>() -> <clinit>
+    834:834:com.google.gson.TypeAdapterFactory newFactory(java.lang.Class,com.google.gson.TypeAdapter) -> newFactory
+    847:847:com.google.gson.TypeAdapterFactory newFactory(java.lang.Class,java.lang.Class,com.google.gson.TypeAdapter) -> newFactory
+    862:862:com.google.gson.TypeAdapterFactory newFactoryForMultipleTypes(java.lang.Class,java.lang.Class,com.google.gson.TypeAdapter) -> newFactoryForMultipleTypes
+    881:881:com.google.gson.TypeAdapterFactory newTypeHierarchyFactory(java.lang.Class,com.google.gson.TypeAdapter) -> newTypeHierarchyFactory
+com.google.gson.internal.bind.TypeAdapters$1 -> com.google.gson.internal.bind.TypeAdapters$1:
+    69:69:void <init>() -> <init>
+    69:69:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    72:73:void write(com.google.gson.stream.JsonWriter,java.lang.Class) -> write
+com.google.gson.internal.bind.TypeAdapters$10 -> com.google.gson.internal.bind.TypeAdapters$10:
+    265:265:void <init>() -> <init>
+    265:265:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    286:291:void write(com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicIntegerArray) -> write
+com.google.gson.internal.bind.TypeAdapters$11 -> com.google.gson.internal.bind.TypeAdapters$11:
+    296:296:void <init>() -> <init>
+    296:296:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    311:312:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$12 -> com.google.gson.internal.bind.TypeAdapters$12:
+    315:315:void <init>() -> <init>
+    315:315:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    326:327:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$13 -> com.google.gson.internal.bind.TypeAdapters$13:
+    330:330:void <init>() -> <init>
+    330:330:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    341:342:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$14 -> com.google.gson.internal.bind.TypeAdapters$14:
+    345:345:void <init>() -> <init>
+    345:345:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    362:363:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$15 -> com.google.gson.internal.bind.TypeAdapters$15:
+    368:368:void <init>() -> <init>
+    368:368:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    383:384:void write(com.google.gson.stream.JsonWriter,java.lang.Character) -> write
+com.google.gson.internal.bind.TypeAdapters$16 -> com.google.gson.internal.bind.TypeAdapters$16:
+    390:390:void <init>() -> <init>
+    390:390:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    406:407:void write(com.google.gson.stream.JsonWriter,java.lang.String) -> write
+com.google.gson.internal.bind.TypeAdapters$17 -> com.google.gson.internal.bind.TypeAdapters$17:
+    410:410:void <init>() -> <init>
+    410:410:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    424:425:void write(com.google.gson.stream.JsonWriter,java.math.BigDecimal) -> write
+com.google.gson.internal.bind.TypeAdapters$18 -> com.google.gson.internal.bind.TypeAdapters$18:
+    428:428:void <init>() -> <init>
+    428:428:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    442:443:void write(com.google.gson.stream.JsonWriter,java.math.BigInteger) -> write
+com.google.gson.internal.bind.TypeAdapters$19 -> com.google.gson.internal.bind.TypeAdapters$19:
+    448:448:void <init>() -> <init>
+    448:448:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    459:460:void write(com.google.gson.stream.JsonWriter,java.lang.StringBuilder) -> write
+com.google.gson.internal.bind.TypeAdapters$2 -> com.google.gson.internal.bind.TypeAdapters$2:
+    84:84:void <init>() -> <init>
+    84:84:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    122:128:void write(com.google.gson.stream.JsonWriter,java.util.BitSet) -> write
+com.google.gson.internal.bind.TypeAdapters$20 -> com.google.gson.internal.bind.TypeAdapters$20:
+    466:466:void <init>() -> <init>
+    466:466:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    477:478:void write(com.google.gson.stream.JsonWriter,java.lang.StringBuffer) -> write
+com.google.gson.internal.bind.TypeAdapters$21 -> com.google.gson.internal.bind.TypeAdapters$21:
+    484:484:void <init>() -> <init>
+    484:484:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    496:497:void write(com.google.gson.stream.JsonWriter,java.net.URL) -> write
+com.google.gson.internal.bind.TypeAdapters$22 -> com.google.gson.internal.bind.TypeAdapters$22:
+    502:502:void <init>() -> <init>
+    502:502:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    518:519:void write(com.google.gson.stream.JsonWriter,java.net.URI) -> write
+com.google.gson.internal.bind.TypeAdapters$23 -> com.google.gson.internal.bind.TypeAdapters$23:
+    524:524:void <init>() -> <init>
+    524:524:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    536:537:void write(com.google.gson.stream.JsonWriter,java.net.InetAddress) -> write
+com.google.gson.internal.bind.TypeAdapters$24 -> com.google.gson.internal.bind.TypeAdapters$24:
+    543:543:void <init>() -> <init>
+    543:543:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    554:555:void write(com.google.gson.stream.JsonWriter,java.util.UUID) -> write
+com.google.gson.internal.bind.TypeAdapters$25 -> com.google.gson.internal.bind.TypeAdapters$25:
+    560:560:void <init>() -> <init>
+    560:560:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    567:568:void write(com.google.gson.stream.JsonWriter,java.util.Currency) -> write
+com.google.gson.internal.bind.TypeAdapters$26 -> com.google.gson.internal.bind.TypeAdapters$26:
+    572:572:void <init>() -> <init>
+    575:580:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.TypeAdapters$26$1 -> com.google.gson.internal.bind.TypeAdapters$26$1:
+    580:580:void <init>(com.google.gson.internal.bind.TypeAdapters$26,com.google.gson.TypeAdapter) -> <init>
+    580:580:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    587:588:void write(com.google.gson.stream.JsonWriter,java.sql.Timestamp) -> write
+com.google.gson.internal.bind.TypeAdapters$27 -> com.google.gson.internal.bind.TypeAdapters$27:
+    593:593:void <init>() -> <init>
+    593:593:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    637:655:void write(com.google.gson.stream.JsonWriter,java.util.Calendar) -> write
+com.google.gson.internal.bind.TypeAdapters$28 -> com.google.gson.internal.bind.TypeAdapters$28:
+    661:661:void <init>() -> <init>
+    661:661:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    692:693:void write(com.google.gson.stream.JsonWriter,java.util.Locale) -> write
+com.google.gson.internal.bind.TypeAdapters$29 -> com.google.gson.internal.bind.TypeAdapters$29:
+    698:698:void <init>() -> <init>
+    698:698:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    737:767:void write(com.google.gson.stream.JsonWriter,com.google.gson.JsonElement) -> write
+com.google.gson.internal.bind.TypeAdapters$3 -> com.google.gson.internal.bind.TypeAdapters$3:
+    133:133:void <init>() -> <init>
+    133:133:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    148:149:void write(com.google.gson.stream.JsonWriter,java.lang.Boolean) -> write
+com.google.gson.internal.bind.TypeAdapters$30 -> com.google.gson.internal.bind.TypeAdapters$30:
+    808:808:void <init>() -> <init>
+    811:818:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+com.google.gson.internal.bind.TypeAdapters$32 -> com.google.gson.internal.bind.TypeAdapters$32:
+    834:834:void <init>(java.lang.Class,com.google.gson.TypeAdapter) -> <init>
+    837:837:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    840:840:java.lang.String toString() -> toString
+com.google.gson.internal.bind.TypeAdapters$33 -> com.google.gson.internal.bind.TypeAdapters$33:
+    847:847:void <init>(java.lang.Class,java.lang.Class,com.google.gson.TypeAdapter) -> <init>
+    850:851:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    854:855:java.lang.String toString() -> toString
+com.google.gson.internal.bind.TypeAdapters$34 -> com.google.gson.internal.bind.TypeAdapters$34:
+    862:862:void <init>(java.lang.Class,java.lang.Class,com.google.gson.TypeAdapter) -> <init>
+    865:866:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    869:870:java.lang.String toString() -> toString
+com.google.gson.internal.bind.TypeAdapters$35 -> com.google.gson.internal.bind.TypeAdapters$35:
+    881:881:void <init>(java.lang.Class,com.google.gson.TypeAdapter) -> <init>
+    884:888:com.google.gson.TypeAdapter create(com.google.gson.Gson,com.google.gson.reflect.TypeToken) -> create
+    904:904:java.lang.String toString() -> toString
+com.google.gson.internal.bind.TypeAdapters$35$1 -> com.google.gson.internal.bind.TypeAdapters$35$1:
+    888:888:void <init>(com.google.gson.internal.bind.TypeAdapters$35,java.lang.Class) -> <init>
+    890:891:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+com.google.gson.internal.bind.TypeAdapters$4 -> com.google.gson.internal.bind.TypeAdapters$4:
+    156:156:void <init>() -> <init>
+    156:156:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    166:167:void write(com.google.gson.stream.JsonWriter,java.lang.Boolean) -> write
+com.google.gson.internal.bind.TypeAdapters$5 -> com.google.gson.internal.bind.TypeAdapters$5:
+    173:173:void <init>() -> <init>
+    173:173:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    189:190:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$6 -> com.google.gson.internal.bind.TypeAdapters$6:
+    196:196:void <init>() -> <init>
+    196:196:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    211:212:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$7 -> com.google.gson.internal.bind.TypeAdapters$7:
+    218:218:void <init>() -> <init>
+    218:218:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    233:234:void write(com.google.gson.stream.JsonWriter,java.lang.Number) -> write
+com.google.gson.internal.bind.TypeAdapters$8 -> com.google.gson.internal.bind.TypeAdapters$8:
+    239:239:void <init>() -> <init>
+    239:239:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    248:249:void write(com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicInteger) -> write
+com.google.gson.internal.bind.TypeAdapters$9 -> com.google.gson.internal.bind.TypeAdapters$9:
+    254:254:void <init>() -> <init>
+    254:254:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    259:260:void write(com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicBoolean) -> write
+com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter -> com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter:
+    774:794:void <init>(java.lang.Class) -> <init>
+    773:773:void write(com.google.gson.stream.JsonWriter,java.lang.Object) -> write
+    804:805:void write(com.google.gson.stream.JsonWriter,java.lang.Enum) -> write
+com.google.gson.internal.reflect.PreJava9ReflectionAccessor -> com.google.gson.internal.reflect.PreJava9ReflectionAccessor:
+    26:26:void <init>() -> <init>
+    31:32:void makeAccessible(java.lang.reflect.AccessibleObject) -> makeAccessible
+com.google.gson.internal.reflect.ReflectionAccessor -> com.google.gson.internal.reflect.ReflectionAccessor:
+    36:36:void <clinit>() -> <clinit>
+    33:33:void <init>() -> <init>
+    52:52:com.google.gson.internal.reflect.ReflectionAccessor getInstance() -> getInstance
+com.google.gson.internal.reflect.UnsafeReflectionAccessor -> com.google.gson.internal.reflect.UnsafeReflectionAccessor:
+    31:35:void <init>() -> <init>
+    81:83:java.lang.reflect.Field getOverrideField() -> getOverrideField
+    70:75:java.lang.Object getUnsafeInstance() -> getUnsafeInstance
+    40:51:void makeAccessible(java.lang.reflect.AccessibleObject) -> makeAccessible
+    55:65:boolean makeAccessibleWithUnsafe(java.lang.reflect.AccessibleObject) -> makeAccessibleWithUnsafe
+com.google.gson.reflect.TypeToken -> com.google.gson.reflect.TypeToken:
+    61:65:void <init>() -> <init>
+    71:75:void <init>(java.lang.reflect.Type) -> <init>
+    284:285:boolean equals(java.lang.Object) -> equals
+    296:296:com.google.gson.reflect.TypeToken get(java.lang.reflect.Type) -> get
+    303:303:com.google.gson.reflect.TypeToken get(java.lang.Class) -> get
+    94:94:java.lang.Class getRawType() -> getRawType
+    82:87:java.lang.reflect.Type getSuperclassTypeParameter(java.lang.Class) -> getSuperclassTypeParameter
+    101:101:java.lang.reflect.Type getType() -> getType
+    280:280:int hashCode() -> hashCode
+    289:289:java.lang.String toString() -> toString
+com.google.gson.stream.JsonWriter -> com.google.gson.stream.JsonWriter:
+    145:162:void <clinit>() -> <clinit>
+    167:202:void <init>(java.io.Writer) -> <init>
+    612:620:void beforeName() -> beforeName
+    629:658:void beforeValue() -> beforeValue
+    287:288:com.google.gson.stream.JsonWriter beginArray() -> beginArray
+    307:308:com.google.gson.stream.JsonWriter beginObject() -> beginObject
+    337:350:com.google.gson.stream.JsonWriter close(int,int,java.lang.String) -> close
+    555:562:void close() -> close
+    297:297:com.google.gson.stream.JsonWriter endArray() -> endArray
+    317:317:com.google.gson.stream.JsonWriter endObject() -> endObject
+    543:547:void flush() -> flush
+    277:277:boolean getSerializeNulls() -> getSerializeNulls
+    261:261:boolean isHtmlSafe() -> isHtmlSafe
+    242:242:boolean isLenient() -> isLenient
+    386:396:com.google.gson.stream.JsonWriter name(java.lang.String) -> name
+    597:605:void newline() -> newline
+    446:456:com.google.gson.stream.JsonWriter nullValue() -> nullValue
+    325:328:com.google.gson.stream.JsonWriter open(int,java.lang.String) -> open
+    366:369:int peek() -> peek
+    354:360:void push(int) -> push
+    376:377:void replaceTop(int) -> replaceTop
+    253:254:void setHtmlSafe(boolean) -> setHtmlSafe
+    213:220:void setIndent(java.lang.String) -> setIndent
+    235:236:void setLenient(boolean) -> setLenient
+    269:270:void setSerializeNulls(boolean) -> setSerializeNulls
+    565:594:void string(java.lang.String) -> string
+    414:420:com.google.gson.stream.JsonWriter value(java.lang.String) -> value
+    465:468:com.google.gson.stream.JsonWriter value(boolean) -> value
+    477:483:com.google.gson.stream.JsonWriter value(java.lang.Boolean) -> value
+    509:512:com.google.gson.stream.JsonWriter value(long) -> value
+    523:535:com.google.gson.stream.JsonWriter value(java.lang.Number) -> value
+    400:405:void writeDeferredName() -> writeDeferredName
+com.qmuiteam.qmui.QMUIInterpolatorStaticHolder -> com.qmuiteam.qmui.QMUIInterpolatorStaticHolder:
+    35:42:void <clinit>() -> <clinit>
+com.qmuiteam.qmui.QMUIInterpolatorStaticHolder$1 -> com.qmuiteam.qmui.QMUIInterpolatorStaticHolder$1:
+    42:42:void <init>() -> <init>
+    45:46:float getInterpolation(float) -> getInterpolation
+com.qmuiteam.qmui.QMUILog -> com.qmuiteam.qmui.QMUILog:
+    33:33:void <clinit>() -> <clinit>
+    58:61:void d(java.lang.String,java.lang.String,java.lang.Object[]) -> d
+    40:43:void e(java.lang.String,java.lang.String,java.lang.Object[]) -> e
+    64:67:void printErrStackTrace(java.lang.String,java.lang.Throwable,java.lang.String,java.lang.Object[]) -> printErrStackTrace
+    46:49:void w(java.lang.String,java.lang.String,java.lang.Object[]) -> w
+com.qmuiteam.qmui.alpha.QMUIAlphaButton -> com.qmuiteam.qmui.alpha.QMUIAlphaButton:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    43:46:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    78:79:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    68:69:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    57:59:void setEnabled(boolean) -> setEnabled
+    51:53:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaConstraintLayout -> com.qmuiteam.qmui.alpha.QMUIAlphaConstraintLayout:
+    32:33:void <init>(android.content.Context) -> <init>
+    36:37:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    40:41:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    44:47:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    79:80:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    69:70:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    58:60:void setEnabled(boolean) -> setEnabled
+    52:54:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout -> com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    43:46:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    78:79:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    68:69:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    57:59:void setEnabled(boolean) -> setEnabled
+    51:53:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaImageButton -> com.qmuiteam.qmui.alpha.QMUIAlphaImageButton:
+    28:29:void <init>(android.content.Context) -> <init>
+    32:33:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    36:37:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    40:43:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    75:76:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    65:66:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    54:56:void setEnabled(boolean) -> setEnabled
+    48:50:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout -> com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    43:46:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    78:79:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    68:69:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    57:59:void setEnabled(boolean) -> setEnabled
+    51:53:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout -> com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    43:46:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    78:79:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    68:69:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    57:59:void setEnabled(boolean) -> setEnabled
+    51:53:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.alpha.QMUIAlphaTextView -> com.qmuiteam.qmui.alpha.QMUIAlphaTextView:
+    32:33:void <init>(android.content.Context) -> <init>
+    36:37:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    40:41:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    44:47:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    52:54:void onSetPressed(boolean) -> onSetPressed
+    79:80:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    69:70:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    58:60:void setEnabled(boolean) -> setEnabled
+com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper -> com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper:
+    34:49:void <init>(android.view.View) -> <init>
+    82:96:void onEnabledChanged(android.view.View,boolean) -> onEnabledChanged
+    63:74:void onPressedChanged(android.view.View,boolean) -> onPressedChanged
+    113:119:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    104:105:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+com.qmuiteam.qmui.layout.QMUIButton -> com.qmuiteam.qmui.layout.QMUIButton:
+    34:36:void <init>(android.content.Context) -> <init>
+    39:41:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    44:46:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    288:291:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    135:135:int getHideRadiusSide() -> getHideRadiusSide
+    177:177:int getRadius() -> getRadius
+    248:248:float getShadowAlpha() -> getShadowAlpha
+    258:258:int getShadowColor() -> getShadowColor
+    238:238:int getShadowElevation() -> getShadowElevation
+    49:52:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    140:148:void onMeasure(int,int) -> onMeasure
+    93:95:void onlyShowLeftDivider(int,int,int,int) -> onlyShowLeftDivider
+    80:82:void onlyShowTopDivider(int,int,int,int) -> onlyShowTopDivider
+    187:189:void setBorderColor(int) -> setBorderColor
+    193:195:void setBorderWidth(int) -> setBorderWidth
+    111:113:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    129:131:void setHideRadiusSide(int) -> setHideRadiusSide
+    117:119:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    263:264:void setOuterNormalColor(int) -> setOuterNormalColor
+    228:229:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    167:168:void setRadius(int) -> setRadius
+    123:125:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    243:244:void setShadowAlpha(float) -> setShadowAlpha
+    253:254:void setShadowColor(int) -> setShadowColor
+    233:234:void setShadowElevation(int) -> setShadowElevation
+    199:201:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    105:107:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    268:269:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    273:274:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    278:279:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    283:284:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.layout.QMUIConstraintLayout -> com.qmuiteam.qmui.layout.QMUIConstraintLayout:
+    36:38:void <init>(android.content.Context) -> <init>
+    41:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    291:298:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    202:202:int getHideRadiusSide() -> getHideRadiusSide
+    169:169:int getRadius() -> getRadius
+    285:285:float getShadowAlpha() -> getShadowAlpha
+    275:275:int getShadowColor() -> getShadowColor
+    260:260:int getShadowElevation() -> getShadowElevation
+    51:54:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    132:140:void onMeasure(int,int) -> onMeasure
+    90:92:void onlyShowBottomDivider(int,int,int,int) -> onlyShowBottomDivider
+    179:181:void setBorderColor(int) -> setBorderColor
+    185:187:void setBorderWidth(int) -> setBorderWidth
+    114:116:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    197:198:void setHideRadiusSide(int) -> setHideRadiusSide
+    120:122:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    280:281:void setOuterNormalColor(int) -> setOuterNormalColor
+    230:231:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    159:160:void setRadius(int) -> setRadius
+    126:128:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    265:266:void setShadowAlpha(float) -> setShadowAlpha
+    270:271:void setShadowColor(int) -> setShadowColor
+    255:256:void setShadowElevation(int) -> setShadowElevation
+    191:193:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    108:110:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    64:66:void updateBottomDivider(int,int,int,int) -> updateBottomDivider
+    235:236:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    240:241:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    245:246:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    58:60:void updateTopDivider(int,int,int,int) -> updateTopDivider
+    250:251:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.layout.QMUIFrameLayout -> com.qmuiteam.qmui.layout.QMUIFrameLayout:
+    35:37:void <init>(android.content.Context) -> <init>
+    40:42:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:47:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    290:293:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    184:184:int getHideRadiusSide() -> getHideRadiusSide
+    169:169:int getRadius() -> getRadius
+    250:250:float getShadowAlpha() -> getShadowAlpha
+    260:260:int getShadowColor() -> getShadowColor
+    240:240:int getShadowElevation() -> getShadowElevation
+    50:53:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    57:65:void onMeasure(int,int) -> onMeasure
+    189:191:void setBorderColor(int) -> setBorderColor
+    195:197:void setBorderWidth(int) -> setBorderWidth
+    126:128:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    179:180:void setHideRadiusSide(int) -> setHideRadiusSide
+    132:134:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    265:266:void setOuterNormalColor(int) -> setOuterNormalColor
+    230:231:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    159:160:void setRadius(int) -> setRadius
+    138:140:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    245:246:void setShadowAlpha(float) -> setShadowAlpha
+    255:256:void setShadowColor(int) -> setShadowColor
+    235:236:void setShadowElevation(int) -> setShadowElevation
+    201:203:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    120:122:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    270:271:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    275:276:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    280:281:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    285:286:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.layout.QMUILayoutHelper -> com.qmuiteam.qmui.layout.QMUILayoutHelper:
+    113:114:void <init>(android.content.Context,android.util.AttributeSet,int,android.view.View) -> <init>
+    53:211:void <init>(android.content.Context,android.util.AttributeSet,int,int,android.view.View) -> <init>
+    48:48:int access$000(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$000
+    48:48:boolean access$100(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$100
+    48:48:int access$200(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$200
+    48:48:int access$300(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$300
+    48:48:int access$400(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$400
+    48:48:int access$500(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$500
+    48:48:int access$600(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$600
+    48:48:boolean access$700(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$700
+    48:48:float access$800(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$800
+    48:48:int access$900(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> access$900
+    768:856:void dispatchRoundBorderDraw(android.graphics.Canvas) -> dispatchRoundBorderDraw
+    698:748:void drawDividers(android.graphics.Canvas,int,int) -> drawDividers
+    859:863:void drawRoundRect(android.graphics.Canvas,android.graphics.RectF,float[],android.graphics.Paint) -> drawRoundRect
+    390:390:int getHideRadiusSide() -> getHideRadiusSide
+    639:650:int getMeasuredHeightSpec(int) -> getMeasuredHeightSpec
+    623:635:int getMeasuredWidthSpec(int) -> getMeasuredWidthSpec
+    410:410:int getRadius() -> getRadius
+    752:764:int getRealRadius() -> getRealRadius
+    289:289:float getShadowAlpha() -> getShadowAlpha
+    294:294:int getShadowColor() -> getShadowColor
+    284:284:int getShadowElevation() -> getShadowElevation
+    615:619:int handleMiniHeight(int,int) -> handleMiniHeight
+    607:611:int handleMiniWidth(int,int) -> handleMiniWidth
+    373:378:void invalidate() -> invalidate
+    358:370:void invalidateOutline() -> invalidateOutline
+    514:514:boolean isRadiusWithSideHidden() -> isRadiusWithSideHidden
+    563:567:void onlyShowBottomDivider(int,int,int,int) -> onlyShowBottomDivider
+    571:575:void onlyShowLeftDivider(int,int,int,int) -> onlyShowLeftDivider
+    554:558:void onlyShowTopDivider(int,int,int,int) -> onlyShowTopDivider
+    655:656:void setBorderColor(int) -> setBorderColor
+    660:661:void setBorderWidth(int) -> setBorderWidth
+    592:593:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    382:386:void setHideRadiusSide(int) -> setHideRadiusSide
+    597:598:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    665:670:void setOuterNormalColor(int) -> setOuterNormalColor
+    221:230:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    395:398:void setRadius(int) -> setRadius
+    402:406:void setRadius(int,int) -> setRadius
+    415:416:void setRadiusAndShadow(int,int,float) -> setRadiusAndShadow
+    420:421:void setRadiusAndShadow(int,int,int,float) -> setRadiusAndShadow
+    425:506:void setRadiusAndShadow(int,int,int,int,float) -> setRadiusAndShadow
+    602:603:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    330:335:void setShadowAlpha(float) -> setShadowAlpha
+    339:344:void setShadowColor(int) -> setShadowColor
+    347:355:void setShadowColorInner(int) -> setShadowColorInner
+    321:326:void setShadowElevation(int) -> setShadowElevation
+    315:317:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    587:588:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    529:533:void updateBottomDivider(int,int,int,int) -> updateBottomDivider
+    260:264:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    537:541:void updateLeftDivider(int,int,int,int) -> updateLeftDivider
+    252:256:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    276:280:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    521:525:void updateTopDivider(int,int,int,int) -> updateTopDivider
+    268:272:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+    866:866:boolean useFeature() -> useFeature
+com.qmuiteam.qmui.layout.QMUILayoutHelper$1 -> com.qmuiteam.qmui.layout.QMUILayoutHelper$1:
+    446:446:void <init>(com.qmuiteam.qmui.layout.QMUILayoutHelper) -> <init>
+    450:500:void getOutline(android.view.View,android.graphics.Outline) -> getOutline
+com.qmuiteam.qmui.layout.QMUILinearLayout -> com.qmuiteam.qmui.layout.QMUILinearLayout:
+    35:37:void <init>(android.content.Context) -> <init>
+    40:42:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:47:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    289:292:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    201:201:int getHideRadiusSide() -> getHideRadiusSide
+    168:168:int getRadius() -> getRadius
+    284:284:float getShadowAlpha() -> getShadowAlpha
+    274:274:int getShadowColor() -> getShadowColor
+    259:259:int getShadowElevation() -> getShadowElevation
+    50:53:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    131:139:void onMeasure(int,int) -> onMeasure
+    178:180:void setBorderColor(int) -> setBorderColor
+    184:186:void setBorderWidth(int) -> setBorderWidth
+    113:115:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    196:197:void setHideRadiusSide(int) -> setHideRadiusSide
+    119:121:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    279:280:void setOuterNormalColor(int) -> setOuterNormalColor
+    229:230:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    158:159:void setRadius(int) -> setRadius
+    163:164:void setRadius(int,int) -> setRadius
+    125:127:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    264:265:void setShadowAlpha(float) -> setShadowAlpha
+    269:270:void setShadowColor(int) -> setShadowColor
+    254:255:void setShadowElevation(int) -> setShadowElevation
+    190:192:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    107:109:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    234:235:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    239:240:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    244:245:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    249:250:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.layout.QMUIPriorityLinearLayout -> com.qmuiteam.qmui.layout.QMUIPriorityLinearLayout:
+    32:37:void <init>(android.content.Context) -> <init>
+    32:41:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    319:319:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    224:273:void dispatchSpaceToDisposableChildList(java.util.ArrayList,int,int,int) -> dispatchSpaceToDisposableChildList
+    277:294:void dispatchSpaceToMiniWidthChildList(java.util.ArrayList,int,int) -> dispatchSpaceToMiniWidthChildList
+    31:31:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    31:31:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    309:309:android.widget.LinearLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    314:314:android.widget.LinearLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    297:304:int getVisibleChildCount() -> getVisibleChildCount
+    55:114:void handleHorizontal(int,int) -> handleHorizontal
+    179:219:int handlePriorityIncompressible(int,int) -> handlePriorityIncompressible
+    117:176:void handleVertical(int,int) -> handleVertical
+    45:52:void onMeasure(int,int) -> onMeasure
+com.qmuiteam.qmui.layout.QMUIPriorityLinearLayout$LayoutParams -> com.qmuiteam.qmui.layout.QMUIPriorityLinearLayout$LayoutParams:
+    327:348:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    327:360:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    322:322:int access$000(com.qmuiteam.qmui.layout.QMUIPriorityLinearLayout$LayoutParams) -> access$000
+    396:414:void backupOrRestore() -> backupOrRestore
+    380:392:int getPriority(int) -> getPriority
+com.qmuiteam.qmui.layout.QMUIRelativeLayout -> com.qmuiteam.qmui.layout.QMUIRelativeLayout:
+    35:37:void <init>(android.content.Context) -> <init>
+    40:42:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:47:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    287:290:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    183:183:int getHideRadiusSide() -> getHideRadiusSide
+    168:168:int getRadius() -> getRadius
+    262:262:float getShadowAlpha() -> getShadowAlpha
+    252:252:int getShadowColor() -> getShadowColor
+    238:238:int getShadowElevation() -> getShadowElevation
+    50:53:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    131:139:void onMeasure(int,int) -> onMeasure
+    188:190:void setBorderColor(int) -> setBorderColor
+    194:196:void setBorderWidth(int) -> setBorderWidth
+    113:115:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    178:179:void setHideRadiusSide(int) -> setHideRadiusSide
+    119:121:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    257:258:void setOuterNormalColor(int) -> setOuterNormalColor
+    229:230:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    158:159:void setRadius(int) -> setRadius
+    125:127:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    242:243:void setShadowAlpha(float) -> setShadowAlpha
+    247:248:void setShadowColor(int) -> setShadowColor
+    234:235:void setShadowElevation(int) -> setShadowElevation
+    200:202:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    107:109:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    63:65:void updateBottomDivider(int,int,int,int) -> updateBottomDivider
+    267:268:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    272:273:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    277:278:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    282:283:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.link.QMUILinkTouchDecorHelper -> com.qmuiteam.qmui.link.QMUILinkTouchDecorHelper:
+    36:36:void <init>() -> <init>
+    112:144:com.qmuiteam.qmui.link.ITouchableSpan getPressedSpan(android.widget.TextView,android.text.Spannable,android.view.MotionEvent) -> getPressedSpan
+    40:106:boolean onTouchEvent(android.widget.TextView,android.text.Spannable,android.view.MotionEvent) -> onTouchEvent
+com.qmuiteam.qmui.link.QMUILinkTouchMovementMethod -> com.qmuiteam.qmui.link.QMUILinkTouchMovementMethod:
+    49:49:void <clinit>() -> <clinit>
+    33:33:void <init>() -> <init>
+    42:45:android.text.method.MovementMethod getInstance() -> getInstance
+    37:38:boolean onTouchEvent(android.widget.TextView,android.text.Spannable,android.view.MotionEvent) -> onTouchEvent
+com.qmuiteam.qmui.link.QMUILinkify -> com.qmuiteam.qmui.link.QMUILinkify:
+    79:204:void <clinit>() -> <clinit>
+    265:308:boolean addLinks(android.text.Spannable,int,android.content.res.ColorStateList,android.content.res.ColorStateList,com.qmuiteam.qmui.span.QMUIOnSpanClickListener) -> addLinks
+    454:473:void applyLink(java.lang.String,int,int,android.text.Spannable,android.content.res.ColorStateList,android.content.res.ColorStateList,com.qmuiteam.qmui.span.QMUIOnSpanClickListener) -> applyLink
+    535:551:void gatherLinks(java.util.ArrayList,android.text.Spannable,java.util.regex.Pattern,java.lang.String[],com.qmuiteam.qmui.link.QMUILinkify$MatchFilter,com.qmuiteam.qmui.link.QMUILinkify$TransformFilter) -> gatherLinks
+    623:660:void gatherMapLinks(java.util.ArrayList,android.text.Spannable) -> gatherMapLinks
+    556:576:void gatherPhoneLinks(java.util.ArrayList,android.text.Spannable,java.util.regex.Pattern,java.util.regex.Pattern[],java.lang.String[],com.qmuiteam.qmui.link.QMUILinkify$MatchFilter,com.qmuiteam.qmui.link.QMUILinkify$TransformFilter) -> gatherPhoneLinks
+    579:586:boolean isInExcepts(java.lang.CharSequence,java.util.regex.Pattern[]) -> isInExcepts
+    592:607:boolean isTooLarge(java.lang.CharSequence) -> isTooLarge
+    504:529:java.lang.String makeUrl(java.lang.String,java.lang.String[],java.util.regex.Matcher,com.qmuiteam.qmui.link.QMUILinkify$TransformFilter) -> makeUrl
+    663:714:void pruneOverlaps(java.util.ArrayList) -> pruneOverlaps
+com.qmuiteam.qmui.link.QMUILinkify$1 -> com.qmuiteam.qmui.link.QMUILinkify$1:
+    121:121:void <init>() -> <init>
+    124:124:java.util.regex.Pattern getPattern() -> getPattern
+com.qmuiteam.qmui.link.QMUILinkify$2 -> com.qmuiteam.qmui.link.QMUILinkify$2:
+    128:128:void <init>() -> <init>
+    131:131:java.util.regex.Pattern getPattern() -> getPattern
+com.qmuiteam.qmui.link.QMUILinkify$3 -> com.qmuiteam.qmui.link.QMUILinkify$3:
+    147:147:void <init>() -> <init>
+    150:173:boolean acceptMatch(java.lang.CharSequence,int,int) -> acceptMatch
+com.qmuiteam.qmui.link.QMUILinkify$4 -> com.qmuiteam.qmui.link.QMUILinkify$4:
+    181:181:void <init>() -> <init>
+    183:193:boolean acceptMatch(java.lang.CharSequence,int,int) -> acceptMatch
+com.qmuiteam.qmui.link.QMUILinkify$5 -> com.qmuiteam.qmui.link.QMUILinkify$5:
+    204:204:void <init>() -> <init>
+    206:206:java.lang.String transformUrl(java.util.regex.Matcher,java.lang.String) -> transformUrl
+com.qmuiteam.qmui.link.QMUILinkify$6 -> com.qmuiteam.qmui.link.QMUILinkify$6:
+    454:454:void <init>(java.lang.String,com.qmuiteam.qmui.span.QMUIOnSpanClickListener,android.content.res.ColorStateList,android.content.res.ColorStateList) -> <init>
+    458:470:void updateDrawState(android.text.TextPaint) -> updateDrawState
+com.qmuiteam.qmui.link.QMUILinkify$7 -> com.qmuiteam.qmui.link.QMUILinkify$7:
+    663:663:void <init>() -> <init>
+    663:663:int compare(java.lang.Object,java.lang.Object) -> compare
+    665:681:int compare(com.qmuiteam.qmui.link.QMUILinkify$LinkSpec,com.qmuiteam.qmui.link.QMUILinkify$LinkSpec) -> compare
+com.qmuiteam.qmui.link.QMUILinkify$LinkSpec -> com.qmuiteam.qmui.link.QMUILinkify$LinkSpec:
+    716:716:void <init>() -> <init>
+    716:716:void <init>(com.qmuiteam.qmui.link.QMUILinkify$1) -> <init>
+com.qmuiteam.qmui.link.QMUILinkify$StyleableURLSpan -> com.qmuiteam.qmui.link.QMUILinkify$StyleableURLSpan:
+    477:485:void <init>(java.lang.String,com.qmuiteam.qmui.span.QMUIOnSpanClickListener) -> <init>
+    494:498:void onClick(android.view.View) -> onClick
+    489:490:void setPressed(boolean) -> setPressed
+com.qmuiteam.qmui.link.QMUILinkify$WebUrlPattern -> com.qmuiteam.qmui.link.QMUILinkify$WebUrlPattern:
+    725:805:void <clinit>() -> <clinit>
+    722:722:java.util.regex.Pattern access$000() -> access$000
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomAreaBehavior -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomAreaBehavior:
+    34:44:void <init>() -> <init>
+    34:48:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    80:105:void layoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> layoutChild
+    124:124:boolean layoutDependsOn(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> layoutDependsOn
+    129:130:boolean onDependentViewChanged(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View) -> onDependentViewChanged
+    109:115:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    52:75:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    119:119:int resolveGravity(int) -> resolveGravity
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout:
+    79:80:void <init>(android.content.Context) -> <init>
+    83:84:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    62:106:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    48:48:android.view.View access$100(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout) -> access$100
+    48:48:androidx.core.view.NestedScrollingChildHelper access$200(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout) -> access$200
+    200:206:void checkLayout() -> checkLayout
+    231:241:void consumeScroll(int) -> consumeScroll
+    377:377:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    382:382:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    333:333:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    372:372:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    326:326:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    366:366:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    479:482:void ensureVelocityTracker() -> ensureVelocityTracker
+    166:166:int getContentBottomMargin() -> getContentBottomMargin
+    138:147:int getContentHeight() -> getContentHeight
+    113:113:android.view.View getContentView() -> getContentView
+    255:256:int getCurrentScroll() -> getCurrentScroll
+    162:162:int getHeaderHeightLayoutParam() -> getHeaderHeightLayoutParam
+    157:157:int getHeaderStickyHeight() -> getHeaderStickyHeight
+    109:109:android.view.View getHeaderView() -> getHeaderView
+    125:133:int getMiniOffset() -> getMiniOffset
+    469:469:int getNestedScrollAxes() -> getNestedScrollAxes
+    117:117:int getOffsetCurrent() -> getOffsetCurrent
+    121:121:int getOffsetRange() -> getOffsetRange
+    261:265:int getScrollOffsetRange() -> getScrollOffsetRange
+    320:320:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    360:360:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    345:345:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    474:475:boolean isPointInHeaderBounds(int,int) -> isPointInHeaderBounds
+    209:225:int offsetBy(int) -> offsetBy
+    486:545:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    181:192:void onLayout(boolean,int,int,int,int) -> onLayout
+    171:177:void onMeasure(int,int) -> onMeasure
+    455:459:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    464:464:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    417:422:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    450:451:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    409:412:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    444:446:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    396:398:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    433:434:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    390:390:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    428:428:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    402:404:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    438:439:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    550:645:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    195:197:void postCheckLayout() -> postCheckLayout
+    340:341:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    310:310:boolean startNestedScroll(int,int) -> startNestedScroll
+    350:350:boolean startNestedScroll(int) -> startNestedScroll
+    315:316:void stopNestedScroll(int) -> stopNestedScroll
+    355:356:void stopNestedScroll() -> stopNestedScroll
+    250:251:void stopScroll() -> stopScroll
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout$1 -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout$1:
+    71:71:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout) -> <init>
+    74:75:void run() -> run
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout$ViewFlinger -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout$ViewFlinger:
+    651:661:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomDelegateLayout) -> <init>
+    711:723:void fling(int) -> fling
+    705:708:void internalPostOnAnimation() -> internalPostOnAnimation
+    697:702:void postOnAnimation() -> postOnAnimation
+    665:694:void run() -> run
+    727:729:void stop() -> stop
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView:
+    38:43:void <init>(android.content.Context) -> <init>
+    38:48:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    38:53:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    31:31:com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier access$000(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView) -> access$000
+    87:112:void consumeScroll(int) -> consumeScroll
+    116:128:int getContentHeight() -> getContentHeight
+    138:138:int getCurrentScroll() -> getCurrentScroll
+    143:143:int getScrollOffsetRange() -> getScrollOffsetRange
+    56:83:void init() -> init
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView$1 -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView$1:
+    57:57:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomRecyclerView) -> <init>
+    60:72:void onScrollStateChanged(androidx.recyclerview.widget.RecyclerView,int) -> onScrollStateChanged
+    76:81:void onScrolled(androidx.recyclerview.widget.RecyclerView,int,int) -> onScrolled
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedScrollLayout -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedScrollLayout:
+    63:64:void <init>(android.content.Context) -> <init>
+    67:68:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:72:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    288:322:void checkLayout() -> checkLayout
+    116:116:com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar createScrollBar(android.content.Context) -> createScrollBar
+    345:355:void dispatchScroll(int,int,int,int,int,int) -> dispatchScroll
+    367:371:void dispatchScrollStateChange(int,boolean) -> dispatchScrollStateChange
+    488:512:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    75:84:void ensureScrollBar() -> ensureScrollBar
+    237:237:com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedBottomAreaBehavior getBottomAreaBehavior() -> getBottomAreaBehavior
+    229:229:com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedBottomView getBottomView() -> getBottomView
+    136:144:int getCurrentScroll() -> getCurrentScroll
+    161:165:float getCurrentScrollPercent() -> getCurrentScrollPercent
+    439:439:int getOffsetCurrent() -> getOffsetCurrent
+    443:450:int getOffsetRange() -> getOffsetRange
+    148:157:int getScrollRange() -> getScrollRange
+    233:233:com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior getTopAreaBehavior() -> getTopAreaBehavior
+    225:225:com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedTopView getTopView() -> getTopView
+    133:133:void onDragEnd() -> onDragEnd
+    121:122:void onDragStarted() -> onDragStarted
+    126:128:void onDragToPercent(float) -> onDragToPercent
+    278:280:void onLayout(boolean,int,int,int,int) -> onLayout
+    359:364:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    455:460:void onTopAreaOffset(int) -> onTopAreaOffset
+    482:484:void onTopBehaviorFlingOrScrollEnd() -> onTopBehaviorFlingOrScrollEnd
+    476:478:void onTopBehaviorFlingOrScrollStart() -> onTopBehaviorFlingOrScrollStart
+    464:466:void onTopBehaviorTouchBegin() -> onTopBehaviorTouchBegin
+    470:472:void onTopBehaviorTouchEnd() -> onTopBehaviorTouchEnd
+    283:285:void postCheckLayout() -> postCheckLayout
+    374:379:void scrollBy(int) -> scrollBy
+    87:98:void setDraggableScrollBarEnabled(boolean) -> setDraggableScrollBarEnabled
+    101:113:void setEnableScrollBarFadeInOut(boolean) -> setEnableScrollBarFadeInOut
+    180:181:void setKeepBottomAreaStableWhenCheckLayout(boolean) -> setKeepBottomAreaStableWhenCheckLayout
+    393:399:void stopScroll() -> stopScroll
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedScrollLayout$1 -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedScrollLayout$1:
+    47:47:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedScrollLayout) -> <init>
+    50:51:void run() -> run
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior:
+    41:61:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    36:36:boolean access$000(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior) -> access$000
+    36:36:boolean access$002(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior,boolean) -> access$002
+    36:36:com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior$Callback access$100(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior) -> access$100
+    269:272:void ensureVelocityTracker() -> ensureVelocityTracker
+    408:414:android.view.View findBottomView(androidx.coordinatorlayout.widget.CoordinatorLayout) -> findBottomView
+    74:158:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    278:296:boolean onMeasureChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int,int,int,int) -> onMeasureChild
+    303:340:void onNestedPreScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int[],int) -> onNestedPreScroll
+    346:398:void onNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,int,int,int,int,int) -> onNestedScroll
+    404:404:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    163:244:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    248:258:void scroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> scroll
+    544:548:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+    265:266:void stopFlingOrScroll() -> stopFlingOrScroll
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior$ViewFlinger -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior$ViewFlinger:
+    421:434:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopAreaBehavior,android.content.Context) -> <init>
+    494:498:void fling(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> fling
+    486:491:void internalPostOnAnimation() -> internalPostOnAnimation
+    535:539:void onFlingOrScrollEnd() -> onFlingOrScrollEnd
+    507:521:void onFlingOrScrollStart(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View) -> onFlingOrScrollStart
+    478:483:void postOnAnimation() -> postOnAnimation
+    438:475:void run() -> run
+    525:532:void stop() -> stop
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout:
+    61:62:void <init>(android.content.Context) -> <init>
+    65:66:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    49:77:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    187:221:void checkLayout() -> checkLayout
+    271:356:int consumeScroll(int) -> consumeScroll
+    483:483:boolean dispatchNestedFling(float,float,boolean) -> dispatchNestedFling
+    488:488:boolean dispatchNestedPreFling(float,float) -> dispatchNestedPreFling
+    439:439:boolean dispatchNestedPreScroll(int,int,int[],int[],int) -> dispatchNestedPreScroll
+    478:478:boolean dispatchNestedPreScroll(int,int,int[],int[]) -> dispatchNestedPreScroll
+    432:432:boolean dispatchNestedScroll(int,int,int,int,int[],int) -> dispatchNestedScroll
+    472:472:boolean dispatchNestedScroll(int,int,int,int,int[]) -> dispatchNestedScroll
+    262:266:int getContainerHeaderOffsetRange() -> getContainerHeaderOffsetRange
+    254:254:int getContainerOffsetCurrent() -> getContainerOffsetCurrent
+    258:258:int getContainerOffsetRange() -> getContainerOffsetRange
+    361:365:int getCurrentScroll() -> getCurrentScroll
+    242:242:com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedTopView getDelegateView() -> getDelegateView
+    250:250:android.view.View getFooterView() -> getFooterView
+    246:246:android.view.View getHeaderView() -> getHeaderView
+    607:607:int getNestedScrollAxes() -> getNestedScrollAxes
+    370:374:int getScrollOffsetRange() -> getScrollOffsetRange
+    426:426:boolean hasNestedScrollingParent(int) -> hasNestedScrollingParent
+    466:466:boolean hasNestedScrollingParent() -> hasNestedScrollingParent
+    379:393:void injectScrollNotifier(com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier) -> injectScrollNotifier
+    451:451:boolean isNestedScrollingEnabled() -> isNestedScrollingEnabled
+    224:239:void offsetTo(int) -> offsetTo
+    135:179:void onLayout(boolean,int,int,int,int) -> onLayout
+    107:131:void onMeasure(int,int) -> onMeasure
+    597:597:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    602:602:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    540:564:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    592:593:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    515:535:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    586:588:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    502:504:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    575:576:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    496:496:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    570:570:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    508:510:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    580:581:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    182:184:void postCheckLayout() -> postCheckLayout
+    86:97:void setDelegateView(com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedTopView) -> setDelegateView
+    100:103:void setFooterView(android.view.View) -> setFooterView
+    80:83:void setHeaderView(android.view.View) -> setHeaderView
+    446:447:void setNestedScrollingEnabled(boolean) -> setNestedScrollingEnabled
+    416:416:boolean startNestedScroll(int,int) -> startNestedScroll
+    456:456:boolean startNestedScroll(int) -> startNestedScroll
+    421:422:void stopNestedScroll(int) -> stopNestedScroll
+    461:462:void stopNestedScroll() -> stopNestedScroll
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout$1 -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout$1:
+    53:53:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout) -> <init>
+    56:57:void run() -> run
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout$2 -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout$2:
+    381:381:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopDelegateLayout,com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier) -> <init>
+    384:385:void notify(int,int) -> notify
+    390:390:void onScrollStateChange(android.view.View,int) -> onScrollStateChange
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopLinearLayout -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopLinearLayout:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    45:45:int consumeScroll(int) -> consumeScroll
+    50:50:int getCurrentScroll() -> getCurrentScroll
+    55:55:int getScrollOffsetRange() -> getScrollOffsetRange
+    61:61:void injectScrollNotifier(com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier) -> injectScrollNotifier
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopRecyclerView -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopRecyclerView:
+    38:40:void <init>(android.content.Context) -> <init>
+    43:45:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    35:50:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    58:85:int consumeScroll(int) -> consumeScroll
+    90:90:int getCurrentScroll() -> getCurrentScroll
+    95:95:int getScrollOffsetRange() -> getScrollOffsetRange
+    53:54:void init() -> init
+    100:101:void injectScrollNotifier(com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier) -> injectScrollNotifier
+    105:109:void onScrolled(int,int) -> onScrolled
+com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopWebView -> com.qmuiteam.qmui.nestedScroll.QMUIContinuousNestedTopWebView:
+    35:37:void <init>(android.content.Context) -> <init>
+    40:42:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:47:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    56:67:int consumeScroll(int) -> consumeScroll
+    72:74:int getCurrentScroll() -> getCurrentScroll
+    79:79:int getScrollOffsetRange() -> getScrollOffsetRange
+    50:51:void init() -> init
+    84:85:void injectScrollNotifier(com.qmuiteam.qmui.nestedScroll.IQMUIContinuousNestedScrollCommon$OnScrollNotifier) -> injectScrollNotifier
+    89:93:void onScrollChanged(int,int,int,int) -> onScrollChanged
+com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar -> com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar:
+    78:79:void <init>(android.content.Context) -> <init>
+    53:88:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    190:198:void awakenScrollBar() -> awakenScrollBar
+    274:274:int getScrollBarBottomMargin() -> getScrollBarBottomMargin
+    270:270:int getScrollBarTopMargin() -> getScrollBarTopMargin
+    181:187:void onDragging(android.graphics.drawable.Drawable,float) -> onDragging
+    202:267:void onDraw(android.graphics.Canvas) -> onDraw
+    132:139:void onMeasure(int,int) -> onMeasure
+    143:177:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    95:96:void setAdjustDistanceWithAnimation(boolean) -> setAdjustDistanceWithAnimation
+    91:92:void setCallback(com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar$Callback) -> setCallback
+    115:117:void setDragDrawable(android.graphics.drawable.Drawable) -> setDragDrawable
+    107:108:void setEnableFadeInAndOut(boolean) -> setEnableFadeInAndOut
+    99:100:void setKeepShownTime(int) -> setKeepShownTime
+    120:123:void setPercent(float) -> setPercent
+    126:128:void setPercentInternal(float) -> setPercentInternal
+    103:104:void setTransitionDuration(int) -> setTransitionDuration
+com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar$1 -> com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar$1:
+    62:62:void <init>(com.qmuiteam.qmui.nestedScroll.QMUIDraggableScrollBar) -> <init>
+    65:66:void run() -> run
+com.qmuiteam.qmui.nestedScroll.QMUIViewOffsetBehavior -> com.qmuiteam.qmui.nestedScroll.QMUIViewOffsetBehavior:
+    47:51:void <init>() -> <init>
+    47:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    117:120:int getLayoutTop() -> getLayoutTop
+    103:103:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    81:82:void layoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> layoutChild
+    60:76:boolean onLayoutChild(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,int) -> onLayoutChild
+    85:90:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+com.qmuiteam.qmui.qqface.QMUINoQQFaceManager -> com.qmuiteam.qmui.qqface.QMUINoQQFaceManager:
+    20:20:void <init>() -> <init>
+    44:44:int getDoubleUnicodeEmoji(int,int) -> getDoubleUnicodeEmoji
+    39:39:int getEmojiResource(int) -> getEmojiResource
+    49:49:int getQQfaceResource(java.lang.CharSequence) -> getQQfaceResource
+    29:29:int getSoftbankEmojiResource(char) -> getSoftbankEmojiResource
+    54:54:android.graphics.drawable.Drawable getSpecialBoundsDrawable(java.lang.CharSequence) -> getSpecialBoundsDrawable
+    59:59:int getSpecialDrawableMaxHeight() -> getSpecialDrawableMaxHeight
+    34:34:boolean maybeEmoji(int) -> maybeEmoji
+    24:24:boolean maybeSoftBankEmoji(char) -> maybeSoftBankEmoji
+com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler -> com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler:
+    45:46:void <clinit>() -> <clinit>
+    72:75:void <init>(com.qmuiteam.qmui.qqface.IQMUIQQFaceManager) -> <init>
+    43:43:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList access$000(com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler,java.lang.CharSequence,int,int,boolean) -> access$000
+    82:85:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList compile(java.lang.CharSequence) -> compile
+    89:89:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList compile(java.lang.CharSequence,int,int) -> compile
+    93:148:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList compile(java.lang.CharSequence,int,int,boolean) -> compile
+    58:58:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler getDefaultInstance() -> getDefaultInstance
+    63:69:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler getInstance(com.qmuiteam.qmui.qqface.IQMUIQQFaceManager) -> getInstance
+    78:78:int getSpecialBoundsMaxHeight() -> getSpecialBoundsMaxHeight
+    157:279:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList realCompile(java.lang.CharSequence,int,int,com.qmuiteam.qmui.span.QMUITouchableSpan[],int[]) -> realCompile
+com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$1 -> com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$1:
+    117:117:void <init>(com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler,android.text.Spannable) -> <init>
+    117:117:int compare(java.lang.Object,java.lang.Object) -> compare
+    120:127:int compare(com.qmuiteam.qmui.span.QMUITouchableSpan,com.qmuiteam.qmui.span.QMUITouchableSpan) -> compare
+com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element -> com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element:
+    290:290:void <init>() -> <init>
+    330:333:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element createDrawableElement(int) -> createDrawableElement
+    354:356:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element createNextLineElement() -> createNextLineElement
+    337:340:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element createSpeaicalBoundsDrawableElement(android.graphics.drawable.Drawable) -> createSpeaicalBoundsDrawableElement
+    323:326:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element createTextElement(java.lang.CharSequence) -> createTextElement
+    346:350:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element createTouchSpanElement(java.lang.CharSequence,com.qmuiteam.qmui.span.QMUITouchableSpan,com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler) -> createTouchSpanElement
+    311:311:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList getChildList() -> getChildList
+    307:307:int getDrawableRes() -> getDrawableRes
+    319:319:android.graphics.drawable.Drawable getSpecialBoundsDrawable() -> getSpecialBoundsDrawable
+    303:303:java.lang.CharSequence getText() -> getText
+    315:315:com.qmuiteam.qmui.span.QMUITouchableSpan getTouchableSpan() -> getTouchableSpan
+    299:299:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementType getType() -> getType
+com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList -> com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementList:
+    364:372:void <init>(int,int) -> <init>
+    391:403:void add(com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$Element) -> add
+    406:406:java.util.List getElements() -> getElements
+    379:379:int getEnd() -> getEnd
+    383:383:int getNewLineCount() -> getNewLineCount
+    387:387:int getQQFaceCount() -> getQQFaceCount
+    375:375:int getStart() -> getStart
+com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementType -> com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementType:
+    282:287:void <clinit>() -> <clinit>
+    282:282:void <init>(java.lang.String,int) -> <init>
+    282:282:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementType valueOf(java.lang.String) -> valueOf
+    282:282:com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler$ElementType[] values() -> values
+com.qmuiteam.qmui.qqface.QMUIQQFaceView -> com.qmuiteam.qmui.qqface.QMUIQQFaceView:
+    115:116:void <init>(android.content.Context) -> <init>
+    119:120:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    71:1406:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    66:66:com.qmuiteam.qmui.qqface.QMUIQQFaceView$PressCancelAction access$000(com.qmuiteam.qmui.qqface.QMUIQQFaceView) -> access$000
+    66:66:int access$100(com.qmuiteam.qmui.qqface.QMUIQQFaceView) -> access$100
+    66:66:int access$200(com.qmuiteam.qmui.qqface.QMUIQQFaceView) -> access$200
+    594:615:int calculateFontHeight() -> calculateFontHeight
+    651:682:int calculateLinesAndContentWidth(int) -> calculateLinesAndContentWidth
+    698:753:void calculateLinesInner(java.util.List,int) -> calculateLinesInner
+    686:694:void calculateNeedDrawLine(int) -> calculateNeedDrawLine
+    917:975:void drawElements(android.graphics.Canvas,java.util.List,int) -> drawElements
+    978:1026:void drawMoreActionText(android.graphics.Canvas,int) -> drawMoreActionText
+    1460:1512:void drawQQFace(android.graphics.Canvas,int,android.graphics.drawable.Drawable,int,boolean,boolean) -> drawQQFace
+    1289:1321:void drawText(android.graphics.Canvas,java.lang.CharSequence,int,int,int) -> drawText
+    619:619:int getFontHeight() -> getFontHeight
+    631:631:int getFontHeightCalBottom(android.graphics.Paint$FontMetricsInt,boolean) -> getFontHeightCalBottom
+    627:627:int getFontHeightCalTop(android.graphics.Paint$FontMetricsInt,boolean) -> getFontHeightCalTop
+    182:182:int getGravity() -> getGravity
+    459:459:int getLineCount() -> getLineCount
+    623:623:int getLineSpace() -> getLineSpace
+    455:455:int getMaxLine() -> getMaxLine
+    193:193:int getMaxWidth() -> getMaxWidth
+    1103:1108:int getMiddleEllipsizeLine() -> getMiddleEllipsizeLine
+    516:516:android.graphics.Rect getMoreHitRect() -> getMoreHitRect
+    486:486:android.text.TextPaint getPaint() -> getPaint
+    507:507:java.lang.CharSequence getText() -> getText
+    503:503:int getTextSize() -> getTextSize
+    766:767:void gotoCalNextLine(int) -> gotoCalNextLine
+    770:782:void gotoCalNextLine(int,boolean) -> gotoCalNextLine
+    1410:1447:void handleQQFaceAfterMiddleEllipsize(android.graphics.Canvas,int,android.graphics.drawable.Drawable,int,int,int,boolean,boolean) -> handleQQFaceAfterMiddleEllipsize
+    1243:1286:void handleTextAfterMiddleEllipsize(android.graphics.Canvas,java.lang.CharSequence,float[],int,int,int,int) -> handleTextAfterMiddleEllipsize
+    756:758:boolean isElementEmpty() -> isElementEmpty
+    397:402:void measureMoreActionTextLength() -> measureMoreActionTextLength
+    786:809:void measureText(java.lang.CharSequence,int,int) -> measureText
+    886:896:void onDraw(android.graphics.Canvas) -> onDraw
+    1324:1404:void onDrawQQFace(android.graphics.Canvas,int,android.graphics.drawable.Drawable,int,int,boolean,boolean) -> onDrawQQFace
+    1116:1239:void onDrawText(android.graphics.Canvas,java.lang.CharSequence,float[],int,int,int) -> onDrawText
+    817:882:void onMeasure(int,int) -> onMeasure
+    1451:1457:void onRealDrawQQFace(android.graphics.Canvas,int,android.graphics.drawable.Drawable,int,int,int,boolean,boolean) -> onRealDrawQQFace
+    1084:1099:void onRealDrawText(android.graphics.Canvas,java.lang.CharSequence,float[],int,int,int) -> onRealDrawText
+    200:288:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    899:907:void pickTextPaintColor() -> pickTextPaintColor
+    292:296:void setCompiler(com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler) -> setCompiler
+    762:763:void setContentCalMaxWidth(int) -> setContentCalMaxWidth
+    439:444:void setEllipsize(android.text.TextUtils$TruncateAt) -> setEllipsize
+    178:179:void setGravity(int) -> setGravity
+    413:419:void setIncludeFontPadding(boolean) -> setIncludeFontPadding
+    431:436:void setLineSpace(int) -> setLineSpace
+    350:351:void setLinkUnderLineColor(int) -> setLinkUnderLineColor
+    354:358:void setLinkUnderLineColor(android.content.res.ColorStateList) -> setLinkUnderLineColor
+    361:365:void setLinkUnderLineHeight(int) -> setLinkUnderLineHeight
+    812:813:void setListener(com.qmuiteam.qmui.qqface.QMUIQQFaceView$QQFaceViewListener) -> setListener
+    447:452:void setMaxLine(int) -> setMaxLine
+    186:190:void setMaxWidth(int) -> setMaxWidth
+    386:387:void setMoreActionBgColor(int) -> setMoreActionBgColor
+    390:394:void setMoreActionBgColor(android.content.res.ColorStateList) -> setMoreActionBgColor
+    375:376:void setMoreActionColor(int) -> setMoreActionColor
+    379:383:void setMoreActionColor(android.content.res.ColorStateList) -> setMoreActionColor
+    341:347:void setMoreActionText(java.lang.String) -> setMoreActionText
+    368:372:void setNeedUnderlineForMoreText(boolean) -> setNeedUnderlineForMoreText
+    174:175:void setOpenQQFace(boolean) -> setOpenQQFace
+    636:640:void setPadding(int,int,int,int) -> setPadding
+    333:338:void setParagraphSpace(int) -> setParagraphSpace
+    422:428:void setQQFaceSizeAddon(int) -> setQQFaceSizeAddon
+    467:472:void setSingleLine(boolean) -> setSingleLine
+    405:410:void setSpecialDrawablePadding(int) -> setSpecialDrawablePadding
+    1066:1081:void setStartDrawUsedWidth(int,int) -> setStartDrawUsedWidth
+    520:521:void setText(java.lang.CharSequence) -> setText
+    524:589:void setText(java.lang.CharSequence,boolean) -> setText
+    475:476:void setTextColor(int) -> setTextColor
+    479:483:void setTextColor(android.content.res.ColorStateList) -> setTextColor
+    490:500:void setTextSize(int) -> setTextSize
+    299:306:void setTypeface(android.graphics.Typeface) -> setTypeface
+    1029:1030:void toNewDrawLine(int,int) -> toNewDrawLine
+    1036:1063:void toNewDrawLine(int,boolean,int) -> toNewDrawLine
+com.qmuiteam.qmui.qqface.QMUIQQFaceView$1 -> com.qmuiteam.qmui.qqface.QMUIQQFaceView$1:
+    268:268:void <init>(com.qmuiteam.qmui.qqface.QMUIQQFaceView) -> <init>
+    271:274:void run() -> run
+com.qmuiteam.qmui.qqface.QMUIQQFaceView$PressCancelAction -> com.qmuiteam.qmui.qqface.QMUIQQFaceView$PressCancelAction:
+    1600:1602:void <init>(com.qmuiteam.qmui.qqface.QMUIQQFaceView$SpanInfo) -> <init>
+    1606:1611:void run() -> run
+com.qmuiteam.qmui.qqface.QMUIQQFaceView$SpanInfo -> com.qmuiteam.qmui.qqface.QMUIQQFaceView$SpanInfo:
+    1517:1524:void <init>(com.qmuiteam.qmui.qqface.QMUIQQFaceView,com.qmuiteam.qmui.link.ITouchableSpan) -> <init>
+    1545:1561:void invalidateSpan() -> invalidateSpan
+    1541:1542:void onClick() -> onClick
+    1565:1591:boolean onTouch(int,int) -> onTouch
+    1536:1538:void setEnd(int,int) -> setEnd
+    1532:1533:void setPressed(boolean) -> setPressed
+    1527:1529:void setStart(int,int) -> setStart
+com.qmuiteam.qmui.recyclerView.QMUIRVDraggableScrollBar -> com.qmuiteam.qmui.recyclerView.QMUIRVDraggableScrollBar:
+    462:468:float calculatePercent(androidx.recyclerview.widget.RecyclerView) -> calculatePercent
+    389:414:void drawScrollBar(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView) -> drawScrollBar
+    472:476:android.graphics.drawable.Drawable ensureScrollBar(android.content.Context) -> ensureScrollBar
+    455:458:int getCurrentOffset(androidx.recyclerview.widget.RecyclerView) -> getCurrentOffset
+    447:450:int getScrollRange(androidx.recyclerview.widget.RecyclerView) -> getScrollRange
+    417:420:int getUsefulSpace(androidx.recyclerview.widget.RecyclerView) -> getUsefulSpace
+    484:493:void handle(androidx.recyclerview.widget.RecyclerView,com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme) -> handle
+    190:195:void invalidate() -> invalidate
+    424:427:boolean needDrawScrollBar(androidx.recyclerview.widget.RecyclerView) -> needDrawScrollBar
+    379:379:void onDraw(android.graphics.Canvas,com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> onDraw
+    371:374:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    383:386:void onDrawOver(android.graphics.Canvas,com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> onDrawOver
+    431:444:void setScrollBarBounds(androidx.recyclerview.widget.RecyclerView,android.graphics.drawable.Drawable) -> setScrollBarBounds
+    198:206:void setScrollBarDrawable(android.graphics.drawable.Drawable) -> setScrollBarDrawable
+com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction -> com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction:
+    728:776:int checkSwipe(androidx.recyclerview.widget.RecyclerView$ViewHolder,int,boolean) -> checkSwipe
+    814:826:void endRecoverAnimation(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> endRecoverAnimation
+    682:692:void getSelectedDxDy(float[]) -> getSelectedDxDy
+    392:392:void onChildViewAttachedToWindow(android.view.View) -> onChildViewAttachedToWindow
+    396:408:void onChildViewDetachedFromWindow(android.view.View) -> onChildViewDetachedFromWindow
+    380:387:void onDraw(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDraw
+    369:376:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    581:582:void select(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> select
+    585:678:void select(androidx.recyclerview.widget.RecyclerView$ViewHolder,boolean) -> select
+com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction$RecoverAnimation -> com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction$RecoverAnimation:
+    944:945:void cancel() -> cancel
+    983:984:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    975:979:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    989:989:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    971:971:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+    948:949:void setFraction(float) -> setFraction
+com.qmuiteam.qmui.skin.QMUISkinHelper -> com.qmuiteam.qmui.skin.QMUISkinHelper:
+    36:36:void <clinit>() -> <clinit>
+    50:50:int getSkinColor(android.view.View,int) -> getSkinColor
+    54:54:android.content.res.ColorStateList getSkinColorStateList(android.view.View,int) -> getSkinColorStateList
+    59:59:android.graphics.drawable.Drawable getSkinDrawable(android.view.View,int) -> getSkinDrawable
+    39:46:android.content.res.Resources$Theme getSkinTheme(android.view.View) -> getSkinTheme
+    81:85:void refreshRVItemDecoration(androidx.recyclerview.widget.RecyclerView,com.qmuiteam.qmui.skin.IQMUISkinHandlerDecoration) -> refreshRVItemDecoration
+    96:100:void refreshViewSkin(android.view.View) -> refreshViewSkin
+    114:115:void setSkinDefaultProvider(android.view.View,com.qmuiteam.qmui.skin.defaultAttr.IQMUISkinDefaultAttrProvider) -> setSkinDefaultProvider
+    64:65:void setSkinValue(android.view.View,com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setSkinValue
+    68:71:void setSkinValue(android.view.View,java.lang.String) -> setSkinValue
+    139:141:void warnRuleNotSupport(android.view.View,java.lang.String) -> warnRuleNotSupport
+com.qmuiteam.qmui.skin.QMUISkinLayoutInflaterFactory -> com.qmuiteam.qmui.skin.QMUISkinLayoutInflaterFactory:
+    41:53:void <clinit>() -> <clinit>
+    59:62:void <init>(android.app.Activity,android.view.LayoutInflater) -> <init>
+    65:68:com.qmuiteam.qmui.skin.QMUISkinLayoutInflaterFactory cloneForLayoutInflaterIfNeeded(android.view.LayoutInflater) -> cloneForLayoutInflaterIfNeeded
+    156:222:void getSkinValueFromAttributeSet(android.content.Context,android.util.AttributeSet,com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> getSkinValueFromAttributeSet
+    73:133:android.view.View onCreateView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    151:151:android.view.View onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) -> onCreateView
+    139:146:android.view.View originCreateViewForLowSDK(java.lang.String,android.content.Context,android.util.AttributeSet) -> originCreateViewForLowSDK
+com.qmuiteam.qmui.skin.QMUISkinManager -> com.qmuiteam.qmui.skin.QMUISkinManager:
+    75:194:void <clinit>() -> <clinit>
+    129:500:void <init>(java.lang.String,android.content.res.Resources,java.lang.String) -> <init>
+    72:72:java.util.HashMap access$000() -> access$000
+    72:72:android.content.res.Resources access$100(com.qmuiteam.qmui.skin.QMUISkinManager) -> access$100
+    342:370:void applyTheme(android.view.View,int,android.content.res.Resources$Theme) -> applyTheme
+    585:593:boolean containSkinObserver(java.lang.Object) -> containSkinObserver
+    402:411:void defaultHandleSkinAttr(android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> defaultHandleSkinAttr
+    389:399:void defaultHandleSkinAttrs(android.view.View,android.content.res.Resources$Theme,androidx.collection.SimpleArrayMap) -> defaultHandleSkinAttrs
+    266:286:void dispatch(android.view.View,int) -> dispatch
+    470:470:int getAttrFromName(java.lang.String) -> getAttrFromName
+    415:466:androidx.collection.SimpleArrayMap getSkinAttrs(android.view.View) -> getSkinAttrs
+    225:229:android.content.res.Resources$Theme getTheme(int) -> getTheme
+    258:262:com.qmuiteam.qmui.skin.QMUISkinManager$ViewSkinCurrent getViewSkinCurrent(android.view.View) -> getViewSkinCurrent
+    109:114:com.qmuiteam.qmui.skin.QMUISkinManager of(java.lang.String,android.content.res.Resources,java.lang.String) -> of
+    119:120:com.qmuiteam.qmui.skin.QMUISkinManager of(java.lang.String,android.content.Context) -> of
+    375:379:void refreshRecyclerDecoration(androidx.recyclerview.widget.RecyclerView,com.qmuiteam.qmui.skin.IQMUISkinHandlerDecoration,int) -> refreshRecyclerDecoration
+    382:386:void refreshTheme(android.view.View,int) -> refreshTheme
+    536:543:void register(android.app.Dialog) -> register
+    572:581:void removeSkinObserver(java.lang.Object) -> removeSkinObserver
+    290:339:void runDispatch(android.view.View,int,android.content.res.Resources$Theme) -> runDispatch
+    546:547:void unRegister(android.app.Dialog) -> unRegister
+com.qmuiteam.qmui.skin.QMUISkinManager$1 -> com.qmuiteam.qmui.skin.QMUISkinManager$1:
+    78:78:void <init>() -> <init>
+    82:88:com.qmuiteam.qmui.skin.QMUISkinManager$DispatchListenStrategy select(android.view.ViewGroup) -> select
+com.qmuiteam.qmui.skin.QMUISkinManager$2 -> com.qmuiteam.qmui.skin.QMUISkinManager$2:
+    168:168:void <init>() -> <init>
+    173:190:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.qmuiteam.qmui.skin.QMUISkinManager$3 -> com.qmuiteam.qmui.skin.QMUISkinManager$3:
+    194:194:void <init>() -> <init>
+    197:204:void onChildViewAdded(android.view.View,android.view.View) -> onChildViewAdded
+    209:209:void onChildViewRemoved(android.view.View,android.view.View) -> onChildViewRemoved
+com.qmuiteam.qmui.skin.QMUISkinManager$DispatchListenStrategy -> com.qmuiteam.qmui.skin.QMUISkinManager$DispatchListenStrategy:
+    690:692:void <clinit>() -> <clinit>
+    690:690:void <init>(java.lang.String,int) -> <init>
+    690:690:com.qmuiteam.qmui.skin.QMUISkinManager$DispatchListenStrategy valueOf(java.lang.String) -> valueOf
+    690:690:com.qmuiteam.qmui.skin.QMUISkinManager$DispatchListenStrategy[] values() -> values
+com.qmuiteam.qmui.skin.QMUISkinManager$SkinItem -> com.qmuiteam.qmui.skin.QMUISkinManager$SkinItem:
+    486:492:android.content.res.Resources$Theme getTheme() -> getTheme
+com.qmuiteam.qmui.skin.QMUISkinManager$ViewSkinCurrent -> com.qmuiteam.qmui.skin.QMUISkinManager$ViewSkinCurrent:
+    665:668:void <init>(com.qmuiteam.qmui.skin.QMUISkinManager,java.lang.String,int) -> <init>
+    672:676:boolean equals(java.lang.Object) -> equals
+    681:681:int hashCode() -> hashCode
+com.qmuiteam.qmui.skin.QMUISkinValueBuilder -> com.qmuiteam.qmui.skin.QMUISkinValueBuilder:
+    69:73:void <init>() -> <init>
+    49:56:com.qmuiteam.qmui.skin.QMUISkinValueBuilder acquire() -> acquire
+    256:257:com.qmuiteam.qmui.skin.QMUISkinValueBuilder alpha(int) -> alpha
+    76:77:com.qmuiteam.qmui.skin.QMUISkinValueBuilder background(int) -> background
+    276:277:com.qmuiteam.qmui.skin.QMUISkinValueBuilder bgTintColor(int) -> bgTintColor
+    206:207:com.qmuiteam.qmui.skin.QMUISkinValueBuilder border(int) -> border
+    236:237:com.qmuiteam.qmui.skin.QMUISkinValueBuilder bottomSeparator(int) -> bottomSeparator
+    327:342:java.lang.String build() -> build
+    306:307:com.qmuiteam.qmui.skin.QMUISkinValueBuilder clear() -> clear
+    176:177:com.qmuiteam.qmui.skin.QMUISkinValueBuilder hintColor(int) -> hintColor
+    323:323:boolean isEmpty() -> isEmpty
+    246:247:com.qmuiteam.qmui.skin.QMUISkinValueBuilder leftSeparator(int) -> leftSeparator
+    106:107:com.qmuiteam.qmui.skin.QMUISkinValueBuilder moreBgColor(int) -> moreBgColor
+    96:97:com.qmuiteam.qmui.skin.QMUISkinValueBuilder moreTextColor(int) -> moreTextColor
+    186:187:com.qmuiteam.qmui.skin.QMUISkinValueBuilder progressColor(int) -> progressColor
+    60:67:void release(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> release
+    346:347:void release() -> release
+    226:227:com.qmuiteam.qmui.skin.QMUISkinValueBuilder rightSeparator(int) -> rightSeparator
+    286:287:com.qmuiteam.qmui.skin.QMUISkinValueBuilder secondTextColor(int) -> secondTextColor
+    196:197:com.qmuiteam.qmui.skin.QMUISkinValueBuilder src(int) -> src
+    166:167:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textColor(int) -> textColor
+    146:147:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textCompoundBottomSrc(int) -> textCompoundBottomSrc
+    156:157:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textCompoundLeftSrc(int) -> textCompoundLeftSrc
+    136:137:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textCompoundRightSrc(int) -> textCompoundRightSrc
+    116:117:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textCompoundTintColor(int) -> textCompoundTintColor
+    126:127:com.qmuiteam.qmui.skin.QMUISkinValueBuilder textCompoundTopSrc(int) -> textCompoundTopSrc
+    266:267:com.qmuiteam.qmui.skin.QMUISkinValueBuilder tintColor(int) -> tintColor
+    216:217:com.qmuiteam.qmui.skin.QMUISkinValueBuilder topSeparator(int) -> topSeparator
+    86:87:com.qmuiteam.qmui.skin.QMUISkinValueBuilder underline(int) -> underline
+com.qmuiteam.qmui.skin.defaultAttr.QMUISkinSimpleDefaultAttrProvider -> com.qmuiteam.qmui.skin.defaultAttr.QMUISkinSimpleDefaultAttrProvider:
+    20:22:void <init>() -> <init>
+    30:30:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    25:26:void setDefaultSkinAttr(java.lang.String,int) -> setDefaultSkinAttr
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleAlphaHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleAlphaHandler:
+    22:22:void <init>() -> <init>
+    26:27:void handle(android.view.View,java.lang.String,float) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleBackgroundHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleBackgroundHandler:
+    31:31:void <init>() -> <init>
+    35:46:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleBgTintColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleBgTintColorHandler:
+    27:27:void <init>() -> <init>
+    31:36:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleBorderHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleBorderHandler:
+    29:29:void <init>() -> <init>
+    33:47:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleColorHandler:
+    28:28:void <init>() -> <init>
+    32:33:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleColorStateListHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleColorStateListHandler:
+    29:29:void <init>() -> <init>
+    33:34:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleDrawableHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleDrawableHandler:
+    29:29:void <init>() -> <init>
+    35:36:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleFloatHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleFloatHandler:
+    28:28:void <init>() -> <init>
+    32:33:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,android.view.View,android.content.res.Resources$Theme,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleHintColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleHintColorHandler:
+    13:13:void <init>() -> <init>
+    16:25:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleMoreBgColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleMoreBgColorHandler:
+    26:26:void <init>() -> <init>
+    30:35:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleMoreTextColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleMoreTextColorHandler:
+    26:26:void <init>() -> <init>
+    30:35:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleProgressColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleProgressColorHandler:
+    26:26:void <init>() -> <init>
+    30:37:void handle(android.view.View,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleSeparatorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleSeparatorHandler:
+    26:26:void <init>() -> <init>
+    30:43:void handle(android.view.View,java.lang.String,int) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleSrcHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleSrcHandler:
+    27:27:void <init>() -> <init>
+    32:39:void handle(android.view.View,java.lang.String,android.graphics.drawable.Drawable) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextColorHandler:
+    28:28:void <init>() -> <init>
+    32:44:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextCompoundSrcHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextCompoundSrcHandler:
+    12:12:void <init>() -> <init>
+    15:34:void handle(android.view.View,java.lang.String,android.graphics.drawable.Drawable) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextCompoundTintColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleTextCompoundTintColorHandler:
+    16:16:void <init>() -> <init>
+    20:44:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleTintColorHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleTintColorHandler:
+    33:33:void <init>() -> <init>
+    37:51:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.skin.handler.QMUISkinRuleUnderlineHandler -> com.qmuiteam.qmui.skin.handler.QMUISkinRuleUnderlineHandler:
+    28:28:void <init>() -> <init>
+    32:37:void handle(android.view.View,java.lang.String,android.content.res.ColorStateList) -> handle
+com.qmuiteam.qmui.span.QMUIAlignMiddleImageSpan -> com.qmuiteam.qmui.span.QMUIAlignMiddleImageSpan:
+    66:67:void <init>(android.graphics.drawable.Drawable,int) -> <init>
+    50:80:void <init>(android.graphics.drawable.Drawable,int,float) -> <init>
+    109:131:void draw(android.graphics.Canvas,java.lang.CharSequence,int,int,float,int,int,int,android.graphics.Paint) -> draw
+    93:103:int getSize(android.graphics.Paint,java.lang.CharSequence,int,int,android.graphics.Paint$FontMetricsInt) -> getSize
+    142:146:void handle(android.view.View,com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme) -> handle
+    137:138:void setAvoidSuperChangeFontMetrics(boolean) -> setAvoidSuperChangeFontMetrics
+    83:89:void setSkinSupportWithTintColor(android.view.View,int) -> setSkinSupportWithTintColor
+com.qmuiteam.qmui.span.QMUIMarginImageSpan -> com.qmuiteam.qmui.span.QMUIMarginImageSpan:
+    32:45:void <init>(android.graphics.drawable.Drawable,int,int,int,int) -> <init>
+    61:66:void draw(android.graphics.Canvas,java.lang.CharSequence,int,int,float,int,int,int,android.graphics.Paint) -> draw
+    49:54:int getSize(android.graphics.Paint,java.lang.CharSequence,int,int,android.graphics.Paint$FontMetricsInt) -> getSize
+com.qmuiteam.qmui.span.QMUITouchableSpan -> com.qmuiteam.qmui.span.QMUITouchableSpan:
+    99:99:int getNormalBackgroundColor() -> getNormalBackgroundColor
+    111:111:int getNormalTextColor() -> getNormalTextColor
+    115:115:int getPressedBackgroundColor() -> getPressedBackgroundColor
+    119:119:int getPressedTextColor() -> getPressedTextColor
+    148:169:void handle(android.view.View,com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme) -> handle
+    135:135:boolean isNeedUnderline() -> isNeedUnderline
+    127:127:boolean isPressed() -> isPressed
+    61:64:void onClick(android.view.View) -> onClick
+    123:124:void setPressed(boolean) -> setPressed
+    140:144:void updateDrawState(android.text.TextPaint) -> updateDrawState
+com.qmuiteam.qmui.util.QMUICollapsingTextHelper -> com.qmuiteam.qmui.util.QMUICollapsingTextHelper:
+    63:77:void <clinit>() -> <clinit>
+    140:141:void <init>(android.view.View) -> <init>
+    87:152:void <init>(android.view.View,float) -> <init>
+    473:544:void calculateBaseOffsets() -> calculateBaseOffsets
+    413:414:void calculateCurrentOffsets() -> calculateCurrentOffsets
+    604:608:boolean calculateIsRtl(java.lang.CharSequence) -> calculateIsRtl
+    417:446:void calculateOffsets(float) -> calculateOffsets
+    626:697:void calculateUsingTextSize(float) -> calculateUsingTextSize
+    755:759:void clearTexture() -> clearTexture
+    560:601:void draw(android.graphics.Canvas) -> draw
+    700:725:void ensureExpandedTexture() -> ensureExpandedTexture
+    298:298:int getCollapsedTextGravity() -> getCollapsedTextGravity
+    774:774:float getCollapsedTextHeight() -> getCollapsedTextHeight
+    766:766:float getCollapsedTextWidth() -> getCollapsedTextWidth
+    357:357:android.graphics.Typeface getCollapsedTypeface() -> getCollapsedTypeface
+    462:468:int getCurrentCollapsedTextColor() -> getCurrentCollapsedTextColor
+    450:456:int getCurrentExpandedTextColor() -> getCurrentExpandedTextColor
+    287:287:int getExpandedTextGravity() -> getExpandedTextGravity
+    770:770:float getExpandedTextHeight() -> getExpandedTextHeight
+    762:762:float getExpandedTextWidth() -> getExpandedTextWidth
+    361:361:android.graphics.Typeface getExpandedTypeface() -> getExpandedTypeface
+    401:401:float getExpansionFraction() -> getExpansionFraction
+    751:751:java.lang.CharSequence getText() -> getText
+    547:555:void interpolateBounds(float) -> interpolateBounds
+    791:791:boolean isClose(float,float) -> isClose
+    396:397:boolean isStateful() -> isStateful
+    804:807:float lerp(float,float,float,android.view.animation.Interpolator) -> lerp
+    275:277:void onBoundsChanged() -> onBoundsChanged
+    314:324:android.graphics.Typeface readFontFamilyTypeface(int) -> readFontFamilyTypeface
+    728:734:void recalculate() -> recalculate
+    811:811:boolean rectEquals(android.graphics.Rect,int,int,int,int) -> rectEquals
+    267:272:void setCollapsedBounds(int,int,int,int) -> setCollapsedBounds
+    215:232:void setCollapsedTextAppearance(int) -> setCollapsedTextAppearance
+    189:193:void setCollapsedTextColor(android.content.res.ColorStateList) -> setCollapsedTextColor
+    291:295:void setCollapsedTextGravity(int) -> setCollapsedTextGravity
+    338:342:void setCollapsedTypeface(android.graphics.Typeface) -> setCollapsedTypeface
+    259:264:void setExpandedBounds(int,int,int,int) -> setExpandedBounds
+    235:256:void setExpandedTextAppearance(int) -> setExpandedTextAppearance
+    196:200:void setExpandedTextColor(android.content.res.ColorStateList) -> setExpandedTextColor
+    280:284:void setExpandedTextGravity(int) -> setExpandedTextGravity
+    345:349:void setExpandedTypeface(android.graphics.Typeface) -> setExpandedTypeface
+    372:378:void setExpansionFraction(float) -> setExpansionFraction
+    302:309:void setGravity(int,int,boolean) -> setGravity
+    612:623:void setInterpolatedTextSize(float) -> setInterpolatedTextSize
+    160:162:void setPositionInterpolator(android.view.animation.Interpolator) -> setPositionInterpolator
+    381:388:boolean setState(int[]) -> setState
+    742:748:void setText(java.lang.CharSequence) -> setText
+    204:211:void setTextColor(android.content.res.ColorStateList,android.content.res.ColorStateList,boolean) -> setTextColor
+    165:172:void setTextSize(float,float,boolean) -> setTextSize
+    155:157:void setTextSizeInterpolator(android.view.animation.Interpolator) -> setTextSizeInterpolator
+    328:335:void setTypeface(android.graphics.Typeface,android.graphics.Typeface,boolean) -> setTypeface
+    392:393:void setTypefaceUpdateAreaPercent(float) -> setTypefaceUpdateAreaPercent
+com.qmuiteam.qmui.util.QMUIColorHelper -> com.qmuiteam.qmui.util.QMUIColorHelper:
+    56:74:int computeColor(int,int,float) -> computeColor
+com.qmuiteam.qmui.util.QMUIDeviceHelper -> com.qmuiteam.qmui.util.QMUIDeviceHelper:
+    60:112:void <clinit>() -> <clinit>
+    400:408:java.lang.String getLowerCaseName(java.util.Properties,java.lang.reflect.Method,java.lang.String) -> getLowerCaseName
+    135:135:boolean isFlyme() -> isFlyme
+    227:227:boolean isHuawei() -> isHuawei
+    207:207:boolean isMeizu() -> isMeizu
+    223:223:boolean isOppo() -> isOppo
+    250:259:boolean isPhone(java.lang.String[]) -> isPhone
+    219:219:boolean isVivo() -> isVivo
+    215:215:boolean isXiaomi() -> isXiaomi
+com.qmuiteam.qmui.util.QMUIDeviceHelper$1 -> com.qmuiteam.qmui.util.QMUIDeviceHelper$1:
+    65:65:void <init>() -> <init>
+    69:69:boolean accept(java.io.File) -> accept
+com.qmuiteam.qmui.util.QMUIDisplayHelper -> com.qmuiteam.qmui.util.QMUIDisplayHelper:
+    55:62:void <clinit>() -> <clinit>
+    294:294:int dp2px(android.content.Context,int) -> dp2px
+    83:83:int dpToPx(int) -> dpToPx
+    97:97:float getDensity(android.content.Context) -> getDensity
+    73:73:android.util.DisplayMetrics getDisplayMetrics(android.content.Context) -> getDisplayMetrics
+    101:101:float getFontDensity(android.content.Context) -> getFontDensity
+    407:411:int getResourceNavHeight(android.content.Context) -> getResourceNavHeight
+    119:123:int getScreenHeight(android.content.Context) -> getScreenHeight
+    365:383:int getStatusBarHeight(android.content.Context) -> getStatusBarHeight
+    628:629:boolean huaweiIsNotchSetToShowInSetting(android.content.Context) -> huaweiIsNotchSetToShowInSetting
+    314:314:int px2dp(android.content.Context,int) -> px2dp
+    304:304:int sp2px(android.content.Context,int) -> sp2px
+    620:621:boolean xiaomiNavigationGestureEnabled(android.content.Context) -> xiaomiNavigationGestureEnabled
+com.qmuiteam.qmui.util.QMUIDrawableHelper -> com.qmuiteam.qmui.util.QMUIDrawableHelper:
+    53:56:void <clinit>() -> <clinit>
+    52:52:void <init>() -> <init>
+    273:276:android.graphics.drawable.Drawable getVectorDrawable(android.content.Context,int) -> getVectorDrawable
+    177:181:android.graphics.ColorFilter setDrawableTintColor(android.graphics.drawable.Drawable,int) -> setDrawableTintColor
+com.qmuiteam.qmui.util.QMUILangHelper -> com.qmuiteam.qmui.util.QMUILangHelper:
+    89:96:void close(java.io.Closeable) -> close
+    104:104:int constrain(int,int,int) -> constrain
+    108:108:float constrain(float,float,float) -> constrain
+    51:59:java.lang.String formatNumberToLimitedDigits(int,int) -> formatNumberToLimitedDigits
+    39:40:int getNumberDigits(int) -> getNumberDigits
+    85:85:boolean isNullOrEmpty(java.lang.CharSequence) -> isNullOrEmpty
+    100:100:boolean objectEquals(java.lang.Object,java.lang.Object) -> objectEquals
+com.qmuiteam.qmui.util.QMUINotchHelper -> com.qmuiteam.qmui.util.QMUINotchHelper:
+    46:52:void <clinit>() -> <clinit>
+    156:163:boolean attachHasOfficialNotch(android.view.View) -> attachHasOfficialNotch
+    251:253:void clearLandscapeRectInfo() -> clearLandscapeRectInfo
+    289:316:android.graphics.Rect get3rdSafeInsetRect(android.content.Context) -> get3rdSafeInsetRect
+    446:446:int getNotchHeightInVivo(android.content.Context) -> getNotchHeightInVivo
+    434:438:int getNotchHeightInXiaomi(android.content.Context) -> getNotchHeightInXiaomi
+    406:422:int[] getNotchSizeInHuawei(android.content.Context) -> getNotchSizeInHuawei
+    276:285:void getOfficialSafeInsetRect(android.view.View,android.graphics.Rect) -> getOfficialSafeInsetRect
+    321:338:android.graphics.Rect getRectInfoRotation0(android.content.Context) -> getRectInfoRotation0
+    364:379:android.graphics.Rect getRectInfoRotation180(android.content.Context) -> getRectInfoRotation180
+    383:401:android.graphics.Rect getRectInfoRotation270(android.content.Context) -> getRectInfoRotation270
+    342:360:android.graphics.Rect getRectInfoRotation90(android.content.Context) -> getRectInfoRotation90
+    217:220:int getSafeInsetBottom(android.view.View) -> getSafeInsetBottom
+    224:227:int getSafeInsetLeft(android.view.View) -> getSafeInsetLeft
+    266:271:android.graphics.Rect getSafeInsetRect(android.view.View) -> getSafeInsetRect
+    231:234:int getSafeInsetRight(android.view.View) -> getSafeInsetRight
+    210:213:int getSafeInsetTop(android.view.View) -> getSafeInsetTop
+    456:465:int getScreenRotation(android.content.Context) -> getScreenRotation
+    168:177:boolean has3rdNotch(android.content.Context) -> has3rdNotch
+    115:124:boolean hasNotch(android.view.View) -> hasNotch
+    79:92:boolean hasNotchInHuawei(android.content.Context) -> hasNotchInHuawei
+    96:97:boolean hasNotchInOppo(android.content.Context) -> hasNotchInOppo
+    55:74:boolean hasNotchInVivo(android.content.Context) -> hasNotchInVivo
+    103:111:boolean hasNotchInXiaomi(android.content.Context) -> hasNotchInXiaomi
+    469:469:boolean isNotchOfficialSupport() -> isNotchOfficialSupport
+com.qmuiteam.qmui.util.QMUIResHelper -> com.qmuiteam.qmui.util.QMUIResHelper:
+    174:229:void assignTextViewWithAttr(android.widget.TextView,int) -> assignTextViewWithAttr
+    56:56:int getAttrColor(android.content.Context,int) -> getAttrColor
+    60:69:int getAttrColor(android.content.res.Resources$Theme,int) -> getAttrColor
+    79:98:android.content.res.ColorStateList getAttrColorStateList(android.content.Context,android.content.res.Resources$Theme,int) -> getAttrColorStateList
+    143:149:int getAttrDimen(android.content.Context,int) -> getAttrDimen
+    103:103:android.graphics.drawable.Drawable getAttrDrawable(android.content.Context,int) -> getAttrDrawable
+    108:128:android.graphics.drawable.Drawable getAttrDrawable(android.content.Context,android.content.res.Resources$Theme,int) -> getAttrDrawable
+    133:139:android.graphics.drawable.Drawable getAttrDrawable(android.content.Context,android.content.res.TypedArray,int) -> getAttrDrawable
+    42:42:float getAttrFloatValue(android.content.Context,int) -> getAttrFloatValue
+    46:52:float getAttrFloatValue(android.content.res.Resources$Theme,int) -> getAttrFloatValue
+com.qmuiteam.qmui.util.QMUISpanHelper -> com.qmuiteam.qmui.util.QMUISpanHelper:
+    105:138:java.lang.CharSequence generateHorIconText(java.lang.CharSequence,int,android.graphics.drawable.Drawable,int,int,android.graphics.drawable.Drawable,int,int,android.view.View) -> generateHorIconText
+    61:61:java.lang.CharSequence generateSideIconText(boolean,int,java.lang.CharSequence,android.graphics.drawable.Drawable,int,android.view.View) -> generateSideIconText
+    69:71:java.lang.CharSequence generateSideIconText(boolean,int,java.lang.CharSequence,android.graphics.drawable.Drawable,int,int,android.view.View) -> generateSideIconText
+com.qmuiteam.qmui.util.QMUIStatusBarHelper -> com.qmuiteam.qmui.util.QMUIStatusBarHelper:
+    49:53:void <clinit>() -> <clinit>
+    414:417:int getStatusbarHeight(android.content.Context) -> getStatusbarHeight
+    422:455:void initStatusBarHeight(android.content.Context) -> initStatusBarHeight
+com.qmuiteam.qmui.util.QMUIViewHelper -> com.qmuiteam.qmui.util.QMUIViewHelper:
+    71:74:void <clinit>() -> <clinit>
+    79:86:void checkAppCompatTheme(android.content.Context) -> checkAppCompatTheme
+    285:286:int generateViewId() -> generateViewId
+    752:754:void getDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> getDescendantRect
+    631:642:void safeRequestDisallowInterceptTouchEvent(android.view.View,boolean) -> safeRequestDisallowInterceptTouchEvent
+    700:710:void safeSetImageViewSelected(android.widget.ImageView,boolean) -> safeSetImageViewSelected
+    143:146:void setBackgroundKeepingPadding(android.view.View,android.graphics.drawable.Drawable) -> setBackgroundKeepingPadding
+com.qmuiteam.qmui.util.QMUIViewHelper$ViewGroupHelper -> com.qmuiteam.qmui.util.QMUIViewHelper$ViewGroupHelper:
+    758:759:void <clinit>() -> <clinit>
+    784:796:void offsetDescendantMatrix(android.view.ViewParent,android.view.View,android.graphics.Matrix) -> offsetDescendantMatrix
+    762:781:void offsetDescendantRect(android.view.ViewGroup,android.view.View,android.graphics.Rect) -> offsetDescendantRect
+com.qmuiteam.qmui.util.QMUIViewOffsetHelper -> com.qmuiteam.qmui.util.QMUIViewOffsetHelper:
+    56:61:void <init>(android.view.View) -> <init>
+    76:78:void applyOffsets() -> applyOffsets
+    137:137:int getLayoutTop() -> getLayoutTop
+    133:133:int getLeftAndRightOffset() -> getLeftAndRightOffset
+    129:129:int getTopAndBottomOffset() -> getTopAndBottomOffset
+    64:65:void onViewLayout() -> onViewLayout
+    68:73:void onViewLayout(boolean) -> onViewLayout
+    102:107:boolean setLeftAndRightOffset(int) -> setLeftAndRightOffset
+    87:92:boolean setTopAndBottomOffset(int) -> setTopAndBottomOffset
+com.qmuiteam.qmui.util.QMUIWindowHelper -> com.qmuiteam.qmui.util.QMUIWindowHelper:
+    104:136:java.lang.Object getAttachInfoFromView(android.view.View) -> getAttachInfoFromView
+    83:100:android.graphics.Rect unSafeGetContentInsets(android.view.View) -> unSafeGetContentInsets
+    60:77:android.graphics.Rect unSafeGetWindowVisibleInsets(android.view.View) -> unSafeGetWindowVisibleInsets
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper:
+    44:80:void <clinit>() -> <clinit>
+    42:42:void access$000(android.view.WindowInsets,android.view.View) -> access$000
+    235:296:androidx.core.graphics.Insets adapterInsetsWithGravity(android.view.View,androidx.core.graphics.Insets) -> adapterInsetsWithGravity
+    226:232:void callCompatInsetAnimationCallback(android.view.WindowInsets,android.view.View) -> callCompatInsetAnimationCallback
+    88:89:void handleWindowInsets(android.view.View,int) -> handleWindowInsets
+    92:93:void handleWindowInsets(android.view.View,int,boolean) -> handleWindowInsets
+    96:97:void handleWindowInsets(android.view.View,int,boolean,boolean) -> handleWindowInsets
+    123:136:void handleWindowInsets(android.view.View,int,com.qmuiteam.qmui.util.QMUIWindowInsetHelper$InsetHandler,boolean,boolean,boolean) -> handleWindowInsets
+    149:150:void overrideWithDoNotHandleWindowInsets(android.view.View) -> overrideWithDoNotHandleWindowInsets
+    159:216:void setOnApplyWindowInsetsListener(android.view.View,androidx.core.view.OnApplyWindowInsetsListener,boolean) -> setOnApplyWindowInsetsListener
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$1 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$1:
+    44:44:void <init>() -> <init>
+    47:48:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$2 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$2:
+    51:51:void <init>() -> <init>
+    54:55:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$3 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$3:
+    58:58:void <init>() -> <init>
+    61:62:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$4 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$4:
+    65:65:void <init>() -> <init>
+    68:70:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$5 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$5:
+    73:73:void <init>() -> <init>
+    76:76:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$6 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$6:
+    80:80:void <init>() -> <init>
+    83:83:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$7 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$7:
+    123:123:void <init>(boolean,int,com.qmuiteam.qmui.util.QMUIWindowInsetHelper$InsetHandler,boolean) -> <init>
+    126:133:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.qmuiteam.qmui.util.QMUIWindowInsetHelper$8 -> com.qmuiteam.qmui.util.QMUIWindowInsetHelper$8:
+    173:175:void <init>(android.view.View,boolean,androidx.core.view.OnApplyWindowInsetsListener) -> <init>
+    180:213:android.view.WindowInsets onApplyWindowInsets(android.view.View,android.view.WindowInsets) -> onApplyWindowInsets
+com.qmuiteam.qmui.widget.QMUIAnimationListView -> com.qmuiteam.qmui.widget.QMUIAnimationListView:
+    105:106:void <init>(android.content.Context) -> <init>
+    84:111:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    84:116:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    524:524:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    378:378:long getChangeDisappearDuration() -> getChangeDisappearDuration
+    182:182:float getOffsetDurationUnit() -> getOffsetDurationUnit
+    513:519:int getPositionForId(long) -> getPositionForId
+    128:128:android.widget.ListAdapter getRealAdapter() -> getRealAdapter
+    124:125:void init() -> init
+    384:409:void onDraw(android.graphics.Canvas) -> onDraw
+    76:76:void setAdapter(android.widget.Adapter) -> setAdapter
+    133:136:void setAdapter(android.widget.ListAdapter) -> setAdapter
+    139:140:void setAnimationManipulateDurationLimit(int) -> setAnimationManipulateDurationLimit
+    186:187:void setOffsetDurationUnit(float) -> setOffsetDurationUnit
+    204:205:void setOffsetInterpolator(android.view.animation.Interpolator) -> setOffsetInterpolator
+    200:201:void setOpenChangeDisappearAnimation(boolean) -> setOpenChangeDisappearAnimation
+com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter -> com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter:
+    533:552:void <init>(android.widget.ListAdapter) -> <init>
+    531:531:boolean access$700(com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter) -> access$700
+    573:573:int getCount() -> getCount
+    588:588:java.lang.Object getItem(int) -> getItem
+    593:593:long getItemId(int) -> getItemId
+    578:578:int getItemViewType(int) -> getItemViewType
+    598:598:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+    583:583:int getViewTypeCount() -> getViewTypeCount
+    603:605:boolean hasStableIds() -> hasStableIds
+    564:569:void notifyDataSetChanged() -> notifyDataSetChanged
+com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter$1 -> com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter$1:
+    534:534:void <init>(com.qmuiteam.qmui.widget.QMUIAnimationListView$WrapperAdapter) -> <init>
+    537:540:void onChanged() -> onChanged
+    544:545:void onInvalidated() -> onInvalidated
+com.qmuiteam.qmui.widget.QMUIAppBarLayout -> com.qmuiteam.qmui.widget.QMUIAppBarLayout:
+    28:29:void <init>(android.content.Context) -> <init>
+    32:33:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout -> com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout:
+    140:141:void <init>(android.content.Context) -> <init>
+    144:145:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    104:245:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    100:100:int access$000(com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout) -> access$000
+    100:100:java.util.ArrayList access$100(com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout) -> access$100
+    600:623:void animateScrim(int) -> animateScrim
+    1115:1115:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    414:416:android.view.WindowInsets dispatchApplyWindowInsets(android.view.WindowInsets) -> dispatchApplyWindowInsets
+    296:321:void draw(android.graphics.Canvas) -> draw
+    335:341:boolean drawChild(android.graphics.Canvas,android.view.View,long) -> drawChild
+    750:770:void drawableStateChanged() -> drawableStateChanged
+    353:383:void ensureToolbar() -> ensureToolbar
+    396:402:android.view.View findDirectChild(android.view.View) -> findDirectChild
+    248:252:void followTopBarCommonSkin() -> followTopBarCommonSkin
+    100:100:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    100:100:android.widget.FrameLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    1120:1120:com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    100:100:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    100:100:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    1125:1125:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    1130:1130:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    870:870:int getCollapsedTitleGravity() -> getCollapsedTitleGravity
+    938:938:android.graphics.Typeface getCollapsedTitleTypeface() -> getCollapsedTitleTypeface
+    702:702:android.graphics.drawable.Drawable getContentScrim() -> getContentScrim
+    921:921:int getExpandedTitleGravity() -> getExpandedTitleGravity
+    1040:1040:int getExpandedTitleMarginBottom() -> getExpandedTitleMarginBottom
+    1021:1021:int getExpandedTitleMarginEnd() -> getExpandedTitleMarginEnd
+    983:983:int getExpandedTitleMarginStart() -> getExpandedTitleMarginStart
+    1002:1002:int getExpandedTitleMarginTop() -> getExpandedTitleMarginTop
+    955:955:android.graphics.Typeface getExpandedTitleTypeface() -> getExpandedTitleTypeface
+    487:492:int getHeightWithMargins(android.view.View) -> getHeightWithMargins
+    1260:1262:int getMaxOffsetForPinChild(android.view.View) -> getMaxOffsetForPinChild
+    637:637:int getScrimAlpha() -> getScrimAlpha
+    1110:1110:long getScrimAnimationDuration() -> getScrimAnimationDuration
+    1078:1094:int getScrimVisibleHeightTrigger() -> getScrimVisibleHeightTrigger
+    819:819:android.graphics.drawable.Drawable getStatusBarScrim() -> getStatusBarScrim
+    520:520:java.lang.CharSequence getTitle() -> getTitle
+    496:501:com.qmuiteam.qmui.util.QMUIViewOffsetHelper getViewOffsetHelper(android.view.View) -> getViewOffsetHelper
+    324:327:int getWindowInsetTop() -> getWindowInsetTop
+    1321:1337:boolean intercept(int,android.content.res.Resources$Theme) -> intercept
+    386:388:boolean isToolbarChild(android.view.View) -> isToolbarChild
+    264:280:void onAttachedToWindow() -> onAttachedToWindow
+    285:291:void onDetachedFromWindow() -> onDetachedFromWindow
+    421:484:void onLayout(boolean,int,int,int,int) -> onLayout
+    408:410:void onMeasure(int,int) -> onMeasure
+    346:350:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    256:260:void onViewAdded(android.view.View) -> onViewAdded
+    850:855:void setCollapsedTextColorSkinAttr(int) -> setCollapsedTextColorSkinAttr
+    863:864:void setCollapsedTitleGravity(int) -> setCollapsedTitleGravity
+    827:828:void setCollapsedTitleTextAppearance(int) -> setCollapsedTitleTextAppearance
+    836:837:void setCollapsedTitleTextColor(int) -> setCollapsedTitleTextColor
+    845:847:void setCollapsedTitleTextColor(android.content.res.ColorStateList) -> setCollapsedTitleTextColor
+    930:931:void setCollapsedTitleTypeface(android.graphics.Typeface) -> setCollapsedTitleTypeface
+    655:657:void setContentScrim(android.graphics.drawable.Drawable) -> setContentScrim
+    681:682:void setContentScrimColor(int) -> setContentScrimColor
+    660:672:void setContentScrimInner(android.graphics.drawable.Drawable) -> setContentScrimInner
+    691:693:void setContentScrimResource(int) -> setContentScrimResource
+    641:645:void setContentScrimSkinAttr(int) -> setContentScrimSkinAttr
+    901:906:void setExpandedTextColorSkinAttr(int) -> setExpandedTextColorSkinAttr
+    887:888:void setExpandedTitleColor(int) -> setExpandedTitleColor
+    914:915:void setExpandedTitleGravity(int) -> setExpandedTitleGravity
+    1050:1052:void setExpandedTitleMarginBottom(int) -> setExpandedTitleMarginBottom
+    1031:1033:void setExpandedTitleMarginEnd(int) -> setExpandedTitleMarginEnd
+    993:995:void setExpandedTitleMarginStart(int) -> setExpandedTitleMarginStart
+    1012:1014:void setExpandedTitleMarginTop(int) -> setExpandedTitleMarginTop
+    878:879:void setExpandedTitleTextAppearance(int) -> setExpandedTitleTextAppearance
+    896:898:void setExpandedTitleTextColor(android.content.res.ColorStateList) -> setExpandedTitleTextColor
+    947:948:void setExpandedTitleTypeface(android.graphics.Typeface) -> setExpandedTitleTypeface
+    626:634:void setScrimAlpha(int) -> setScrimAlpha
+    1103:1104:void setScrimAnimationDuration(long) -> setScrimAnimationDuration
+    584:597:void setScrimUpdateListener(android.animation.ValueAnimator$AnimatorUpdateListener) -> setScrimUpdateListener
+    1064:1069:void setScrimVisibleHeightTrigger(int) -> setScrimVisibleHeightTrigger
+    557:558:void setScrimsShown(boolean) -> setScrimsShown
+    570:578:void setScrimsShown(boolean,boolean) -> setScrimsShown
+    715:717:void setStatusBarScrim(android.graphics.drawable.Drawable) -> setStatusBarScrim
+    799:800:void setStatusBarScrimColor(int) -> setStatusBarScrimColor
+    720:737:void setStatusBarScrimInner(android.graphics.drawable.Drawable) -> setStatusBarScrimInner
+    809:810:void setStatusBarScrimResource(int) -> setStatusBarScrimResource
+    740:744:void setStatusBarScrimSkinAttr(int) -> setStatusBarScrimSkinAttr
+    511:512:void setTitle(java.lang.CharSequence) -> setTitle
+    532:536:void setTitleEnabled(boolean) -> setTitleEnabled
+    779:788:void setVisibility(int) -> setVisibility
+    1253:1256:void updateScrimVisibility() -> updateScrimVisibility
+    774:774:boolean verifyDrawable(android.graphics.drawable.Drawable) -> verifyDrawable
+com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$1 -> com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$1:
+    225:225:void <init>(com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout) -> <init>
+    228:239:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$2 -> com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$2:
+    608:608:void <init>(com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout) -> <init>
+    611:612:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$LayoutParams -> com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$LayoutParams:
+    1165:1180:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    1165:1184:void <init>(int,int) -> <init>
+    1165:1192:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+    1235:1236:void setParallaxMultiplier(float) -> setParallaxMultiplier
+com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$OffsetUpdateListener -> com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout$OffsetUpdateListener:
+    1274:1275:void <init>(com.qmuiteam.qmui.widget.QMUICollapsingTopBarLayout) -> <init>
+    1279:1316:void onOffsetChanged(com.google.android.material.appbar.AppBarLayout,int) -> onOffsetChanged
+com.qmuiteam.qmui.widget.QMUIEmptyView -> com.qmuiteam.qmui.widget.QMUIEmptyView:
+    46:47:void <init>(android.content.Context) -> <init>
+    50:51:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    54:63:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    128:133:void hide() -> hide
+    66:71:void init() -> init
+    180:181:void setBtnSkinValue(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setBtnSkinValue
+    184:187:void setButton(java.lang.String,android.view.View$OnClickListener) -> setButton
+    164:165:void setDetailColor(int) -> setDetailColor
+    172:173:void setDetailSkinValue(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setDetailSkinValue
+    153:155:void setDetailText(java.lang.String) -> setDetailText
+    144:145:void setLoadingShowing(boolean) -> setLoadingShowing
+    176:177:void setLoadingSkinValue(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setLoadingSkinValue
+    159:160:void setTitleColor(int) -> setTitleColor
+    168:169:void setTitleSkinValue(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setTitleSkinValue
+    148:150:void setTitleText(java.lang.String) -> setTitleText
+    83:88:void show(boolean,java.lang.String,java.lang.String,java.lang.String,android.view.View$OnClickListener) -> show
+    96:101:void show(boolean) -> show
+    121:122:void show() -> show
+com.qmuiteam.qmui.widget.QMUIFloatLayout -> com.qmuiteam.qmui.widget.QMUIFloatLayout:
+    70:71:void <init>(android.content.Context) -> <init>
+    74:75:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    48:80:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    421:421:int getGravity() -> getGravity
+    460:460:int getLineCount() -> getLineCount
+    469:469:int getMaxLines() -> getMaxLines
+    440:440:int getMaxNumber() -> getMaxNumber
+    83:99:void init(android.content.Context,android.util.AttributeSet) -> init
+    263:316:void layoutWithGravityCenterHorizontal(int) -> layoutWithGravityCenterHorizontal
+    322:350:void layoutWithGravityLeft(int) -> layoutWithGravityLeft
+    356:408:void layoutWithGravityRight(int) -> layoutWithGravityRight
+    241:257:void onLayout(boolean,int,int,int,int) -> onLayout
+    104:237:void onMeasure(int,int) -> onMeasure
+    476:478:void setChildHorizontalSpacing(int) -> setChildHorizontalSpacing
+    484:486:void setChildVerticalSpacing(int) -> setChildVerticalSpacing
+    414:418:void setGravity(int) -> setGravity
+    450:453:void setMaxLines(int) -> setMaxLines
+    431:434:void setMaxNumber(int) -> setMaxNumber
+    456:457:void setOnLineCountChangeListener(com.qmuiteam.qmui.widget.QMUIFloatLayout$OnLineCountChangeListener) -> setOnLineCountChangeListener
+com.qmuiteam.qmui.widget.QMUIFontFitTextView -> com.qmuiteam.qmui.widget.QMUIFontFitTextView:
+    42:43:void <init>(android.content.Context) -> <init>
+    46:59:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    98:103:void onMeasure(int,int) -> onMeasure
+    112:115:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    107:108:void onTextChanged(java.lang.CharSequence,int,int,int) -> onTextChanged
+    65:94:void refitText(java.lang.String,int) -> refitText
+com.qmuiteam.qmui.widget.QMUIItemViewsAdapter -> com.qmuiteam.qmui.widget.QMUIItemViewsAdapter:
+    42:49:void <init>(android.view.ViewGroup) -> <init>
+    95:96:com.qmuiteam.qmui.widget.QMUIItemViewsAdapter addItem(java.lang.Object) -> addItem
+    76:78:void clear() -> clear
+    52:73:void detach(int) -> detach
+    125:131:java.lang.Object getItem(int) -> getItem
+    150:153:int getSize() -> getSize
+    81:85:android.view.View getView() -> getView
+    146:146:java.util.List getViews() -> getViews
+    100:122:void setup() -> setup
+com.qmuiteam.qmui.widget.QMUILoadingView -> com.qmuiteam.qmui.widget.QMUILoadingView:
+    55:57:void <clinit>() -> <clinit>
+    60:61:void <init>(android.content.Context) -> <init>
+    64:65:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    47:102:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    43:43:int access$002(com.qmuiteam.qmui.widget.QMUILoadingView,int) -> access$002
+    134:147:void drawLoading(android.graphics.Canvas,int) -> drawLoading
+    186:186:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    85:89:void initPaint() -> initPaint
+    164:166:void onAttachedToWindow() -> onAttachedToWindow
+    170:172:void onDetachedFromWindow() -> onDetachedFromWindow
+    156:160:void onDraw(android.graphics.Canvas) -> onDraw
+    151:152:void onMeasure(int,int) -> onMeasure
+    176:182:void onVisibilityChanged(android.view.View,int) -> onVisibilityChanged
+    92:95:void setColor(int) -> setColor
+    98:100:void setSize(int) -> setSize
+    111:122:void start() -> start
+    125:131:void stop() -> stop
+com.qmuiteam.qmui.widget.QMUILoadingView$1 -> com.qmuiteam.qmui.widget.QMUILoadingView$1:
+    102:102:void <init>(com.qmuiteam.qmui.widget.QMUILoadingView) -> <init>
+    105:107:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.qmuiteam.qmui.widget.QMUINotchConsumeLayout -> com.qmuiteam.qmui.widget.QMUINotchConsumeLayout:
+    32:33:void <init>(android.content.Context) -> <init>
+    36:37:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    40:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    67:73:boolean notifyInsetMaybeChanged() -> notifyInsetMaybeChanged
+    52:56:void onAttachedToWindow() -> onAttachedToWindow
+    60:64:void onConfigurationChanged(android.content.res.Configuration) -> onConfigurationChanged
+com.qmuiteam.qmui.widget.QMUINotchConsumeLayout$1 -> com.qmuiteam.qmui.widget.QMUINotchConsumeLayout$1:
+    41:41:void <init>(com.qmuiteam.qmui.widget.QMUINotchConsumeLayout) -> <init>
+    44:45:androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View,androidx.core.view.WindowInsetsCompat) -> onApplyWindowInsets
+com.qmuiteam.qmui.widget.QMUIObservableScrollView -> com.qmuiteam.qmui.widget.QMUIObservableScrollView:
+    36:42:void <init>(android.content.Context) -> <init>
+    36:46:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    36:50:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    81:81:int getScrollOffset() -> getScrollOffset
+    71:78:void onScrollChanged(int,int,int,int) -> onScrollChanged
+com.qmuiteam.qmui.widget.QMUIPagerAdapter -> com.qmuiteam.qmui.widget.QMUIPagerAdapter:
+    31:34:void <init>() -> <init>
+    63:64:void destroyItem(android.view.ViewGroup,int,java.lang.Object) -> destroyItem
+    52:58:java.lang.Object instantiateItem(android.view.ViewGroup,int) -> instantiateItem
+com.qmuiteam.qmui.widget.QMUIProgressBar -> com.qmuiteam.qmui.widget.QMUIProgressBar:
+    59:59:void <clinit>() -> <clinit>
+    79:101:void <init>(android.content.Context) -> <init>
+    79:106:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    79:111:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    45:45:com.qmuiteam.qmui.widget.QMUIProgressBar$OnProgressChangeListener access$000(com.qmuiteam.qmui.widget.QMUIProgressBar) -> access$000
+    45:45:int access$100(com.qmuiteam.qmui.widget.QMUIProgressBar) -> access$100
+    45:45:int access$200(com.qmuiteam.qmui.widget.QMUIProgressBar) -> access$200
+    168:197:void configPaint(int,int,boolean,int) -> configPaint
+    158:165:void configShape() -> configShape
+    333:346:void drawCircle(android.graphics.Canvas,boolean) -> drawCircle
+    310:318:void drawRect(android.graphics.Canvas) -> drawRect
+    321:330:void drawRoundRect(android.graphics.Canvas) -> drawRoundRect
+    385:385:int getMaxValue() -> getMaxValue
+    353:353:int getProgress() -> getProgress
+    264:264:com.qmuiteam.qmui.widget.QMUIProgressBar$QMUIProgressBarTextGenerator getQMUIProgressBarTextGenerator() -> getQMUIProgressBarTextGenerator
+    269:297:void onDraw(android.graphics.Canvas) -> onDraw
+    301:307:void onMeasure(int,int) -> onMeasure
+    349:349:int parseValueToWidth() -> parseValueToWidth
+    215:218:void setBackgroundColor(int) -> setBackgroundColor
+    389:390:void setMaxValue(int) -> setMaxValue
+    143:144:void setOnProgressChangeListener(com.qmuiteam.qmui.widget.QMUIProgressBar$OnProgressChangeListener) -> setOnProgressChangeListener
+    357:358:void setProgress(int) -> setProgress
+    361:382:void setProgress(int,boolean) -> setProgress
+    221:224:void setProgressColor(int) -> setProgressColor
+    260:261:void setQMUIProgressBarTextGenerator(com.qmuiteam.qmui.widget.QMUIProgressBar$QMUIProgressBarTextGenerator) -> setQMUIProgressBarTextGenerator
+    252:254:void setStrokeRoundCap(boolean) -> setStrokeRoundCap
+    147:155:void setStrokeWidth(int) -> setStrokeWidth
+    244:246:void setTextColor(int) -> setTextColor
+    233:235:void setTextSize(int) -> setTextSize
+    200:203:void setType(int) -> setType
+    114:140:void setup(android.content.Context,android.util.AttributeSet) -> setup
+com.qmuiteam.qmui.widget.QMUIProgressBar$1 -> com.qmuiteam.qmui.widget.QMUIProgressBar$1:
+    88:88:void <init>(com.qmuiteam.qmui.widget.QMUIProgressBar) -> <init>
+    91:94:void run() -> run
+com.qmuiteam.qmui.widget.QMUIRadiusImageView -> com.qmuiteam.qmui.widget.QMUIRadiusImageView:
+    56:56:void <clinit>() -> <clinit>
+    91:92:void <init>(android.content.Context) -> <init>
+    95:96:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    59:134:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    495:512:void drawBitmap(android.graphics.Canvas,int) -> drawBitmap
+    515:536:void drawBorder(android.graphics.Canvas,int) -> drawBorder
+    344:390:android.graphics.Bitmap getBitmap() -> getBitmap
+    227:227:int getBorderColor() -> getBorderColor
+    231:231:int getBorderWidth() -> getBorderWidth
+    235:235:int getCornerRadius() -> getCornerRadius
+    239:239:int getSelectedBorderColor() -> getSelectedBorderColor
+    243:243:int getSelectedBorderWidth() -> getSelectedBorderWidth
+    247:247:int getSelectedMaskColor() -> getSelectedMaskColor
+    260:260:boolean isSelected() -> isSelected
+    540:561:void onDraw(android.graphics.Canvas) -> onDraw
+    301:328:void onMeasure(int,int) -> onMeasure
+    565:584:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    138:141:void setAdjustViewBounds(boolean) -> setAdjustViewBounds
+    151:155:void setBorderColor(int) -> setBorderColor
+    144:148:void setBorderWidth(int) -> setBorderWidth
+    202:207:void setCircle(boolean) -> setCircle
+    290:297:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    158:164:void setCornerRadius(int) -> setCornerRadius
+    333:335:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    339:341:void setImageURI(android.net.Uri) -> setImageURI
+    210:224:void setOval(boolean) -> setOval
+    264:268:void setSelected(boolean) -> setSelected
+    167:174:void setSelectedBorderColor(int) -> setSelectedBorderColor
+    177:183:void setSelectedBorderWidth(int) -> setSelectedBorderWidth
+    279:286:void setSelectedColorFilter(android.graphics.ColorFilter) -> setSelectedColorFilter
+    186:198:void setSelectedMaskColor(int) -> setSelectedMaskColor
+    271:272:void setTouchSelectModeEnabled(boolean) -> setTouchSelectModeEnabled
+    396:415:void setupBitmap() -> setupBitmap
+    418:426:void updateBitmapShader() -> updateBitmapShader
+    429:487:void updateMatrix(android.graphics.Matrix,android.graphics.Bitmap,android.graphics.RectF) -> updateMatrix
+    490:492:void updateScaleTypeMatrix(android.graphics.Matrix,android.graphics.Bitmap,android.graphics.RectF) -> updateScaleTypeMatrix
+com.qmuiteam.qmui.widget.QMUIRadiusImageView2 -> com.qmuiteam.qmui.widget.QMUIRadiusImageView2:
+    46:63:void <init>(android.content.Context) -> <init>
+    46:68:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:73:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    490:493:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    110:113:com.qmuiteam.qmui.alpha.QMUIAlphaViewHelper getAlphaViewHelper() -> getAlphaViewHelper
+    164:164:int getBorderColor() -> getBorderColor
+    168:168:int getBorderWidth() -> getBorderWidth
+    172:172:int getCornerRadius() -> getCornerRadius
+    422:422:int getHideRadiusSide() -> getHideRadiusSide
+    343:343:int getRadius() -> getRadius
+    176:176:int getSelectedBorderColor() -> getSelectedBorderColor
+    180:180:int getSelectedBorderWidth() -> getSelectedBorderWidth
+    184:184:int getSelectedMaskColor() -> getSelectedMaskColor
+    485:485:float getShadowAlpha() -> getShadowAlpha
+    475:475:int getShadowColor() -> getShadowColor
+    460:460:int getShadowElevation() -> getShadowElevation
+    76:106:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    193:193:boolean isSelected() -> isSelected
+    198:218:void onMeasure(int,int) -> onMeasure
+    546:564:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    353:360:void setBorderColor(int) -> setBorderColor
+    364:371:void setBorderWidth(int) -> setBorderWidth
+    299:301:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    152:153:void setChangeAlphaWhenDisable(boolean) -> setChangeAlphaWhenDisable
+    143:144:void setChangeAlphaWhenPress(boolean) -> setChangeAlphaWhenPress
+    156:161:void setCircle(boolean) -> setCircle
+    535:542:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    117:118:void setCornerRadius(int) -> setCornerRadius
+    133:135:void setEnabled(boolean) -> setEnabled
+    122:122:boolean setFrame(int,int,int,int) -> setFrame
+    417:418:void setHideRadiusSide(int) -> setHideRadiusSide
+    305:307:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    480:481:void setOuterNormalColor(int) -> setOuterNormalColor
+    450:451:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    127:129:void setPressed(boolean) -> setPressed
+    333:334:void setRadius(int) -> setRadius
+    311:313:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    497:513:void setSelected(boolean) -> setSelected
+    374:382:void setSelectedBorderColor(int) -> setSelectedBorderColor
+    385:392:void setSelectedBorderWidth(int) -> setSelectedBorderWidth
+    524:531:void setSelectedColorFilter(android.graphics.ColorFilter) -> setSelectedColorFilter
+    395:407:void setSelectedMaskColor(int) -> setSelectedMaskColor
+    465:466:void setShadowAlpha(float) -> setShadowAlpha
+    470:471:void setShadowColor(int) -> setShadowColor
+    455:456:void setShadowElevation(int) -> setShadowElevation
+    411:413:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    293:295:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    516:517:void setTouchSelectModeEnabled(boolean) -> setTouchSelectModeEnabled
+    273:274:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    278:279:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    283:284:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    288:289:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.widget.QMUISeekBar -> com.qmuiteam.qmui.widget.QMUISeekBar:
+    25:28:void <clinit>() -> <clinit>
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    66:67:void drawRect(android.graphics.Canvas,android.graphics.RectF,int,android.graphics.Paint,boolean) -> drawRect
+    73:89:void drawTick(android.graphics.Canvas,int,int,int,int,float,android.graphics.Paint,int,int) -> drawTick
+    93:93:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    61:61:int getTickHeight() -> getTickHeight
+    51:53:void setTickHeight(int) -> setTickHeight
+    56:58:void setTickWidth(int) -> setTickWidth
+com.qmuiteam.qmui.widget.QMUISlider -> com.qmuiteam.qmui.widget.QMUISlider:
+    75:79:void <clinit>() -> <clinit>
+    83:84:void <init>(android.content.Context) -> <init>
+    87:88:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    52:137:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    45:45:boolean access$002(com.qmuiteam.qmui.widget.QMUISlider,boolean) -> access$002
+    45:45:int access$100(com.qmuiteam.qmui.widget.QMUISlider) -> access$100
+    45:45:int access$200(com.qmuiteam.qmui.widget.QMUISlider) -> access$200
+    45:45:int access$300(com.qmuiteam.qmui.widget.QMUISlider) -> access$300
+    45:45:void access$400(com.qmuiteam.qmui.widget.QMUISlider,int,int) -> access$400
+    45:45:boolean access$502(com.qmuiteam.qmui.widget.QMUISlider,boolean) -> access$502
+    45:45:com.qmuiteam.qmui.widget.QMUISlider$IThumbView access$600(com.qmuiteam.qmui.widget.QMUISlider) -> access$600
+    45:45:com.qmuiteam.qmui.widget.QMUISlider$Callback access$700(com.qmuiteam.qmui.widget.QMUISlider) -> access$700
+    45:45:int access$800(com.qmuiteam.qmui.widget.QMUISlider) -> access$800
+    471:478:void calculateByThumbPosition(int) -> calculateByThumbPosition
+    330:347:void checkTouch(int,int) -> checkTouch
+    491:491:android.view.View convertThumbToView() -> convertThumbToView
+    409:411:void drawRecordProgress(android.graphics.Canvas,android.graphics.RectF,android.graphics.Paint) -> drawRecordProgress
+    404:406:void drawRect(android.graphics.Canvas,android.graphics.RectF,int,android.graphics.Paint,boolean) -> drawRect
+    416:416:void drawTick(android.graphics.Canvas,int,int,int,int,float,android.graphics.Paint,int,int) -> drawTick
+    426:426:int getBarHeight() -> getBarHeight
+    437:437:int getBarNormalColor() -> getBarNormalColor
+    448:448:int getBarProgressColor() -> getBarProgressColor
+    168:168:int getCurrentProgress() -> getCurrentProgress
+    531:531:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    516:518:int getMaxThumbOffset() -> getMaxThumbOffset
+    463:463:int getRecordProgress() -> getRecordProgress
+    459:459:int getRecordProgressColor() -> getRecordProgressColor
+    181:181:int getTickCount() -> getTickCount
+    505:512:boolean isRecordProgressClicked(int) -> isRecordProgressClicked
+    495:495:boolean isThumbTouched(float,float) -> isThumbTouched
+    499:501:boolean isThumbViewTouched(android.view.View,float,float) -> isThumbViewTouched
+    486:486:android.widget.FrameLayout$LayoutParams onCreateThumbLayoutParams() -> onCreateThumbLayoutParams
+    482:482:com.qmuiteam.qmui.widget.QMUISlider$IThumbView onCreateThumbView(android.content.Context,int,int) -> onCreateThumbView
+    368:401:void onDraw(android.graphics.Canvas) -> onDraw
+    222:222:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    204:214:void onLayout(boolean,int,int,int,int) -> onLayout
+    218:218:void onLayoutCustomChildren(boolean,int,int,int,int) -> onLayoutCustomChildren
+    195:200:void onMeasure(int,int) -> onMeasure
+    227:326:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    189:191:void safeSetCurrentProgress(int) -> safeSetCurrentProgress
+    419:423:void setBarHeight(int) -> setBarHeight
+    430:434:void setBarNormalColor(int) -> setBarNormalColor
+    441:445:void setBarProgressColor(int) -> setBarProgressColor
+    140:141:void setCallback(com.qmuiteam.qmui.widget.QMUISlider$Callback) -> setCallback
+    351:352:void setClickToChangeProgress(boolean) -> setClickToChangeProgress
+    467:468:void setConstraintThumbInMoving(boolean) -> setConstraintThumbInMoving
+    144:155:void setCurrentProgress(int) -> setCurrentProgress
+    355:356:void setLongTouchToChangeProgress(boolean) -> setLongTouchToChangeProgress
+    158:165:void setRecordProgress(int) -> setRecordProgress
+    452:456:void setRecordProgressColor(int) -> setRecordProgressColor
+    185:186:void setThumbSkin(com.qmuiteam.qmui.skin.QMUISkinValueBuilder) -> setThumbSkin
+    172:178:void setTickCount(int) -> setTickCount
+com.qmuiteam.qmui.widget.QMUISlider$DefaultThumbView -> com.qmuiteam.qmui.widget.QMUISlider$DefaultThumbView:
+    590:593:void <clinit>() -> <clinit>
+    596:601:void <init>(android.content.Context,int,int) -> <init>
+    605:608:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    638:638:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    633:633:int getLeftRightMargin() -> getLeftRightMargin
+    617:618:void onMeasure(int,int) -> onMeasure
+    624:624:void render(int,int) -> render
+    611:613:void setBorderColor(int) -> setBorderColor
+    629:629:void setPress(boolean) -> setPress
+com.qmuiteam.qmui.widget.QMUISlider$LongPressAction -> com.qmuiteam.qmui.widget.QMUISlider$LongPressAction:
+    642:642:void <init>(com.qmuiteam.qmui.widget.QMUISlider) -> <init>
+    646:654:void run() -> run
+com.qmuiteam.qmui.widget.QMUITopBar -> com.qmuiteam.qmui.widget.QMUITopBar:
+    111:114:void <clinit>() -> <clinit>
+    117:118:void <init>(android.content.Context) -> <init>
+    121:122:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    103:128:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    379:381:void disableBackgroundSetter() -> disableBackgroundSetter
+    410:411:android.widget.RelativeLayout$LayoutParams generateTitleContainerViewLp() -> generateTitleContainerViewLp
+    851:851:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    340:340:com.qmuiteam.qmui.widget.textview.QMUISpanTouchFixTextView getSubTitleView() -> getSubTitleView
+    242:245:java.lang.CharSequence getTitle() -> getTitle
+    363:371:android.graphics.Rect getTitleContainerRect() -> getTitleContainerRect
+    375:375:android.widget.LinearLayout getTitleContainerView() -> getTitleContainerView
+    250:250:com.qmuiteam.qmui.qqface.QMUIQQFaceView getTitleView() -> getTitleView
+    728:731:int getTopBarHeight() -> getTopBarHeight
+    830:846:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme,androidx.collection.SimpleArrayMap) -> handle
+    142:179:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    131:135:void initVar() -> initVar
+    393:401:android.widget.LinearLayout makeSureTitleContainerView() -> makeSureTitleContainerView
+    183:192:void onAttachedToWindow() -> onAttachedToWindow
+    801:826:void onLayout(boolean,int,int,int,int) -> onLayout
+    760:797:void onMeasure(int,int) -> onMeasure
+    740:741:void setBackgroundAlpha(int) -> setBackgroundAlpha
+    385:388:void setBackgroundDrawable(android.graphics.drawable.Drawable) -> setBackgroundDrawable
+    200:214:void setCenterView(android.view.View) -> setCenterView
+    349:360:void setTitleGravity(int) -> setTitleGravity
+com.qmuiteam.qmui.widget.QMUITopBarLayout -> com.qmuiteam.qmui.widget.QMUITopBarLayout:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    52:78:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    224:224:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    115:115:com.qmuiteam.qmui.widget.textview.QMUISpanTouchFixTextView getSubTitleView() -> getSubTitleView
+    110:110:com.qmuiteam.qmui.qqface.QMUIQQFaceView getTitleView() -> getTitleView
+    81:81:com.qmuiteam.qmui.widget.QMUITopBar getTopBar() -> getTopBar
+    200:201:void setBackgroundAlpha(int) -> setBackgroundAlpha
+    85:86:void setCenterView(android.view.View) -> setCenterView
+    119:120:void setTitleGravity(int) -> setTitleGravity
+com.qmuiteam.qmui.widget.QMUIVerticalTextView -> com.qmuiteam.qmui.widget.QMUIVerticalTextView:
+    41:50:void <init>(android.content.Context) -> <init>
+    41:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    41:60:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    63:63:void init() -> init
+    234:252:boolean isCJKCharacter(int) -> isCJKCharacter
+    170:230:void onDraw(android.graphics.Canvas) -> onDraw
+    69:165:void onMeasure(int,int) -> onMeasure
+    260:262:void setVerticalMode(boolean) -> setVerticalMode
+com.qmuiteam.qmui.widget.QMUIViewPager -> com.qmuiteam.qmui.widget.QMUIViewPager:
+    48:49:void <init>(android.content.Context) -> <init>
+    42:54:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:39:boolean access$000(com.qmuiteam.qmui.widget.QMUIViewPager) -> access$000
+    39:39:int access$100(com.qmuiteam.qmui.widget.QMUIViewPager) -> access$100
+    61:61:int getInfiniteRatio() -> getInfiniteRatio
+    99:101:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    107:110:void onMeasure(int,int) -> onMeasure
+    90:92:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    83:85:void onViewAdded(android.view.View) -> onViewAdded
+    118:123:void setAdapter(androidx.viewpager.widget.PagerAdapter) -> setAdapter
+    73:79:void setEnableLoop(boolean) -> setEnableLoop
+    65:66:void setInfiniteRatio(int) -> setInfiniteRatio
+    57:58:void setSwipeable(boolean) -> setSwipeable
+com.qmuiteam.qmui.widget.QMUIViewPager$WrapperPagerAdapter -> com.qmuiteam.qmui.widget.QMUIViewPager$WrapperPagerAdapter:
+    128:130:void <init>(com.qmuiteam.qmui.widget.QMUIViewPager,com.qmuiteam.qmui.widget.QMUIPagerAdapter) -> <init>
+    153:158:void destroyItem(android.view.ViewGroup,int,java.lang.Object) -> destroyItem
+    183:184:void finishUpdate(android.view.ViewGroup) -> finishUpdate
+    134:138:int getCount() -> getCount
+    220:220:int getItemPosition(java.lang.Object) -> getItemPosition
+    188:189:java.lang.CharSequence getPageTitle(int) -> getPageTitle
+    194:194:float getPageWidth(int) -> getPageWidth
+    144:148:java.lang.Object instantiateItem(android.view.ViewGroup,int) -> instantiateItem
+    162:162:boolean isViewFromObject(android.view.View,java.lang.Object) -> isViewFromObject
+    214:216:void notifyDataSetChanged() -> notifyDataSetChanged
+    209:210:void registerDataSetObserver(android.database.DataSetObserver) -> registerDataSetObserver
+    168:169:void restoreState(android.os.Parcelable,java.lang.ClassLoader) -> restoreState
+    173:173:android.os.Parcelable saveState() -> saveState
+    199:200:void setPrimaryItem(android.view.ViewGroup,int,java.lang.Object) -> setPrimaryItem
+    178:179:void startUpdate(android.view.ViewGroup) -> startUpdate
+    204:205:void unregisterDataSetObserver(android.database.DataSetObserver) -> unregisterDataSetObserver
+com.qmuiteam.qmui.widget.QMUIWindowInsetLayout -> com.qmuiteam.qmui.widget.QMUIWindowInsetLayout:
+    32:33:void <init>(android.content.Context) -> <init>
+    36:37:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    40:41:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    45:47:void onViewAdded(android.view.View) -> onViewAdded
+com.qmuiteam.qmui.widget.QMUIWindowInsetLayout2 -> com.qmuiteam.qmui.widget.QMUIWindowInsetLayout2:
+    31:32:void <init>(android.content.Context) -> <init>
+    35:36:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    39:40:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    49:51:void onViewAdded(android.view.View) -> onViewAdded
+    45:45:void setFitsSystemWindows(boolean) -> setFitsSystemWindows
+com.qmuiteam.qmui.widget.QMUIWrapContentListView -> com.qmuiteam.qmui.widget.QMUIWrapContentListView:
+    28:32:void <init>(android.content.Context) -> <init>
+    28:41:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    28:45:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    56:59:void onMeasure(int,int) -> onMeasure
+    48:52:void setMaxHeight(int) -> setMaxHeight
+com.qmuiteam.qmui.widget.QMUIWrapContentScrollView -> com.qmuiteam.qmui.widget.QMUIWrapContentScrollView:
+    30:34:void <init>(android.content.Context) -> <init>
+    30:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    30:47:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    58:69:void onMeasure(int,int) -> onMeasure
+    50:54:void setMaxHeight(int) -> setMaxHeight
+com.qmuiteam.qmui.widget.dialog.QMUIBaseDialog -> com.qmuiteam.qmui.widget.dialog.QMUIBaseDialog:
+    35:43:void <init>(android.content.Context,int) -> <init>
+    120:136:void dismiss() -> dismiss
+    66:72:android.view.LayoutInflater getLayoutInflater() -> getLayoutInflater
+    94:94:void onSetCancelable(boolean) -> onSetCancelable
+    57:61:void onStart() -> onStart
+    77:81:void onStop() -> onStop
+    85:90:void setCancelable(boolean) -> setCancelable
+    98:104:void setCanceledOnTouchOutside(boolean) -> setCanceledOnTouchOutside
+    46:53:void setSkinManager(com.qmuiteam.qmui.skin.QMUISkinManager) -> setSkinManager
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet:
+    62:62:com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetBehavior access$200(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet) -> access$200
+    246:246:void addContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> addContentView
+    164:171:void cancel() -> cancel
+    175:182:void dismiss() -> dismiss
+    144:152:void onCreate(android.os.Bundle) -> onCreate
+    138:140:void onSetCancelable(boolean) -> onSetCancelable
+    156:160:void onStart() -> onStart
+    228:228:void setContentView(android.view.View) -> setContentView
+    234:234:void setContentView(int) -> setContentView
+    240:240:void setContentView(android.view.View,android.view.ViewGroup$LayoutParams) -> setContentView
+    214:220:void setToExpandWhenShow() -> setToExpandWhenShow
+    202:211:void show() -> show
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet$4 -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet$4:
+    214:214:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet) -> <init>
+    217:218:void run() -> run
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetBehavior -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetBehavior:
+    28:30:void <init>() -> <init>
+    28:28:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onInterceptTouchEvent
+    65:76:boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.ViewGroup,android.view.MotionEvent) -> onInterceptTouchEvent
+    28:28:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    84:87:boolean onStartNestedScroll(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.ViewGroup,android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    28:28:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.View,android.view.MotionEvent) -> onTouchEvent
+    45:58:boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout,android.view.ViewGroup,android.view.MotionEvent) -> onTouchEvent
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridItemView -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridItemView:
+    50:51:void <init>(android.content.Context) -> <init>
+    54:55:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    58:90:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    113:113:java.lang.Object getModelTag() -> getModelTag
+    93:93:androidx.appcompat.widget.AppCompatImageView onCreateIconView(android.content.Context) -> onCreateIconView
+    97:97:android.widget.TextView onCreateTitleView(android.content.Context) -> onCreateTitleView
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridLineLayout -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridLineLayout:
+    37:37:void <clinit>() -> <clinit>
+    165:168:int calculateItemWidth(int,int,int,int) -> calculateItemWidth
+    161:162:void measureChild(android.view.View,int,int) -> measureChild
+    113:133:void onMeasure(int,int) -> onMeasure
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridLineLayout$1 -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetGridLineLayout$1:
+    37:37:void <init>() -> <init>
+    40:55:int calculate(android.content.Context,int,int,int,int,int) -> calculate
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter:
+    29:29:com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$OnItemClickListener access$000(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter) -> access$000
+    29:29:android.view.View access$100(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter) -> access$100
+    29:29:java.util.List access$200(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter) -> access$200
+    124:124:int getItemCount() -> getItemCount
+    73:83:int getItemViewType(int) -> getItemViewType
+    29:29:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    111:120:void onBindViewHolder(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$VH,int) -> onBindViewHolder
+    29:29:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    89:106:com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$VH onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$1 -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$1:
+    96:96:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter,com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$VH) -> <init>
+    99:104:void onClick(android.view.View) -> onClick
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$VH -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListAdapter$VH:
+    130:131:void <init>(android.view.View) -> <init>
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListItemDecoration -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListItemDecoration:
+    83:86:void handle(androidx.recyclerview.widget.RecyclerView,com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme) -> handle
+    54:76:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListItemView -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListItemView:
+    45:143:void <init>(android.content.Context,boolean,boolean) -> <init>
+    197:198:void onMeasure(int,int) -> onMeasure
+    146:193:void render(com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetListItemModel,boolean) -> render
+com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetRootLayout -> com.qmuiteam.qmui.widget.dialog.QMUIBottomSheetRootLayout:
+    35:36:void <init>(android.content.Context) -> <init>
+    39:54:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    58:70:void onMeasure(int,int) -> onMeasure
+com.qmuiteam.qmui.widget.dialog.QMUIDialog -> com.qmuiteam.qmui.widget.dialog.QMUIDialog:
+    74:75:void <init>(android.content.Context) -> <init>
+    78:81:void <init>(android.content.Context,int) -> <init>
+    84:86:void init() -> init
+com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder -> com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder:
+    306:312:void <init>(android.content.Context) -> <init>
+    422:422:void configRightImageView(androidx.appcompat.widget.AppCompatImageView,android.widget.EditText) -> configRightImageView
+    425:432:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams createEditTextLayoutParams(android.content.Context) -> createEditTextLayoutParams
+    436:440:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams createRightIconLayoutParams(android.content.Context) -> createRightIconLayoutParams
+    468:468:android.widget.EditText getEditText() -> getEditText
+    445:460:void onAfterCreate(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout,android.content.Context) -> onAfterCreate
+    369:417:android.view.View onCreateContent(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.content.Context) -> onCreateContent
+    357:363:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams onCreateContentLayoutParams(android.content.Context) -> onCreateContentLayoutParams
+    346:347:com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder setInputType(int) -> setInputType
+    318:319:com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder setPlaceholder(java.lang.String) -> setPlaceholder
+com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder$1 -> com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder$1:
+    447:447:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder,android.view.inputmethod.InputMethodManager) -> <init>
+    450:451:void onDismiss(android.content.DialogInterface) -> onDismiss
+com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder$2 -> com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder$2:
+    453:453:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder,android.view.inputmethod.InputMethodManager) -> <init>
+    456:458:void run() -> run
+com.qmuiteam.qmui.widget.dialog.QMUIDialog$MessageDialogBuilder -> com.qmuiteam.qmui.widget.dialog.QMUIDialog$MessageDialogBuilder:
+    128:129:void <init>(android.content.Context) -> <init>
+    190:209:void assignMessageTvWithAttr(android.widget.TextView,boolean,int) -> assignMessageTvWithAttr
+    149:162:android.view.View onCreateContent(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.content.Context) -> onCreateContent
+    168:186:android.view.View onCreateTitle(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.content.Context) -> onCreateTitle
+    135:136:com.qmuiteam.qmui.widget.dialog.QMUIDialog$MessageDialogBuilder setMessage(java.lang.CharSequence) -> setMessage
+com.qmuiteam.qmui.widget.dialog.QMUIDialogAction -> com.qmuiteam.qmui.widget.dialog.QMUIDialogAction:
+    74:75:void <init>(java.lang.CharSequence) -> <init>
+    58:84:void <init>(java.lang.CharSequence,com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$ActionListener) -> <init>
+    44:44:com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$ActionListener access$000(com.qmuiteam.qmui.widget.dialog.QMUIDialogAction) -> access$000
+    44:44:com.qmuiteam.qmui.layout.QMUIButton access$100(com.qmuiteam.qmui.widget.dialog.QMUIDialogAction) -> access$100
+    135:145:com.qmuiteam.qmui.layout.QMUIButton buildActionView(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> buildActionView
+    153:230:com.qmuiteam.qmui.layout.QMUIButton generateActionButton(android.content.Context,java.lang.CharSequence,int,int,int,int) -> generateActionButton
+    92:93:com.qmuiteam.qmui.widget.dialog.QMUIDialogAction iconRes(int) -> iconRes
+    97:98:com.qmuiteam.qmui.widget.dialog.QMUIDialogAction onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$ActionListener) -> onClick
+    87:88:com.qmuiteam.qmui.widget.dialog.QMUIDialogAction prop(int) -> prop
+    122:123:com.qmuiteam.qmui.widget.dialog.QMUIDialogAction skinSeparatorColorAttr(int) -> skinSeparatorColorAttr
+com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$1 -> com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$1:
+    137:137:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIDialogAction,com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> <init>
+    140:143:void onClick(android.view.View) -> onClick
+com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder -> com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder:
+    79:79:void <clinit>() -> <clinit>
+    88:109:void <init>(android.content.Context) -> <init>
+    67:67:android.content.Context access$000(com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder) -> access$000
+    242:242:com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder addAction(java.lang.CharSequence,com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$ActionListener) -> addAction
+    291:296:com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder addAction(int,java.lang.CharSequence,int,com.qmuiteam.qmui.widget.dialog.QMUIDialogAction$ActionListener) -> addAction
+    426:429:void checkAndSetId(android.view.View,int) -> checkAndSetId
+    433:433:void configRootLayout(com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout) -> configRootLayout
+    343:414:com.qmuiteam.qmui.widget.dialog.QMUIDialog create(int) -> create
+    632:636:android.view.View createActionContainerSpace(android.content.Context) -> createActionContainerSpace
+    308:308:boolean hasTitle() -> hasTitle
+    419:419:void onAfterCreate(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout,android.content.Context) -> onAfterCreate
+    505:509:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams onCreateContentLayoutParams(android.content.Context) -> onCreateContentLayoutParams
+    465:465:android.widget.FrameLayout$LayoutParams onCreateDialogLayoutParams() -> onCreateDialogLayoutParams
+    456:460:com.qmuiteam.qmui.widget.dialog.QMUIDialogView onCreateDialogView(android.content.Context) -> onCreateDialogView
+    515:618:android.view.View onCreateOperatorLayout(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.content.Context) -> onCreateOperatorLayout
+    623:628:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams onCreateOperatorLayoutLayoutParams(android.content.Context) -> onCreateOperatorLayoutLayoutParams
+    471:479:android.view.View onCreateTitle(com.qmuiteam.qmui.widget.dialog.QMUIDialog,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.content.Context) -> onCreateTitle
+    484:489:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams onCreateTitleLayoutParams(android.content.Context) -> onCreateTitleLayoutParams
+    423:423:void onOverlayOccurredInMeasure() -> onOverlayOccurredInMeasure
+    120:123:com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder setTitle(java.lang.String) -> setTitle
+    448:452:void skinConfigActionContainer(android.view.ViewGroup) -> skinConfigActionContainer
+    436:440:void skinConfigDialogView(com.qmuiteam.qmui.widget.dialog.QMUIDialogView) -> skinConfigDialogView
+    442:446:void skinConfigTitleView(android.widget.TextView) -> skinConfigTitleView
+    498:501:com.qmuiteam.qmui.widget.QMUIWrapContentScrollView wrapWithScroll(android.view.View) -> wrapWithScroll
+com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder$1 -> com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder$1:
+    349:349:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder) -> <init>
+    352:353:void call() -> call
+com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder$2 -> com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder$2:
+    597:597:void <init>(com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder,com.qmuiteam.qmui.layout.QMUILinearLayout) -> <init>
+    600:613:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView -> com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView:
+    48:58:void <init>(android.content.Context) -> <init>
+    62:84:android.widget.TextView createItemTextView(android.content.Context) -> createItemTextView
+    88:88:int getMenuIndex() -> getMenuIndex
+    97:97:void notifyCheckChange(boolean) -> notifyCheckChange
+    117:120:boolean performClick() -> performClick
+    104:106:void setChecked(boolean) -> setChecked
+    109:113:void setListener(com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$MenuItemViewListener) -> setListener
+    92:93:void setMenuIndex(int) -> setMenuIndex
+com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$CheckItemView -> com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$CheckItemView:
+    302:302:java.lang.CharSequence getText() -> getText
+    307:308:void notifyCheckChange(boolean) -> notifyCheckChange
+    298:299:void setText(java.lang.CharSequence) -> setText
+com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$MarkItemView -> com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$MarkItemView:
+    177:217:void <init>(android.content.Context) -> <init>
+    230:231:void notifyCheckChange(boolean) -> notifyCheckChange
+    225:226:void setText(java.lang.CharSequence) -> setText
+com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$TextItemView -> com.qmuiteam.qmui.widget.dialog.QMUIDialogMenuItemView$TextItemView:
+    131:133:void <init>(android.content.Context) -> <init>
+    142:149:void init() -> init
+    152:153:void setText(java.lang.CharSequence) -> setText
+    157:158:void setTextColor(int) -> setTextColor
+    161:167:void setTextColorAttr(int) -> setTextColorAttr
+com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout -> com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout:
+    41:63:void <init>(android.content.Context,com.qmuiteam.qmui.widget.dialog.QMUIDialogView,android.widget.FrameLayout$LayoutParams) -> <init>
+    183:186:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    174:174:com.qmuiteam.qmui.widget.dialog.QMUIDialogView getDialogView() -> getDialogView
+    166:171:void onLayout(boolean,int,int,int,int) -> onLayout
+    95:162:void onMeasure(int,int) -> onMeasure
+    86:87:void setCheckKeyboardOverlay(boolean) -> setCheckKeyboardOverlay
+    74:75:void setInsetHor(int) -> setInsetHor
+    78:79:void setInsetVer(int) -> setInsetVer
+    90:91:void setMaxPercent(float) -> setMaxPercent
+    70:71:void setMaxWidth(int) -> setMaxWidth
+    66:67:void setMinWidth(int) -> setMinWidth
+    82:83:void setOverlayOccurInMeasureCallback(com.qmuiteam.qmui.widget.dialog.QMUIDialogRootLayout$OverlayOccurInMeasureCallback) -> setOverlayOccurInMeasureCallback
+com.qmuiteam.qmui.widget.dialog.QMUIDialogView -> com.qmuiteam.qmui.widget.dialog.QMUIDialogView:
+    38:39:void <init>(android.content.Context) -> <init>
+    42:43:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    46:48:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    64:68:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    56:60:void onDraw(android.graphics.Canvas) -> onDraw
+    51:52:void setOnDecorationListener(com.qmuiteam.qmui.widget.dialog.QMUIDialogView$OnDecorationListener) -> setOnDecorationListener
+com.qmuiteam.qmui.widget.dialog.QMUITipDialog -> com.qmuiteam.qmui.widget.dialog.QMUITipDialog:
+    62:63:void <init>(android.content.Context) -> <init>
+    66:68:void <init>(android.content.Context,int) -> <init>
+com.qmuiteam.qmui.widget.dialog.QMUITipDialog$CustomBuilder -> com.qmuiteam.qmui.widget.dialog.QMUITipDialog$CustomBuilder:
+    246:248:void <init>(android.content.Context) -> <init>
+    261:267:com.qmuiteam.qmui.widget.dialog.QMUITipDialog create() -> create
+    256:257:com.qmuiteam.qmui.widget.dialog.QMUITipDialog$CustomBuilder setContent(int) -> setContent
+com.qmuiteam.qmui.widget.dialog.QMUITipDialogView -> com.qmuiteam.qmui.widget.dialog.QMUITipDialogView:
+    36:53:void <init>(android.content.Context) -> <init>
+    57:77:void onMeasure(int,int) -> onMeasure
+com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView -> com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView:
+    146:147:void <init>(android.content.Context) -> <init>
+    150:151:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    125:156:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    542:542:android.view.ViewGroup getAccessoryContainerView() -> getAccessoryContainerView
+    519:526:android.widget.ImageView getAccessoryImageView() -> getAccessoryImageView
+    515:515:android.view.ViewGroup$LayoutParams getAccessoryLayoutParams() -> getAccessoryLayoutParams
+    457:457:int getAccessoryType() -> getAccessoryType
+    253:253:java.lang.CharSequence getDetailText() -> getDetailText
+    534:534:android.widget.TextView getDetailTextView() -> getDetailTextView
+    267:267:int getOrientation() -> getOrientation
+    538:538:android.widget.CheckBox getSwitch() -> getSwitch
+    205:205:java.lang.CharSequence getText() -> getText
+    530:530:android.widget.TextView getTextView() -> getTextView
+    159:178:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    466:512:void setAccessoryType(int) -> setAccessoryType
+    258:264:void setDetailText(java.lang.CharSequence) -> setDetailText
+    557:562:void setDisableSwitchSelf(boolean) -> setDisableSwitchSelf
+    189:195:void setImageDrawable(android.graphics.drawable.Drawable) -> setImageDrawable
+    271:276:void setOrientation(int) -> setOrientation
+    565:598:void setSkinConfig(com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView$SkinConfig) -> setSkinConfig
+    209:215:void setText(java.lang.CharSequence) -> setText
+    198:202:void setTipPosition(int) -> setTipPosition
+    182:186:void updateImageViewLp(com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView$LayoutParamConfig) -> updateImageViewLp
+    279:367:void updateLayoutParams() -> updateLayoutParams
+    415:431:void updateTipLeftHorRelatedLayoutParam(android.view.View,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> updateTipLeftHorRelatedLayoutParam
+    373:388:void updateTipLeftVerRelatedLayoutParam(android.view.View,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> updateTipLeftVerRelatedLayoutParam
+    437:454:void updateTipRightHorRelatedLayoutParam(android.view.View,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> updateTipRightHorRelatedLayoutParam
+    394:409:void updateTipRightVerRelatedLayoutParam(android.view.View,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams,androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> updateTipRightVerRelatedLayoutParam
+com.qmuiteam.qmui.widget.grouplist.QMUIGroupListSectionHeaderFooterView -> com.qmuiteam.qmui.widget.grouplist.QMUIGroupListSectionHeaderFooterView:
+    42:43:void <init>(android.content.Context) -> <init>
+    47:48:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    51:53:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    56:58:void <init>(android.content.Context,java.lang.CharSequence) -> <init>
+    61:69:void <init>(android.content.Context,java.lang.CharSequence,boolean) -> <init>
+    88:88:android.widget.TextView getTextView() -> getTextView
+    72:76:void init(android.content.Context) -> init
+    79:85:void setText(java.lang.CharSequence) -> setText
+    92:93:void setTextGravity(int) -> setTextGravity
+com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView -> com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:60:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    63:66:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    49:49:void access$200(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView,com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section) -> access$200
+    117:118:void addSection(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section) -> addSection
+    83:90:com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView createItemView(android.graphics.drawable.Drawable,java.lang.CharSequence,java.lang.String,int,int,int) -> createItemView
+    95:100:com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView createItemView(android.graphics.drawable.Drawable,java.lang.CharSequence,java.lang.String,int,int) -> createItemView
+    105:105:com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView createItemView(java.lang.CharSequence) -> createItemView
+    79:79:int getSectionCount() -> getSectionCount
+    74:74:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section newSection(android.content.Context) -> newSection
+com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section -> com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section:
+    151:167:void <init>(android.content.Context) -> <init>
+    145:145:int access$000(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section) -> access$000
+    145:145:int access$100(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section) -> access$100
+    177:177:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section addItemView(com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView,android.view.View$OnClickListener) -> addItemView
+    189:198:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section addItemView(com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView,android.view.View$OnClickListener,android.view.View$OnLongClickListener) -> addItemView
+    278:339:void addTo(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView) -> addTo
+    366:366:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListSectionHeaderFooterView createSectionFooter(java.lang.CharSequence) -> createSectionFooter
+    359:359:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListSectionHeaderFooterView createSectionHeader(java.lang.CharSequence) -> createSectionHeader
+    217:218:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section setDescription(java.lang.CharSequence) -> setDescription
+    232:234:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section setLeftIconSize(int,int) -> setLeftIconSize
+    207:208:com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section setTitle(java.lang.CharSequence) -> setTitle
+com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section$1 -> com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section$1:
+    291:291:void <init>(com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView$Section) -> <init>
+    294:296:androidx.constraintlayout.widget.ConstraintLayout$LayoutParams onConfig(androidx.constraintlayout.widget.ConstraintLayout$LayoutParams) -> onConfig
+com.qmuiteam.qmui.widget.popup.QMUIQuickAction$DefaultItemView -> com.qmuiteam.qmui.widget.popup.QMUIQuickAction$DefaultItemView:
+    444:445:void <init>(android.content.Context) -> <init>
+    448:482:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.qmuiteam.qmui.widget.popup.QMUIQuickAction$ItemView -> com.qmuiteam.qmui.widget.popup.QMUIQuickAction$ItemView:
+    429:430:void <init>(android.content.Context) -> <init>
+    433:434:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+com.qmuiteam.qmui.widget.pullLayout.QMUIAlwaysFollowOffsetCalculator -> com.qmuiteam.qmui.widget.pullLayout.QMUIAlwaysFollowOffsetCalculator:
+    19:19:void <init>() -> <init>
+    23:23:int calculateOffset(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction,int) -> calculateOffset
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout:
+    93:94:void <init>(android.content.Context) -> <init>
+    97:98:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    74:108:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    46:46:java.lang.Runnable access$1002(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout,java.lang.Runnable) -> access$1002
+    46:46:void access$1100(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout,boolean) -> access$1100
+    46:46:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$StopTargetViewFlingImpl access$900(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout) -> access$900
+    796:816:int checkEdgeBottomScrollDown(int,int[],int) -> checkEdgeBottomScrollDown
+    820:839:int checkEdgeBottomScrollUp(int,int[],int) -> checkEdgeBottomScrollUp
+    866:886:int checkEdgeLeftScrollLeft(int,int[],int) -> checkEdgeLeftScrollLeft
+    843:862:int checkEdgeLeftScrollRight(int,int[],int) -> checkEdgeLeftScrollRight
+    914:933:int checkEdgeRightScrollLeft(int,int[],int) -> checkEdgeRightScrollLeft
+    890:910:int checkEdgeRightScrollRight(int,int[],int) -> checkEdgeRightScrollRight
+    749:768:int checkEdgeTopScrollDown(int,int[],int) -> checkEdgeTopScrollDown
+    772:792:int checkEdgeTopScrollUp(int,int[],int) -> checkEdgeTopScrollUp
+    953:953:boolean checkLayoutParams(android.view.ViewGroup$LayoutParams) -> checkLayoutParams
+    546:675:void checkScrollToTargetOffsetOrInitOffset(boolean) -> checkScrollToTargetOffsetOrInitOffset
+    685:702:void checkStopTargetFling(android.view.View,int,int,int) -> checkStopTargetFling
+    147:194:void computeScroll() -> computeScroll
+    45:45:android.view.ViewGroup$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    948:948:android.widget.FrameLayout$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+    45:45:android.view.ViewGroup$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    45:45:android.view.ViewGroup$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    938:938:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.view.ViewGroup$LayoutParams) -> generateLayoutParams
+    943:943:android.widget.FrameLayout$LayoutParams generateLayoutParams(android.util.AttributeSet) -> generateLayoutParams
+    271:280:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction getPullAction(int) -> getPullAction
+    216:218:void innerSetTargetView(android.view.View) -> innerSetTargetView
+    266:266:boolean isEdgeEnabled(int) -> isEdgeEnabled
+    493:503:void onActionTriggered(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> onActionTriggered
+    112:143:void onFinishInflate() -> onFinishInflate
+    285:319:void onLayout(boolean,int,int,int,int) -> onLayout
+    405:475:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    354:368:void onNestedPreScroll(android.view.View,int,int,int[],int) -> onNestedPreScroll
+    372:373:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    378:391:void onNestedScroll(android.view.View,int,int,int,int,int,int[]) -> onNestedScroll
+    395:396:void onNestedScroll(android.view.View,int,int,int,int,int) -> onNestedScroll
+    400:401:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    338:344:void onNestedScrollAccepted(android.view.View,android.view.View,int,int) -> onNestedScrollAccepted
+    348:349:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    327:328:boolean onStartNestedScroll(android.view.View,android.view.View,int,int) -> onStartNestedScroll
+    333:333:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    480:486:void onStopNestedScroll(android.view.View,int) -> onStopNestedScroll
+    746:746:void onTargetViewLeftAndRightOffsetChanged(int) -> onTargetViewLeftAndRightOffsetChanged
+    742:742:void onTargetViewTopAndBottomOffsetChanged(int) -> onTargetViewTopAndBottomOffsetChanged
+    678:682:void removeStopTargetFlingRunnable() -> removeStopTargetFlingRunnable
+    489:489:int scrollDuration(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction,int) -> scrollDuration
+    258:259:void setActionListener(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$ActionListener) -> setActionListener
+    221:233:void setActionView(android.view.View,com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$LayoutParams) -> setActionView
+    236:255:void setActionView(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder) -> setActionView
+    262:263:void setEnabledEdges(int) -> setEnabledEdges
+    705:720:void setHorOffsetToTargetOffsetHelper(int) -> setHorOffsetToTargetOffsetHelper
+    201:202:void setMinScrollDuration(int) -> setMinScrollDuration
+    322:323:void setNestedPreFlingVelocityScaleDown(float) -> setNestedPreFlingVelocityScaleDown
+    197:198:void setStopTargetViewFlingImpl(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$StopTargetViewFlingImpl) -> setStopTargetViewFlingImpl
+    205:213:void setTargetView(android.view.View) -> setTargetView
+    723:738:void setVerOffsetToTargetOffsetHelper(int) -> setVerOffsetToTargetOffsetHelper
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$1 -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$1:
+    692:692:void <init>(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout,android.view.View) -> <init>
+    695:698:void run() -> run
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$DefaultStopTargetViewFlingImpl -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$DefaultStopTargetViewFlingImpl:
+    1248:1250:void <init>() -> <init>
+    1242:1245:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$DefaultStopTargetViewFlingImpl getInstance() -> getInstance
+    1254:1257:void stopFling(android.view.View) -> stopFling
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$LayoutParams -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$LayoutParams:
+    957:1002:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    957:1006:void <init>(int,int) -> <init>
+    957:1010:void <init>(android.view.ViewGroup$LayoutParams) -> <init>
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction:
+    1033:1062:void <init>(android.view.View,int,boolean,float,int,int,float,boolean,float,boolean,boolean,com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$ActionViewOffsetCalculator) -> <init>
+    1017:1017:boolean access$1200(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$1200
+    1017:1017:boolean access$1300(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$1300
+    1017:1017:android.view.View access$200(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$200
+    1017:1017:com.qmuiteam.qmui.util.QMUIViewOffsetHelper access$300(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$300
+    1017:1017:float access$400(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$400
+    1017:1017:boolean access$500(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$500
+    1017:1017:boolean access$502(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction,boolean) -> access$502
+    1017:1017:boolean access$700(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$700
+    1017:1017:boolean access$800(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction) -> access$800
+    1072:1072:int getActionInitOffset() -> getActionInitOffset
+    1065:1068:int getActionPullSize() -> getActionPullSize
+    1103:1103:float getFlingRate(int) -> getFlingRate
+    1087:1087:float getPullRate() -> getPullRate
+    1076:1079:int getTargetTriggerOffset() -> getTargetTriggerOffset
+    1107:1107:boolean isCanOverPull() -> isCanOverPull
+    1127:1129:void onTargetMoved(int) -> onTargetMoved
+    1115:1124:void updateOffset(int) -> updateOffset
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder:
+    1135:1151:void <init>(android.view.View,int) -> <init>
+    1132:1132:android.view.View access$000(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder) -> access$000
+    1132:1132:int access$100(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder) -> access$100
+    1194:1195:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder actionInitOffset(int) -> actionInitOffset
+    1205:1208:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction build() -> build
+    1169:1170:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder canOverPull(boolean) -> canOverPull
+    1179:1180:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder needReceiveFlingFromTargetView(boolean) -> needReceiveFlingFromTargetView
+    1184:1185:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder pullRate(float) -> pullRate
+    1174:1175:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder receivedFlingFraction(float) -> receivedFlingFraction
+    1189:1190:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder scrollSpeedPerPixel(float) -> scrollSpeedPerPixel
+    1159:1160:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder scrollToTriggerOffsetAfterTouchUp(boolean) -> scrollToTriggerOffsetAfterTouchUp
+    1164:1165:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder targetTriggerOffset(int) -> targetTriggerOffset
+    1154:1155:com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullActionBuilder triggerUntilScrollToTriggerOffset(boolean) -> triggerUntilScrollToTriggerOffset
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullLoadMoreView -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullLoadMoreView:
+    55:56:void <init>(android.content.Context) -> <init>
+    59:61:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    45:157:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    187:192:void onActionTriggered() -> onActionTriggered
+    161:162:void onMeasure(int,int) -> onMeasure
+    166:183:void onPull(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction,int) -> onPull
+com.qmuiteam.qmui.widget.pullLayout.QMUIPullRefreshView -> com.qmuiteam.qmui.widget.pullLayout.QMUIPullRefreshView:
+    49:51:void <clinit>() -> <clinit>
+    54:55:void <init>(android.content.Context) -> <init>
+    58:68:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    145:145:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    77:78:void onActionTriggered() -> onActionTriggered
+    87:89:void onDetachedFromWindow() -> onDetachedFromWindow
+    72:73:void onMeasure(int,int) -> onMeasure
+    93:102:void onPull(com.qmuiteam.qmui.widget.pullLayout.QMUIPullLayout$PullAction,int) -> onPull
+    140:141:void setColorSchemeColors(int[]) -> setColorSchemeColors
+    131:137:void setColorSchemeResources(int[]) -> setColorSchemeResources
+    105:120:void setSize(int) -> setSize
+com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIDefaultRefreshOffsetCalculator -> com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIDefaultRefreshOffsetCalculator:
+    27:27:void <init>() -> <init>
+    32:40:int calculateRefreshOffset(int,int,int,int,int,int) -> calculateRefreshOffset
+com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout -> com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout:
+    144:145:void <init>(android.content.Context) -> <init>
+    148:149:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    72:192:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    64:64:android.view.View access$000(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout) -> access$000
+    64:64:int access$102(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout,int) -> access$102
+    64:64:int access$200(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout) -> access$200
+    64:64:int access$300(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout,int,boolean) -> access$300
+    921:925:void acquireVelocityTracker(android.view.MotionEvent) -> acquireVelocityTracker
+    262:274:void addRefreshView() -> addRefreshView
+    913:917:int calculateTargetOffset(int,int,int,boolean) -> calculateTargetOffset
+    779:782:boolean canChildScrollUp() -> canChildScrollUp
+    979:1008:void computeScroll() -> computeScroll
+    258:258:android.view.View createRefreshView() -> createRefreshView
+    195:218:boolean defaultCanScrollUp(android.view.View) -> defaultCanScrollUp
+    1011:1023:void deliverVelocity() -> deliverVelocity
+    1033:1055:boolean dispatchTouchEvent(android.view.MotionEvent) -> dispatchTouchEvent
+    549:564:void ensureTargetView() -> ensureTargetView
+    579:649:void finishPull(int) -> finishPull
+    285:295:int getChildDrawingOrder(int,int) -> getChildDrawingOrder
+    826:826:int getNestedScrollAxes() -> getNestedScrollAxes
+    940:940:int getRefreshEndOffset() -> getRefreshEndOffset
+    936:936:int getRefreshInitOffset() -> getRefreshInitOffset
+    241:241:float getScrollerFriction() -> getScrollerFriction
+    944:944:int getTargetInitOffset() -> getTargetInitOffset
+    948:948:int getTargetRefreshOffset() -> getTargetRefreshOffset
+    957:957:android.view.View getTargetView() -> getTargetView
+    970:970:boolean hasFlag(int) -> hasFlag
+    1029:1029:void info(java.lang.String) -> info
+    756:756:boolean isYDrag(float,float) -> isYDrag
+    870:871:int moveTargetView(float) -> moveTargetView
+    875:875:int moveTargetViewTo(int) -> moveTargetViewTo
+    879:909:int moveTargetViewTo(int,boolean) -> moveTargetViewTo
+    765:767:void onDetachedFromWindow() -> onDetachedFromWindow
+    576:576:void onFinishPull(int,int,int,int,int,int,int) -> onFinishPull
+    396:443:boolean onInterceptTouchEvent(android.view.MotionEvent) -> onInterceptTouchEvent
+    371:392:void onLayout(boolean,int,int,int,int) -> onLayout
+    330:367:void onMeasure(int,int) -> onMeasure
+    966:966:void onMoveRefreshView(int) -> onMoveRefreshView
+    962:962:void onMoveTargetView(int) -> onMoveTargetView
+    861:866:boolean onNestedFling(android.view.View,float,float,boolean) -> onNestedFling
+    845:855:boolean onNestedPreFling(android.view.View,float,float) -> onNestedPreFling
+    802:813:void onNestedPreScroll(android.view.View,int,int,int[]) -> onNestedPreScroll
+    817:822:void onNestedScroll(android.view.View,int,int,int,int) -> onNestedScroll
+    793:798:void onNestedScrollAccepted(android.view.View,android.view.View,int) -> onNestedScrollAccepted
+    652:660:void onRefresh() -> onRefresh
+    726:734:void onSecondaryPointerUp(android.view.MotionEvent) -> onSecondaryPointerUp
+    787:788:boolean onStartNestedScroll(android.view.View,android.view.View,int) -> onStartNestedScroll
+    831:841:void onStopNestedScroll(android.view.View) -> onStopNestedScroll
+    571:571:void onSureTargetView(android.view.View) -> onSureTargetView
+    448:545:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    304:305:void openSafeDisallowInterceptTouchEvent() -> openSafeDisallowInterceptTouchEvent
+    928:933:void releaseVelocityTracker() -> releaseVelocityTracker
+    974:975:void removeFlag(int) -> removeFlag
+    310:325:void requestDisallowInterceptTouchEvent(boolean) -> requestDisallowInterceptTouchEvent
+    737:742:void reset() -> reset
+    245:246:void setAutoScrollToRefreshMinOffset(int) -> setAutoScrollToRefreshMinOffset
+    237:238:void setChildScrollUpCallback(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$OnChildScrollUpCallback) -> setChildScrollUpCallback
+    227:228:void setDisableNestScrollImpl(boolean) -> setDisableNestScrollImpl
+    232:234:void setDragRate(float) -> setDragRate
+    710:711:void setEnableOverPull(boolean) -> setEnableOverPull
+    771:776:void setEnabled(boolean) -> setEnabled
+    223:224:void setOnPullListener(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$OnPullListener) -> setOnPullListener
+    280:281:void setRefreshOffsetCalculator(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$RefreshOffsetCalculator) -> setRefreshOffsetCalculator
+    952:954:void setTargetRefreshOffset(int) -> setTargetRefreshOffset
+    714:722:void setTargetViewToTop(android.view.View) -> setTargetViewToTop
+    675:676:void setToRefreshDirectly(long) -> setToRefreshDirectly
+    679:706:void setToRefreshDirectly(long,boolean) -> setToRefreshDirectly
+    745:753:void startDragging(float,float) -> startDragging
+com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$1 -> com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$1:
+    680:680:void <init>(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout,boolean) -> <init>
+    683:691:void run() -> run
+com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$2 -> com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$2:
+    699:699:void <init>(com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout,long,boolean) -> <init>
+    702:703:void run() -> run
+com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$RefreshView -> com.qmuiteam.qmui.widget.pullRefreshLayout.QMUIPullRefreshLayout$RefreshView:
+    1111:1113:void <clinit>() -> <clinit>
+    1116:1126:void <init>(android.content.Context) -> <init>
+    1171:1172:void doRefresh() -> doRefresh
+    1189:1189:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    1130:1131:void onMeasure(int,int) -> onMeasure
+    1135:1146:void onPull(int,int,int) -> onPull
+    1184:1185:void setColorSchemeColors(int[]) -> setColorSchemeColors
+    1175:1181:void setColorSchemeResources(int[]) -> setColorSchemeResources
+    1149:1164:void setSize(int) -> setSize
+    1167:1168:void stop() -> stop
+com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton -> com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton:
+    59:63:void <clinit>() -> <clinit>
+    67:69:void <init>(android.content.Context) -> <init>
+    72:74:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    77:79:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    111:111:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    102:102:int getStrokeWidth() -> getStrokeWidth
+    82:86:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    90:91:void setBackgroundColor(int) -> setBackgroundColor
+    94:95:void setBgData(android.content.res.ColorStateList) -> setBgData
+    106:107:void setStrokeColors(android.content.res.ColorStateList) -> setStrokeColors
+com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable -> com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable:
+    39:46:void <init>() -> <init>
+    113:144:com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable fromAttributeSet(android.content.Context,android.util.AttributeSet,int) -> fromAttributeSet
+    66:66:int getStrokeWidth() -> getStrokeWidth
+    98:100:boolean isStateful() -> isStateful
+    105:110:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    82:93:boolean onStateChange(int[]) -> onStateChange
+    53:54:void setBgData(android.content.res.ColorStateList) -> setBgData
+    77:78:void setIsRadiusAdjustBounds(boolean) -> setIsRadiusAdjustBounds
+    70:71:void setStrokeColors(android.content.res.ColorStateList) -> setStrokeColors
+    60:63:void setStrokeData(int,android.content.res.ColorStateList) -> setStrokeData
+com.qmuiteam.qmui.widget.roundwidget.QMUIRoundFrameLayout -> com.qmuiteam.qmui.widget.roundwidget.QMUIRoundFrameLayout:
+    31:33:void <init>(android.content.Context) -> <init>
+    36:38:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    41:43:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    46:48:void init(android.content.Context,android.util.AttributeSet,int) -> init
+com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout -> com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout:
+    32:34:void <init>(android.content.Context) -> <init>
+    37:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:44:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    47:49:void init(android.content.Context,android.util.AttributeSet,int) -> init
+com.qmuiteam.qmui.widget.roundwidget.QMUIRoundRelativeLayout -> com.qmuiteam.qmui.widget.roundwidget.QMUIRoundRelativeLayout:
+    32:34:void <init>(android.content.Context) -> <init>
+    37:39:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:44:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    47:49:void init(android.content.Context,android.util.AttributeSet,int) -> init
+com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter -> com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter:
+    29:30:void <init>() -> <init>
+    45:45:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder onCreateCustomItemViewHolder(android.view.ViewGroup,int) -> onCreateCustomItemViewHolder
+    39:39:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder onCreateSectionLoadingViewHolder(android.view.ViewGroup) -> onCreateSectionLoadingViewHolder
+com.qmuiteam.qmui.widget.section.QMUISection -> com.qmuiteam.qmui.widget.section.QMUISection:
+    73:73:com.qmuiteam.qmui.widget.section.QMUISection$Model getHeader() -> getHeader
+    129:132:com.qmuiteam.qmui.widget.section.QMUISection$Model getItemAt(int) -> getItemAt
+    184:184:boolean isCustomItemIndex(int) -> isCustomItemIndex
+    77:77:boolean isFold() -> isFold
+com.qmuiteam.qmui.widget.section.QMUISectionDiffCallback -> com.qmuiteam.qmui.widget.section.QMUISectionDiffCallback:
+    225:267:boolean areContentsTheSame(int,int) -> areContentsTheSame
+    174:174:boolean areCustomContentsTheSame(com.qmuiteam.qmui.widget.section.QMUISection,int,com.qmuiteam.qmui.widget.section.QMUISection,int) -> areCustomContentsTheSame
+    189:220:boolean areItemsTheSame(int,int) -> areItemsTheSame
+    184:184:int getNewListSize() -> getNewListSize
+    179:179:int getOldListSize() -> getOldListSize
+com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter -> com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter:
+    59:60:void <init>() -> <init>
+    45:64:void <init>(boolean) -> <init>
+    36:36:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$Callback access$000(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter) -> access$000
+    730:730:int getCustomItemViewType(int,int) -> getCustomItemViewType
+    597:597:int getItemCount() -> getItemCount
+    216:219:int getItemIndex(int) -> getItemIndex
+    686:700:int getItemViewType(int) -> getItemViewType
+    582:588:int getRelativeStickyPosition(int) -> getRelativeStickyPosition
+    231:238:com.qmuiteam.qmui.widget.section.QMUISection getSection(int) -> getSection
+    681:681:void onBindCustomItem(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int,com.qmuiteam.qmui.widget.section.QMUISection,int) -> onBindCustomItem
+    669:669:void onBindSectionHeader(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int,com.qmuiteam.qmui.widget.section.QMUISection) -> onBindSectionHeader
+    673:673:void onBindSectionItem(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int,com.qmuiteam.qmui.widget.section.QMUISection,int) -> onBindSectionItem
+    677:677:void onBindSectionLoadingItem(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int,com.qmuiteam.qmui.widget.section.QMUISection,boolean) -> onBindSectionLoadingItem
+    36:36:void onBindViewHolder(androidx.recyclerview.widget.RecyclerView$ViewHolder,int) -> onBindViewHolder
+    616:652:void onBindViewHolder(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int) -> onBindViewHolder
+    36:36:androidx.recyclerview.widget.RecyclerView$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    603:610:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder onCreateViewHolder(android.view.ViewGroup,int) -> onCreateViewHolder
+    36:36:void onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView$ViewHolder) -> onViewAttachedToWindow
+    706:727:void onViewAttachedToWindow(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder) -> onViewAttachedToWindow
+    207:208:void setViewCallback(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewCallback) -> setViewCallback
+com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$1 -> com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$1:
+    633:633:void <init>(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter,com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int) -> <init>
+    636:640:void onClick(android.view.View) -> onClick
+com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$2 -> com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$2:
+    642:642:void <init>(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter,com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int) -> <init>
+    645:649:boolean onLongClick(android.view.View) -> onLongClick
+com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder -> com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder:
+    763:769:void <init>(android.view.View) -> <init>
+com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration -> com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration:
+    39:97:void <init>(android.view.ViewGroup,com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration$Callback) -> <init>
+    34:34:int access$000(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration) -> access$000
+    34:34:int access$002(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration,int) -> access$002
+    34:34:com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration$Callback access$100(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration) -> access$100
+    34:34:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder access$200(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration) -> access$200
+    34:34:java.lang.ref.WeakReference access$300(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration) -> access$300
+    34:34:void access$400(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration,boolean) -> access$400
+    196:199:void bindStickyViewHolder(android.view.ViewGroup,com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int) -> bindStickyViewHolder
+    190:192:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder createStickyViewHolder(androidx.recyclerview.widget.RecyclerView,int,int) -> createStickyViewHolder
+    109:109:int getStickyHeaderViewPosition() -> getStickyHeaderViewPosition
+    185:185:int getTargetTop() -> getTargetTop
+    117:182:void onDrawOver(android.graphics.Canvas,androidx.recyclerview.widget.RecyclerView,androidx.recyclerview.widget.RecyclerView$State) -> onDrawOver
+    100:106:void setHeaderVisibility(boolean) -> setHeaderVisibility
+com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration$1 -> com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration$1:
+    47:47:void <init>(com.qmuiteam.qmui.widget.section.QMUIStickySectionItemDecoration) -> <init>
+    50:53:void onChanged() -> onChanged
+    77:85:void onItemRangeChanged(int,int) -> onItemRangeChanged
+    57:62:void onItemRangeInserted(int,int) -> onItemRangeInserted
+    66:72:void onItemRangeMoved(int,int,int) -> onItemRangeMoved
+    89:95:void onItemRangeRemoved(int,int) -> onItemRangeRemoved
+com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout -> com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout:
+    52:53:void <init>(android.content.Context) -> <init>
+    56:57:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    42:77:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    37:37:int access$000(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> access$000
+    37:37:int access$002(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout,int) -> access$002
+    37:37:java.lang.Runnable access$100(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> access$100
+    37:37:java.lang.Runnable access$102(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout,java.lang.Runnable) -> access$102
+    37:37:androidx.recyclerview.widget.RecyclerView access$200(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> access$200
+    275:286:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    104:104:androidx.recyclerview.widget.RecyclerView getRecyclerView() -> getRecyclerView
+    117:120:int getStickyHeaderPosition() -> getStickyHeaderPosition
+    109:113:android.view.View getStickySectionView() -> getStickySectionView
+    100:100:com.qmuiteam.qmui.layout.QMUIFrameLayout getStickySectionWrapView() -> getStickySectionWrapView
+    290:294:void onDescendantInvalidated(android.view.View,android.view.View) -> onDescendantInvalidated
+    215:222:void onLayout(boolean,int,int,int,int) -> onLayout
+    144:145:void setAdapter(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter) -> setAdapter
+    162:211:void setAdapter(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter,boolean) -> setAdapter
+    129:130:void setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager) -> setLayoutManager
+com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout$1 -> com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout$1:
+    67:67:void <init>(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout) -> <init>
+    70:75:void onLayoutChange(android.view.View,int,int,int,int,int,int,int,int) -> onLayoutChange
+com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout$2 -> com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout$2:
+    163:163:void <init>(com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout,com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter) -> <init>
+    181:182:void bindViewHolder(com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder,int) -> bindViewHolder
+    176:176:com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter$ViewHolder createViewHolder(android.view.ViewGroup,int) -> createViewHolder
+    186:186:int getItemViewType(int) -> getItemViewType
+    166:166:int getRelativeStickyItemPosition(int) -> getRelativeStickyItemPosition
+    201:202:void invalidate() -> invalidate
+    171:171:boolean isHeaderItem(int) -> isHeaderItem
+    197:197:void onHeaderVisibilityChanged(boolean) -> onHeaderVisibilityChanged
+    191:192:void registerAdapterDataObserver(androidx.recyclerview.widget.RecyclerView$AdapterDataObserver) -> registerAdapterDataObserver
+com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment -> com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment:
+    144:148:void <clinit>() -> <clinit>
+    151:152:void <init>(android.content.Context) -> <init>
+    155:156:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    111:166:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    101:101:void access$000(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,com.qmuiteam.qmui.widget.tab.QMUITab,com.qmuiteam.qmui.widget.tab.QMUITab,float) -> access$000
+    101:101:void access$100(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,int) -> access$100
+    101:101:void access$200(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,int) -> access$200
+    101:101:void access$300(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,com.qmuiteam.qmui.widget.tab.QMUITab,boolean) -> access$300
+    101:101:com.qmuiteam.qmui.widget.tab.QMUITabAdapter access$400(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment) -> access$400
+    101:101:int access$500(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment) -> access$500
+    101:101:int access$600(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment) -> access$600
+    101:101:com.qmuiteam.qmui.widget.tab.QMUITabIndicator access$700(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment) -> access$700
+    101:101:boolean access$800(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment) -> access$800
+    306:309:void addOnTabSelectedListener(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$OnTabSelectedListener) -> addOnTabSelectedListener
+    290:291:com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment addTab(com.qmuiteam.qmui.widget.tab.QMUITab) -> addTab
+    223:223:com.qmuiteam.qmui.widget.tab.QMUITabAdapter createTabAdapter(android.view.ViewGroup) -> createTabAdapter
+    230:233:com.qmuiteam.qmui.widget.tab.QMUITabIndicator createTabIndicatorFromXmlInfo(boolean,int,boolean,boolean) -> createTabIndicatorFromXmlInfo
+    386:389:void dispatchTabDoubleTap(int) -> dispatchTabDoubleTap
+    380:383:void dispatchTabReselected(int) -> dispatchTabReselected
+    368:371:void dispatchTabSelected(int) -> dispatchTabSelected
+    374:377:void dispatchTabUnselected(int) -> dispatchTabUnselected
+    1180:1180:androidx.collection.SimpleArrayMap getDefaultSkinAttrs() -> getDefaultSkinAttrs
+    1067:1067:int getHideRadiusSide() -> getHideRadiusSide
+    320:320:int getMode() -> getMode
+    1052:1052:int getRadius() -> getRadius
+    672:672:int getSelectedIndex() -> getSelectedIndex
+    1133:1133:float getShadowAlpha() -> getShadowAlpha
+    1143:1143:int getShadowColor() -> getShadowColor
+    1123:1123:int getShadowElevation() -> getShadowElevation
+    676:676:int getTabCount() -> getTabCount
+    1185:1190:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme,androidx.collection.SimpleArrayMap) -> handle
+    170:208:void init(android.content.Context,android.util.AttributeSet,int) -> init
+    563:570:void layoutIndicator(com.qmuiteam.qmui.widget.tab.QMUITab,boolean) -> layoutIndicator
+    573:586:void layoutIndicatorInTransition(com.qmuiteam.qmui.widget.tab.QMUITab,com.qmuiteam.qmui.widget.tab.QMUITab,float) -> layoutIndicatorInTransition
+    352:352:boolean needPreventEvent() -> needPreventEvent
+    299:303:void notifyDataChanged() -> notifyDataChanged
+    335:349:void onClickTab(com.qmuiteam.qmui.widget.tab.QMUITabView,int) -> onClickTab
+    357:364:void onDoubleClick(int) -> onDoubleClick
+    1173:1176:void onDraw(android.graphics.Canvas) -> onDraw
+    784:796:void onLayout(boolean,int,int,int,int) -> onLayout
+    655:668:void onMeasure(int,int) -> onMeasure
+    312:313:void removeOnTabSelectedListener(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$OnTabSelectedListener) -> removeOnTabSelectedListener
+    263:269:void reset() -> reset
+    275:280:void resetSelect() -> resetSelect
+    396:397:void selectTab(int) -> selectTab
+    400:560:void selectTab(int,boolean,boolean) -> selectTab
+    1072:1074:void setBorderColor(int) -> setBorderColor
+    1078:1080:void setBorderWidth(int) -> setBorderWidth
+    1009:1011:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    215:216:void setDefaultTabIconPosition(int) -> setDefaultTabIconPosition
+    252:253:void setHideIndicatorWhenTabCountLessTwo(boolean) -> setHideIndicatorWhenTabCountLessTwo
+    1062:1063:void setHideRadiusSide(int) -> setHideRadiusSide
+    247:249:void setIndicator(com.qmuiteam.qmui.widget.tab.QMUITabIndicator) -> setIndicator
+    256:257:void setItemSpaceInScrollMode(int) -> setItemSpaceInScrollMode
+    1015:1017:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    324:331:void setMode(int) -> setMode
+    649:650:void setOnTabClickListener(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$OnTabClickListener) -> setOnTabClickListener
+    1148:1149:void setOuterNormalColor(int) -> setOuterNormalColor
+    1113:1114:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    1042:1043:void setRadius(int) -> setRadius
+    1021:1023:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    392:393:void setSelectNoAnimation(boolean) -> setSelectNoAnimation
+    1128:1129:void setShadowAlpha(float) -> setShadowAlpha
+    1138:1139:void setShadowColor(int) -> setShadowColor
+    1118:1119:void setShadowElevation(int) -> setShadowElevation
+    1084:1086:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    1003:1005:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    1153:1154:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    589:612:void updateIndicatorPosition(int,float) -> updateIndicatorPosition
+    1158:1159:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    1163:1164:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    1168:1169:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$1 -> com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$1:
+    509:509:void <init>(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,com.qmuiteam.qmui.widget.tab.QMUITabView,com.qmuiteam.qmui.widget.tab.QMUITabView,com.qmuiteam.qmui.widget.tab.QMUITab,com.qmuiteam.qmui.widget.tab.QMUITab) -> <init>
+    512:516:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$2 -> com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$2:
+    518:518:void <init>(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,com.qmuiteam.qmui.widget.tab.QMUITabView,com.qmuiteam.qmui.widget.tab.QMUITabView,int,int,com.qmuiteam.qmui.widget.tab.QMUITab) -> <init>
+    543:550:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    526:539:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+    555:555:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    521:522:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$Container -> com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment$Container:
+    801:805:void <init>(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,android.content.Context) -> <init>
+    943:947:void onDraw(android.graphics.Canvas) -> onDraw
+    889:939:void onLayout(boolean,int,int,int,int) -> onLayout
+    810:885:void onMeasure(int,int) -> onMeasure
+com.qmuiteam.qmui.widget.tab.QMUITab -> com.qmuiteam.qmui.widget.tab.QMUITab:
+    65:93:void <init>(java.lang.CharSequence) -> <init>
+    105:105:int getIconPosition() -> getIconPosition
+    222:222:int getIconTextGap() -> getIconTextGap
+    154:157:int getNormalColor(android.view.View) -> getNormalColor
+    211:214:int getNormalTabIconHeight() -> getNormalTabIconHeight
+    204:207:int getNormalTabIconWidth() -> getNormalTabIconWidth
+    161:164:int getSelectColor(android.view.View) -> getSelectColor
+    218:218:float getSelectedTabIconScale() -> getSelectedTabIconScale
+    192:192:com.qmuiteam.qmui.widget.tab.QMUITabIcon getTabIcon() -> getTabIcon
+    97:97:java.lang.CharSequence getText() -> getText
+    226:226:boolean isAllowIconDrawOutside() -> isAllowIconDrawOutside
+com.qmuiteam.qmui.widget.tab.QMUITabAdapter -> com.qmuiteam.qmui.widget.tab.QMUITabAdapter:
+    27:29:void <init>(com.qmuiteam.qmui.widget.tab.QMUIBasicTabSegment,android.view.ViewGroup) -> <init>
+    23:23:void bind(java.lang.Object,android.view.View,int) -> bind
+    38:45:void bind(com.qmuiteam.qmui.widget.tab.QMUITab,com.qmuiteam.qmui.widget.tab.QMUITabView,int) -> bind
+    23:23:android.view.View createView(android.view.ViewGroup) -> createView
+    33:33:com.qmuiteam.qmui.widget.tab.QMUITabView createView(android.view.ViewGroup) -> createView
+    55:56:void onBindTab(com.qmuiteam.qmui.widget.tab.QMUITab,com.qmuiteam.qmui.widget.tab.QMUITabView,int) -> onBindTab
+    60:62:void onClick(com.qmuiteam.qmui.widget.tab.QMUITabView) -> onClick
+    66:68:void onDoubleClick(com.qmuiteam.qmui.widget.tab.QMUITabView) -> onDoubleClick
+    72:72:void onLongClick(com.qmuiteam.qmui.widget.tab.QMUITabView) -> onLongClick
+    23:23:void onViewRecycled(android.view.View) -> onViewRecycled
+    49:52:void onViewRecycled(com.qmuiteam.qmui.widget.tab.QMUITabView) -> onViewRecycled
+com.qmuiteam.qmui.widget.tab.QMUITabBuilder -> com.qmuiteam.qmui.widget.tab.QMUITabBuilder:
+    37:160:void <init>(android.content.Context) -> <init>
+    351:402:com.qmuiteam.qmui.widget.tab.QMUITab build(android.content.Context) -> build
+    336:337:com.qmuiteam.qmui.widget.tab.QMUITabBuilder setGravity(int) -> setGravity
+    341:342:com.qmuiteam.qmui.widget.tab.QMUITabBuilder setIconPosition(int) -> setIconPosition
+    346:347:com.qmuiteam.qmui.widget.tab.QMUITabBuilder setText(java.lang.CharSequence) -> setText
+    242:244:com.qmuiteam.qmui.widget.tab.QMUITabBuilder setTextSize(int,int) -> setTextSize
+com.qmuiteam.qmui.widget.tab.QMUITabIcon -> com.qmuiteam.qmui.widget.tab.QMUITabIcon:
+    39:62:void <init>(android.graphics.drawable.Drawable,android.graphics.drawable.Drawable,boolean) -> <init>
+    188:192:void draw(android.graphics.Canvas) -> draw
+    148:148:int getIntrinsicHeight() -> getIntrinsicHeight
+    143:143:int getIntrinsicWidth() -> getIntrinsicWidth
+    163:163:int getOpacity() -> getOpacity
+    65:65:boolean hasSelectedIcon() -> hasSelectedIcon
+    204:208:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    196:200:void onBoundsChange(android.graphics.Rect) -> onBoundsChange
+    212:216:void scheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable,long) -> scheduleDrawable
+    154:154:void setAlpha(int) -> setAlpha
+    159:159:void setColorFilter(android.graphics.ColorFilter) -> setColorFilter
+    172:184:void setSelectFraction(float,int) -> setSelectFraction
+    127:139:void src(android.graphics.drawable.Drawable,int,int) -> src
+    91:97:void srcNormal(android.graphics.drawable.Drawable) -> srcNormal
+    100:108:void srcSelected(android.graphics.drawable.Drawable) -> srcSelected
+    69:76:void tint(int,int) -> tint
+    79:81:void tintNormal(int) -> tintNormal
+    84:88:void tintSelected(int) -> tintSelected
+    220:224:void unscheduleDrawable(android.graphics.drawable.Drawable,java.lang.Runnable) -> unscheduleDrawable
+com.qmuiteam.qmui.widget.tab.QMUITabIndicator -> com.qmuiteam.qmui.widget.tab.QMUITabIndicator:
+    70:71:void <init>(int,boolean,boolean) -> <init>
+    44:79:void <init>(int,boolean,boolean,int) -> <init>
+    134:154:void draw(android.view.View,android.graphics.Canvas,int,int) -> draw
+    159:164:void handleSkinChange(com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme,com.qmuiteam.qmui.widget.tab.QMUITab) -> handleSkinChange
+    96:96:boolean isIndicatorWidthFollowContent() -> isIndicatorWidthFollowContent
+    122:131:void updateColor(int) -> updateColor
+    105:115:void updateInfo(int,int,int) -> updateInfo
+    118:119:void updateInfo(int,int,int,float) -> updateInfo
+com.qmuiteam.qmui.widget.tab.QMUITabSegment -> com.qmuiteam.qmui.widget.tab.QMUITabSegment:
+    41:54:void <init>(android.content.Context) -> <init>
+    41:58:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    41:62:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    34:34:void access$000(com.qmuiteam.qmui.widget.tab.QMUITabSegment,int) -> access$000
+    34:34:androidx.viewpager.widget.ViewPager access$100(com.qmuiteam.qmui.widget.tab.QMUITabSegment) -> access$100
+    66:66:boolean needPreventEvent() -> needPreventEvent
+    155:174:void populateFromPagerAdapter(boolean) -> populateFromPagerAdapter
+    178:195:void setPagerAdapter(androidx.viewpager.widget.PagerAdapter,boolean,boolean) -> setPagerAdapter
+    144:151:void setViewPagerScrollState(int) -> setViewPagerScrollState
+    76:77:void setupWithViewPager(androidx.viewpager.widget.ViewPager) -> setupWithViewPager
+    80:81:void setupWithViewPager(androidx.viewpager.widget.ViewPager,boolean) -> setupWithViewPager
+    91:140:void setupWithViewPager(androidx.viewpager.widget.ViewPager,boolean,boolean) -> setupWithViewPager
+com.qmuiteam.qmui.widget.tab.QMUITabSegment$AdapterChangeListener -> com.qmuiteam.qmui.widget.tab.QMUITabSegment$AdapterChangeListener:
+    266:268:void <init>(com.qmuiteam.qmui.widget.tab.QMUITabSegment,boolean) -> <init>
+    273:276:void onAdapterChanged(androidx.viewpager.widget.ViewPager,androidx.viewpager.widget.PagerAdapter,androidx.viewpager.widget.PagerAdapter) -> onAdapterChanged
+    279:280:void setAutoRefresh(boolean) -> setAutoRefresh
+com.qmuiteam.qmui.widget.tab.QMUITabSegment$PagerAdapterObserver -> com.qmuiteam.qmui.widget.tab.QMUITabSegment$PagerAdapterObserver:
+    287:289:void <init>(com.qmuiteam.qmui.widget.tab.QMUITabSegment,boolean) -> <init>
+    293:294:void onChanged() -> onChanged
+    298:299:void onInvalidated() -> onInvalidated
+com.qmuiteam.qmui.widget.tab.QMUITabSegment$TabLayoutOnPageChangeListener -> com.qmuiteam.qmui.widget.tab.QMUITabSegment$TabLayoutOnPageChangeListener:
+    200:202:void <init>(com.qmuiteam.qmui.widget.tab.QMUITabSegment) -> <init>
+    206:211:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    216:220:void onPageScrolled(int,float,int) -> onPageScrolled
+    224:233:void onPageSelected(int) -> onPageSelected
+com.qmuiteam.qmui.widget.tab.QMUITabSegment$ViewPagerOnTabSelectedListener -> com.qmuiteam.qmui.widget.tab.QMUITabSegment$ViewPagerOnTabSelectedListener:
+    239:241:void <init>(androidx.viewpager.widget.ViewPager) -> <init>
+    259:259:void onDoubleTap(int) -> onDoubleTap
+    254:254:void onTabReselected(int) -> onTabReselected
+    245:246:void onTabSelected(int) -> onTabSelected
+    250:250:void onTabUnselected(int) -> onTabUnselected
+com.qmuiteam.qmui.widget.tab.QMUITabSegment2 -> com.qmuiteam.qmui.widget.tab.QMUITabSegment2:
+    38:48:void <init>(android.content.Context) -> <init>
+    38:52:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    38:56:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    31:31:void access$000(com.qmuiteam.qmui.widget.tab.QMUITabSegment2,int) -> access$000
+    60:60:boolean needPreventEvent() -> needPreventEvent
+    100:107:void setViewPagerScrollState(int) -> setViewPagerScrollState
+    70:96:void setupWithViewPager(androidx.viewpager2.widget.ViewPager2) -> setupWithViewPager
+com.qmuiteam.qmui.widget.tab.QMUITabSegment2$TabLayoutOnPageChangeListener -> com.qmuiteam.qmui.widget.tab.QMUITabSegment2$TabLayoutOnPageChangeListener:
+    113:115:void <init>(com.qmuiteam.qmui.widget.tab.QMUITabSegment2) -> <init>
+    119:124:void onPageScrollStateChanged(int) -> onPageScrollStateChanged
+    129:133:void onPageScrolled(int,float,int) -> onPageScrolled
+    137:146:void onPageSelected(int) -> onPageSelected
+com.qmuiteam.qmui.widget.tab.QMUITabSegment2$ViewPagerOnTabSelectedListener -> com.qmuiteam.qmui.widget.tab.QMUITabSegment2$ViewPagerOnTabSelectedListener:
+    152:154:void <init>(androidx.viewpager2.widget.ViewPager2) -> <init>
+    172:172:void onDoubleTap(int) -> onDoubleTap
+    167:167:void onTabReselected(int) -> onTabReselected
+    158:159:void onTabSelected(int) -> onTabSelected
+    163:163:void onTabUnselected(int) -> onTabUnselected
+com.qmuiteam.qmui.widget.tab.QMUITabView -> com.qmuiteam.qmui.widget.tab.QMUITabView:
+    61:125:void <init>(android.content.Context) -> <init>
+    54:54:com.qmuiteam.qmui.widget.tab.QMUITabView$Callback access$000(com.qmuiteam.qmui.widget.tab.QMUITabView) -> access$000
+    142:182:void bind(com.qmuiteam.qmui.widget.tab.QMUITab) -> bind
+    398:422:android.graphics.Point calculateSignCountLayoutPosition() -> calculateSignCountLayoutPosition
+    292:300:com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton createSignCountView(android.content.Context) -> createSignCountView
+    685:687:void draw(android.graphics.Canvas) -> draw
+    277:288:com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton ensureSignCountView(android.content.Context) -> ensureSignCountView
+    260:272:int getContentViewLeft() -> getContentViewLeft
+    244:256:int getContentViewWidth() -> getContentViewWidth
+    186:186:float getSelectFraction() -> getSelectFraction
+    720:724:void handle(com.qmuiteam.qmui.skin.QMUISkinManager,int,android.content.res.Resources$Theme,androidx.collection.SimpleArrayMap) -> handle
+    680:681:void invalidateDrawable(android.graphics.drawable.Drawable) -> invalidateDrawable
+    700:716:void onDrawTab(android.graphics.Canvas) -> onDrawTab
+    691:697:void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) -> onInitializeAccessibilityNodeInfo
+    376:379:void onLayout(boolean,int,int,int,int) -> onLayout
+    382:395:void onLayoutSignCount(int,int) -> onLayoutSignCount
+    426:676:void onLayoutTab(int,int) -> onLayoutTab
+    305:354:void onMeasure(int,int) -> onMeasure
+    357:372:void onMeasureTab(int,int) -> onMeasureTab
+    138:138:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    128:129:void setCallback(com.qmuiteam.qmui.widget.tab.QMUITabView$Callback) -> setCallback
+    132:134:void setPositionInterpolator(android.view.animation.Interpolator) -> setPositionInterpolator
+    190:213:void setSelectFraction(float) -> setSelectFraction
+    216:241:void updateCurrentInfo(float) -> updateCurrentInfo
+    727:773:void updateSkinInfo(com.qmuiteam.qmui.widget.tab.QMUITab) -> updateSkinInfo
+com.qmuiteam.qmui.widget.tab.QMUITabView$1 -> com.qmuiteam.qmui.widget.tab.QMUITabView$1:
+    93:93:void <init>(com.qmuiteam.qmui.widget.tab.QMUITabView) -> <init>
+    97:101:boolean onDoubleTap(android.view.MotionEvent) -> onDoubleTap
+    115:115:boolean onDown(android.view.MotionEvent) -> onDown
+    120:123:void onLongPress(android.view.MotionEvent) -> onLongPress
+    106:110:boolean onSingleTapUp(android.view.MotionEvent) -> onSingleTapUp
+com.qmuiteam.qmui.widget.textview.QMUILinkTextView -> com.qmuiteam.qmui.widget.textview.QMUILinkTextView:
+    63:89:void <clinit>() -> <clinit>
+    92:95:void <init>(android.content.Context) -> <init>
+    65:239:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    60:60:com.qmuiteam.qmui.widget.textview.QMUILinkTextView$OnLinkClickListener access$000(com.qmuiteam.qmui.widget.textview.QMUILinkTextView) -> access$000
+    213:215:void disallowOnSpanClickInterrupt() -> disallowOnSpanClickInterrupt
+    128:128:int getAutoLinkMaskCompat() -> getAutoLinkMaskCompat
+    161:191:boolean onSpanClick(java.lang.String) -> onSpanClick
+    197:209:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    228:236:boolean performLongClick() -> performLongClick
+    218:222:boolean performSpanLongClick(java.lang.String) -> performSpanLongClick
+    132:133:void setAutoLinkMaskCompat(int) -> setAutoLinkMaskCompat
+    145:146:void setLinkColor(android.content.res.ColorStateList) -> setLinkColor
+    120:121:void setOnLinkClickListener(com.qmuiteam.qmui.widget.textview.QMUILinkTextView$OnLinkClickListener) -> setOnLinkClickListener
+    124:125:void setOnLinkLongClickListener(com.qmuiteam.qmui.widget.textview.QMUILinkTextView$OnLinkLongClickListener) -> setOnLinkLongClickListener
+    150:157:void setText(java.lang.CharSequence,android.widget.TextView$BufferType) -> setText
+com.qmuiteam.qmui.widget.textview.QMUILinkTextView$1 -> com.qmuiteam.qmui.widget.textview.QMUILinkTextView$1:
+    239:239:void <init>(com.qmuiteam.qmui.widget.textview.QMUILinkTextView,android.os.Looper) -> <init>
+    242:262:void handleMessage(android.os.Message) -> handleMessage
+com.qmuiteam.qmui.widget.textview.QMUISpanTouchFixTextView -> com.qmuiteam.qmui.widget.textview.QMUISpanTouchFixTextView:
+    78:79:void <init>(android.content.Context) -> <init>
+    82:83:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    69:89:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    400:403:void dispatchDraw(android.graphics.Canvas) -> dispatchDraw
+    247:247:int getHideRadiusSide() -> getHideRadiusSide
+    289:289:int getRadius() -> getRadius
+    360:360:float getShadowAlpha() -> getShadowAlpha
+    370:370:int getShadowColor() -> getShadowColor
+    350:350:int getShadowElevation() -> getShadowElevation
+    252:260:void onMeasure(int,int) -> onMeasure
+    163:164:void onSetPressed(boolean) -> onSetPressed
+    114:125:boolean onTouchEvent(android.view.MotionEvent) -> onTouchEvent
+    139:142:boolean performClick() -> performClick
+    148:151:boolean performLongClick() -> performLongClick
+    299:301:void setBorderColor(int) -> setBorderColor
+    305:307:void setBorderWidth(int) -> setBorderWidth
+    223:225:void setBottomDividerAlpha(int) -> setBottomDividerAlpha
+    241:243:void setHideRadiusSide(int) -> setHideRadiusSide
+    229:231:void setLeftDividerAlpha(int) -> setLeftDividerAlpha
+    106:110:void setMovementMethodCompat(android.text.method.MovementMethod) -> setMovementMethodCompat
+    102:103:void setMovementMethodDefault() -> setMovementMethodDefault
+    92:96:void setNeedForceEventToParent(boolean) -> setNeedForceEventToParent
+    375:376:void setOuterNormalColor(int) -> setOuterNormalColor
+    340:341:void setOutlineExcludePadding(boolean) -> setOutlineExcludePadding
+    156:160:void setPressed(boolean) -> setPressed
+    279:280:void setRadius(int) -> setRadius
+    235:237:void setRightDividerAlpha(int) -> setRightDividerAlpha
+    355:356:void setShadowAlpha(float) -> setShadowAlpha
+    365:366:void setShadowColor(int) -> setShadowColor
+    345:346:void setShadowElevation(int) -> setShadowElevation
+    311:313:void setShowBorderOnlyBeforeL(boolean) -> setShowBorderOnlyBeforeL
+    217:219:void setTopDividerAlpha(int) -> setTopDividerAlpha
+    130:134:void setTouchSpanHit(boolean) -> setTouchSpanHit
+    380:381:void updateBottomSeparatorColor(int) -> updateBottomSeparatorColor
+    385:386:void updateLeftSeparatorColor(int) -> updateLeftSeparatorColor
+    390:391:void updateRightSeparatorColor(int) -> updateRightSeparatorColor
+    395:396:void updateTopSeparatorColor(int) -> updateTopSeparatorColor
+com.qmuiteam.qmui.widget.webview.QMUIWebView -> com.qmuiteam.qmui.widget.webview.QMUIWebView:
+    45:45:void <clinit>() -> <clinit>
+    55:62:void <init>(android.content.Context) -> <init>
+    55:67:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    55:72:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    42:42:boolean access$000(com.qmuiteam.qmui.widget.webview.QMUIWebView) -> access$000
+    42:42:void access$100(com.qmuiteam.qmui.widget.webview.QMUIWebView,android.graphics.Rect) -> access$100
+    106:109:void addCustomOnScrollChangeListener(com.qmuiteam.qmui.widget.webview.QMUIWebView$OnScrollChangeListener) -> addCustomOnScrollChangeListener
+    98:98:void addJavascriptInterface(java.lang.Object,java.lang.String) -> addJavascriptInterface
+    191:196:void destroy() -> destroy
+    137:137:boolean dispatchKeyEvent(android.view.KeyEvent) -> dispatchKeyEvent
+    163:167:void doNotSupportChangeCssEnv() -> doNotSupportChangeCssEnv
+    261:281:java.lang.Object getAwContentsFieldValueInProvider(java.lang.Object) -> getAwContentsFieldValueInProvider
+    186:186:int getExtraInsetBottom(float) -> getExtraInsetBottom
+    178:178:int getExtraInsetLeft(float) -> getExtraInsetLeft
+    182:182:int getExtraInsetRight(float) -> getExtraInsetRight
+    174:174:int getExtraInsetTop(float) -> getExtraInsetTop
+    310:323:java.lang.reflect.Method getSetDisplayCutoutSafeAreaMethodInWebContents(java.lang.Object) -> getSetDisplayCutoutSafeAreaMethodInWebContents
+    286:305:java.lang.Object getWebContentsFieldValueInAwContents(java.lang.Object) -> getWebContentsFieldValueInAwContents
+    75:93:void init() -> init
+    170:170:boolean isNotSupportChangeCssEnv() -> isNotSupportChangeCssEnv
+    255:257:void onAttachedToWindow() -> onAttachedToWindow
+    121:125:void onScrollChanged(int,int,int,int) -> onScrollChanged
+    159:160:void setCallback(com.qmuiteam.qmui.widget.webview.QMUIWebView$Callback) -> setCallback
+    102:103:void setCustomOnScrollChangeListener(com.qmuiteam.qmui.widget.webview.QMUIWebView$OnScrollChangeListener) -> setCustomOnScrollChangeListener
+    141:152:void setNeedDispatchSafeAreaInset(boolean) -> setNeedDispatchSafeAreaInset
+    199:251:void setStyleDisplayCutoutSafeArea(android.graphics.Rect) -> setStyleDisplayCutoutSafeArea
+    129:133:void setWebViewClient(android.webkit.WebViewClient) -> setWebViewClient
+com.qmuiteam.qmui.widget.webview.QMUIWebView$1 -> com.qmuiteam.qmui.widget.webview.QMUIWebView$1:
+    78:78:void <init>(com.qmuiteam.qmui.widget.webview.QMUIWebView) -> <init>
+    81:91:void handleInset(android.view.View,androidx.core.graphics.Insets) -> handleInset
+com.qmuiteam.qmui.widget.webview.QMUIWebViewClient -> com.qmuiteam.qmui.widget.webview.QMUIWebViewClient:
+    30:30:void access$000(com.qmuiteam.qmui.widget.webview.QMUIWebViewClient,android.webkit.WebView) -> access$000
+    96:110:void dispatchFullscreenRequestAction(com.qmuiteam.qmui.widget.webview.QMUIWebView) -> dispatchFullscreenRequestAction
+    113:117:void dispatchFullscreenRequestEvent(android.webkit.WebView) -> dispatchFullscreenRequestEvent
+    73:73:java.lang.String getJsCodeForDisableVideoFullscreenBtn() -> getJsCodeForDisableVideoFullscreenBtn
+    84:84:java.lang.String getJsCodeForFullscreenHtml() -> getJsCodeForFullscreenHtml
+    62:70:void onPageFinished(android.webkit.WebView,java.lang.String) -> onPageFinished
+    55:57:void onPageStarted(android.webkit.WebView,java.lang.String,android.graphics.Bitmap) -> onPageStarted
+    120:130:void runJsCode(android.webkit.WebView,java.lang.String,java.lang.Runnable) -> runJsCode
+com.qmuiteam.qmui.widget.webview.QMUIWebViewClient$1 -> com.qmuiteam.qmui.widget.webview.QMUIWebViewClient$1:
+    104:104:void <init>(com.qmuiteam.qmui.widget.webview.QMUIWebViewClient,com.qmuiteam.qmui.widget.webview.QMUIWebView) -> <init>
+    107:108:void run() -> run
+com.qmuiteam.qmui.widget.webview.QMUIWebViewClient$2 -> com.qmuiteam.qmui.widget.webview.QMUIWebViewClient$2:
+    123:123:void <init>(com.qmuiteam.qmui.widget.webview.QMUIWebViewClient,java.lang.Runnable) -> <init>
+    123:123:void onReceiveValue(java.lang.Object) -> onReceiveValue
+    126:127:void onReceiveValue(java.lang.String) -> onReceiveValue
+com.qmuiteam.qmui.widget.webview.QMUIWebViewContainer -> com.qmuiteam.qmui.widget.webview.QMUIWebViewContainer:
+    37:38:void <init>(android.content.Context) -> <init>
+    41:42:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    61:61:android.widget.FrameLayout$LayoutParams getWebViewLayoutParams() -> getWebViewLayoutParams
+    82:83:void setCustomOnScrollChangeListener(com.qmuiteam.qmui.widget.webview.QMUIWebView$OnScrollChangeListener) -> setCustomOnScrollChangeListener
+    67:70:void setNeedDispatchSafeAreaInset(boolean) -> setNeedDispatchSafeAreaInset
+com.shlb.lbble.Application -> com.shlb.lbble.Application:
+    9:12:void <init>() -> <init>
+    15:18:void onCreate() -> onCreate
+com.shlb.lbble.MainActivity -> com.shlb.lbble.MainActivity:
+    59:289:void <init>() -> <init>
+    59:59:com.shlb.lbble.model.BluetoothLeDeviceStore access$000(com.shlb.lbble.MainActivity) -> access$000
+    59:59:int access$100(com.shlb.lbble.MainActivity) -> access$100
+    59:59:com.blakequ.bluetooth_manager_lib.util.BluetoothUtils access$1000(com.shlb.lbble.MainActivity) -> access$1000
+    59:59:int access$102(com.shlb.lbble.MainActivity,int) -> access$102
+    59:59:void access$1100(com.shlb.lbble.MainActivity) -> access$1100
+    59:59:com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager access$1200(com.shlb.lbble.MainActivity) -> access$1200
+    59:59:com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener access$1300(com.shlb.lbble.MainActivity) -> access$1300
+    59:59:com.shlb.lbble.adapter.DeviceListAdapter access$1400(com.shlb.lbble.MainActivity) -> access$1400
+    59:59:void access$1500(com.shlb.lbble.MainActivity,java.lang.String) -> access$1500
+    59:59:void access$1600(com.shlb.lbble.MainActivity,java.lang.String) -> access$1600
+    59:59:void access$1700(com.shlb.lbble.MainActivity) -> access$1700
+    59:59:void access$200(com.shlb.lbble.MainActivity) -> access$200
+    59:59:void access$300(com.shlb.lbble.MainActivity,java.util.List) -> access$300
+    59:59:boolean access$400(com.shlb.lbble.MainActivity) -> access$400
+    59:59:boolean access$402(com.shlb.lbble.MainActivity,boolean) -> access$402
+    59:59:com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager access$500(com.shlb.lbble.MainActivity) -> access$500
+    59:59:void access$600(com.shlb.lbble.MainActivity,java.lang.String) -> access$600
+    59:59:void access$700(com.shlb.lbble.MainActivity,java.lang.String) -> access$700
+    59:59:com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice access$800(com.shlb.lbble.MainActivity) -> access$800
+    59:59:com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice access$802(com.shlb.lbble.MainActivity,com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> access$802
+    59:59:void access$900(com.shlb.lbble.MainActivity,java.lang.String) -> access$900
+    360:387:boolean checkIsBleState() -> checkIsBleState
+    627:637:boolean checkPermission() -> checkPermission
+    91:93:void contentView() -> contentView
+    241:258:void displayGattServices(java.util.List) -> displayGattServices
+    261:286:java.lang.String getPropertyString(int) -> getPropertyString
+    167:234:void initConn() -> initConn
+    108:108:void initData() -> initData
+    112:112:void initEvent() -> initEvent
+    392:518:void initGroupListView() -> initGroupListView
+    115:164:void initScan() -> initScan
+    592:595:void initTitlebar() -> initTitlebar
+    97:102:void initView() -> initView
+    644:651:void onDestroy() -> onDestroy
+    578:589:void onEventRefresh(com.shlb.lbble.event.UpdateEvent) -> onEventRefresh
+    524:570:void showBluetoothDialog() -> showBluetoothDialog
+    348:357:void startScan() -> startScan
+    332:341:void updateBleInfo() -> updateBleInfo
+com.shlb.lbble.MainActivity$1 -> com.shlb.lbble.MainActivity$1:
+    118:118:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    122:122:void onScanOver() -> onScanOver
+com.shlb.lbble.MainActivity$10 -> com.shlb.lbble.MainActivity$10:
+    292:578:void <clinit>() -> <clinit>
+com.shlb.lbble.MainActivity$2 -> com.shlb.lbble.MainActivity$2:
+    125:125:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    128:129:void onBatchScanResults(java.util.List) -> onBatchScanResults
+    133:137:void onScanFailed(int) -> onScanFailed
+    141:159:void onScanResult(int,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> onScanResult
+com.shlb.lbble.MainActivity$3 -> com.shlb.lbble.MainActivity$3:
+    170:170:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    195:197:void onCharacteristicChanged(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic) -> onCharacteristicChanged
+    174:180:void onCharacteristicRead(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicRead
+    184:191:void onCharacteristicWrite(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicWrite
+    201:216:void onConnectionStateChange(android.bluetooth.BluetoothGatt,int,int) -> onConnectionStateChange
+    220:230:void onServicesDiscovered(android.bluetooth.BluetoothGatt,int) -> onServicesDiscovered
+com.shlb.lbble.MainActivity$3$1 -> com.shlb.lbble.MainActivity$3$1:
+    204:204:void <init>(com.shlb.lbble.MainActivity$3) -> <init>
+    207:207:void run() -> run
+com.shlb.lbble.MainActivity$3$2 -> com.shlb.lbble.MainActivity$3$2:
+    210:210:void <init>(com.shlb.lbble.MainActivity$3) -> <init>
+    213:214:void run() -> run
+com.shlb.lbble.MainActivity$3$3 -> com.shlb.lbble.MainActivity$3$3:
+    222:222:void <init>(com.shlb.lbble.MainActivity$3,android.bluetooth.BluetoothGatt) -> <init>
+    225:226:void run() -> run
+com.shlb.lbble.MainActivity$4 -> com.shlb.lbble.MainActivity$4:
+    289:289:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    292:328:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.MainActivity$4$1 -> com.shlb.lbble.MainActivity$4$1:
+    297:297:void <init>(com.shlb.lbble.MainActivity$4) -> <init>
+    300:303:void run() -> run
+com.shlb.lbble.MainActivity$4$2 -> com.shlb.lbble.MainActivity$4$2:
+    309:309:void <init>(com.shlb.lbble.MainActivity$4) -> <init>
+    312:313:void run() -> run
+com.shlb.lbble.MainActivity$4$3 -> com.shlb.lbble.MainActivity$4$3:
+    319:319:void <init>(com.shlb.lbble.MainActivity$4) -> <init>
+    322:323:void run() -> run
+com.shlb.lbble.MainActivity$5 -> com.shlb.lbble.MainActivity$5:
+    374:374:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    377:380:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.MainActivity$6 -> com.shlb.lbble.MainActivity$6:
+    368:368:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    371:372:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.MainActivity$7 -> com.shlb.lbble.MainActivity$7:
+    445:445:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    448:494:void onClick(android.view.View) -> onClick
+com.shlb.lbble.MainActivity$7$1 -> com.shlb.lbble.MainActivity$7$1:
+    468:468:void <init>(com.shlb.lbble.MainActivity$7) -> <init>
+    471:477:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.MainActivity$7$2 -> com.shlb.lbble.MainActivity$7$2:
+    462:462:void <init>(com.shlb.lbble.MainActivity$7) -> <init>
+    465:466:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.MainActivity$8 -> com.shlb.lbble.MainActivity$8:
+    532:532:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    536:547:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+com.shlb.lbble.MainActivity$9 -> com.shlb.lbble.MainActivity$9:
+    552:552:void <init>(com.shlb.lbble.MainActivity) -> <init>
+    555:556:void onDismiss(android.content.DialogInterface) -> onDismiss
+com.shlb.lbble.MainActivity_ViewBinding -> com.shlb.lbble.MainActivity_ViewBinding:
+    22:26:void <init>(com.shlb.lbble.MainActivity,android.view.View) -> <init>
+com.shlb.lbble.SplashActivity -> com.shlb.lbble.SplashActivity:
+    14:14:void <init>() -> <init>
+    20:33:void onCreate(android.os.Bundle) -> onCreate
+com.shlb.lbble.SplashActivity$1 -> com.shlb.lbble.SplashActivity$1:
+    26:26:void <init>(com.shlb.lbble.SplashActivity) -> <init>
+    29:31:void onAnimationEnd() -> onAnimationEnd
+com.shlb.lbble.activity.AddressActivity -> com.shlb.lbble.activity.AddressActivity:
+    void $r8$lambda$mihdCv96zUMVV2QRb78Z4ltpL8s(com.qmuiteam.qmui.widget.dialog.QMUIDialog,android.view.View) -> $r8$lambda$mihdCv96zUMVV2QRb78Z4ltpL8s
+      # {"id":"com.android.tools.r8.synthesized"}
+    70:108:void <init>() -> <init>
+    70:70:void access$000(com.shlb.lbble.activity.AddressActivity,java.lang.String) -> access$000
+    70:70:void access$100(com.shlb.lbble.activity.AddressActivity,java.lang.String) -> access$100
+    70:70:void access$200(com.shlb.lbble.activity.AddressActivity,java.lang.String) -> access$200
+    70:70:void access$300(com.shlb.lbble.activity.AddressActivity,java.lang.String) -> access$300
+    91:92:void contentView() -> contentView
+    425:448:java.util.List getWriteData() -> getWriteData
+    125:167:void initData() -> initData
+    229:229:void initEvent() -> initEvent
+    236:284:void initGroupListView() -> initGroupListView
+    313:315:void initTitlebar() -> initTitlebar
+    96:106:void initView() -> initView
+    169:208:void initWrite(java.lang.String) -> initWrite
+    412:421:byte[] invertStringToBytes(java.lang.String) -> invertStringToBytes
+    327:328:void lambda$showWriteDialog$0(com.qmuiteam.qmui.widget.dialog.QMUIDialog,android.view.View) -> lambda$showWriteDialog$0
+    386:396:void onClick(android.view.View) -> onClick
+    220:224:void onDestroy() -> onDestroy
+    288:309:void onEventReceiveNotify(com.shlb.lbble.event.UpdateEvent) -> onEventReceiveNotify
+    211:212:void onPause() -> onPause
+    216:217:void onResume() -> onResume
+    322:382:void showWriteDialog(java.lang.String) -> showWriteDialog
+    398:410:void writeCmd(java.lang.String) -> writeCmd
+com.shlb.lbble.activity.AddressActivity$$ExternalSyntheticLambda0 -> com.shlb.lbble.activity.AddressActivity$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.qmuiteam.qmui.widget.dialog.QMUIDialog com.shlb.lbble.activity.AddressActivity$$InternalSyntheticLambda$0$1952186dfcadaddbe400cd70e03b10fe5b2cdace9eec9b065ea2d06915e859e7$0.f$0 -> f$0
+    void com.shlb.lbble.activity.AddressActivity$$InternalSyntheticLambda$0$1952186dfcadaddbe400cd70e03b10fe5b2cdace9eec9b065ea2d06915e859e7$0.<init>(com.qmuiteam.qmui.widget.dialog.QMUIDialog) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.AddressActivity$$InternalSyntheticLambda$0$1952186dfcadaddbe400cd70e03b10fe5b2cdace9eec9b065ea2d06915e859e7$0.onClick(android.view.View) -> onClick
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.AddressActivity$1 -> com.shlb.lbble.activity.AddressActivity$1:
+    108:108:void <init>(com.shlb.lbble.activity.AddressActivity) -> <init>
+    111:119:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.activity.AddressActivity$2 -> com.shlb.lbble.activity.AddressActivity$2:
+    255:255:void <init>(com.shlb.lbble.activity.AddressActivity) -> <init>
+    258:270:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.AddressActivity$3 -> com.shlb.lbble.activity.AddressActivity$3:
+    333:333:void <init>(com.shlb.lbble.activity.AddressActivity,android.content.Context) -> <init>
+    336:336:androidx.recyclerview.widget.RecyclerView$LayoutParams generateDefaultLayoutParams() -> generateDefaultLayoutParams
+com.shlb.lbble.activity.AddressActivity$4 -> com.shlb.lbble.activity.AddressActivity$4:
+    340:340:void <init>(com.shlb.lbble.activity.AddressActivity,android.widget.EditText) -> <init>
+    343:349:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.AddressActivity$5 -> com.shlb.lbble.activity.AddressActivity$5:
+    354:354:void <init>(com.shlb.lbble.activity.AddressActivity,java.util.List,com.chad.library.adapter.base.BaseQuickAdapter,android.widget.TextView,android.widget.EditText,java.lang.String) -> <init>
+    357:368:void onItemClick(com.chad.library.adapter.base.BaseQuickAdapter,android.view.View,int) -> onItemClick
+com.shlb.lbble.activity.AddressActivity$6 -> com.shlb.lbble.activity.AddressActivity$6:
+    111:111:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.AddressActivity_ViewBinding -> com.shlb.lbble.activity.AddressActivity_ViewBinding:
+    23:27:void <init>(com.shlb.lbble.activity.AddressActivity,android.view.View) -> <init>
+com.shlb.lbble.activity.ConnActivity -> com.shlb.lbble.activity.ConnActivity:
+    42:135:void <init>() -> <init>
+    42:42:int access$002(com.shlb.lbble.activity.ConnActivity,int) -> access$002
+    42:42:void access$100(com.shlb.lbble.activity.ConnActivity,java.util.List) -> access$100
+    42:42:void access$200(com.shlb.lbble.activity.ConnActivity,java.lang.String) -> access$200
+    42:42:void access$300(com.shlb.lbble.activity.ConnActivity,java.lang.String) -> access$300
+    42:42:void access$400(com.shlb.lbble.activity.ConnActivity) -> access$400
+    58:59:void contentView() -> contentView
+    390:399:void disconnect() -> disconnect
+    224:243:void displayGattServices(java.util.List) -> displayGattServices
+    246:271:java.lang.String getPropertyString(int) -> getPropertyString
+    158:215:void initConn(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> initConn
+    74:78:void initData() -> initData
+    83:83:void initEvent() -> initEvent
+    286:348:void initGroupListView() -> initGroupListView
+    275:278:void initTitlebar() -> initTitlebar
+    63:70:void initView() -> initView
+    436:442:void onBackPressed() -> onBackPressed
+    87:96:void onClick(android.view.View) -> onClick
+    446:449:void onDestroy() -> onDestroy
+    100:133:void onEventRefresh(com.shlb.lbble.event.UpdateEvent) -> onEventRefresh
+    412:431:void showDisconnectDialog() -> showDisconnectDialog
+    352:387:void updateUi() -> updateUi
+com.shlb.lbble.activity.ConnActivity$1 -> com.shlb.lbble.activity.ConnActivity$1:
+    135:135:void <init>(com.shlb.lbble.activity.ConnActivity) -> <init>
+    138:153:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.activity.ConnActivity$2 -> com.shlb.lbble.activity.ConnActivity$2:
+    161:161:void <init>(com.shlb.lbble.activity.ConnActivity) -> <init>
+    186:188:void onCharacteristicChanged(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic) -> onCharacteristicChanged
+    165:171:void onCharacteristicRead(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicRead
+    175:182:void onCharacteristicWrite(android.bluetooth.BluetoothGatt,android.bluetooth.BluetoothGattCharacteristic,int) -> onCharacteristicWrite
+    192:197:void onConnectionStateChange(android.bluetooth.BluetoothGatt,int,int) -> onConnectionStateChange
+    201:211:void onServicesDiscovered(android.bluetooth.BluetoothGatt,int) -> onServicesDiscovered
+com.shlb.lbble.activity.ConnActivity$2$1 -> com.shlb.lbble.activity.ConnActivity$2$1:
+    203:203:void <init>(com.shlb.lbble.activity.ConnActivity$2,android.bluetooth.BluetoothGatt) -> <init>
+    206:207:void run() -> run
+com.shlb.lbble.activity.ConnActivity$3 -> com.shlb.lbble.activity.ConnActivity$3:
+    305:305:void <init>(com.shlb.lbble.activity.ConnActivity) -> <init>
+    308:334:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.ConnActivity$4 -> com.shlb.lbble.activity.ConnActivity$4:
+    421:421:void <init>(com.shlb.lbble.activity.ConnActivity) -> <init>
+    424:428:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.ConnActivity$5 -> com.shlb.lbble.activity.ConnActivity$5:
+    415:415:void <init>(com.shlb.lbble.activity.ConnActivity) -> <init>
+    418:419:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.ConnActivity$6 -> com.shlb.lbble.activity.ConnActivity$6:
+    100:138:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.ConnActivity_ViewBinding -> com.shlb.lbble.activity.ConnActivity_ViewBinding:
+    24:29:void <init>(com.shlb.lbble.activity.ConnActivity,android.view.View) -> <init>
+com.shlb.lbble.activity.HomeActivity -> com.shlb.lbble.activity.HomeActivity:
+    42:320:void <init>() -> <init>
+    323:329:void ExitApp() -> ExitApp
+    42:42:com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager access$000(com.shlb.lbble.activity.HomeActivity) -> access$000
+    42:42:com.shlb.lbble.adapter.HomeDeviceListAdapter access$100(com.shlb.lbble.activity.HomeActivity) -> access$100
+    42:42:void access$200(com.shlb.lbble.activity.HomeActivity,java.lang.String) -> access$200
+    42:42:void access$300(com.shlb.lbble.activity.HomeActivity,java.lang.String) -> access$300
+    42:42:com.shlb.lbble.model.BluetoothLeDeviceStore access$400(com.shlb.lbble.activity.HomeActivity) -> access$400
+    42:42:com.blakequ.bluetooth_manager_lib.util.BluetoothUtils access$500(com.shlb.lbble.activity.HomeActivity) -> access$500
+    253:279:boolean checkIsBleState() -> checkIsBleState
+    300:310:boolean checkPermission() -> checkPermission
+    62:65:void contentView() -> contentView
+    86:88:void initData() -> initData
+    93:93:void initEvent() -> initEvent
+    99:170:void initScan() -> initScan
+    286:288:void initTitlebar() -> initTitlebar
+    69:82:void initView() -> initView
+    317:318:void onBackPressed() -> onBackPressed
+    222:245:void onEventRefresh(com.shlb.lbble.event.UpdateEvent) -> onEventRefresh
+    196:196:void onItemClick(android.widget.AdapterView,android.view.View,int,long) -> onItemClick
+    174:178:void onPause() -> onPause
+    182:183:void onResume() -> onResume
+    204:213:void startScan() -> startScan
+com.shlb.lbble.activity.HomeActivity$1 -> com.shlb.lbble.activity.HomeActivity$1:
+    72:72:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    75:80:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.HomeActivity$2 -> com.shlb.lbble.activity.HomeActivity$2:
+    102:102:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    106:119:void buttonClick(android.view.View,int) -> buttonClick
+com.shlb.lbble.activity.HomeActivity$3 -> com.shlb.lbble.activity.HomeActivity$3:
+    123:123:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    127:127:void onScanOver() -> onScanOver
+com.shlb.lbble.activity.HomeActivity$4 -> com.shlb.lbble.activity.HomeActivity$4:
+    130:130:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    133:134:void onBatchScanResults(java.util.List) -> onBatchScanResults
+    138:142:void onScanFailed(int) -> onScanFailed
+    146:166:void onScanResult(int,com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat) -> onScanResult
+com.shlb.lbble.activity.HomeActivity$5 -> com.shlb.lbble.activity.HomeActivity$5:
+    231:231:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    234:237:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.HomeActivity$6 -> com.shlb.lbble.activity.HomeActivity$6:
+    267:267:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    270:273:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.HomeActivity$7 -> com.shlb.lbble.activity.HomeActivity$7:
+    261:261:void <init>(com.shlb.lbble.activity.HomeActivity) -> <init>
+    264:265:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.HomeActivity$8 -> com.shlb.lbble.activity.HomeActivity$8:
+    222:222:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.HomeActivity_ViewBinding -> com.shlb.lbble.activity.HomeActivity_ViewBinding:
+    24:29:void <init>(com.shlb.lbble.activity.HomeActivity,android.view.View) -> <init>
+com.shlb.lbble.activity.NormalWriteActivity -> com.shlb.lbble.activity.NormalWriteActivity:
+    void $r8$lambda$dbiLcEqvSH5p0IiGisIV9Ui7E7k(com.shlb.lbble.activity.NormalWriteActivity) -> $r8$lambda$dbiLcEqvSH5p0IiGisIV9Ui7E7k
+      # {"id":"com.android.tools.r8.synthesized"}
+    void $r8$lambda$svajIm8eHnWWCiFzfSSHMKglVbI(com.shlb.lbble.activity.NormalWriteActivity) -> $r8$lambda$svajIm8eHnWWCiFzfSSHMKglVbI
+      # {"id":"com.android.tools.r8.synthesized"}
+    47:447:void <init>() -> <init>
+    47:47:void access$000(com.shlb.lbble.activity.NormalWriteActivity,java.lang.String) -> access$000
+    47:47:byte[] access$100(com.shlb.lbble.activity.NormalWriteActivity,java.lang.String) -> access$100
+    47:47:void access$200(com.shlb.lbble.activity.NormalWriteActivity) -> access$200
+    47:47:void access$300(com.shlb.lbble.activity.NormalWriteActivity) -> access$300
+    47:47:void access$400(com.shlb.lbble.activity.NormalWriteActivity,java.lang.String) -> access$400
+    47:47:void access$500(com.shlb.lbble.activity.NormalWriteActivity,java.lang.String) -> access$500
+    67:69:void contentView() -> contentView
+    82:86:void initData() -> initData
+    90:92:void initEvent() -> initEvent
+    250:337:void initGroupListView() -> initGroupListView
+    545:548:void initTitlebar() -> initTitlebar
+    73:78:void initView() -> initView
+    345:385:void initWrite(java.lang.String) -> initWrite
+    409:418:byte[] invertStringToBytes(java.lang.String) -> invertStringToBytes
+    395:396:void lambda$writeCmd$0() -> lambda$writeCmd$0
+    403:404:void lambda$writeCmd$1() -> lambda$writeCmd$1
+    97:202:void onClick(android.view.View) -> onClick
+    554:617:void onClickk(android.view.View) -> onClickk
+    207:236:void onEventReceiveNotify(com.shlb.lbble.event.UpdateEvent) -> onEventReceiveNotify
+    626:664:void sendYJCmd(int) -> sendYJCmd
+    465:500:void showEditTextDialog() -> showEditTextDialog
+    506:542:void showQuickDialog() -> showQuickDialog
+    388:406:void writeCmd(java.lang.String) -> writeCmd
+com.shlb.lbble.activity.NormalWriteActivity$$ExternalSyntheticLambda0 -> com.shlb.lbble.activity.NormalWriteActivity$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.NormalWriteActivity com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$0.f$0 -> f$0
+    void com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$0.<init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.NormalWriteActivity$$ExternalSyntheticLambda1 -> com.shlb.lbble.activity.NormalWriteActivity$$ExternalSyntheticLambda1:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.NormalWriteActivity com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$1.f$0 -> f$0
+    void com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$1.<init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.NormalWriteActivity$$InternalSyntheticLambda$0$de11b51032770058a3593b4184978d0f8ab77e9cec67a74dafbcbae3b6ed3295$1.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.NormalWriteActivity$1 -> com.shlb.lbble.activity.NormalWriteActivity$1:
+    163:163:void <init>(com.shlb.lbble.activity.NormalWriteActivity,java.lang.Integer) -> <init>
+    166:186:java.lang.Object doInBackground() -> doInBackground
+    192:192:void onSuccess(java.lang.Object) -> onSuccess
+com.shlb.lbble.activity.NormalWriteActivity$2 -> com.shlb.lbble.activity.NormalWriteActivity$2:
+    270:270:void <init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    273:300:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.NormalWriteActivity$3 -> com.shlb.lbble.activity.NormalWriteActivity$3:
+    447:447:void <init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    450:458:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.activity.NormalWriteActivity$4 -> com.shlb.lbble.activity.NormalWriteActivity$4:
+    475:475:void <init>(com.shlb.lbble.activity.NormalWriteActivity,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    478:497:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.NormalWriteActivity$5 -> com.shlb.lbble.activity.NormalWriteActivity$5:
+    469:469:void <init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    472:473:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.NormalWriteActivity$6 -> com.shlb.lbble.activity.NormalWriteActivity$6:
+    516:516:void <init>(com.shlb.lbble.activity.NormalWriteActivity,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    519:539:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.NormalWriteActivity$7 -> com.shlb.lbble.activity.NormalWriteActivity$7:
+    510:510:void <init>(com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    513:514:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.NormalWriteActivity$8 -> com.shlb.lbble.activity.NormalWriteActivity$8:
+    632:632:void <init>(com.shlb.lbble.activity.NormalWriteActivity,int) -> <init>
+    635:655:java.lang.Object doInBackground() -> doInBackground
+    661:661:void onSuccess(java.lang.Object) -> onSuccess
+com.shlb.lbble.activity.NormalWriteActivity$9 -> com.shlb.lbble.activity.NormalWriteActivity$9:
+    450:450:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding:
+    64:223:void <init>(com.shlb.lbble.activity.NormalWriteActivity,android.view.View) -> <init>
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$1 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$1:
+    73:73:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    76:77:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$10 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$10:
+    145:145:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    148:149:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$11 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$11:
+    153:153:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    156:157:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$12 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$12:
+    161:161:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    164:165:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$13 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$13:
+    169:169:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    172:173:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$14 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$14:
+    177:177:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    180:181:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$15 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$15:
+    185:185:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    188:189:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$16 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$16:
+    193:193:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    196:197:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$17 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$17:
+    201:201:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    204:205:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$18 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$18:
+    209:209:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    212:213:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$19 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$19:
+    217:217:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    220:221:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$2 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$2:
+    81:81:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    84:85:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$3 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$3:
+    89:89:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    92:93:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$4 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$4:
+    97:97:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    100:101:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$5 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$5:
+    105:105:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    108:109:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$6 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$6:
+    113:113:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    116:117:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$7 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$7:
+    121:121:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    124:125:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$8 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$8:
+    129:129:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    132:133:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$9 -> com.shlb.lbble.activity.NormalWriteActivity_ViewBinding$9:
+    137:137:void <init>(com.shlb.lbble.activity.NormalWriteActivity_ViewBinding,com.shlb.lbble.activity.NormalWriteActivity) -> <init>
+    140:141:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity -> com.shlb.lbble.activity.WriteActivity:
+    void $r8$lambda$MT8Prah_K7P9DgDRVIhgqgkamHM(com.shlb.lbble.activity.WriteActivity) -> $r8$lambda$MT8Prah_K7P9DgDRVIhgqgkamHM
+      # {"id":"com.android.tools.r8.synthesized"}
+    void $r8$lambda$MnHfRiGynSxDbrd6CnqxtNhd4pM(com.shlb.lbble.activity.WriteActivity) -> $r8$lambda$MnHfRiGynSxDbrd6CnqxtNhd4pM
+      # {"id":"com.android.tools.r8.synthesized"}
+    47:450:void <init>() -> <init>
+    47:47:void access$000(com.shlb.lbble.activity.WriteActivity,java.lang.String) -> access$000
+    47:47:byte[] access$100(com.shlb.lbble.activity.WriteActivity,java.lang.String) -> access$100
+    47:47:void access$200(com.shlb.lbble.activity.WriteActivity) -> access$200
+    47:47:void access$300(com.shlb.lbble.activity.WriteActivity) -> access$300
+    47:47:void access$400(com.shlb.lbble.activity.WriteActivity,java.lang.String) -> access$400
+    47:47:void access$500(com.shlb.lbble.activity.WriteActivity,java.lang.String) -> access$500
+    70:72:void contentView() -> contentView
+    85:89:void initData() -> initData
+    93:95:void initEvent() -> initEvent
+    253:340:void initGroupListView() -> initGroupListView
+    548:551:void initTitlebar() -> initTitlebar
+    76:81:void initView() -> initView
+    348:388:void initWrite(java.lang.String) -> initWrite
+    412:421:byte[] invertStringToBytes(java.lang.String) -> invertStringToBytes
+    398:399:void lambda$writeCmd$0() -> lambda$writeCmd$0
+    406:407:void lambda$writeCmd$1() -> lambda$writeCmd$1
+    100:205:void onClick(android.view.View) -> onClick
+    557:620:void onClickk(android.view.View) -> onClickk
+    210:239:void onEventReceiveNotify(com.shlb.lbble.event.UpdateEvent) -> onEventReceiveNotify
+    627:668:void sendYJCmd(int) -> sendYJCmd
+    468:503:void showEditTextDialog() -> showEditTextDialog
+    509:545:void showQuickDialog() -> showQuickDialog
+    391:409:void writeCmd(java.lang.String) -> writeCmd
+com.shlb.lbble.activity.WriteActivity$$ExternalSyntheticLambda0 -> com.shlb.lbble.activity.WriteActivity$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.WriteActivity com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$0.f$0 -> f$0
+    void com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$0.<init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.WriteActivity$$ExternalSyntheticLambda1 -> com.shlb.lbble.activity.WriteActivity$$ExternalSyntheticLambda1:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.WriteActivity com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$1.f$0 -> f$0
+    void com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$1.<init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.WriteActivity$$InternalSyntheticLambda$0$d28d529864283f6debdf16f788b0ef600a71ab5b5c47f0345bf8625994be9663$1.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.WriteActivity$1 -> com.shlb.lbble.activity.WriteActivity$1:
+    166:166:void <init>(com.shlb.lbble.activity.WriteActivity,java.lang.Integer) -> <init>
+    169:189:java.lang.Object doInBackground() -> doInBackground
+    195:195:void onSuccess(java.lang.Object) -> onSuccess
+com.shlb.lbble.activity.WriteActivity$2 -> com.shlb.lbble.activity.WriteActivity$2:
+    273:273:void <init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+    276:303:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.WriteActivity$3 -> com.shlb.lbble.activity.WriteActivity$3:
+    450:450:void <init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+    453:461:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.activity.WriteActivity$4 -> com.shlb.lbble.activity.WriteActivity$4:
+    478:478:void <init>(com.shlb.lbble.activity.WriteActivity,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    481:500:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity$5 -> com.shlb.lbble.activity.WriteActivity$5:
+    472:472:void <init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+    475:476:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity$6 -> com.shlb.lbble.activity.WriteActivity$6:
+    519:519:void <init>(com.shlb.lbble.activity.WriteActivity,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    522:542:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity$7 -> com.shlb.lbble.activity.WriteActivity$7:
+    513:513:void <init>(com.shlb.lbble.activity.WriteActivity) -> <init>
+    516:517:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity$8 -> com.shlb.lbble.activity.WriteActivity$8:
+    636:636:void <init>(com.shlb.lbble.activity.WriteActivity,int) -> <init>
+    639:659:java.lang.Object doInBackground() -> doInBackground
+    665:665:void onSuccess(java.lang.Object) -> onSuccess
+com.shlb.lbble.activity.WriteActivity$9 -> com.shlb.lbble.activity.WriteActivity$9:
+    453:453:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.WriteActivity2 -> com.shlb.lbble.activity.WriteActivity2:
+    void $r8$lambda$MCELLOrxf7tvzHwEZ000-jCYP9w(com.shlb.lbble.activity.WriteActivity2) -> $r8$lambda$MCELLOrxf7tvzHwEZ000-jCYP9w
+      # {"id":"com.android.tools.r8.synthesized"}
+    void $r8$lambda$okSRLwKx85Axec8nDxxZaLotQ5c(com.shlb.lbble.activity.WriteActivity2) -> $r8$lambda$okSRLwKx85Axec8nDxxZaLotQ5c
+      # {"id":"com.android.tools.r8.synthesized"}
+    44:439:void <init>() -> <init>
+    44:44:void access$000(com.shlb.lbble.activity.WriteActivity2,java.lang.String) -> access$000
+    44:44:byte[] access$100(com.shlb.lbble.activity.WriteActivity2,java.lang.String) -> access$100
+    44:44:void access$200(com.shlb.lbble.activity.WriteActivity2) -> access$200
+    44:44:void access$300(com.shlb.lbble.activity.WriteActivity2) -> access$300
+    44:44:void access$400(com.shlb.lbble.activity.WriteActivity2,java.lang.String) -> access$400
+    44:44:void access$500(com.shlb.lbble.activity.WriteActivity2,java.lang.String) -> access$500
+    60:62:void contentView() -> contentView
+    75:79:void initData() -> initData
+    83:85:void initEvent() -> initEvent
+    242:329:void initGroupListView() -> initGroupListView
+    537:540:void initTitlebar() -> initTitlebar
+    66:71:void initView() -> initView
+    337:377:void initWrite(java.lang.String) -> initWrite
+    401:410:byte[] invertStringToBytes(java.lang.String) -> invertStringToBytes
+    387:388:void lambda$writeCmd$0() -> lambda$writeCmd$0
+    395:396:void lambda$writeCmd$1() -> lambda$writeCmd$1
+    90:195:void onClick(android.view.View) -> onClick
+    200:229:void onEventReceiveNotify(com.shlb.lbble.event.UpdateEvent) -> onEventReceiveNotify
+    457:492:void showEditTextDialog() -> showEditTextDialog
+    498:534:void showQuickDialog() -> showQuickDialog
+    380:398:void writeCmd(java.lang.String) -> writeCmd
+com.shlb.lbble.activity.WriteActivity2$$ExternalSyntheticLambda0 -> com.shlb.lbble.activity.WriteActivity2$$ExternalSyntheticLambda0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.WriteActivity2 com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$1.f$0 -> f$0
+    void com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$1.<init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$1.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.WriteActivity2$$ExternalSyntheticLambda1 -> com.shlb.lbble.activity.WriteActivity2$$ExternalSyntheticLambda1:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    com.shlb.lbble.activity.WriteActivity2 com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$0.f$0 -> f$0
+    void com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$0.<init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+      # {"id":"com.android.tools.r8.synthesized"}
+    void com.shlb.lbble.activity.WriteActivity2$$InternalSyntheticLambda$0$f9c0d5373e435a1e2b1228c885516cd1ba4cc4272b0bd0ffd7b27c37b3a14e83$0.run() -> run
+      # {"id":"com.android.tools.r8.synthesized"}
+com.shlb.lbble.activity.WriteActivity2$1 -> com.shlb.lbble.activity.WriteActivity2$1:
+    156:156:void <init>(com.shlb.lbble.activity.WriteActivity2,java.lang.Integer) -> <init>
+    159:179:java.lang.Object doInBackground() -> doInBackground
+    185:185:void onSuccess(java.lang.Object) -> onSuccess
+com.shlb.lbble.activity.WriteActivity2$2 -> com.shlb.lbble.activity.WriteActivity2$2:
+    262:262:void <init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+    265:292:void onClick(android.view.View) -> onClick
+com.shlb.lbble.activity.WriteActivity2$3 -> com.shlb.lbble.activity.WriteActivity2$3:
+    439:439:void <init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+    442:450:void onConnectStateChanged(java.lang.String,com.blakequ.bluetooth_manager_lib.connect.ConnectState) -> onConnectStateChanged
+com.shlb.lbble.activity.WriteActivity2$4 -> com.shlb.lbble.activity.WriteActivity2$4:
+    467:467:void <init>(com.shlb.lbble.activity.WriteActivity2,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    470:489:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity2$5 -> com.shlb.lbble.activity.WriteActivity2$5:
+    461:461:void <init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+    464:465:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity2$6 -> com.shlb.lbble.activity.WriteActivity2$6:
+    508:508:void <init>(com.shlb.lbble.activity.WriteActivity2,com.qmuiteam.qmui.widget.dialog.QMUIDialog$EditTextDialogBuilder) -> <init>
+    511:531:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity2$7 -> com.shlb.lbble.activity.WriteActivity2$7:
+    502:502:void <init>(com.shlb.lbble.activity.WriteActivity2) -> <init>
+    505:506:void onClick(com.qmuiteam.qmui.widget.dialog.QMUIDialog,int) -> onClick
+com.shlb.lbble.activity.WriteActivity2$8 -> com.shlb.lbble.activity.WriteActivity2$8:
+    442:442:void <clinit>() -> <clinit>
+com.shlb.lbble.activity.WriteActivity2_ViewBinding -> com.shlb.lbble.activity.WriteActivity2_ViewBinding:
+    24:29:void <init>(com.shlb.lbble.activity.WriteActivity2,android.view.View) -> <init>
+com.shlb.lbble.activity.WriteActivity_ViewBinding -> com.shlb.lbble.activity.WriteActivity_ViewBinding:
+    65:225:void <init>(com.shlb.lbble.activity.WriteActivity,android.view.View) -> <init>
+com.shlb.lbble.activity.WriteActivity_ViewBinding$1 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$1:
+    75:75:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    78:79:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$10 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$10:
+    147:147:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    150:151:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$11 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$11:
+    155:155:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    158:159:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$12 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$12:
+    163:163:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    166:167:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$13 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$13:
+    171:171:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    174:175:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$14 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$14:
+    179:179:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    182:183:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$15 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$15:
+    187:187:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    190:191:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$16 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$16:
+    195:195:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    198:199:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$17 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$17:
+    203:203:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    206:207:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$18 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$18:
+    211:211:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    214:215:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$19 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$19:
+    219:219:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    222:223:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$2 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$2:
+    83:83:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    86:87:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$3 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$3:
+    91:91:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    94:95:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$4 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$4:
+    99:99:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    102:103:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$5 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$5:
+    107:107:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    110:111:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$6 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$6:
+    115:115:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    118:119:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$7 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$7:
+    123:123:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    126:127:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$8 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$8:
+    131:131:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    134:135:void doClick(android.view.View) -> doClick
+com.shlb.lbble.activity.WriteActivity_ViewBinding$9 -> com.shlb.lbble.activity.WriteActivity_ViewBinding$9:
+    139:139:void <init>(com.shlb.lbble.activity.WriteActivity_ViewBinding,com.shlb.lbble.activity.WriteActivity) -> <init>
+    142:143:void doClick(android.view.View) -> doClick
+com.shlb.lbble.adapter.BaseArrayListAdapter -> com.shlb.lbble.adapter.BaseArrayListAdapter:
+    48:58:void <init>(android.content.Context) -> <init>
+    228:228:int getCount() -> getCount
+    234:237:java.lang.Object getItem(int) -> getItem
+    243:243:long getItemId(int) -> getItemId
+    194:199:void refreshData(java.util.List) -> refreshData
+com.shlb.lbble.adapter.DeviceListAdapter -> com.shlb.lbble.adapter.DeviceListAdapter:
+    24:25:void <init>(android.content.Context) -> <init>
+    35:61:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+com.shlb.lbble.adapter.DeviceListAdapter$ViewHolder -> com.shlb.lbble.adapter.DeviceListAdapter$ViewHolder:
+    77:77:void <init>() -> <init>
+com.shlb.lbble.adapter.HomeAdapter -> com.shlb.lbble.adapter.HomeAdapter:
+    15:15:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object) -> convert
+    22:24:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,com.shlb.lbble.model.HomeItem) -> convert
+com.shlb.lbble.adapter.HomeDeviceListAdapter -> com.shlb.lbble.adapter.HomeDeviceListAdapter:
+    20:22:void <init>(android.content.Context,com.shlb.lbble.adapter.HomeDeviceListAdapter$setOnItemButtonClick) -> <init>
+    13:13:com.shlb.lbble.adapter.HomeDeviceListAdapter$setOnItemButtonClick access$000(com.shlb.lbble.adapter.HomeDeviceListAdapter) -> access$000
+    32:69:android.view.View getView(int,android.view.View,android.view.ViewGroup) -> getView
+com.shlb.lbble.adapter.HomeDeviceListAdapter$1 -> com.shlb.lbble.adapter.HomeDeviceListAdapter$1:
+    39:39:void <init>(com.shlb.lbble.adapter.HomeDeviceListAdapter,int) -> <init>
+    42:43:void onClick(android.view.View) -> onClick
+com.shlb.lbble.adapter.HomeDeviceListAdapter$ViewHolder -> com.shlb.lbble.adapter.HomeDeviceListAdapter$ViewHolder:
+    85:85:void <init>() -> <init>
+com.shlb.lbble.adapter.WriteAdapter -> com.shlb.lbble.adapter.WriteAdapter:
+    19:20:void <init>(int,java.util.List) -> <init>
+    17:17:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.lang.Object) -> convert
+    24:31:void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder,java.util.Map) -> convert
+com.shlb.lbble.base.BaseActivity -> com.shlb.lbble.base.BaseActivity:
+    28:29:void <init>() -> <init>
+    247:248:void Toast(java.lang.String) -> Toast
+    48:51:void init() -> init
+    54:58:void initHead() -> initHead
+    62:64:void initHeadEvent() -> initHeadEvent
+    82:90:void onClick(android.view.View) -> onClick
+    40:45:void onCreate(android.os.Bundle) -> onCreate
+    94:96:void onDestroy() -> onDestroy
+    268:269:void onPermissionsDenied(int,java.util.List) -> onPermissionsDenied
+    262:263:void onPermissionsGranted(int,java.util.List) -> onPermissionsGranted
+    251:255:void onRequestPermissionsResult(int,java.lang.String[],int[]) -> onRequestPermissionsResult
+    77:78:void setTitle(java.lang.CharSequence) -> setTitle
+    102:126:void showTips(java.lang.String) -> showTips
+com.shlb.lbble.base.BaseActivity$1 -> com.shlb.lbble.base.BaseActivity$1:
+    109:109:void <init>(com.shlb.lbble.base.BaseActivity) -> <init>
+    112:113:void run() -> run
+com.shlb.lbble.databinding.ActivityAddressBinding -> com.shlb.lbble.databinding.ActivityAddressBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    34:34:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityBaseBinding -> com.shlb.lbble.databinding.ActivityBaseBinding:
+    20:20:android.view.View getRoot() -> getRoot
+    58:58:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityConnBinding -> com.shlb.lbble.databinding.ActivityConnBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    39:39:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityHomeBinding -> com.shlb.lbble.databinding.ActivityHomeBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    39:39:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityMainBinding -> com.shlb.lbble.databinding.ActivityMainBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    34:34:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivitySplashBinding -> com.shlb.lbble.databinding.ActivitySplashBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    33:33:android.widget.RelativeLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityWrite2Binding -> com.shlb.lbble.databinding.ActivityWrite2Binding:
+    19:19:android.view.View getRoot() -> getRoot
+    39:39:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ActivityWriteBinding -> com.shlb.lbble.databinding.ActivityWriteBinding:
+    21:21:android.view.View getRoot() -> getRoot
+    130:130:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.DialogLayoutBluetoothItemBinding -> com.shlb.lbble.databinding.DialogLayoutBluetoothItemBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    48:48:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.DialogLayoutBluetoothListBinding -> com.shlb.lbble.databinding.DialogLayoutBluetoothListBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    33:33:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.DialogLayoutWriteItemBinding -> com.shlb.lbble.databinding.DialogLayoutWriteItemBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    39:39:android.widget.RelativeLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.DialogLayoutWriteListBinding -> com.shlb.lbble.databinding.DialogLayoutWriteListBinding:
+    22:22:android.view.View getRoot() -> getRoot
+    59:59:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.HomeItemViewBinding -> com.shlb.lbble.databinding.HomeItemViewBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    52:52:androidx.cardview.widget.CardView getRoot() -> getRoot
+com.shlb.lbble.databinding.HomeListBluetoothItemBinding -> com.shlb.lbble.databinding.HomeListBluetoothItemBinding:
+    20:20:android.view.View getRoot() -> getRoot
+    57:57:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.IncludeHeadBinding -> com.shlb.lbble.databinding.IncludeHeadBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    47:47:android.widget.RelativeLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.LayoutLoadingViewBinding -> com.shlb.lbble.databinding.LayoutLoadingViewBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    38:38:android.widget.RelativeLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.ListItemDeviceBinding -> com.shlb.lbble.databinding.ListItemDeviceBinding:
+    20:20:android.view.View getRoot() -> getRoot
+    89:89:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.NormalActivityWriteBinding -> com.shlb.lbble.databinding.NormalActivityWriteBinding:
+    19:19:android.view.View getRoot() -> getRoot
+    124:124:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.TipdialogCustomBinding -> com.shlb.lbble.databinding.TipdialogCustomBinding:
+    18:18:android.view.View getRoot() -> getRoot
+    33:33:android.widget.LinearLayout getRoot() -> getRoot
+com.shlb.lbble.databinding.TopViewBinding -> com.shlb.lbble.databinding.TopViewBinding:
+    15:15:android.view.View getRoot() -> getRoot
+    26:26:android.widget.FrameLayout getRoot() -> getRoot
+com.shlb.lbble.event.UpdateEvent -> com.shlb.lbble.event.UpdateEvent:
+    12:14:void <init>(com.shlb.lbble.event.UpdateEvent$Type) -> <init>
+    21:25:void <init>(com.shlb.lbble.event.UpdateEvent$Type,java.lang.Object,java.lang.String) -> <init>
+    41:41:java.lang.String getMsg() -> getMsg
+    57:57:java.lang.Object getObj() -> getObj
+    49:49:com.shlb.lbble.event.UpdateEvent$Type getType() -> getType
+com.shlb.lbble.event.UpdateEvent$Type -> com.shlb.lbble.event.UpdateEvent$Type:
+    64:74:void <clinit>() -> <clinit>
+    64:64:void <init>(java.lang.String,int) -> <init>
+    64:64:com.shlb.lbble.event.UpdateEvent$Type valueOf(java.lang.String) -> valueOf
+    64:64:com.shlb.lbble.event.UpdateEvent$Type[] values() -> values
+com.shlb.lbble.model.BluetoothLeDeviceStore -> com.shlb.lbble.model.BluetoothLeDeviceStore:
+    29:31:void <init>() -> <init>
+    39:40:void addDevice(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> addDevice
+    43:44:void clear() -> clear
+    140:155:java.io.FileWriter generateFile(java.io.File,java.lang.String) -> generateFile
+    47:49:uk.co.alt236.easycursor.objectcursor.EasyObjectCursor getDeviceCursor() -> getDeviceCursor
+    54:65:java.util.List getDeviceList() -> getDeviceList
+    73:135:java.lang.String getListAsCsv() -> getListAsCsv
+    69:69:int size() -> size
+com.shlb.lbble.model.BluetoothLeDeviceStore$1 -> com.shlb.lbble.model.BluetoothLeDeviceStore$1:
+    57:57:void <init>(com.shlb.lbble.model.BluetoothLeDeviceStore) -> <init>
+    57:57:int compare(java.lang.Object,java.lang.Object) -> compare
+    61:61:int compare(com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice,com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice) -> compare
+com.shlb.lbble.model.HomeItem -> com.shlb.lbble.model.HomeItem:
+    8:9:void <init>() -> <init>
+    11:15:void <init>(java.lang.String,java.lang.Class,int) -> <init>
+    34:34:java.lang.Class getActivity() -> getActivity
+    18:18:int getImageResource() -> getImageResource
+    26:26:java.lang.String getTitle() -> getTitle
+    38:39:void setActivity(java.lang.Class) -> setActivity
+    22:23:void setImageResource(int) -> setImageResource
+    30:31:void setTitle(java.lang.String) -> setTitle
+com.shlb.lbble.util.CRCutil -> com.shlb.lbble.util.CRCutil:
+    11:29:java.lang.String getCRC(byte[]) -> getCRC
+com.shlb.lbble.util.CsvWriterHelper -> com.shlb.lbble.util.CsvWriterHelper:
+    7:7:java.lang.String addStuff(java.lang.Integer) -> addStuff
+    15:15:java.lang.String addStuff(boolean) -> addStuff
+    19:24:java.lang.String addStuff(java.lang.String) -> addStuff
+com.shlb.lbble.util.Singletion -> com.shlb.lbble.util.Singletion:
+    13:13:void <clinit>() -> <clinit>
+    15:22:void <init>() -> <init>
+    31:33:void clean() -> clean
+    19:19:com.shlb.lbble.util.Singletion getInstance() -> getInstance
+com.shlb.lbble.util.TimeFormatter -> com.shlb.lbble.util.TimeFormatter:
+    9:9:void <clinit>() -> <clinit>
+    12:12:java.lang.String getIsoDateTime(java.util.Date) -> getIsoDateTime
+    16:16:java.lang.String getIsoDateTime(long) -> getIsoDateTime
+com.shlb.lbble.view.ParticleView -> com.shlb.lbble.view.ParticleView:
+    92:93:void <init>(android.content.Context,android.util.AttributeSet) -> <init>
+    34:98:void <init>(android.content.Context,android.util.AttributeSet,int) -> <init>
+    32:32:android.graphics.Paint access$000(com.shlb.lbble.view.ParticleView) -> access$000
+    32:32:com.shlb.lbble.view.particleview.Particle[][] access$100(com.shlb.lbble.view.ParticleView) -> access$100
+    32:32:void access$1000(com.shlb.lbble.view.ParticleView) -> access$1000
+    32:32:void access$300(com.shlb.lbble.view.ParticleView) -> access$300
+    32:32:float access$402(com.shlb.lbble.view.ParticleView,float) -> access$402
+    32:32:void access$500(com.shlb.lbble.view.ParticleView) -> access$500
+    32:32:float access$602(com.shlb.lbble.view.ParticleView,float) -> access$602
+    32:32:float access$702(com.shlb.lbble.view.ParticleView,float) -> access$702
+    32:32:float access$802(com.shlb.lbble.view.ParticleView,float) -> access$802
+    32:32:com.shlb.lbble.view.ParticleView$ParticleAnimListener access$900(com.shlb.lbble.view.ParticleView) -> access$900
+    345:346:int dip2px(float) -> dip2px
+    375:376:int getB(int) -> getB
+    370:371:int getG(int) -> getG
+    365:366:int getR(int) -> getR
+    355:357:float getTextHeight(java.lang.String,android.graphics.Paint) -> getTextHeight
+    361:361:float getTextWidth(java.lang.String,android.graphics.Paint) -> getTextWidth
+    102:133:void initView(android.util.AttributeSet) -> initView
+    169:192:void onDraw(android.graphics.Canvas) -> onDraw
+    137:165:void onSizeChanged(int,int,int,int) -> onSizeChanged
+    337:338:void setOnParticleAnimListener(com.shlb.lbble.view.ParticleView$ParticleAnimListener) -> setOnParticleAnimListener
+    350:351:int sp2px(float) -> sp2px
+    311:317:void startAnim() -> startAnim
+    263:308:void startHostTextAnim() -> startHostTextAnim
+    196:241:void startParticleAnim() -> startParticleAnim
+    244:260:void startSpreadAnim() -> startSpreadAnim
+com.shlb.lbble.view.ParticleView$1 -> com.shlb.lbble.view.ParticleView$1:
+    202:202:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    205:207:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$10 -> com.shlb.lbble.view.ParticleView$10:
+    311:311:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    314:315:void run() -> run
+com.shlb.lbble.view.ParticleView$2 -> com.shlb.lbble.view.ParticleView$2:
+    217:217:void <init>(com.shlb.lbble.view.ParticleView,int,int) -> <init>
+    220:224:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$3 -> com.shlb.lbble.view.ParticleView$3:
+    234:234:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    237:238:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.shlb.lbble.view.ParticleView$4 -> com.shlb.lbble.view.ParticleView$4:
+    246:246:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    249:251:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$5 -> com.shlb.lbble.view.ParticleView$5:
+    253:253:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    256:257:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.shlb.lbble.view.ParticleView$6 -> com.shlb.lbble.view.ParticleView$6:
+    268:268:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    271:272:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$7 -> com.shlb.lbble.view.ParticleView$7:
+    277:277:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    280:281:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$8 -> com.shlb.lbble.view.ParticleView$8:
+    286:286:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    289:291:void onAnimationUpdate(android.animation.ValueAnimator) -> onAnimationUpdate
+com.shlb.lbble.view.ParticleView$9 -> com.shlb.lbble.view.ParticleView$9:
+    298:298:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    301:304:void onAnimationEnd(android.animation.Animator) -> onAnimationEnd
+com.shlb.lbble.view.ParticleView$AnimListener -> com.shlb.lbble.view.ParticleView$AnimListener:
+    319:319:void <init>(com.shlb.lbble.view.ParticleView) -> <init>
+    319:319:void <init>(com.shlb.lbble.view.ParticleView,com.shlb.lbble.view.ParticleView$1) -> <init>
+    328:328:void onAnimationCancel(android.animation.Animator) -> onAnimationCancel
+    333:333:void onAnimationRepeat(android.animation.Animator) -> onAnimationRepeat
+    323:323:void onAnimationStart(android.animation.Animator) -> onAnimationStart
+com.shlb.lbble.view.particleview.LineEvaluator -> com.shlb.lbble.view.particleview.LineEvaluator:
+    6:6:void <init>() -> <init>
+    6:6:java.lang.Object evaluate(float,java.lang.Object,java.lang.Object) -> evaluate
+    10:14:com.shlb.lbble.view.particleview.Particle evaluate(float,com.shlb.lbble.view.particleview.Particle,com.shlb.lbble.view.particleview.Particle) -> evaluate
+com.shlb.lbble.view.particleview.Particle -> com.shlb.lbble.view.particleview.Particle:
+    9:10:void <init>() -> <init>
+    12:16:void <init>(float,float,float) -> <init>
+kotlin.InitializedLazyImpl -> kotlin.InitializedLazyImpl:
+# {"id":"sourceFile","fileName":"Lazy.kt"}
+    95:95:void <init>(java.lang.Object) -> <init>
+    95:95:java.lang.Object getValue() -> getValue
+    99:99:java.lang.String toString() -> toString
+kotlin.KotlinNullPointerException -> kotlin.KotlinNullPointerException:
+# {"id":"sourceFile","fileName":"KotlinNullPointerException.kt"}
+    9:9:void <init>() -> <init>
+kotlin.Lazy -> kotlin.Lazy:
+# {"id":"sourceFile","fileName":"Lazy.kt"}
+kotlin.LazyKt__LazyJVMKt -> kotlin.LazyKt__LazyJVMKt:
+# {"id":"sourceFile","fileName":"LazyJVM.kt"}
+    34:38:kotlin.Lazy lazy(kotlin.LazyThreadSafetyMode,kotlin.jvm.functions.Function0) -> lazy
+kotlin.LazyThreadSafetyMode -> kotlin.LazyThreadSafetyMode:
+# {"id":"sourceFile","fileName":"Lazy.kt"}
+    49:49:void <init>(java.lang.String,int) -> <init>
+kotlin.NoWhenBranchMatchedException -> kotlin.NoWhenBranchMatchedException:
+# {"id":"sourceFile","fileName":"NoWhenBranchMatchedException.kt"}
+    9:9:void <init>() -> <init>
+kotlin.Pair -> kotlin.Pair:
+# {"id":"sourceFile","fileName":"Tuples.kt"}
+    26:26:void <init>(java.lang.Object,java.lang.Object) -> <init>
+    27:27:java.lang.Object getFirst() -> getFirst
+    28:28:java.lang.Object getSecond() -> getSecond
+    34:34:java.lang.String toString() -> toString
+kotlin.SafePublicationLazyImpl -> kotlin.SafePublicationLazyImpl:
+# {"id":"sourceFile","fileName":"LazyJVM.kt"}
+    124:127:void <clinit>() -> <clinit>
+    90:94:void <init>(kotlin.jvm.functions.Function0) -> <init>
+    98:114:java.lang.Object getValue() -> getValue
+    117:117:boolean isInitialized() -> isInitialized
+    119:119:java.lang.String toString() -> toString
+    121:121:java.lang.Object writeReplace() -> writeReplace
+kotlin.SafePublicationLazyImpl$$ExternalSyntheticBackportWithForwarding0 -> kotlin.SafePublicationLazyImpl$$ExternalSyntheticBackportWithForwarding0:
+# {"id":"sourceFile","fileName":"R8$$SyntheticClass"}
+# {"id":"com.android.tools.r8.synthesized"}
+    boolean kotlin.SafePublicationLazyImpl$$InternalSyntheticBackportWithForwarding$0$4bb09ac4ea9ee019bdc96f1a7824fb2e5ca3ee0b09b00ed4129ec1d661f04798$0.m(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,java.lang.Object,java.lang.Object,java.lang.Object) -> m
+      # {"id":"com.android.tools.r8.synthesized"}
+kotlin.SafePublicationLazyImpl$Companion -> kotlin.SafePublicationLazyImpl$Companion:
+# {"id":"sourceFile","fileName":"LazyJVM.kt"}
+    123:123:void <init>() -> <init>
+    123:123:void <init>(kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+kotlin.SynchronizedLazyImpl -> kotlin.SynchronizedLazyImpl:
+# {"id":"sourceFile","fileName":"LazyJVM.kt"}
+    55:55:void <init>(kotlin.jvm.functions.Function0,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    55:55:void <init>(kotlin.jvm.functions.Function0,java.lang.Object):55 -> <init>
+    56:59:void <init>(kotlin.jvm.functions.Function0,java.lang.Object) -> <init>
+    55:55:void <init>(kotlin.jvm.functions.Function0,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    63:78:java.lang.Object getValue() -> getValue
+    82:82:boolean isInitialized() -> isInitialized
+    84:84:java.lang.String toString() -> toString
+    86:86:java.lang.Object writeReplace() -> writeReplace
+kotlin.TuplesKt -> kotlin.TuplesKt:
+# {"id":"sourceFile","fileName":"Tuples.kt"}
+    43:43:kotlin.Pair to(java.lang.Object,java.lang.Object) -> to
+kotlin.TypeCastException -> kotlin.TypeCastException:
+# {"id":"sourceFile","fileName":"TypeCastException.kt"}
+    11:11:void <init>(java.lang.String) -> <init>
+kotlin.UNINITIALIZED_VALUE -> kotlin.UNINITIALIZED_VALUE:
+# {"id":"sourceFile","fileName":"Lazy.kt"}
+    71:71:void <clinit>() -> <clinit>
+    71:71:void <init>() -> <init>
+kotlin.UninitializedPropertyAccessException -> kotlin.UninitializedPropertyAccessException:
+# {"id":"sourceFile","fileName":"UninitializedPropertyAccessException.kt"}
+    9:9:void <init>() -> <init>
+    11:11:void <init>(java.lang.String) -> <init>
+kotlin.UnsafeLazyImpl -> kotlin.UnsafeLazyImpl:
+# {"id":"sourceFile","fileName":"Lazy.kt"}
+    74:76:void <init>(kotlin.jvm.functions.Function0) -> <init>
+    80:85:java.lang.Object getValue() -> getValue
+    88:88:boolean isInitialized() -> isInitialized
+    90:90:java.lang.String toString() -> toString
+    92:92:java.lang.Object writeReplace() -> writeReplace
+kotlin.collections.ArraysKt__ArraysJVMKt -> kotlin.collections.ArraysKt__ArraysJVMKt:
+# {"id":"sourceFile","fileName":"ArraysJVM.kt"}
+kotlin.collections.ArraysKt__ArraysKt -> kotlin.collections.ArraysKt__ArraysKt:
+# {"id":"sourceFile","fileName":"Arrays.kt"}
+kotlin.collections.ArraysKt___ArraysJvmKt -> kotlin.collections.ArraysKt___ArraysJvmKt:
+# {"id":"sourceFile","fileName":"_ArraysJvm.kt"}
+    129:129:java.util.List asList(java.lang.Object[]) -> asList
+kotlin.collections.ArraysKt___ArraysKt -> kotlin.collections.ArraysKt___ArraysKt:
+# {"id":"sourceFile","fileName":"_Arrays.kt"}
+    2702:2705:char single(char[]) -> single
+kotlin.collections.ArraysUtilJVM -> kotlin.collections.ArraysUtilJVM:
+    13:13:java.util.List asList(java.lang.Object[]) -> asList
+kotlin.collections.CollectionsKt__CollectionsJVMKt -> kotlin.collections.CollectionsKt__CollectionsJVMKt:
+# {"id":"sourceFile","fileName":"CollectionsJVM.kt"}
+kotlin.collections.CollectionsKt__CollectionsKt -> kotlin.collections.CollectionsKt__CollectionsKt:
+# {"id":"sourceFile","fileName":"Collections.kt"}
+    70:70:java.util.List emptyList() -> emptyList
+    76:76:java.util.List listOf(java.lang.Object[]) -> listOf
+    441:441:void throwIndexOverflow() -> throwIndexOverflow
+kotlin.collections.CollectionsKt__IterablesKt -> kotlin.collections.CollectionsKt__IterablesKt:
+# {"id":"sourceFile","fileName":"Iterables.kt"}
+    39:39:int collectionSizeOrDefault(java.lang.Iterable,int) -> collectionSizeOrDefault
+kotlin.collections.EmptyIterator -> kotlin.collections.EmptyIterator:
+# {"id":"sourceFile","fileName":"Collections.kt"}
+    14:14:void <clinit>() -> <clinit>
+    14:14:void <init>() -> <init>
+    15:15:boolean hasNext() -> hasNext
+    16:16:boolean hasPrevious() -> hasPrevious
+    14:14:java.lang.Object next() -> next
+    19:19:java.lang.Void next() -> next
+    17:17:int nextIndex() -> nextIndex
+    14:14:java.lang.Object previous() -> previous
+    20:20:java.lang.Void previous() -> previous
+    18:18:int previousIndex() -> previousIndex
+kotlin.collections.EmptyList -> kotlin.collections.EmptyList:
+# {"id":"sourceFile","fileName":"Collections.kt"}
+    23:23:void <clinit>() -> <clinit>
+    23:23:void <init>() -> <init>
+    23:23:boolean contains(java.lang.Object) -> contains
+    32:32:boolean contains(java.lang.Void) -> contains
+    33:33:boolean containsAll(java.util.Collection) -> containsAll
+    26:26:boolean equals(java.lang.Object) -> equals
+    23:23:java.lang.Object get(int) -> get
+    35:35:java.lang.Void get(int) -> get
+    30:30:int getSize() -> getSize
+    27:27:int hashCode() -> hashCode
+    23:23:int indexOf(java.lang.Object) -> indexOf
+    36:36:int indexOf(java.lang.Void) -> indexOf
+    31:31:boolean isEmpty() -> isEmpty
+    39:39:java.util.Iterator iterator() -> iterator
+    23:23:int lastIndexOf(java.lang.Object) -> lastIndexOf
+    37:37:int lastIndexOf(java.lang.Void) -> lastIndexOf
+    40:40:java.util.ListIterator listIterator() -> listIterator
+    42:43:java.util.ListIterator listIterator(int) -> listIterator
+    51:51:java.lang.Object readResolve() -> readResolve
+    23:23:int size() -> size
+    47:48:java.util.List subList(int,int) -> subList
+    28:28:java.lang.String toString() -> toString
+kotlin.collections.EmptyMap -> kotlin.collections.EmptyMap:
+# {"id":"sourceFile","fileName":"Maps.kt"}
+    14:14:void <clinit>() -> <clinit>
+    14:14:void <init>() -> <init>
+    24:24:boolean containsKey(java.lang.Object) -> containsKey
+    14:14:boolean containsValue(java.lang.Object) -> containsValue
+    25:25:boolean containsValue(java.lang.Void) -> containsValue
+    14:14:java.util.Set entrySet() -> entrySet
+    17:17:boolean equals(java.lang.Object) -> equals
+    14:14:java.lang.Object get(java.lang.Object) -> get
+    26:26:java.lang.Void get(java.lang.Object) -> get
+    27:27:java.util.Set getEntries() -> getEntries
+    28:28:java.util.Set getKeys() -> getKeys
+    21:21:int getSize() -> getSize
+    29:29:java.util.Collection getValues() -> getValues
+    18:18:int hashCode() -> hashCode
+    22:22:boolean isEmpty() -> isEmpty
+    14:14:java.util.Set keySet() -> keySet
+    31:31:java.lang.Object readResolve() -> readResolve
+    14:14:int size() -> size
+    19:19:java.lang.String toString() -> toString
+    14:14:java.util.Collection values() -> values
+kotlin.collections.EmptySet -> kotlin.collections.EmptySet:
+# {"id":"sourceFile","fileName":"Sets.kt"}
+    14:14:void <clinit>() -> <clinit>
+    14:14:void <init>() -> <init>
+    14:14:boolean contains(java.lang.Object) -> contains
+    23:23:boolean contains(java.lang.Void) -> contains
+    24:24:boolean containsAll(java.util.Collection) -> containsAll
+    17:17:boolean equals(java.lang.Object) -> equals
+    21:21:int getSize() -> getSize
+    18:18:int hashCode() -> hashCode
+    22:22:boolean isEmpty() -> isEmpty
+    26:26:java.util.Iterator iterator() -> iterator
+    28:28:java.lang.Object readResolve() -> readResolve
+    14:14:int size() -> size
+    19:19:java.lang.String toString() -> toString
+kotlin.collections.MapsKt__MapWithDefaultKt -> kotlin.collections.MapsKt__MapWithDefaultKt:
+# {"id":"sourceFile","fileName":"MapWithDefault.kt"}
+kotlin.collections.MapsKt__MapsJVMKt -> kotlin.collections.MapsKt__MapsJVMKt:
+# {"id":"sourceFile","fileName":"MapsJVM.kt"}
+    104:112:int mapCapacity(int) -> mapCapacity
+    27:27:java.util.Map mapOf(kotlin.Pair) -> mapOf
+    96:96:java.util.Map toSingletonMap(java.util.Map) -> toSingletonMap
+kotlin.collections.MapsKt__MapsKt -> kotlin.collections.MapsKt__MapsKt:
+# {"id":"sourceFile","fileName":"Maps.kt"}
+    40:40:java.util.Map emptyMap() -> emptyMap
+    779:783:java.util.Map optimizeReadOnlyMap(java.util.Map) -> optimizeReadOnlyMap
+    410:413:void putAll(java.util.Map,java.lang.Iterable) -> putAll
+    541:548:java.util.Map toMap(java.lang.Iterable) -> toMap
+    555:555:java.util.Map toMap(java.lang.Iterable,java.util.Map) -> toMap
+kotlin.jvm.JvmClassMappingKt -> kotlin.jvm.JvmClassMappingKt:
+# {"id":"sourceFile","fileName":"JvmClassMapping.kt"}
+    58:71:java.lang.Class getJavaObjectType(kotlin.reflect.KClass) -> getJavaObjectType
+kotlin.jvm.functions.Function0 -> kotlin.jvm.functions.Function0:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function1 -> kotlin.jvm.functions.Function1:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function10 -> kotlin.jvm.functions.Function10:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function11 -> kotlin.jvm.functions.Function11:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function12 -> kotlin.jvm.functions.Function12:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function13 -> kotlin.jvm.functions.Function13:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function14 -> kotlin.jvm.functions.Function14:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function15 -> kotlin.jvm.functions.Function15:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function16 -> kotlin.jvm.functions.Function16:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function17 -> kotlin.jvm.functions.Function17:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function18 -> kotlin.jvm.functions.Function18:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function19 -> kotlin.jvm.functions.Function19:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function2 -> kotlin.jvm.functions.Function2:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function20 -> kotlin.jvm.functions.Function20:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function21 -> kotlin.jvm.functions.Function21:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function22 -> kotlin.jvm.functions.Function22:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function3 -> kotlin.jvm.functions.Function3:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function4 -> kotlin.jvm.functions.Function4:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function5 -> kotlin.jvm.functions.Function5:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function6 -> kotlin.jvm.functions.Function6:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function7 -> kotlin.jvm.functions.Function7:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function8 -> kotlin.jvm.functions.Function8:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.functions.Function9 -> kotlin.jvm.functions.Function9:
+# {"id":"sourceFile","fileName":"Functions.kt"}
+kotlin.jvm.internal.CallableReference -> kotlin.jvm.internal.CallableReference:
+    36:36:void <clinit>() -> <clinit>
+    48:49:void <init>() -> <init>
+    52:54:void <init>(java.lang.Object) -> <init>
+    65:70:kotlin.reflect.KCallable compute() -> compute
+    60:60:java.lang.Object getBoundReceiver() -> getBoundReceiver
+    97:97:java.lang.String getName() -> getName
+    89:89:kotlin.reflect.KDeclarationContainer getOwner() -> getOwner
+    109:109:java.lang.String getSignature() -> getSignature
+kotlin.jvm.internal.CallableReference$NoReceiver -> kotlin.jvm.internal.CallableReference$NoReceiver:
+    40:40:void <clinit>() -> <clinit>
+    39:39:void <init>() -> <init>
+    39:39:kotlin.jvm.internal.CallableReference$NoReceiver access$000() -> access$000
+    43:43:java.lang.Object readResolve() -> readResolve
+kotlin.jvm.internal.ClassBasedDeclarationContainer -> kotlin.jvm.internal.ClassBasedDeclarationContainer:
+# {"id":"sourceFile","fileName":"ClassBasedDeclarationContainer.kt"}
+kotlin.jvm.internal.ClassReference -> kotlin.jvm.internal.ClassReference:
+# {"id":"sourceFile","fileName":"ClassReference.kt"}
+    93:99:void <clinit>() -> <clinit>
+    1376:1376:java.util.List kotlin.collections.CollectionsKt___CollectionsKt.mapIndexed(java.lang.Iterable,kotlin.jvm.functions.Function2) -> <clinit>
+    1376:1376:void <clinit>():99 -> <clinit>
+    1407:1409:java.util.Collection kotlin.collections.CollectionsKt___CollectionsKt.mapIndexedTo(java.lang.Iterable,java.util.Collection,kotlin.jvm.functions.Function2) -> <clinit>
+    1407:1409:void <clinit>():99 -> <clinit>
+    99:99:void <clinit>() -> <clinit>
+    1408:1410:java.util.Collection kotlin.collections.CollectionsKt___CollectionsKt.mapIndexedTo(java.lang.Iterable,java.util.Collection,kotlin.jvm.functions.Function2) -> <clinit>
+    1408:1410:void <clinit>():99 -> <clinit>
+    99:147:void <clinit>() -> <clinit>
+    1164:1165:java.util.Map kotlin.collections.CollectionsKt___CollectionsKt.associateTo(java.lang.Iterable,java.util.Map,kotlin.jvm.functions.Function1) -> <clinit>
+    1164:1165:void <clinit>():124 -> <clinit>
+    148:148:void <clinit>() -> <clinit>
+    1164:1167:java.util.Map kotlin.collections.CollectionsKt___CollectionsKt.associateTo(java.lang.Iterable,java.util.Map,kotlin.jvm.functions.Function1) -> <clinit>
+    1164:1167:void <clinit>():124 -> <clinit>
+    124:155:void <clinit>() -> <clinit>
+    433:433:java.util.Map kotlin.collections.MapsKt__MapsKt.mapValues(java.util.Map,kotlin.jvm.functions.Function1) -> <clinit>
+    433:433:void <clinit>():155 -> <clinit>
+    383:383:java.util.Map kotlin.collections.MapsKt__MapsKt.mapValuesTo(java.util.Map,java.util.Map,kotlin.jvm.functions.Function1) -> <clinit>
+    383:383:void <clinit>():155 -> <clinit>
+    1149:1150:java.util.Map kotlin.collections.CollectionsKt___CollectionsKt.associateByTo(java.lang.Iterable,java.util.Map,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1) -> <clinit>
+    1149:1150:void <clinit>():155 -> <clinit>
+    383:383:java.util.Map kotlin.collections.MapsKt__MapsKt.mapValuesTo(java.util.Map,java.util.Map,kotlin.jvm.functions.Function1) -> <clinit>
+    383:383:void <clinit>():155 -> <clinit>
+    155:155:void <clinit>() -> <clinit>
+    1149:1152:java.util.Map kotlin.collections.CollectionsKt___CollectionsKt.associateByTo(java.lang.Iterable,java.util.Map,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1) -> <clinit>
+    1149:1152:void <clinit>():155 -> <clinit>
+    10:10:java.util.Map access$getFUNCTION_CLASSES$cp() -> <init>
+    10:10:void <init>(java.lang.Class):10 -> <init>
+    83:83:boolean equals(java.lang.Object) -> equals
+    10:10:java.util.Map access$getFUNCTION_CLASSES$cp() -> getJClass
+    10:10:java.lang.Class getJClass():10 -> getJClass
+    86:86:int hashCode() -> hashCode
+    89:89:java.lang.String toString() -> toString
+kotlin.jvm.internal.ClassReference$Companion -> kotlin.jvm.internal.ClassReference$Companion:
+# {"id":"sourceFile","fileName":"ClassReference.kt"}
+    91:91:void <init>(kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+    91:91:void <init>():91 -> <init>
+    91:91:void <init>(kotlin.jvm.internal.DefaultConstructorMarker) -> <init>
+kotlin.jvm.internal.CollectionToArray -> kotlin.jvm.internal.CollectionToArray:
+# {"id":"sourceFile","fileName":"CollectionToArray.kt"}
+    14:14:void <clinit>() -> <clinit>
+    19:20:java.lang.Object[] toArray(java.util.Collection) -> toArray
+    57:58:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    57:58:java.lang.Object[] toArray(java.util.Collection):19 -> toArray
+    21:21:java.lang.Object[] toArray(java.util.Collection) -> toArray
+    59:60:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    59:60:java.lang.Object[] toArray(java.util.Collection):19 -> toArray
+    21:21:java.lang.Object[] toArray(java.util.Collection) -> toArray
+    61:61:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    61:61:java.lang.Object[] toArray(java.util.Collection):19 -> toArray
+    22:22:java.lang.Object[] toArray(java.util.Collection) -> toArray
+    62:78:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    62:78:java.lang.Object[] toArray(java.util.Collection):19 -> toArray
+    23:24:java.lang.Object[] toArray(java.util.Collection) -> toArray
+    64:79:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    64:79:java.lang.Object[] toArray(java.util.Collection):19 -> toArray
+    30:32:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+    57:58:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    57:58:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):31 -> toArray
+    34:35:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+    59:60:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    59:60:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):31 -> toArray
+    34:35:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+    61:64:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    61:64:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):31 -> toArray
+    38:39:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+    62:78:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    62:78:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):31 -> toArray
+    42:46:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+    64:79:java.lang.Object[] toArrayImpl(java.util.Collection,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function2) -> toArray
+    64:79:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):31 -> toArray
+    30:39:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]) -> toArray
+kotlin.jvm.internal.FunctionBase -> kotlin.jvm.internal.FunctionBase:
+# {"id":"sourceFile","fileName":"FunctionBase.kt"}
+kotlin.jvm.internal.Intrinsics -> kotlin.jvm.internal.Intrinsics:
+    16:17:void <init>() -> <init>
+    162:162:boolean areEqual(java.lang.Object,java.lang.Object) -> areEqual
+    86:89:void checkExpressionValueIsNotNull(java.lang.Object,java.lang.String) -> checkExpressionValueIsNotNull
+    124:127:void checkParameterIsNotNull(java.lang.Object,java.lang.String) -> checkParameterIsNotNull
+    246:246:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable) -> sanitizeStackTrace
+    250:262:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable,java.lang.String) -> sanitizeStackTrace
+    36:36:void throwNpe() -> throwNpe
+    136:150:void throwParameterIsNullException(java.lang.String) -> throwParameterIsNullException
+    54:54:void throwUninitializedProperty(java.lang.String) -> throwUninitializedProperty
+    58:59:void throwUninitializedPropertyAccessException(java.lang.String) -> throwUninitializedPropertyAccessException
+kotlin.jvm.internal.Lambda -> kotlin.jvm.internal.Lambda:
+# {"id":"sourceFile","fileName":"Lambda.kt"}
+    10:10:void <init>(int) -> <init>
+    11:11:java.lang.String toString() -> toString
+kotlin.jvm.internal.PropertyReference -> kotlin.jvm.internal.PropertyReference:
+    14:15:void <init>() -> <init>
+    42:53:boolean equals(java.lang.Object) -> equals
+    58:58:int hashCode() -> hashCode
+    63:68:java.lang.String toString() -> toString
+kotlin.jvm.internal.PropertyReference1 -> kotlin.jvm.internal.PropertyReference1:
+    14:15:void <init>() -> <init>
+    24:24:kotlin.reflect.KCallable computeReflected() -> computeReflected
+kotlin.jvm.internal.PropertyReference1Impl -> kotlin.jvm.internal.PropertyReference1Impl:
+    15:19:void <init>(kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String) -> <init>
+    28:28:java.lang.String getName() -> getName
+    23:23:kotlin.reflect.KDeclarationContainer getOwner() -> getOwner
+    33:33:java.lang.String getSignature() -> getSignature
+kotlin.jvm.internal.Reflection -> kotlin.jvm.internal.Reflection:
+    26:39:void <clinit>() -> <clinit>
+    54:54:kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class) -> getOrCreateKotlinClass
+    98:98:kotlin.reflect.KProperty1 property1(kotlin.jvm.internal.PropertyReference1) -> property1
+    73:73:java.lang.String renderLambdaToString(kotlin.jvm.internal.Lambda) -> renderLambdaToString
+kotlin.jvm.internal.ReflectionFactory -> kotlin.jvm.internal.ReflectionFactory:
+    13:13:void <init>() -> <init>
+    29:29:kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class) -> getOrCreateKotlinClass
+    64:64:kotlin.reflect.KProperty1 property1(kotlin.jvm.internal.PropertyReference1) -> property1
+    38:38:java.lang.String renderLambdaToString(kotlin.jvm.internal.Lambda) -> renderLambdaToString
+    43:44:java.lang.String renderLambdaToString(kotlin.jvm.internal.FunctionBase) -> renderLambdaToString
+kotlin.ranges.RangesKt__RangesKt -> kotlin.ranges.RangesKt__RangesKt:
+# {"id":"sourceFile","fileName":"Ranges.kt"}
+kotlin.ranges.RangesKt___RangesKt -> kotlin.ranges.RangesKt___RangesKt:
+# {"id":"sourceFile","fileName":"_Ranges.kt"}
+    995:995:int coerceAtMost(int,int) -> coerceAtMost
+kotlin.reflect.KCallable -> kotlin.reflect.KCallable:
+# {"id":"sourceFile","fileName":"KCallable.kt"}
+kotlin.reflect.KClass -> kotlin.reflect.KClass:
+# {"id":"sourceFile","fileName":"KClass.kt"}
+kotlin.reflect.KDeclarationContainer -> kotlin.reflect.KDeclarationContainer:
+# {"id":"sourceFile","fileName":"KDeclarationContainer.kt"}
+kotlin.reflect.KProperty -> kotlin.reflect.KProperty:
+# {"id":"sourceFile","fileName":"KProperty.kt"}
+kotlin.reflect.KProperty1 -> kotlin.reflect.KProperty1:
+# {"id":"sourceFile","fileName":"KProperty.kt"}
+kotlin.text.CharsKt__CharJVMKt -> kotlin.text.CharsKt__CharJVMKt:
+# {"id":"sourceFile","fileName":"CharJVM.kt"}
+kotlin.text.CharsKt__CharKt -> kotlin.text.CharsKt__CharKt:
+# {"id":"sourceFile","fileName":"Char.kt"}
+    32:37:boolean equals(char,char,boolean) -> equals
+kotlin.text.StringsKt__AppendableKt -> kotlin.text.StringsKt__AppendableKt:
+# {"id":"sourceFile","fileName":"Appendable.kt"}
+kotlin.text.StringsKt__IndentKt -> kotlin.text.StringsKt__IndentKt:
+# {"id":"sourceFile","fileName":"Indent.kt"}
+kotlin.text.StringsKt__RegexExtensionsJVMKt -> kotlin.text.StringsKt__RegexExtensionsJVMKt:
+# {"id":"sourceFile","fileName":"RegexExtensionsJVM.kt"}
+kotlin.text.StringsKt__RegexExtensionsKt -> kotlin.text.StringsKt__RegexExtensionsKt:
+# {"id":"sourceFile","fileName":"RegexExtensions.kt"}
+kotlin.text.StringsKt__StringBuilderJVMKt -> kotlin.text.StringsKt__StringBuilderJVMKt:
+# {"id":"sourceFile","fileName":"StringBuilderJVM.kt"}
+kotlin.text.StringsKt__StringBuilderKt -> kotlin.text.StringsKt__StringBuilderKt:
+# {"id":"sourceFile","fileName":"StringBuilder.kt"}
+kotlin.text.StringsKt__StringNumberConversionsJVMKt -> kotlin.text.StringsKt__StringNumberConversionsJVMKt:
+# {"id":"sourceFile","fileName":"StringNumberConversionsJVM.kt"}
+kotlin.text.StringsKt__StringNumberConversionsKt -> kotlin.text.StringsKt__StringNumberConversionsKt:
+# {"id":"sourceFile","fileName":"StringNumberConversions.kt"}
+kotlin.text.StringsKt__StringsJVMKt -> kotlin.text.StringsKt__StringsJVMKt:
+# {"id":"sourceFile","fileName":"StringsJVM.kt"}
+kotlin.text.StringsKt__StringsKt -> kotlin.text.StringsKt__StringsKt:
+# {"id":"sourceFile","fileName":"Strings.kt"}
+    317:317:int getLastIndex(java.lang.CharSequence) -> getLastIndex
+    1021:1024:int lastIndexOf(java.lang.CharSequence,char,int,boolean) -> lastIndexOf
+    1020:1020:int lastIndexOf$default(java.lang.CharSequence,char,int,boolean,int,java.lang.Object) -> lastIndexOf$default
+    860:868:int lastIndexOfAny(java.lang.CharSequence,char[],int,boolean) -> lastIndexOfAny
+    10843:10843:boolean kotlin.collections.ArraysKt___ArraysKt.any(char[],kotlin.jvm.functions.Function1) -> lastIndexOfAny
+    10843:10843:int lastIndexOfAny(java.lang.CharSequence,char[],int,boolean):868 -> lastIndexOfAny
+    868:868:int lastIndexOfAny(java.lang.CharSequence,char[],int,boolean) -> lastIndexOfAny
+    10844:10844:boolean kotlin.collections.ArraysKt___ArraysKt.any(char[],kotlin.jvm.functions.Function1) -> lastIndexOfAny
+    10844:10844:int lastIndexOfAny(java.lang.CharSequence,char[],int,boolean):868 -> lastIndexOfAny
+    866:872:int lastIndexOfAny(java.lang.CharSequence,char[],int,boolean) -> lastIndexOfAny
+    422:423:java.lang.String substringAfterLast(java.lang.String,char,java.lang.String) -> substringAfterLast
+    421:421:java.lang.String substringAfterLast$default(java.lang.String,char,java.lang.String,int,java.lang.Object) -> substringAfterLast$default
+org.greenrobot.eventbus.AsyncPoster -> org.greenrobot.eventbus.AsyncPoster:
+    29:32:void <init>(org.greenrobot.eventbus.EventBus) -> <init>
+    35:38:void enqueue(org.greenrobot.eventbus.Subscription,java.lang.Object) -> enqueue
+    42:47:void run() -> run
+org.greenrobot.eventbus.BackgroundPoster -> org.greenrobot.eventbus.BackgroundPoster:
+    32:35:void <init>(org.greenrobot.eventbus.EventBus) -> <init>
+    38:46:void enqueue(org.greenrobot.eventbus.Subscription,java.lang.Object) -> enqueue
+    53:72:void run() -> run
+org.greenrobot.eventbus.EventBus -> org.greenrobot.eventbus.EventBus:
+    44:49:void <clinit>() -> <clinit>
+    104:105:void <init>() -> <init>
+    55:124:void <init>(org.greenrobot.eventbus.EventBusBuilder) -> <init>
+    460:466:void addInterfaces(java.util.List,java.lang.Class[]) -> addInterfaces
+    196:201:void checkPostStickyEventToSubscription(org.greenrobot.eventbus.Subscription,java.lang.Object) -> checkPostStickyEventToSubscription
+    79:86:org.greenrobot.eventbus.EventBus getDefault() -> getDefault
+    530:530:java.util.concurrent.ExecutorService getExecutorService() -> getExecutorService
+    494:517:void handleSubscriberException(org.greenrobot.eventbus.Subscription,java.lang.Object,java.lang.Throwable) -> handleSubscriberException
+    475:481:void invokeSubscriber(org.greenrobot.eventbus.PendingPost) -> invokeSubscriber
+    485:491:void invokeSubscriber(org.greenrobot.eventbus.Subscription,java.lang.Object) -> invokeSubscriber
+    442:455:java.util.List lookupAllEventTypes(java.lang.Class) -> lookupAllEventTypes
+    239:258:void post(java.lang.Object) -> post
+    363:384:void postSingleEvent(java.lang.Object,org.greenrobot.eventbus.EventBus$PostingThreadState) -> postSingleEvent
+    388:410:boolean postSingleEventForEventType(java.lang.Object,org.greenrobot.eventbus.EventBus$PostingThreadState,java.lang.Class) -> postSingleEventForEventType
+    414:438:void postToSubscription(org.greenrobot.eventbus.Subscription,java.lang.Object,boolean) -> postToSubscription
+    135:142:void register(java.lang.Object) -> register
+    146:193:void subscribe(java.lang.Object,org.greenrobot.eventbus.SubscriberMethod) -> subscribe
+    540:540:java.lang.String toString() -> toString
+    225:235:void unregister(java.lang.Object) -> unregister
+    209:222:void unsubscribeByEventType(java.lang.Object,java.lang.Class) -> unsubscribeByEventType
+org.greenrobot.eventbus.EventBus$1 -> org.greenrobot.eventbus.EventBus$1:
+    55:55:void <init>(org.greenrobot.eventbus.EventBus) -> <init>
+    55:55:java.lang.Object initialValue() -> initialValue
+    58:58:org.greenrobot.eventbus.EventBus$PostingThreadState initialValue() -> initialValue
+org.greenrobot.eventbus.EventBus$2 -> org.greenrobot.eventbus.EventBus$2:
+    414:414:void <clinit>() -> <clinit>
+org.greenrobot.eventbus.EventBus$PostingThreadState -> org.greenrobot.eventbus.EventBus$PostingThreadState:
+    520:521:void <init>() -> <init>
+org.greenrobot.eventbus.EventBusBuilder -> org.greenrobot.eventbus.EventBusBuilder:
+    30:30:void <clinit>() -> <clinit>
+    32:45:void <init>() -> <init>
+org.greenrobot.eventbus.EventBusException -> org.greenrobot.eventbus.EventBusException:
+    29:30:void <init>(java.lang.String) -> <init>
+    37:38:void <init>(java.lang.String,java.lang.Throwable) -> <init>
+org.greenrobot.eventbus.HandlerPoster -> org.greenrobot.eventbus.HandlerPoster:
+    31:35:void <init>(org.greenrobot.eventbus.EventBus,android.os.Looper,int) -> <init>
+    38:48:void enqueue(org.greenrobot.eventbus.Subscription,java.lang.Object) -> enqueue
+    52:78:void handleMessage(android.os.Message) -> handleMessage
+org.greenrobot.eventbus.NoSubscriberEvent -> org.greenrobot.eventbus.NoSubscriberEvent:
+    30:33:void <init>(org.greenrobot.eventbus.EventBus,java.lang.Object) -> <init>
+org.greenrobot.eventbus.PendingPost -> org.greenrobot.eventbus.PendingPost:
+    22:22:void <clinit>() -> <clinit>
+    28:31:void <init>(java.lang.Object,org.greenrobot.eventbus.Subscription) -> <init>
+    34:44:org.greenrobot.eventbus.PendingPost obtainPendingPost(org.greenrobot.eventbus.Subscription,java.lang.Object) -> obtainPendingPost
+    48:57:void releasePendingPost(org.greenrobot.eventbus.PendingPost) -> releasePendingPost
+org.greenrobot.eventbus.PendingPostQueue -> org.greenrobot.eventbus.PendingPostQueue:
+    19:19:void <init>() -> <init>
+    23:36:void enqueue(org.greenrobot.eventbus.PendingPost) -> enqueue
+    38:46:org.greenrobot.eventbus.PendingPost poll() -> poll
+    49:53:org.greenrobot.eventbus.PendingPost poll(int) -> poll
+org.greenrobot.eventbus.SubscriberExceptionEvent -> org.greenrobot.eventbus.SubscriberExceptionEvent:
+    37:42:void <init>(org.greenrobot.eventbus.EventBus,java.lang.Throwable,java.lang.Object,java.lang.Object) -> <init>
+org.greenrobot.eventbus.SubscriberMethod -> org.greenrobot.eventbus.SubscriberMethod:
+    30:36:void <init>(java.lang.reflect.Method,java.lang.Class,org.greenrobot.eventbus.ThreadMode,int,boolean) -> <init>
+    53:62:void checkMethodString() -> checkMethodString
+    40:49:boolean equals(java.lang.Object) -> equals
+    66:66:int hashCode() -> hashCode
+org.greenrobot.eventbus.SubscriberMethodFinder -> org.greenrobot.eventbus.SubscriberMethodFinder:
+    39:46:void <clinit>() -> <clinit>
+    49:53:void <init>(java.util.List,boolean,boolean) -> <init>
+    56:71:java.util.List findSubscriberMethods(java.lang.Class) -> findSubscriberMethods
+    76:92:java.util.List findUsingInfo(java.lang.Class) -> findUsingInfo
+    141:147:java.util.List findUsingReflection(java.lang.Class) -> findUsingReflection
+    154:185:void findUsingReflectionInSingleClass(org.greenrobot.eventbus.SubscriberMethodFinder$FindState) -> findUsingReflectionInSingleClass
+    96:106:java.util.List getMethodsAndRelease(org.greenrobot.eventbus.SubscriberMethodFinder$FindState) -> getMethodsAndRelease
+    123:137:org.greenrobot.eventbus.meta.SubscriberInfo getSubscriberInfo(org.greenrobot.eventbus.SubscriberMethodFinder$FindState) -> getSubscriberInfo
+    110:119:org.greenrobot.eventbus.SubscriberMethodFinder$FindState prepareFindState() -> prepareFindState
+org.greenrobot.eventbus.SubscriberMethodFinder$FindState -> org.greenrobot.eventbus.SubscriberMethodFinder$FindState:
+    191:195:void <init>() -> <init>
+    222:234:boolean checkAdd(java.lang.reflect.Method,java.lang.Class) -> checkAdd
+    239:252:boolean checkAddWithMethodSignature(java.lang.reflect.Method,java.lang.Class) -> checkAddWithMethodSignature
+    203:206:void initForSubscriber(java.lang.Class) -> initForSubscriber
+    257:267:void moveToSuperclass() -> moveToSuperclass
+    209:217:void recycle() -> recycle
+org.greenrobot.eventbus.Subscription -> org.greenrobot.eventbus.Subscription:
+    27:31:void <init>(java.lang.Object,org.greenrobot.eventbus.SubscriberMethod) -> <init>
+    35:40:boolean equals(java.lang.Object) -> equals
+    46:46:int hashCode() -> hashCode
+org.greenrobot.eventbus.ThreadMode -> org.greenrobot.eventbus.ThreadMode:
+    25:56:void <clinit>() -> <clinit>
+    25:25:void <init>(java.lang.String,int) -> <init>
+    25:25:org.greenrobot.eventbus.ThreadMode valueOf(java.lang.String) -> valueOf
+    25:25:org.greenrobot.eventbus.ThreadMode[] values() -> values
+pub.devrel.easypermissions.AppSettingsDialog -> pub.devrel.easypermissions.AppSettingsDialog:
+    34:34:void <clinit>() -> <clinit>
+    27:27:void <init>(android.os.Parcel,pub.devrel.easypermissions.AppSettingsDialog$1) -> <init>
+    27:27:void <init>(java.lang.Object,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,pub.devrel.easypermissions.AppSettingsDialog$1) -> <init>
+    60:68:void <init>(android.os.Parcel) -> <init>
+    77:86:void <init>(java.lang.Object,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int) -> <init>
+    156:156:int describeContents() -> describeContents
+    89:104:pub.devrel.easypermissions.AppSettingsDialog fromIntent(android.content.Intent,android.app.Activity) -> fromIntent
+    171:171:int getIntentFlags() -> getIntentFlags
+    108:117:void setActivityOrFragment(java.lang.Object) -> setActivityOrFragment
+    140:151:androidx.appcompat.app.AlertDialog showDialog(android.content.DialogInterface$OnClickListener,android.content.DialogInterface$OnClickListener) -> showDialog
+    161:168:void writeToParcel(android.os.Parcel,int) -> writeToParcel
+pub.devrel.easypermissions.AppSettingsDialog$1 -> pub.devrel.easypermissions.AppSettingsDialog$1:
+    34:34:void <init>() -> <init>
+    34:34:java.lang.Object createFromParcel(android.os.Parcel) -> createFromParcel
+    37:37:pub.devrel.easypermissions.AppSettingsDialog createFromParcel(android.os.Parcel) -> createFromParcel
+    34:34:java.lang.Object[] newArray(int) -> newArray
+    42:42:pub.devrel.easypermissions.AppSettingsDialog[] newArray(int) -> newArray
+pub.devrel.easypermissions.AppSettingsDialog$Builder -> pub.devrel.easypermissions.AppSettingsDialog$Builder:
+    181:198:void <init>(android.app.Activity) -> <init>
+    328:343:pub.devrel.easypermissions.AppSettingsDialog build() -> build
+pub.devrel.easypermissions.AppSettingsDialogHolderActivity -> pub.devrel.easypermissions.AppSettingsDialogHolderActivity:
+    16:16:void <init>() -> <init>
+    61:64:void onActivityResult(int,int,android.content.Intent) -> onActivityResult
+    46:57:void onClick(android.content.DialogInterface,int) -> onClick
+    30:34:void onCreate(android.os.Bundle) -> onCreate
+    38:42:void onDestroy() -> onDestroy
+pub.devrel.easypermissions.EasyPermissions -> pub.devrel.easypermissions.EasyPermissions:
+    76:96:boolean hasPermissions(android.content.Context,java.lang.String[]) -> hasPermissions
+    349:356:boolean isUsingAndroidAnnotations(java.lang.Object) -> isUsingAndroidAnnotations
+    293:299:void notifyAlreadyHasPermissions(java.lang.Object,int,java.lang.String[]) -> notifyAlreadyHasPermissions
+    177:209:void onRequestPermissionsResult(int,java.lang.String[],int[],java.lang.Object[]) -> onRequestPermissionsResult
+    112:116:void requestPermissions(android.app.Activity,java.lang.String,int,java.lang.String[]) -> requestPermissions
+    141:155:void requestPermissions(pub.devrel.easypermissions.PermissionRequest) -> requestPermissions
+    309:343:void runAnnotatedMethods(java.lang.Object,int) -> runAnnotatedMethods
+pub.devrel.easypermissions.PermissionRequest -> pub.devrel.easypermissions.PermissionRequest:
+    23:23:void <init>(pub.devrel.easypermissions.helper.PermissionHelper,java.lang.String[],int,java.lang.String,java.lang.String,java.lang.String,int,pub.devrel.easypermissions.PermissionRequest$1) -> <init>
+    38:46:void <init>(pub.devrel.easypermissions.helper.PermissionHelper,java.lang.String[],int,java.lang.String,java.lang.String,java.lang.String,int) -> <init>
+    85:90:boolean equals(java.lang.Object) -> equals
+    51:51:pub.devrel.easypermissions.helper.PermissionHelper getHelper() -> getHelper
+    75:75:java.lang.String getNegativeButtonText() -> getNegativeButtonText
+    56:56:java.lang.String[] getPerms() -> getPerms
+    70:70:java.lang.String getPositiveButtonText() -> getPositiveButtonText
+    65:65:java.lang.String getRationale() -> getRationale
+    60:60:int getRequestCode() -> getRequestCode
+    80:80:int getTheme() -> getTheme
+    95:97:int hashCode() -> hashCode
+    102:104:java.lang.String toString() -> toString
+pub.devrel.easypermissions.PermissionRequest$Builder -> pub.devrel.easypermissions.PermissionRequest$Builder:
+    126:141:void <init>(android.app.Activity,int,java.lang.String[]) -> <init>
+    240:250:pub.devrel.easypermissions.PermissionRequest build() -> build
+    166:167:pub.devrel.easypermissions.PermissionRequest$Builder setRationale(java.lang.String) -> setRationale
+pub.devrel.easypermissions.RationaleDialogClickListener -> pub.devrel.easypermissions.RationaleDialogClickListener:
+    25:35:void <init>(pub.devrel.easypermissions.RationaleDialogFragmentCompat,pub.devrel.easypermissions.RationaleDialogConfig,pub.devrel.easypermissions.EasyPermissions$PermissionCallbacks,pub.devrel.easypermissions.EasyPermissions$RationaleCallbacks) -> <init>
+    40:47:void <init>(pub.devrel.easypermissions.RationaleDialogFragment,pub.devrel.easypermissions.RationaleDialogConfig,pub.devrel.easypermissions.EasyPermissions$PermissionCallbacks,pub.devrel.easypermissions.EasyPermissions$RationaleCallbacks) -> <init>
+    73:76:void notifyPermissionDenied() -> notifyPermissionDenied
+    51:70:void onClick(android.content.DialogInterface,int) -> onClick
+pub.devrel.easypermissions.RationaleDialogConfig -> pub.devrel.easypermissions.RationaleDialogConfig:
+    34:42:void <init>(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> <init>
+    44:51:void <init>(android.os.Bundle) -> <init>
+    82:92:android.app.AlertDialog createFrameworkDialog(android.content.Context,android.content.DialogInterface$OnClickListener) -> createFrameworkDialog
+    67:77:androidx.appcompat.app.AlertDialog createSupportDialog(android.content.Context,android.content.DialogInterface$OnClickListener) -> createSupportDialog
+    54:62:android.os.Bundle toBundle() -> toBundle
+pub.devrel.easypermissions.RationaleDialogFragment -> pub.devrel.easypermissions.RationaleDialogFragment:
+    18:24:void <init>() -> <init>
+    35:42:pub.devrel.easypermissions.RationaleDialogFragment newInstance(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> newInstance
+    47:65:void onAttach(android.content.Context) -> onAttach
+    102:110:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    94:96:void onDetach() -> onDetach
+    69:71:void onSaveInstanceState(android.os.Bundle) -> onSaveInstanceState
+    79:90:void showAllowingStateLoss(android.app.FragmentManager,java.lang.String) -> showAllowingStateLoss
+pub.devrel.easypermissions.RationaleDialogFragmentCompat -> pub.devrel.easypermissions.RationaleDialogFragmentCompat:
+    17:17:void <init>() -> <init>
+    33:40:pub.devrel.easypermissions.RationaleDialogFragmentCompat newInstance(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> newInstance
+    57:74:void onAttach(android.content.Context) -> onAttach
+    87:95:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
+    78:81:void onDetach() -> onDetach
+    48:53:void showAllowingStateLoss(androidx.fragment.app.FragmentManager,java.lang.String) -> showAllowingStateLoss
+pub.devrel.easypermissions.helper.ActivityPermissionHelper -> pub.devrel.easypermissions.helper.ActivityPermissionHelper:
+    21:22:void <init>(android.app.Activity) -> <init>
+    26:27:void directRequestPermissions(int,java.lang.String[]) -> directRequestPermissions
+    36:36:android.content.Context getContext() -> getContext
+    31:31:boolean shouldShowRequestPermissionRationale(java.lang.String) -> shouldShowRequestPermissionRationale
+    46:58:void showRequestPermissionRationale(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> showRequestPermissionRationale
+pub.devrel.easypermissions.helper.AppCompatActivityPermissionsHelper -> pub.devrel.easypermissions.helper.AppCompatActivityPermissionsHelper:
+    15:16:void <init>(androidx.appcompat.app.AppCompatActivity) -> <init>
+    25:26:void directRequestPermissions(int,java.lang.String[]) -> directRequestPermissions
+    35:35:android.content.Context getContext() -> getContext
+    20:20:androidx.fragment.app.FragmentManager getSupportFragmentManager() -> getSupportFragmentManager
+    30:30:boolean shouldShowRequestPermissionRationale(java.lang.String) -> shouldShowRequestPermissionRationale
+pub.devrel.easypermissions.helper.BaseSupportPermissionsHelper -> pub.devrel.easypermissions.helper.BaseSupportPermissionsHelper:
+    19:20:void <init>(java.lang.Object) -> <init>
+    32:44:void showRequestPermissionRationale(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> showRequestPermissionRationale
+pub.devrel.easypermissions.helper.PermissionHelper -> pub.devrel.easypermissions.helper.PermissionHelper:
+    46:48:void <init>(java.lang.Object) -> <init>
+    93:93:java.lang.Object getHost() -> getHost
+    22:29:pub.devrel.easypermissions.helper.PermissionHelper newInstance(android.app.Activity) -> newInstance
+    35:39:pub.devrel.easypermissions.helper.PermissionHelper newInstance(androidx.fragment.app.Fragment) -> newInstance
+    65:71:void requestPermissions(java.lang.String,java.lang.String,java.lang.String,int,int,java.lang.String[]) -> requestPermissions
+    51:56:boolean shouldShowRationale(java.lang.String[]) -> shouldShowRationale
+pub.devrel.easypermissions.helper.SupportFragmentPermissionHelper -> pub.devrel.easypermissions.helper.SupportFragmentPermissionHelper:
+    14:15:void <init>(androidx.fragment.app.Fragment) -> <init>
+    24:25:void directRequestPermissions(int,java.lang.String[]) -> directRequestPermissions
+    34:34:android.content.Context getContext() -> getContext
+    19:19:androidx.fragment.app.FragmentManager getSupportFragmentManager() -> getSupportFragmentManager
+    29:29:boolean shouldShowRequestPermissionRationale(java.lang.String) -> shouldShowRequestPermissionRationale
+uk.co.alt236.easycursor.objectcursor.EasyObjectCursor -> uk.co.alt236.easycursor.objectcursor.EasyObjectCursor:
+    25:31:void <clinit>() -> <clinit>
+    45:46:void <init>(java.lang.Class,java.util.List,java.lang.String) -> <init>
+    39:58:void <init>(java.lang.Class,java.util.List,java.lang.String,uk.co.alt236.easycursor.EasyQueryModel) -> <init>
+    69:75:java.lang.String applyAlias(java.lang.String) -> applyAlias
+    92:96:int getColumnIndex(java.lang.String) -> getColumnIndex
+    102:106:int getColumnIndexOrThrow(java.lang.String) -> getColumnIndexOrThrow
+    112:112:java.lang.String getColumnName(int) -> getColumnName
+    117:117:java.lang.String[] getColumnNames() -> getColumnNames
+    122:122:int getCount() -> getCount
+    127:127:double getDouble(int) -> getDouble
+    131:131:double getDouble(java.lang.reflect.Method) -> getDouble
+    141:141:float getFloat(int) -> getFloat
+    145:145:float getFloat(java.lang.reflect.Method) -> getFloat
+    187:187:int getInt(int) -> getInt
+    191:191:int getInt(java.lang.reflect.Method) -> getInt
+    200:200:java.lang.Object getItem(int) -> getItem
+    205:205:long getLong(int) -> getLong
+    209:209:long getLong(java.lang.reflect.Method) -> getLong
+    240:240:short getShort(int) -> getShort
+    244:244:short getShort(java.lang.reflect.Method) -> getShort
+    253:253:java.lang.String getString(int) -> getString
+    257:257:java.lang.String getString(java.lang.reflect.Method) -> getString
+    271:271:boolean isNull(int) -> isNull
+    275:275:boolean isNull(java.lang.reflect.Method) -> isNull
+    560:594:void populateMethodList(java.lang.Class) -> populateMethodList
+    597:607:java.lang.Object runGetter(java.lang.reflect.Method,java.lang.Object) -> runGetter
+uk.co.alt236.easycursor.util.ObjectConverters -> uk.co.alt236.easycursor.util.ObjectConverters:
+    42:47:double toDouble(java.lang.Object) -> toDouble
+    52:57:float toFloat(java.lang.Object) -> toFloat
+    62:67:int toInt(java.lang.Object) -> toInt
+    73:78:long toLong(java.lang.Object) -> toLong
+    83:88:short toShort(java.lang.Object) -> toShort
+    93:101:java.lang.String toString(java.lang.Object) -> toString
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..a091e9c
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    package="com.shlb.comb">
+    <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
+    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
+    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-sdk
+        tools:overrideLibrary="com.qmuiteam.qmui"
+        />
+
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:supportsRtl="true"
+        android:theme="@style/AppTheme">
+
+
+
+
+        <activity
+            android:name="com.shlb.comb.SplashActivity"
+            android:screenOrientation="portrait"
+            android:theme="@style/SplashTheme"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".activity.ParameterSettingActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan" />
+        <activity
+            android:name=".activity.AdvancedSettingActivity"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="adjustPan" />
+        <activity android:name=".activity.HomeActivity"
+            android:screenOrientation="portrait"
+            />
+        <activity android:name=".activity.ConnActivity"
+            android:screenOrientation="portrait"
+            />
+        <activity android:name=".activity.WriteActivity"
+            android:screenOrientation="portrait"
+            />
+        <activity android:name=".activity.CurrentDeviceActivity"
+            android:screenOrientation="portrait"
+            />
+        <activity android:name=".activity.TestActivity"
+            android:screenOrientation="portrait" />
+        <activity android:name=".activity.NormalWriteActivity" />
+
+
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/shlb/comb/Application.java b/app/src/main/java/com/shlb/comb/Application.java
new file mode 100644
index 0000000..283c71c
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/Application.java
@@ -0,0 +1,82 @@
+package com.shlb.comb;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.util.Log;
+
+
+
+public class Application  extends  android.app.Application{
+    private static final String TAG = "Application:";
+    private static Application instance;
+    private int count = 0;
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        instance = this;
+    }
+    public Application getInstance() {
+        return instance;
+    }
+
+
+
+
+
+    private void ActivityLifecycleCallbacks() {
+        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
+            @Override
+            public void onActivityStopped(Activity activity) {
+//                Logger.d(TAG + activity + "onActivityStopped");
+                count--;
+                if (count == 0) {
+                    Log.e(TAG , activity.getClass().getSimpleName()+">>>>>>>>>>>>>>>>>>>鍒囧埌鍚庡彴  lifecycle");
+//                    if(activity.getClass().getSimpleName().contains("MainActivity")) {
+//                        Intent tent = new Intent(getPackageName() + AppConfig.BACKSTAGE);// 骞挎挱鐨勬爣绛撅紝涓�瀹氳鍜岄渶瑕佹帴鍙楃殑涓�鑷淬��
+////                    sendBroadcast(tent);// 鍙戦�佸箍鎾�
+//                        LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(tent);
+//                    }
+                }
+            }
+
+            @Override
+            public void onActivityStarted(Activity activity) {
+//                Logger.e(TAG + activity + "onActivityStarted");
+                if (count == 0) {
+                    Log.e(TAG , ">>>>>>>>>>>>>>>>>>>鍒囧埌鍓嶅彴  lifecycle");
+//                    if(activity.getClass().getSimpleName().contains("MainActivity")){
+//                        Intent tent = new Intent(getPackageName() + AppConfig.RECEPTION);// 骞挎挱鐨勬爣绛撅紝涓�瀹氳鍜岄渶瑕佹帴鍙楃殑涓�鑷淬��
+////                    sendBroadcast(tent);// 鍙戦�佸箍鎾�
+//                        LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(tent);
+//                    }
+                }
+                count++;
+            }
+
+            @Override
+            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
+               Log.e(TAG ,  activity + "onActivitySaveInstanceState");
+            }
+
+            @Override
+            public void onActivityResumed(Activity activity) {
+              Log.e(TAG ,  activity + "onActivityResumed");
+            }
+
+            @Override
+            public void onActivityPaused(Activity activity) {
+              Log.e(TAG ,  activity + "onActivityPaused");
+            }
+
+            @Override
+            public void onActivityDestroyed(Activity activity) {
+            Log.e(TAG , activity + "onActivityDestroyed");
+            }
+
+            @Override
+            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
+               Log.e(TAG , activity + "onActivityCreated");
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/SplashActivity.java b/app/src/main/java/com/shlb/comb/SplashActivity.java
new file mode 100755
index 0000000..de7321e
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/SplashActivity.java
@@ -0,0 +1,45 @@
+package com.shlb.comb;
+
+
+import android.content.Intent;
+import android.os.Build;
+import android.os.Bundle;
+import android.view.WindowManager;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.shlb.comb.activity.HomeActivity;
+import com.shlb.comb.view.ParticleView;
+
+
+public class SplashActivity extends AppCompatActivity {
+
+    ParticleView ptview;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (Build.VERSION.SDK_INT >= 28) {
+            WindowManager.LayoutParams lp = getWindow().getAttributes();
+            lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+            getWindow().setAttributes(lp);
+        }
+        setContentView(R.layout.activity_splash);
+
+
+        ptview = findViewById(R.id.ptview);
+        ptview.startAnim();
+        ptview.setOnParticleAnimListener(new ParticleView.ParticleAnimListener() {
+            @Override
+            public void onAnimationEnd() {
+                startActivity(new Intent(SplashActivity.this, HomeActivity.class));
+                finish();
+            }
+        });
+    }
+
+
+}
+
+
diff --git a/app/src/main/java/com/shlb/comb/activity/AdvancedSettingActivity.java b/app/src/main/java/com/shlb/comb/activity/AdvancedSettingActivity.java
new file mode 100644
index 0000000..b61f980
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/AdvancedSettingActivity.java
@@ -0,0 +1,377 @@
+package com.shlb.comb.activity;
+
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.text.Html;
+import android.widget.Toast;
+
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.manager.BleGlobalManager;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class AdvancedSettingActivity extends BaseActivity {
+
+    private EditText et_mainboard_version;
+    private Button btn_mainboard_read;
+    private EditText et_display_version;
+    private Button btn_display_read;
+    private Button btn_start_addressing;
+    private Button btn_end_addressing;
+    private Button btn_clear_log;
+
+    private TextView tv_log;
+    private TextView tv_right_text;
+    private TextView tv_mainboard_status;
+    private TextView tv_sensor_status;
+    private StringBuilder logBuilder = new StringBuilder();
+    private String currentExecutingCmd = "";
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_advanced_setting);
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        if (tv_center != null) {
+            tv_center.setText("楂樼骇璁剧疆");
+        }
+        if (iv_left != null) {
+            iv_left.setImageResource(R.mipmap.icon_back);
+        }
+
+        et_mainboard_version = findViewById(R.id.et_mainboard_version);
+        btn_mainboard_read = findViewById(R.id.btn_mainboard_read);
+        et_display_version = findViewById(R.id.et_display_version);
+        btn_display_read = findViewById(R.id.btn_display_read);
+        btn_start_addressing = findViewById(R.id.btn_start_addressing);
+        btn_end_addressing = findViewById(R.id.btn_end_addressing);
+        btn_clear_log = findViewById(R.id.btn_clear_log);
+
+        tv_log = findViewById(R.id.tv_log);
+        tv_right_text = findViewById(R.id.tv_right_text);
+        tv_mainboard_status = findViewById(R.id.tv_mainboard_status);
+        tv_sensor_status = findViewById(R.id.tv_sensor_status);
+        
+        // Initialize log
+        logBuilder.append("鏃ュ織璁板綍:<br>");
+        tv_log.setText(Html.fromHtml(logBuilder.toString()));
+    }
+
+    @Override
+    protected void initData() {
+        updateBluetoothStatus();
+        if (BleGlobalManager.getInstance().isConnected()) {
+            sendCmdWithCrc(CMD.ENTER_SETTING);
+            triggerAutoRead();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (BleGlobalManager.getInstance().isConnected()) {
+            sendCmdWithCrc(CMD.EXIT_SETTING);
+        }
+        super.onDestroy();
+    }
+
+    @Override
+    protected void initEvent() {
+        View.OnClickListener listener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                int id = v.getId();
+                String action = "";
+                if (id == R.id.btn_mainboard_read) {
+                    action = "璇诲彇涓绘澘鐗堟湰";
+                    currentExecutingCmd = CMD.READ_BOARD_VERSION;
+                    sendCmdWithCrc(CMD.READ_BOARD_VERSION);
+                } else if (id == R.id.btn_display_read) {
+                    action = "璇诲彇浼犳劅鍣ㄧ増鏈�";
+                    currentExecutingCmd = CMD.READ_SENSOR_VERSION;
+                    sendCmdWithCrc(CMD.READ_SENSOR_VERSION);
+                } else if (id == R.id.btn_start_addressing) {
+                    action = "寮�濮嬬紪鍧�";
+                    currentExecutingCmd = CMD.WRITE_START_ADDRESS;
+                    sendCmdWithCrc(CMD.WRITE_START_ADDRESS);
+                } else if (id == R.id.btn_end_addressing) {
+                    action = "缁撴潫缂栧潃";
+                    currentExecutingCmd = CMD.WRITE_END_ADDRESS;
+                    sendCmdWithCrc(CMD.WRITE_END_ADDRESS);
+                } else if (id == R.id.btn_clear_log) {
+                    logBuilder.setLength(0);
+                    logBuilder.append("鏃ュ織璁板綍:<br>");
+                    tv_log.setText(Html.fromHtml(logBuilder.toString()));
+                }
+
+                if (!action.isEmpty() && id != R.id.btn_start_addressing && id != R.id.btn_end_addressing) {
+                    // Toast.makeText(AdvancedSettingActivity.this, action, Toast.LENGTH_SHORT).show();
+                    // addLog(action);
+                }
+            }
+        };
+
+        btn_mainboard_read.setOnClickListener(listener);
+        btn_display_read.setOnClickListener(listener);
+        btn_start_addressing.setOnClickListener(listener);
+        btn_end_addressing.setOnClickListener(listener);
+        btn_clear_log.setOnClickListener(listener);
+    }
+
+    private void addLog(String message) {
+        appendLog(message, null);
+    }
+
+    private String getCmdDescription(String hex) {
+        if (hex == null) return "";
+
+        // 鍙戦�佹寚浠ゅ尮閰�
+        if (hex.startsWith(CMD.ENTER_SETTING)) return "-杩涘叆璁惧畾";
+        if (hex.startsWith(CMD.EXIT_SETTING)) return "-閫�鍑鸿瀹�";
+        if (hex.startsWith(CMD.READ_BOARD_VERSION)) return "-璇诲彇涓绘澘鐗堟湰";
+        if (hex.startsWith(CMD.READ_SENSOR_VERSION)) return "-璇诲彇浼犳劅鍣ㄧ増鏈�";
+        if (hex.startsWith(CMD.WRITE_START_ADDRESS)) return "-寮�濮嬬紪鍧�";
+        if (hex.startsWith(CMD.WRITE_END_ADDRESS)) return "-缁撴潫缂栧潃";
+
+        // 鎺ユ敹鏁版嵁鍖归厤
+        // 璇诲彇涓绘澘鐗堟湰杩斿洖 (A55A03 0A ...)
+        if (hex.startsWith("A55A030A")) return "-璇诲彇涓绘澘鐗堟湰";
+        // 璇诲彇浼犳劅鍣ㄧ増鏈繑鍥� (A55A03 0B ...)
+        if (hex.startsWith("A55A030B")) return "-璇诲彇浼犳劅鍣ㄧ増鏈�";
+
+        // 鍐欏叆杩斿洖 (A55A06寮�澶�)
+        if (hex.startsWith("A55A06") && hex.length() >= 12) {
+             return "-鍐欏叆杩斿洖";
+        }
+
+        return "";
+    }
+
+    private void appendLog(String msg, Boolean isSent) {
+        String time = com.blankj.utilcode.util.TimeUtils.getNowString(new java.text.SimpleDateFormat("HH:mm:ss.SSS"));
+
+        String displayMsg = msg;
+        String cmdDesc = "";
+
+        // 濡傛灉鏄� hex 鎸囦护 (绾� 0-9 A-F a-f)锛屽姞绌烘牸鏍煎紡鍖�
+        if (msg.matches("^[0-9A-Fa-f]+$")) {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < msg.length(); i += 2) {
+                if (i + 2 <= msg.length()) {
+                    sb.append(msg.substring(i, i + 2)).append(" ");
+                } else {
+                    sb.append(msg.substring(i));
+                }
+            }
+            displayMsg = sb.toString().trim();
+
+            // 鑾峰彇鎸囦护鎻忚堪
+            cmdDesc = getCmdDescription(msg);
+        }
+
+        String logLine;
+        if (isSent != null) {
+            String color = isSent ? "#1890ff" : "#05aa87"; // Blue for sent, Green for received
+            // 鎷兼帴鍒板墠缂�鍚庨潰: "鍙戦��-璇荤珯鍙�: " 鎴� "鏀跺埌-璇荤珯鍙�: "
+            String prefix = (isSent ? "鍙戦��" : "鏀跺埌") + cmdDesc + ": ";
+            logLine = time + " <font color='" + color + "'>" + prefix + displayMsg + "</font><br>";
+        } else {
+            // System/Local log (Black)
+            logLine = time + " " + displayMsg + "<br>";
+        }
+
+        logBuilder.append(logLine);
+        if (tv_log != null) {
+            tv_log.setText(Html.fromHtml(logBuilder.toString()));
+        }
+    }
+
+    private void updateBluetoothStatus() {
+        if (tv_right_text == null) return;
+        if (BleGlobalManager.getInstance().isConnected()) {
+            String name = "鏈煡璁惧";
+            if (BleGlobalManager.getInstance().getBluetoothLeDevice() != null) {
+                String deviceName = BleGlobalManager.getInstance().getBluetoothLeDevice().getName();
+                if (deviceName != null && !deviceName.isEmpty()) {
+                    name = deviceName;
+                }
+            }
+            tv_right_text.setText(name);
+        } else {
+            tv_right_text.setText("鏈繛鎺�");
+        }
+    }
+
+    private void triggerAutoRead() {
+        showLoading("姝e湪鍚屾鐗堟湰淇℃伅...");
+        // Reset status
+        setLabelStatus(tv_mainboard_status, "", R.color.base_text);
+        setLabelStatus(tv_sensor_status, "", R.color.base_text);
+
+        // Read Mainboard
+        new android.os.Handler().postDelayed(() -> {
+            if (btn_mainboard_read != null) btn_mainboard_read.performClick();
+        }, 200);
+
+        // Read Sensor
+        new android.os.Handler().postDelayed(() -> {
+            if (btn_display_read != null) btn_display_read.performClick();
+        }, 1200);
+
+        // Hide loading
+        new android.os.Handler().postDelayed(() -> hiddeLoading(), 2500);
+    }
+
+    private void setLabelStatus(TextView view, String text, int colorResId) {
+        if (view != null) {
+            view.setText(text);
+            view.setTextColor(getResources().getColor(colorResId));
+        }
+    }
+
+    private void sendCmdWithCrc(String cmd) {
+        if (!BleGlobalManager.getInstance().isConnected()) {
+            Toast.makeText(this, "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+            addLog("閿欒: 钃濈墮鏈繛鎺�");
+            return;
+        }
+
+        byte[] cmdBytes = BleGlobalManager.hexStringToBytes(cmd);
+        if (cmdBytes != null) {
+            String crc = CRCutil.getCRC(cmdBytes);
+            // Pad CRC to 4 chars if needed
+            while (crc.length() < 4) {
+                crc = "0" + crc;
+            }
+            String fullCmd = cmd + crc.toUpperCase();
+
+            appendLog(fullCmd, true); // true for sent (Blue)
+            BleGlobalManager.getInstance().sendCmd(fullCmd);
+        } else {
+            addLog("閿欒: 鎸囦护杞崲澶辫触");
+        }
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEvent(UpdateEvent event) {
+        if (event.getType() == UpdateEvent.Type.CONN_STATU) {
+            updateBluetoothStatus();
+            if (event.getObj() instanceof Integer && (int) event.getObj() == android.bluetooth.BluetoothProfile.STATE_CONNECTED) {
+                triggerAutoRead();
+            }
+        } else if (event.getType() == UpdateEvent.Type.DEVICE_INFO) {
+            String hex = event.getMsg();
+            appendLog(hex, false); // false for received (Green)
+            parseAndRefresh(hex);
+        }
+    }
+
+    private void parseAndRefresh(String hex) {
+        if (hex == null) return;
+
+        // 鍐欏叆鎸囦护鐨勮繑鍥� (A55A06寮�澶�)
+        if (hex.startsWith("A55A06") && hex.length() >= 12) {
+            parseWriteResponse(hex);
+            return;
+        }
+
+        // 璇诲彇鎸囦护鐨勮繑鍥� (A55A03寮�澶�)
+        if (hex.startsWith("A55A03") && hex.length() >= 8) {
+             parseReadResponse(hex);
+        }
+    }
+
+    private void parseReadResponse(String hex) {
+        try {
+            // 鍛戒护绫诲瀷: 绗�7-8浣� (Index 6-8)
+            String cmdType = hex.substring(6, 8);
+            
+            // 鏁版嵁閮ㄥ垎閫氬父浠庣11-12浣嶅紑濮� (Index 10)
+            // 鍋囪鐗堟湰鍙锋暟鎹氨鍦ㄥ悗闈�
+            String dataHex = "";
+            if (hex.length() > 10) {
+                // 鍘绘帀CRC (鏈�鍚�4浣�)? 涓嶇‘瀹氶暱搴︼紝鍏堝彇鎵�鏈�
+                // 鏆傛椂鍙� substring(10) 鐩村埌 length-4 (濡傛灉甯RC)
+                // 绠�鍗曡捣瑙侊紝鍙� substring(10)
+                dataHex = hex.substring(10);
+                // 濡傛灉鏈�鍚�4浣嶆槸CRC锛屽彲鑳介渶瑕佸幓鎺夈�傞�氬父 CRC 鏄渶鍚�4瀛楃銆�
+                if (dataHex.length() > 4) {
+                    dataHex = dataHex.substring(0, dataHex.length() - 4);
+                }
+            }
+
+            if ("0A".equals(cmdType)) {
+                // 涓绘澘鐗堟湰
+                String version = formatVersionHex(dataHex);
+                if (et_mainboard_version != null) et_mainboard_version.setText(version);
+                setLabelStatus(tv_mainboard_status, "(璇诲彇鍊�)", R.color.base_color);
+                addLog("璇诲彇涓绘澘鐗堟湰鎴愬姛: " + version);
+            } else if ("0B".equals(cmdType)) {
+                // 浼犳劅鍣ㄧ増鏈�
+                String version = formatVersionHex(dataHex);
+                if (et_display_version != null) et_display_version.setText(version);
+                setLabelStatus(tv_sensor_status, "(璇诲彇鍊�)", R.color.base_color);
+                addLog("璇诲彇浼犳劅鍣ㄧ増鏈垚鍔�: " + version);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            addLog("瑙f瀽璇诲彇杩斿洖寮傚父: " + e.getMessage());
+        }
+    }
+
+    private String formatVersionHex(String hex) {
+        if (hex == null || hex.isEmpty()) return "";
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < hex.length(); i++) {
+            sb.append(hex.charAt(i));
+            if (i % 2 == 1 && i < hex.length() - 1) {
+                sb.append("-");
+            }
+        }
+        return sb.toString();
+    }
+
+    private void parseWriteResponse(String hex) {
+        try {
+            // 鍐欏叆鎸囦护鐨勮繑鍥� (A55A06寮�澶�)
+            if (hex.startsWith("A55A06") && hex.length() >= 12) {
+                // 缁撴灉鐘舵��: 绗�11-12浣� (Index 10-12)
+                String statusHex = hex.substring(10, 12);
+                boolean isSuccess = "01".equals(statusHex);
+
+                if (!currentExecutingCmd.isEmpty()) {
+                    if (isSuccess) {
+                        if (currentExecutingCmd.startsWith(CMD.WRITE_START_ADDRESS)) {
+                            addLog("寮�濮嬬紪鍧�鎴愬姛");
+                            Toast.makeText(this, "寮�濮嬬紪鍧�鎴愬姛", Toast.LENGTH_SHORT).show();
+                        } else if (currentExecutingCmd.startsWith(CMD.WRITE_END_ADDRESS)) {
+                            addLog("缁撴潫缂栧潃鎴愬姛");
+                            Toast.makeText(this, "缁撴潫缂栧潃鎴愬姛", Toast.LENGTH_SHORT).show();
+                        }
+                    } else {
+                         addLog("鎿嶄綔澶辫触: " + hex);
+                         Toast.makeText(this, "鎿嶄綔澶辫触", Toast.LENGTH_SHORT).show();
+                    }
+                    // Reset current command after handling
+                    currentExecutingCmd = "";
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            addLog("瑙f瀽寮傚父: " + e.getMessage());
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/shlb/comb/activity/ConnActivity.java b/app/src/main/java/com/shlb/comb/activity/ConnActivity.java
new file mode 100644
index 0000000..f7a434d
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/ConnActivity.java
@@ -0,0 +1,444 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattService;
+import android.bluetooth.BluetoothProfile;
+import android.content.Intent;
+import android.view.View;
+import android.view.ViewGroup;
+
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ConnActivity extends BaseActivity {
+    QMUIGroupListView mGroupListView;
+    QMUIEmptyView mEmptyView;
+
+    //杩炴帴绠$悊
+    private BluetoothConnectManager connectManager;
+    //杩炴帴鐘舵��
+    private int connectState = 0;
+    //鏄惁杩炴帴
+    private boolean mConnected = false;
+
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_conn);
+        mGroupListView = findViewById(R.id.groupListView);
+        mEmptyView = findViewById(R.id.emptyView);
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        initTitlebar();
+        tv_center.setText("钃濈墮淇℃伅");
+        mEmptyView.show(true);
+
+
+        initGroupListView();
+
+    }
+
+    @Override
+    protected void initData() {
+        BluetoothLeDevice mDevice = Singletion.getInstance().mDevice;
+        initConn(mDevice);
+
+
+    }
+
+    @Override
+    protected void initEvent() {
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_left) {
+            this.onBackPressed();
+        } else if (id == R.id.iv_right) {
+        }
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventRefresh(UpdateEvent event) {
+        switch (event.getType()) {
+            case CONN_STATU:
+
+                int statu = (int) event.getObj();
+                //0-鏂紑  2-杩炴帴
+                switch (statu) {
+                    case 0:
+                        mConnected = false;
+                        Singletion.getInstance().mConnected = false;
+                        break;
+                    case 2:
+                        mConnected = true;
+                        Singletion.getInstance().mConnected = true;
+                        mEmptyView.hide();
+                        Toast("杩炴帴鎴愬姛锛�");
+                        break;
+                }
+
+                break;
+            case CONN_SERVICE:
+                //鑾峰彇鏈嶅姟鎴愬姛鍚庢洿鏂癠I
+                updateUi();
+                break;
+
+
+            case SCAN_UPDATE:
+
+
+                break;
+            case CONFIG_CHANGE:
+
+                break;
+        }
+    }
+
+    private ConnectStateListener stateListener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            switch (state) {
+                case CONNECTED:
+
+
+                    break;
+                case CONNECTING:
+
+
+                    break;
+                case NORMAL:
+
+
+                    break;
+            }
+            invalidateOptionsMenu();
+        }
+    };
+
+    //杩炴帴璁惧
+    private void initConn(BluetoothLeDevice device) {
+        if (connectManager == null) {
+            connectManager = BluetoothConnectManager.getInstance(this);
+            connectManager.addConnectStateListener(stateListener);
+            connectManager.setBluetoothGattCallback(new BluetoothGattCallback() {
+
+                @Override
+                public void onCharacteristicRead(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final int status) {
+                    if (status == BluetoothGatt.GATT_SUCCESS) {
+                        EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.BLE_DATA, characteristic, "read"));
+                    } else {
+                        EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.BLE_DATA, characteristic, "fail"));
+                        LogUtils.e(TAG, "fail to read characteristic");
+                    }
+                }
+
+                @Override
+                public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
+                    super.onCharacteristicWrite(gatt, characteristic, status);
+                    if (status == BluetoothGatt.GATT_SUCCESS) {
+                        EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.BLE_DATA, characteristic, "write"));
+                    } else {
+                        EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.BLE_DATA, characteristic, "fail"));
+                        LogUtils.e(TAG, "fail to write characteristic");
+                    }
+                }
+
+                @Override
+                public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
+                    super.onCharacteristicChanged(gatt, characteristic);
+                    EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.BLE_DATA, characteristic, "notify"));
+                }
+
+                @Override
+                public void onConnectionStateChange(BluetoothGatt gatt, final int status, int newState) {
+                    super.onConnectionStateChange(gatt, status, newState);
+                    EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.CONN_STATU, newState, "conn_statu"));
+                    connectState = newState;
+
+
+                }
+
+                @Override
+                public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
+                    super.onServicesDiscovered(gatt, status);
+                    if (status == BluetoothGatt.GATT_SUCCESS) {
+                        runOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                displayGattServices(gatt.getServices());
+                            }
+                        });
+                    }
+
+                }
+            });
+        }
+        connectManager.connect(device.getAddress());
+    }
+
+
+    /**
+     * 鑾峰彇褰撳墠杩炴帴钃濈墮鍙啓鏈嶅姟
+     *
+     * @param gattServices
+     */
+    private void displayGattServices(List<BluetoothGattService> gattServices) {
+        Singletion.getInstance().mbluetoothServices.clear();
+        List<Map<String, String>> res = new ArrayList<>();
+        for (final BluetoothGattService gattService : gattServices) {
+            final List<BluetoothGattCharacteristic> gattCharacteristics = gattService.getCharacteristics();
+            for (final BluetoothGattCharacteristic gattCharacteristic : gattCharacteristics) {
+                Map<String, String> map = new HashMap<>();
+
+                String property = getPropertyString(gattCharacteristic.getProperties());
+                //鍙渶瑕佸彲鍐欐湇鍔�
+                if (property.contains("Write")) {
+                    map.put("name", property);
+                    map.put("uuid", gattCharacteristic.getUuid().toString());
+                    res.add(map);
+                }
+            }
+        }
+        Singletion.getInstance().mbluetoothServices.addAll(res);
+        EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.CONN_SERVICE));
+
+    }
+
+    private String getPropertyString(int property) {
+        StringBuilder sb = new StringBuilder("(");
+        //Read
+        if ((property & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
+            sb.append("Read ");
+        }
+        //Write
+        if ((property & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0
+                || (property & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0) {
+            sb.append("Write ");
+        }
+        //Notify
+        if ((property & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
+            sb.append("Notity ");
+        }
+
+        if ((property & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+            sb.append("Indicate ");
+        }
+
+        //Broadcast
+        if ((property & BluetoothGattCharacteristic.PROPERTY_BROADCAST) > 0) {
+            sb.append("Broadcast ");
+        }
+        sb.deleteCharAt(sb.length() - 1);
+        sb.append(")");
+        return sb.toString();
+    }
+
+    public void initTitlebar() {
+        iv_right.setVisibility(View.VISIBLE);
+        iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+        iv_right.setImageDrawable(getResources().getDrawable(R.mipmap.icon_topbar_overflow));
+    }
+
+    QMUICommonListItemView nameItem;
+    QMUICommonListItemView macItem;
+    QMUICommonListItemView statuItem;
+    View.OnClickListener onClickListener;
+
+    private void initGroupListView() {
+        nameItem = mGroupListView.createItemView(null,
+                "钃濈墮", "鏈繛鎺�",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_NONE);
+        nameItem.setId(R.id.address_ble_name);
+
+        macItem = mGroupListView.createItemView(null,
+                "mac", "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_NONE);
+        macItem.setId(R.id.address_ble_mac);
+
+        statuItem = mGroupListView.createItemView(null,
+                "鐘舵��", "鏈繛鎺�",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_NONE);
+        statuItem.setId(R.id.address_ble_statu);
+
+
+        onClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (v instanceof QMUICommonListItemView) {
+                    CharSequence text = ((QMUICommonListItemView) v).getDetailText();
+                    List<Map<String, String>> mbluetoothServices = Singletion.getInstance().mbluetoothServices;
+
+                    CharSequence title = ((QMUICommonListItemView) v).getText();
+                    if(title.equals("(浼犳劅鍣ㄧ紪鍧�)绠�鏄撴ā寮�")){
+                        if(mbluetoothServices == null ||  mbluetoothServices.size() < 1 ){
+                            Toast("鏈嶅姟淇℃伅閿欒锛岃閲嶆柊杩炴帴");
+                            return;
+                        }
+                        Map<String, String> map = mbluetoothServices.get(0);
+                        Singletion.getInstance().uuid  = map.get("uuid").toString();
+                        Intent intent = new Intent(ConnActivity.this,WriteActivity.class);
+                        startActivity(intent);
+                    }else if(title.equals("(浼犳劅鍣ㄧ紪鍧�)涓撳妯″紡")){
+                        if(mbluetoothServices == null ||  mbluetoothServices.size() < 2 ){
+                            Toast("鏈嶅姟淇℃伅閿欒锛岃閲嶆柊杩炴帴");
+                            return;
+                        }
+                        Map<String, String> map = mbluetoothServices.get(1);
+                        Singletion.getInstance().uuid  = map.get("uuid").toString();
+                        Intent intent = new Intent(ConnActivity.this,NormalWriteActivity.class);
+                        startActivity(intent);
+                    }
+
+                }
+            }
+        };
+
+        int size = QMUIDisplayHelper.dp2px(this, 20);
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 1:钃濈墮淇℃伅")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(nameItem, onClickListener)
+                .addItemView(statuItem, onClickListener)
+                .addItemView(macItem, onClickListener)
+                .addTo(mGroupListView);
+
+
+    }
+
+    private void updateUi() {
+        //TODO 鍔ㄦ�佹洿鏂癠I
+        BluetoothLeDevice mDevice = Singletion.getInstance().mDevice;
+        List<Map<String, String>> mbluetoothServices = Singletion.getInstance().mbluetoothServices;
+        boolean mConnected = Singletion.getInstance().mConnected;
+        if (!mConnected || mbluetoothServices == null || mDevice == null) {
+            Toast("寮傚父閿欒锛岃閫�鍑洪噸璇曪紒");
+
+        } else {
+            if (nameItem != null) nameItem.setDetailText(mDevice.getName());
+            if (statuItem != null) statuItem.setDetailText("宸茶繛鎺�");
+            if (macItem != null) macItem.setDetailText(mDevice.getAddress());
+
+            //鍒涘缓鍙啓鏈嶅姟淇℃伅
+            for (int i = 0; i < mbluetoothServices.size(); i++) {
+                Map<String, String> map = mbluetoothServices.get(i);
+                //map.get("uuid")
+                String title =  i == 0 ? "(浼犳劅鍣ㄧ紪鍧�)绠�鏄撴ā寮�"   : "(浼犳劅鍣ㄧ紪鍧�)涓撳妯″紡" ;
+                QMUICommonListItemView itemView = mGroupListView.createItemView(title);
+                itemView.setOrientation(QMUICommonListItemView.VERTICAL);
+                itemView.setDetailText(map.get("name"));
+                int size = QMUIDisplayHelper.dp2px(this, 20);
+                int section = i + 2;
+                int service = i + 1;
+                itemView.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+                QMUIGroupListView.newSection(this)
+                        .setTitle("Section " + section + ":缂栧潃鏈嶅姟" + service)
+                        .setDescription("")
+                        .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                        .addItemView(itemView, onClickListener)
+                        .addTo(mGroupListView);
+
+
+            }
+        }
+
+
+    }
+
+    private void disconnect() {
+        if (connectManager != null) {
+            if (connectManager.isConnectDevice()) {
+                if (Singletion.getInstance().mDevice != null && Singletion.getInstance().mDevice.getAddress() != null) {
+                    connectManager.disconnect(Singletion.getInstance().mDevice.getAddress());
+                    connectManager.removeConnectStateListener(stateListener);
+                }
+
+            }
+        }
+    }
+
+    private void connect() {
+        if (connectManager != null) {
+            if (!connectManager.isConnectDevice()) {
+                if (Singletion.getInstance().mDevice != null && Singletion.getInstance().mDevice.getAddress() != null)
+                    connectManager.connect(Singletion.getInstance().mDevice.getAddress());
+            }
+        }
+    }
+
+    private void showDisconnectDialog() {
+
+        new QMUIDialog.MessageDialogBuilder(ConnActivity.this)
+                .setTitle("鎻愮ず")
+                .setMessage("钃濈墮宸茶繛鎺ワ紝鏄惁鏂紑杩炴帴锛�")
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        disconnect();
+                        dialog.dismiss();
+                        finish();
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+
+    @Override
+    public void onBackPressed() {
+        if (connectManager != null && connectManager.isConnectDevice()) {
+            showDisconnectDialog();
+        } else {
+            super.onBackPressed();
+        }
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        disconnect();
+
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/CurrentDeviceActivity.java b/app/src/main/java/com/shlb/comb/activity/CurrentDeviceActivity.java
new file mode 100644
index 0000000..d280cd3
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/CurrentDeviceActivity.java
@@ -0,0 +1,151 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.view.View;
+
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+public class CurrentDeviceActivity extends BaseActivity {
+
+    private QMUIGroupListView mGroupHardware;
+    private QMUIGroupListView mGroupBle;
+    private QMUIGroupListView mGroupAudio;
+    private QMUIGroupListView mGroupScreen;
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_current_device);
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        tv_center.setText("璁惧淇℃伅");
+        if (iv_right != null) iv_right.setVisibility(View.GONE);
+        if (iv_left != null) {
+            iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+            iv_left.setOnClickListener(v -> finish());
+        }
+
+        mGroupHardware = findViewById(R.id.group_hardware);
+        mGroupBle = findViewById(R.id.group_ble);
+        mGroupAudio = findViewById(R.id.group_audio);
+        mGroupScreen = findViewById(R.id.group_screen);
+    }
+
+    @Override
+    protected void initData() {
+        initHardwareInfo();
+        initBleInfo();
+        initAudioInfo();
+        initScreenInfo();
+    }
+
+    @Override
+    protected void initEvent() {
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEvent(UpdateEvent event) {
+        // Required by BaseActivity's EventBus registration
+    }
+
+    private void initHardwareInfo() {
+        QMUIGroupListView.newSection(this)
+                .setTitle("纭欢淇℃伅")
+                .addItemView(createItem("璁惧鍚嶇О", Build.DEVICE), null)
+                .addItemView(createItem("Android 鐗堟湰", Build.VERSION.RELEASE), null)
+                .addItemView(createItem("鍒堕�犲晢", Build.MANUFACTURER), null)
+                .addItemView(createItem("鍨嬪彿", Build.MODEL), null)
+                .addItemView(createItem("鏋勫缓鐗堟湰", Build.DISPLAY), null)
+                .addItemView(createItem("涓绘澘", Build.BOARD), null)
+                .addItemView(createItem("浜у搧鍚�", Build.PRODUCT), null)
+                .addTo(mGroupHardware);
+    }
+
+    private void initBleInfo() {
+        PackageManager pm = getPackageManager();
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+
+        boolean isBleSupported = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);
+        
+        QMUIGroupListView.Section section = QMUIGroupListView.newSection(this)
+                .setTitle("浣庡姛鑰楄摑鐗�");
+
+        section.addItemView(createItem("鏀寔 BLE", isBleSupported ? "鏄�" : "鍚�", isBleSupported), null);
+        
+        if (adapter != null) {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                boolean isOffloadedFilteringSupported = adapter.isOffloadedFilteringSupported();
+                boolean isOffloadedScanBatchingSupported = adapter.isOffloadedScanBatchingSupported();
+                boolean isMultipleAdvertisementSupported = adapter.isMultipleAdvertisementSupported();
+                
+                section.addItemView(createItem("鏀寔鑴辨満杩囨护", isOffloadedFilteringSupported ? "鏄�" : "鍚�", isOffloadedFilteringSupported), null);
+                section.addItemView(createItem("鏀寔鑴辨満鎵弿鎵瑰鐞�", isOffloadedScanBatchingSupported ? "鏄�" : "鍚�", isOffloadedScanBatchingSupported), null);
+                section.addItemView(createItem("鏀寔澶氶噸骞挎挱", isMultipleAdvertisementSupported ? "鏄�" : "鍚�", isMultipleAdvertisementSupported), null);
+            }
+            
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                boolean isLe2MPhySupported = adapter.isLe2MPhySupported();
+                boolean isLeCodedPhySupported = adapter.isLeCodedPhySupported();
+                boolean isLeExtendedAdvertisingSupported = adapter.isLeExtendedAdvertisingSupported();
+                boolean isLePeriodicAdvertisingSupported = adapter.isLePeriodicAdvertisingSupported();
+
+                section.addItemView(createItem("鏀寔楂橀�� (PHY 2M)", isLe2MPhySupported ? "鏄�" : "鍚�", isLe2MPhySupported), null);
+                section.addItemView(createItem("鏀寔杩滆窛绂� (PHY Coded)", isLeCodedPhySupported ? "鏄�" : "鍚�", isLeCodedPhySupported), null);
+                section.addItemView(createItem("鏀寔鎵╁睍骞挎挱", isLeExtendedAdvertisingSupported ? "鏄�" : "鍚�", isLeExtendedAdvertisingSupported), null);
+                section.addItemView(createItem("鏀寔鍛ㄦ湡鎬у箍鎾�", isLePeriodicAdvertisingSupported ? "鏄�" : "鍚�", isLePeriodicAdvertisingSupported), null);
+            }
+             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                 int maxDataLength = adapter.isLeExtendedAdvertisingSupported() ? 1650 : 31;
+                 section.addItemView(createItem("鏈�澶у箍鎾暟鎹暱搴�", String.valueOf(maxDataLength)), null);
+             }
+        }
+
+        section.addTo(mGroupBle);
+    }
+
+    private void initAudioInfo() {
+        QMUIGroupListView.newSection(this)
+                .setTitle("钃濈墮闊抽")
+                .addItemView(createItem("鏀寔 LE Audio", "鍚�", false), null)
+                .addItemView(createItem("鏀寔 LE 骞挎挱婧�", "鍚�", false), null)
+                .addItemView(createItem("鏀寔 LE 骞挎挱鍔╂墜", "鍚�", false), null)
+                .addItemView(createItem("鏈�澶ц繛鎺ラ煶棰戣澶囨暟", "0"), null)
+                .addTo(mGroupAudio);
+    }
+
+    private void initScreenInfo() {
+        android.util.DisplayMetrics dm = getResources().getDisplayMetrics();
+        int screenWidth = dm.widthPixels;
+        int screenHeight = dm.heightPixels;
+        float density = dm.density;
+        int densityDpi = dm.densityDpi;
+        
+        QMUIGroupListView.newSection(this)
+                .setTitle("灞忓箷淇℃伅")
+                .addItemView(createItem("鍒嗚鲸鐜�", screenWidth + " x " + screenHeight), null)
+                .addItemView(createItem("瀵嗗害", density + " (" + densityDpi + " dpi)"), null)
+                .addTo(mGroupScreen);
+    }
+
+    private QMUICommonListItemView createItem(String title, String detail) {
+        return createItem(title, detail, true);
+    }
+
+    private QMUICommonListItemView createItem(String title, String detail, boolean isSupported) {
+        QMUICommonListItemView item = mGroupHardware.createItemView(title);
+        item.setOrientation(QMUICommonListItemView.HORIZONTAL);
+        item.setDetailText(detail);
+        return item;
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/HomeActivity.java b/app/src/main/java/com/shlb/comb/activity/HomeActivity.java
new file mode 100644
index 0000000..6be9c20
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/HomeActivity.java
@@ -0,0 +1,355 @@
+package com.shlb.comb.activity;
+
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.os.Build;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.AdapterView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.fragment.DeviceListFragment;
+import com.shlb.comb.fragment.SettingsFragment;
+import com.shlb.comb.manager.BleGlobalManager;
+import com.shlb.comb.model.BluetoothLeDeviceStore;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+public class HomeActivity extends BaseActivity implements AdapterView.OnItemClickListener {
+
+    private DrawerLayout drawerLayout;
+    protected TextView tv_scan;
+    private long lastScanClickTime = 0; // 鐢ㄤ簬鑺傛祦
+
+    // Bluetooth Variables
+    private BluetoothScanManager scanManager;
+    private BluetoothLeDeviceStore mDeviceStore;
+    private BluetoothUtils mBluetoothUtils;
+
+    private SettingsFragment settingsFragment;
+    private DeviceListFragment deviceListFragment;
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_home);
+        drawerLayout = findViewById(R.id.drawer_layout);
+
+        // 璁剧疆鍏ㄥ睆锛屼娇鎶藉眽鍙互瑕嗙洊鐘舵�佹爮鍜屽鑸爮
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.TRANSPARENT);
+        }
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        tv_scan = findViewById(R.id.tv_scan);
+
+        try {
+            TextView tvVersion = findViewById(R.id.tv_version);
+            if (tvVersion != null) {
+                String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
+                tvVersion.setText("Version " + versionName);
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        initTitlebar();
+
+        getSupportFragmentManager().addOnBackStackChangedListener(() -> {
+            Fragment current = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
+            if (current instanceof SettingsFragment) {
+                tv_center.setText("瀹炴椂鐩戞帶");
+                if (iv_left != null) {
+                    iv_left.setImageResource(R.mipmap.icon_menu);
+                    iv_left.setOnClickListener(v -> {
+                        if (drawerLayout != null) {
+                            drawerLayout.openDrawer(GravityCompat.START);
+                        }
+                    });
+                }
+                if (tv_scan != null) {
+                    tv_scan.setVisibility(View.VISIBLE);
+                    if (BleGlobalManager.getInstance().isConnected()) {
+                        updateConnectedUI();
+                    } else {
+                        tv_scan.setText("杩炴帴钃濈墮");
+                        tv_scan.setOnClickListener(v -> showDeviceListFragment());
+                    }
+                }
+                if (iv_right != null) iv_right.setVisibility(View.GONE);
+            } else if (current instanceof DeviceListFragment) {
+                tv_center.setText("钃濈墮璁惧");
+                if (iv_left != null) {
+                    iv_left.setImageResource(R.mipmap.icon_back);
+                    iv_left.setOnClickListener(v -> onBackPressed());
+                }
+                if (tv_scan != null) {
+                    tv_scan.setVisibility(View.VISIBLE);
+                    tv_scan.setText("SCAN");
+                    tv_scan.setOnClickListener(v -> {
+                        long currentTime = System.currentTimeMillis();
+                        if (currentTime - lastScanClickTime < 2000) {
+                            Toast("鐐瑰嚮杩囧揩锛岃绋嶅悗閲嶈瘯锛�");
+                            return;
+                        }
+                        lastScanClickTime = currentTime;
+                        if (deviceListFragment != null && deviceListFragment.isVisible()) {
+                            deviceListFragment.startScan();
+                        }
+                    });
+                }
+                if (iv_right != null) iv_right.setVisibility(View.VISIBLE);
+            }
+        });
+        
+        // Default show SettingsFragment
+        showSettingsFragment();
+    }
+
+    @Override
+    protected void initData() {
+        mBluetoothUtils = BluetoothUtils.getInstance(this);
+        mDeviceStore = new BluetoothLeDeviceStore();
+        scanManager = BluetoothScanManager.getInstance(this);
+    }
+
+    @Override
+    protected void initEvent() {
+        iv_left.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (drawerLayout != null) {
+                    drawerLayout.openDrawer(GravityCompat.START);
+                }
+            }
+        });
+
+        // 鎶藉眽鑿滃崟鐐瑰嚮浜嬩欢
+        // 瀹炴椂鐩戞帶
+        findViewById(R.id.menu_monitor).setOnClickListener(v -> {
+            updateDrawerSelection(R.id.menu_monitor);
+            Toast.makeText(this, "瀹炴椂鐩戞帶", Toast.LENGTH_SHORT).show();
+            showSettingsFragment();
+            drawerLayout.closeDrawer(GravityCompat.START);
+        });
+
+        // 钃濈墮璁惧
+        findViewById(R.id.menu_devices).setOnClickListener(v -> {
+            updateDrawerSelection(R.id.menu_devices);
+            showDeviceListFragment();
+            drawerLayout.closeDrawer(GravityCompat.START);
+        });
+
+        // 褰撳墠璁惧
+        findViewById(R.id.menu_current_device).setOnClickListener(v -> {
+            drawerLayout.closeDrawer(GravityCompat.START);
+            startActivity(new Intent(this, CurrentDeviceActivity.class));
+        });
+
+        // 鍙傛暟璁惧畾
+        findViewById(R.id.menu_settings).setOnClickListener(v -> {
+            drawerLayout.closeDrawer(GravityCompat.START);
+            startActivity(new Intent(this, ParameterSettingActivity.class));
+        });
+
+        // 楂樼骇璁剧疆
+        findViewById(R.id.menu_advanced_settings).setOnClickListener(v -> {
+            drawerLayout.closeDrawer(GravityCompat.START);
+            startActivity(new Intent(this, AdvancedSettingActivity.class));
+        });
+    }
+
+    private void updateDrawerSelection(int selectedId) {
+        int[] menuIds = {R.id.menu_monitor, R.id.menu_devices, R.id.menu_current_device, R.id.menu_settings, R.id.menu_advanced_settings};
+        for (int id : menuIds) {
+            View view = findViewById(id);
+            if (view != null) {
+                boolean isSelected = (id == selectedId);
+                view.setSelected(isSelected);
+                
+                // Manually set selected state for children because duplicateParentState="true" might be missing
+                if (view instanceof android.view.ViewGroup) {
+                    android.view.ViewGroup group = (android.view.ViewGroup) view;
+                    for (int i = 0; i < group.getChildCount(); i++) {
+                        group.getChildAt(i).setSelected(isSelected);
+                    }
+                }
+            }
+        }
+    }
+
+    public void showSettingsFragment() {
+        tv_center.setText("瀹炴椂鐩戞帶");
+        if (tv_scan != null) {
+            tv_scan.setVisibility(View.VISIBLE);
+            tv_scan.setText("杩炴帴钃濈墮");
+            tv_scan.setOnClickListener(v -> showDeviceListFragment());
+        }
+        if (iv_right != null) iv_right.setVisibility(View.GONE);
+
+        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+        if (settingsFragment == null) {
+            settingsFragment = new SettingsFragment();
+        }
+        ft.replace(R.id.fragment_container, settingsFragment);
+        ft.commit();
+    }
+
+    public void showDeviceListFragment() {
+        updateDrawerSelection(R.id.menu_devices);
+        tv_center.setText("钃濈墮璁惧");
+        if (tv_scan != null) {
+            tv_scan.setVisibility(View.VISIBLE);
+            tv_scan.setText("SCAN");
+            tv_scan.setOnClickListener(v -> {
+                // 鑺傛祦閫昏緫锛氫袱绉掑唴鍙兘鐐逛竴娆�
+                long currentTime = System.currentTimeMillis();
+                if (currentTime - lastScanClickTime < 2000) {
+                    Toast("鐐瑰嚮杩囧揩锛岃绋嶅悗閲嶈瘯锛�");
+                    return;
+                }
+                lastScanClickTime = currentTime;
+                if (deviceListFragment != null && deviceListFragment.isVisible()&&scanManager!=null&&!scanManager.isScanning()) {
+                    deviceListFragment.startScan();
+                }
+            });
+        }
+        if (iv_right != null) iv_right.setVisibility(View.VISIBLE);
+
+        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+        if (deviceListFragment == null) {
+            deviceListFragment = new DeviceListFragment();
+        }
+        ft.replace(R.id.fragment_container, deviceListFragment);
+        ft.addToBackStack(null);
+        ft.commit();
+    }
+
+
+    public BluetoothScanManager getScanManager() {
+        return scanManager;
+    }
+
+    public BluetoothLeDeviceStore getDeviceStore() {
+        return mDeviceStore;
+    }
+
+    public BluetoothUtils getBluetoothUtils() {
+        return mBluetoothUtils;
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventRefresh(UpdateEvent event) {
+        if (event.getType() == UpdateEvent.Type.CONN_STATU) {
+            int status = 0;
+            if (event.getObj() instanceof Integer) {
+                status = (int) event.getObj();
+            }
+            if (status == android.bluetooth.BluetoothProfile.STATE_CONNECTED) {
+                updateConnectedUI();
+            } else if (status == android.bluetooth.BluetoothProfile.STATE_DISCONNECTED) {
+                if (tv_scan != null) {
+                    tv_scan.setText("杩炴帴钃濈墮");
+                    tv_scan.setOnClickListener(v -> showDeviceListFragment());
+                }
+            }
+        }
+    }
+
+    private void updateConnectedUI() {
+        if (tv_scan == null) return;
+        com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice device = BleGlobalManager.getInstance().getBluetoothLeDevice();
+        String name = (device != null) ? device.getName() : "Unknown";
+        if (name == null) name = "Unknown";
+        if (name.length() > 8) {
+            name = name.substring(0, 8) + "...";
+        }
+        tv_scan.setText(name);
+        tv_scan.setOnClickListener(v -> {
+            new QMUIDialog.MessageDialogBuilder(this)
+                    .setTitle("鎻愮ず")
+                    .setMessage("鏄惁鏂紑钃濈墮杩炴帴锛�")
+                    .addAction("鍙栨秷", (dialog, index) -> dialog.dismiss())
+                    .addAction("纭畾", (dialog, index) -> {
+                        dialog.dismiss();
+                        BleGlobalManager.getInstance().disconnect();
+                    })
+                    .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+        });
+    }
+
+    public void initTitlebar() {
+        if (iv_right != null) {
+            iv_right.setVisibility(View.VISIBLE);
+            iv_right.setOnClickListener(v -> {
+                androidx.appcompat.widget.PopupMenu popup = new androidx.appcompat.widget.PopupMenu(this, v);
+                popup.getMenu().add(0, 0, 0, "鐩戞帶椤�");
+                popup.getMenu().add(0, 1, 1, "娴嬭瘯椤�");
+                popup.setOnMenuItemClickListener(item -> {
+                    if (item.getItemId() == 0) {
+                        DeviceListFragment.setNavigationMode(DeviceListFragment.MODE_RETURN_SETTINGS);
+                        Toast.makeText(HomeActivity.this, "宸插垏鎹細杩炴帴鍚庤繑鍥炵洃鎺ч〉", Toast.LENGTH_SHORT).show();
+                    } else if (item.getItemId() == 1) {
+                        DeviceListFragment.setNavigationMode(DeviceListFragment.MODE_GO_TO_TEST);
+                        Toast.makeText(HomeActivity.this, "宸插垏鎹細杩炴帴鍚庤烦杞埌娴嬭瘯椤�", Toast.LENGTH_SHORT).show();
+                    }
+                    return true;
+                });
+                popup.show();
+            });
+        }
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (drawerLayout != null && drawerLayout.isDrawerOpen(GravityCompat.START)) {
+            drawerLayout.closeDrawer(GravityCompat.START);
+        } else {
+            // Check if we are in DeviceListFragment and can go back
+            Fragment current = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
+            if (current instanceof DeviceListFragment) {
+                super.onBackPressed();
+            } else {
+                ExitApp();
+            }
+        }
+    }
+
+    private long exitTime = 0;
+
+    public void ExitApp() {
+        if ((System.currentTimeMillis() - exitTime) > 2000) {
+            Toast.makeText(this, "鍐嶆寜涓�娆¢��鍑虹▼搴忥紒", Toast.LENGTH_SHORT).show();
+            exitTime = System.currentTimeMillis();
+        } else {
+            finish();
+        }
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/NormalWriteActivity.java b/app/src/main/java/com/shlb/comb/activity/NormalWriteActivity.java
new file mode 100644
index 0000000..2bb6cc1
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/NormalWriteActivity.java
@@ -0,0 +1,536 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattService;
+import android.text.InputType;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.LinearLayout;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ThreadUtils;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class NormalWriteActivity extends BaseActivity {
+
+    QMUIGroupListView mGroupListView;
+
+    Button send;
+
+    LinearLayout llRoot;
+
+
+    private BluetoothConnectManager connectManager;
+    private BluetoothGatt gatt;
+
+    private BluetoothGattCharacteristic characteristic;
+
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.normal_activity_write);
+
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        mGroupListView = findViewById(R.id.groupListView);
+        send = findViewById(R.id.send);
+        llRoot = findViewById(R.id.ll_root);
+        initTitlebar();
+        tv_center.setText("缂栧潃");
+        initGroupListView();
+
+    }
+
+    @Override
+    protected void initData() {
+        String uuid = Singletion.getInstance().uuid;
+        initWrite(uuid);
+
+
+    }
+
+    @Override
+    protected void initEvent() {
+        send.setOnClickListener(this);
+        int[] ids = {R.id.btnExit, R.id.btnInto, R.id.btnClean, R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4, R.id.btn5, R.id.btn6, R.id.btn7, R.id.btn8, R.id.btn9, R.id.btn10, R.id.btn11, R.id.btn12, R.id.btn13, R.id.btn14, R.id.btn15, R.id.btn16};
+        for (int id : ids) {
+            View v = findViewById(id);
+            if (v != null) v.setOnClickListener(this);
+        }
+
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_left) {
+            finish();
+        } else if (id == R.id.btnExit) {
+            writeCmd(CMD.EXIT);
+        } else if (id == R.id.btnInto) {
+            writeCmd(CMD.GETINTO);
+        } else if (id == R.id.btnClean) {
+            writeCmd(CMD.CLEAN);
+        } else if (id == R.id.btn1) {
+            sendYJCmd(1);
+        } else if (id == R.id.btn2) {
+            sendYJCmd(2);
+        } else if (id == R.id.btn3) {
+            sendYJCmd(3);
+        } else if (id == R.id.btn4) {
+            sendYJCmd(4);
+        } else if (id == R.id.btn5) {
+            sendYJCmd(5);
+        } else if (id == R.id.btn6) {
+            sendYJCmd(6);
+        } else if (id == R.id.btn7) {
+            sendYJCmd(7);
+        } else if (id == R.id.btn8) {
+            sendYJCmd(8);
+        } else if (id == R.id.btn9) {
+            sendYJCmd(9);
+        } else if (id == R.id.btn10) {
+            sendYJCmd(10);
+        } else if (id == R.id.btn11) {
+            sendYJCmd(11);
+        } else if (id == R.id.btn12) {
+            sendYJCmd(12);
+        } else if (id == R.id.btn13) {
+            sendYJCmd(13);
+        } else if (id == R.id.btn14) {
+            sendYJCmd(14);
+        } else if (id == R.id.btn15) {
+            sendYJCmd(15);
+        } else if (id == R.id.btn16) {
+            sendYJCmd(16);
+        }
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventReceiveNotify(UpdateEvent event) {
+        if (event != null && event.getType() == UpdateEvent.Type.BLE_DATA) {
+            BluetoothGattCharacteristic characteristic = (BluetoothGattCharacteristic) event.getObj();
+            final byte[] dataArr = characteristic.getValue();
+            final String flag = event.getMsg();
+            if (dataArr != null && dataArr.length > 0) {
+                if (flag.equals("read")) {
+                } else if (flag.equals("write")) {
+                } else if (flag.equals("notify")) {
+                    //杩斿洖缁撴灉
+                    String crc = CRCutil.getCRC(dataArr);
+                    LogUtils.e("resCRC", crc);
+                    //CRC璁$畻缁撴灉涓�0鏃跺懡浠ゆ墽琛屾垚鍔燂紝鑷姩鎵ц閫�鍑哄懡浠�
+                    if (crc.equals("0")) {
+                        writeCmd(CMD.EXIT);
+                        Toast("鎿嶄綔鎴愬姛锛岃嚜鍔ㄦ墽琛岄��鍑虹紪鍧�鎸囦护");
+                        curCmd = -1;
+                        item6.setText("缂栧潃鎴愬姛");
+                    }
+                    //璁$畻杩斿洖涓�0鏃� 鑷姩閫�鍑�
+
+                    LogUtils.e("res", ByteUtils.byteArrayToHexString(dataArr));
+                } else {
+
+                    Toast("瑙f瀽杩斿洖淇℃伅澶辫触锛�");
+                }
+            } else {
+                Toast("杩斿洖淇℃伅涓虹┖锛�");
+            }
+        }
+    }
+
+    QMUICommonListItemView item1;
+    QMUICommonListItemView item2;
+    QMUICommonListItemView item3;
+    QMUICommonListItemView item4;
+    QMUICommonListItemView item5;
+    QMUICommonListItemView item6;
+    View.OnClickListener onClickListener;
+    int curCmd = -1;
+
+    String[] cmdName = {"杩涘叆缂栧潃", "娓呴櫎鍦板潃", "缂栬緫鍦板潃", "閫�鍑虹紪鍧�", "涓�閿紪鍧�"};
+
+    private void initGroupListView() {
+        item1 = mGroupListView.createItemView(null,
+                cmdName[0], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item2 = mGroupListView.createItemView(null,
+                cmdName[1], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item3 = mGroupListView.createItemView(null,
+                cmdName[2], "鐐瑰嚮閫夋嫨缂栧彿",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+        item4 = mGroupListView.createItemView(null,
+                cmdName[3], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+
+        onClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (v instanceof QMUICommonListItemView) {
+                    CharSequence text = ((QMUICommonListItemView) v).getText();
+                    //杩涘叆缂栧潃
+                    if (text.equals(cmdName[0])) {
+                        curCmd = 1;
+                        item6.setText(cmdName[0]);
+                        item6.setDetailText("");
+                        //娓呴櫎鍦板潃
+                    } else if (text.equals(cmdName[1])) {
+                        curCmd = 2;
+                        item6.setText(cmdName[1]);
+                        item6.setDetailText("");
+                        //缂栬緫鍦板潃
+                    } else if (text.equals(cmdName[2])) {
+                        showEditTextDialog();
+                        //閫�鍑虹紪鍧�
+                    } else if (text.equals(cmdName[3])) {
+                        curCmd = 4;
+                        item6.setText(cmdName[3]);
+                        item6.setDetailText("");
+                        //涓�閿紪鍧�
+                    } else if (text.equals(cmdName[4])) {
+                        showQuickDialog();
+                    }
+
+
+                }
+            }
+        };
+
+        int size = QMUIDisplayHelper.dp2px(this, 20);
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 1:鎿嶄綔鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item1, onClickListener)
+                .addItemView(item2, onClickListener)
+                .addItemView(item3, onClickListener)
+                .addItemView(item4, onClickListener)
+                .addTo(mGroupListView);
+
+        item5 = mGroupListView.createItemView(cmdName[4]);
+        item5.setOrientation(QMUICommonListItemView.VERTICAL);
+        item5.setDetailText("杩涘叆-娓呴櫎-缂栧潃-閫�鍑�");
+        item5.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item6 = mGroupListView.createItemView("寰呴�夋嫨");
+        item6.setOrientation(QMUICommonListItemView.HORIZONTAL);
+
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 2:蹇嵎鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item5, onClickListener)
+                .addTo(mGroupListView);
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 3:褰撳墠鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item6, onClickListener)
+                .addTo(mGroupListView);
+
+    }
+
+    /**
+     * 鍒濆鍖栧啓鍏ユ湇鍔�
+     *
+     * @param uu
+     */
+    private void initWrite(String uu) {
+        BluetoothLeDevice mDevice = Singletion.getInstance().mDevice;
+        connectManager = BluetoothConnectManager.getInstance(this);
+        connectManager.addConnectStateListener(listener);
+        String uuid = uu;
+        UUID serverUUid = null;
+        gatt = connectManager.getBluetoothGatt(mDevice.getAddress());
+        if (gatt != null) {
+            List<BluetoothGattService> list = gatt.getServices();
+            if (list != null) {
+                for (BluetoothGattService service : list) {
+                    for (BluetoothGattCharacteristic characteristics : service.getCharacteristics()) {
+                        if (characteristics.getUuid().toString().equals(uuid)) {
+                            characteristic = characteristics;
+                            serverUUid = service.getUuid();
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        if (serverUUid == null) {
+            Toast("serverUUid涓嶈兘涓虹┖!");
+            return;
+        }
+        //1.set service uuid
+        connectManager.setServiceUUID(serverUUid.toString());
+        //2.clean history descriptor data
+        connectManager.cleanSubscribeData();
+        //3.add subscribe params
+        if (BluetoothUtils.isCharacteristicRead(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicRead(characteristic.getUuid()).build());
+        }
+        if (BluetoothUtils.isCharacteristicNotify(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicNotify(characteristic.getUuid()).build()
+            );
+        }
+
+        connectManager.startSubscribe(gatt);
+    }
+
+    private void writeCmd(String cmd) {
+        int len = cmd.length();
+        if (len > 0 && len % 2 == 0) {
+            byte[] bytes = invertStringToBytes(cmd);
+            if (bytes != null) {
+                characteristic.setValue(bytes);
+                gatt.writeCharacteristic(characteristic);
+                runOnUiThread(() -> {
+                    item6.setDetailText(item6.getDetailText() + "  宸插彂閫�");
+                });
+            } else {
+                Log.e("tag", "write value fail");
+            }
+        } else {
+
+            runOnUiThread(() -> {
+                Toast("鎸囦护閿欒锛�");
+            });
+        }
+    }
+
+    private byte[] invertStringToBytes(String value) {
+        int len = value.length() / 2;
+        if (len > 0) {
+            byte[] bytes = new byte[len];
+            for (int i = 0; i < len; i++) {
+                Integer val = Integer.valueOf(value.substring(i * 2, i * 2 + 2), 16);
+                bytes[i] = val.byteValue();
+            }
+            return bytes;
+        }
+        return null;
+    }
+
+    private List<Map<String, Object>> getWriteData() {
+        List<Map<String, Object>> res = new ArrayList<>();
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("name", "杩涘叆缂栧潃鐘舵��");
+        map1.put("flag", "0");
+        map1.put("value", "A55A060100000000002F35");
+        res.add(map1);
+        Map<String, Object> map2 = new HashMap<>();
+        map2.put("name", "閫�鍑虹紪鍧�鐘舵��");
+        map2.put("flag", "0");
+        map2.put("value", "A55A060400000000002F60");
+        res.add(map2);
+        Map<String, Object> map3 = new HashMap<>();
+        map3.put("name", "缂栧潃");
+        map3.put("flag", "0");
+        map3.put("value", "A55A060300020000002F6F");
+        res.add(map3);
+        Map<String, Object> map4 = new HashMap<>();
+        map4.put("name", "娓呴櫎鍦板潃");
+        map4.put("flag", "0");
+        map4.put("value", "A55A060200000000002F06");
+        res.add(map4);
+        return res;
+
+    }
+
+    private ConnectStateListener listener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            switch (state) {
+                case CONNECTED:
+                    break;
+                case CONNECTING:
+                    break;
+                case NORMAL:
+                    break;
+            }
+        }
+    };
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚� 鎵ц缂栧潃鎸囦护
+     */
+    private void showEditTextDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                        Integer res = -1;
+                        try {
+                            res = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (res == null || res < 0 || res > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            item3.setDetailText(text);
+                            curCmd = 3;
+                            item6.setText(cmdName[2]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚�  涓�閿墽琛屾墍鏈夋寚浠�
+     */
+    private void showQuickDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                        Integer addrrNo = -1;
+                        try {
+                            addrrNo = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (addrrNo == null || addrrNo < 0 || addrrNo > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            curCmd = 5;
+                            item5.setDetailText(text);
+                            item6.setText(cmdName[4]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    public void initTitlebar() {
+        iv_right.setVisibility(View.VISIBLE);
+        iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+        iv_right.setImageDrawable(getResources().getDrawable(R.mipmap.icon_topbar_overflow));
+    }
+
+    /**
+     * 鍙戦�佷竴閿懡浠�
+     * @param no2
+     */
+   private  void sendYJCmd(int no2){
+
+
+       if (no2 > 16|| no2<1 ) {
+           Toast("鍦板潃鏁版嵁寮傚父");
+           return;
+
+       }
+
+       ThreadUtils.executeBySingle(new ThreadUtils.SimpleTask<Object>() {
+           @Override
+           public Object doInBackground() throws Throwable {
+               writeCmd(CMD.GETINTO);
+               Thread.sleep(200);
+
+               writeCmd(CMD.CLEAN);
+               Thread.sleep(200);
+
+               String sNo2 = Integer.toHexString(no2);
+               //
+               if (sNo2.length() < 2) {
+                   sNo2 = "0" + sNo2;
+               }
+
+               String cmd = CMD.ADDR_PREFIX + sNo2 + CMD.ADDR_SUFFIX;
+               byte[] bytes = invertStringToBytes(cmd);
+               String crc = CRCutil.getCRC(bytes);
+               String zl = cmd + crc;
+               LogUtils.e("reszl", zl);
+               Thread.sleep(200);
+               writeCmd(zl);
+
+               return null;
+           }
+
+           @Override
+           public void onSuccess(Object result) {
+
+           }
+       });
+       Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+   }
+
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/ParameterSettingActivity.java b/app/src/main/java/com/shlb/comb/activity/ParameterSettingActivity.java
new file mode 100644
index 0000000..1d68133
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/ParameterSettingActivity.java
@@ -0,0 +1,665 @@
+package com.shlb.comb.activity;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.text.Html;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ScrollView;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.manager.BleGlobalManager;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+public class ParameterSettingActivity extends BaseActivity {
+
+    private Spinner sp_threshold_mode;
+    private EditText et_threshold_value;
+    private Button btn_threshold_read;
+    private Button btn_threshold_write;
+
+    private Spinner sp_sensitivity_mode;
+    private EditText et_sensitivity_value;
+    private Button btn_sensitivity_read;
+    private Button btn_sensitivity_write;
+
+    private Button btn_start_check;
+    private Button btn_end_check;
+    private Button btn_reset_mainboard;
+    private Button btn_reset_sensor;
+
+    private TextView tv_log;
+    private TextView tv_right_text;
+    
+    // New components
+    private RecyclerView rvGrid;
+    private QMUIRoundButton btnReadData;
+    private QMUIRoundButton btnClearLog;
+    private ScrollView svLog;
+
+    private GridAdapter mAdapter;
+    private List<BoxStatus> boxStatusList = new ArrayList<>();
+    private StringBuilder logBuilder = new StringBuilder();
+    private boolean isSelfCheckMode = false;
+    private String pendingSettingCmd = "";
+    
+    private SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_parameter_setting);
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        if (tv_center != null) {
+            tv_center.setText("鍙傛暟璁惧畾");
+        }
+        if (iv_left != null) {
+            iv_left.setImageResource(R.mipmap.icon_back);
+        }
+
+        sp_threshold_mode = findViewById(R.id.sp_threshold_mode);
+        et_threshold_value = findViewById(R.id.et_threshold_value);
+        btn_threshold_read = findViewById(R.id.btn_threshold_read);
+        btn_threshold_write = findViewById(R.id.btn_threshold_write);
+
+        sp_sensitivity_mode = findViewById(R.id.sp_sensitivity_mode);
+        et_sensitivity_value = findViewById(R.id.et_sensitivity_value);
+        btn_sensitivity_read = findViewById(R.id.btn_sensitivity_read);
+        btn_sensitivity_write = findViewById(R.id.btn_sensitivity_write);
+
+        btn_start_check = findViewById(R.id.btn_start_check);
+        btn_end_check = findViewById(R.id.btn_end_check);
+        btn_reset_mainboard = findViewById(R.id.btn_reset_mainboard);
+        btn_reset_sensor = findViewById(R.id.btn_reset_sensor);
+
+        tv_log = findViewById(R.id.tv_log);
+        tv_right_text = findViewById(R.id.tv_right_text);
+        
+        // Init new components
+        rvGrid = findViewById(R.id.rv_grid);
+        // btnReadData was removed from layout
+        btnClearLog = findViewById(R.id.btn_clear_log);
+        svLog = findViewById(R.id.sv_log);
+        
+        // Log setup
+        if (svLog != null) {
+            svLog.setOnTouchListener((v, event) -> {
+                v.getParent().requestDisallowInterceptTouchEvent(true);
+                if ((event.getAction() & android.view.MotionEvent.ACTION_MASK) == android.view.MotionEvent.ACTION_UP) {
+                    v.getParent().requestDisallowInterceptTouchEvent(false);
+                }
+                return false;
+            });
+        }
+        
+        if (logBuilder.length() > 0) {
+            tv_log.setText(Html.fromHtml(logBuilder.toString()));
+        } else {
+            logBuilder.append("鏃ュ織璁板綍:<br>");
+            tv_log.setText(Html.fromHtml(logBuilder.toString()));
+        }
+    }
+
+    @Override
+    protected void initData() {
+        updateBluetoothStatus();
+        
+        // Initialize box status list
+        boxStatusList.clear();
+        for (int i = 1; i <= 30; i++) {
+            boxStatusList.add(new BoxStatus(i));
+        }
+        
+        // Grid Setup
+        rvGrid.setLayoutManager(new GridLayoutManager(this, 10)); 
+        mAdapter = new GridAdapter();
+        rvGrid.setAdapter(mAdapter);
+        
+        if (BleGlobalManager.getInstance().isConnected()) {
+             sendCmdWithCrc(CMD.ENTER_SETTING);
+             // sendCmdWithCrc(CMD.READ_DATA);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (BleGlobalManager.getInstance().isConnected()) {
+            sendCmdWithCrc(CMD.EXIT_SETTING);
+        }
+        super.onDestroy();
+    }
+
+    @Override
+    protected void initEvent() {
+        View.OnClickListener listener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                int id = v.getId();
+                String action = "";
+                if (id == R.id.btn_threshold_read) {
+                    action = "璇诲彇闃堝��";
+                    Toast.makeText(ParameterSettingActivity.this, "璇ュ姛鑳芥殏鏈紑鏀�", Toast.LENGTH_SHORT).show();
+                } else if (id == R.id.btn_threshold_write) {
+                    handleThresholdWrite();
+                } else if (id == R.id.btn_sensitivity_read) {
+                    action = "璇诲彇鐏垫晱搴�";
+                    Toast.makeText(ParameterSettingActivity.this, "璇ュ姛鑳芥殏鏈紑鏀�", Toast.LENGTH_SHORT).show();
+                } else if (id == R.id.btn_sensitivity_write) {
+                    handleSensitivityWrite();
+                } else if (id == R.id.btn_start_check) {
+                    action = "寮�濮嬭嚜妫�";
+                    sendCmdWithCrc(CMD.WRITE_START_CHECK);
+                    isSelfCheckMode = true;
+                } else if (id == R.id.btn_end_check) {
+                    action = "缁撴潫鑷";
+                    sendCmdWithCrc(CMD.WRITE_END_CHECK);
+                    isSelfCheckMode = false;
+                } else if (id == R.id.btn_reset_mainboard) {
+                    showResetConfirmDialog("纭畾瑕佹墽琛屼富鏉垮浣嶅悧锛�", CMD.WRITE_BOARD_RESET);
+                } else if (id == R.id.btn_reset_sensor) {
+                    showResetConfirmDialog("纭畾瑕佹墽琛屼紶鎰熷櫒澶嶄綅鍚楋紵", CMD.WRITE_SENSOR_RESET);
+                }
+
+                if (!action.isEmpty()) {
+                    // Toast.makeText(ParameterSettingActivity.this, action, Toast.LENGTH_SHORT).show();
+                    // appendLog(action);
+                }
+            }
+        };
+
+        btn_threshold_read.setOnClickListener(listener);
+        btn_threshold_write.setOnClickListener(listener);
+        btn_sensitivity_read.setOnClickListener(listener);
+        btn_sensitivity_write.setOnClickListener(listener);
+        btn_start_check.setOnClickListener(listener);
+        btn_end_check.setOnClickListener(listener);
+        btn_reset_mainboard.setOnClickListener(listener);
+        btn_reset_sensor.setOnClickListener(listener);
+        
+        btnClearLog.setOnClickListener(v -> {
+            logBuilder.setLength(0);
+            logBuilder.append("鏃ュ織璁板綍:<br>");
+            tv_log.setText(Html.fromHtml(logBuilder.toString()));
+        });
+    }
+
+    private String getCmdDescription(String hex, Boolean isSent) {
+        if (hex == null) return "";
+        
+        // Special handling for 3B (Enter/Exit Setting)
+        if (hex.startsWith(CMD.ENTER_SETTING.substring(0, 8))) {
+            if (hex.startsWith(CMD.ENTER_SETTING)) return "-杩涘叆璁惧畾";
+            if (hex.startsWith(CMD.EXIT_SETTING)) return "-閫�鍑鸿瀹�";
+        }
+
+        // 鍙戦�佹寚浠ゅ尮閰�
+        if (hex.startsWith(CMD.WRITE_THRESHOLD_SETTING)) return "-闃堝�艰瀹�";
+        if (hex.startsWith(CMD.WRITE_SENSITIVITY_SETTING)) return "-鐏垫晱搴﹁瀹�";
+        if (hex.startsWith(CMD.WRITE_BOARD_RESET)) return "-涓绘澘澶嶄綅";
+        if (hex.startsWith(CMD.WRITE_SENSOR_RESET)) return "-浼犳劅鍣ㄥ浣�";
+        if (hex.startsWith(CMD.WRITE_START_CHECK)) return "-寮�濮嬭嚜妫�";
+        if (hex.startsWith(CMD.WRITE_END_CHECK)) return "-缁撴潫鑷";
+        if (hex.startsWith(CMD.READ_DATA.substring(0, 8))) return "-璇绘暟鎹�";
+        
+        // 鎺ユ敹鏁版嵁鍖归厤
+        if (hex.startsWith(CMD.WRITE_THRESHOLD_SETTING.substring(0, 8))) return "-闃堝�艰繑鍥�";
+        if (hex.startsWith(CMD.WRITE_SENSITIVITY_SETTING.substring(0, 8))) return "-鐏垫晱搴﹁繑鍥�";
+        if (hex.startsWith(CMD.WRITE_BOARD_RESET.substring(0, 8))) return "-涓绘澘澶嶄綅杩斿洖";
+        if (hex.startsWith(CMD.WRITE_SENSOR_RESET.substring(0, 8))) return "-浼犳劅鍣ㄥ浣嶈繑鍥�";
+        if (hex.startsWith(CMD.WRITE_START_CHECK.substring(0, 8))) return "-鑷杩斿洖";
+        
+        if (hex.startsWith(CMD.WRITE_SUFFIX)) return "-鍐欏叆杩斿洖";
+
+        return "";
+    }
+
+    private void appendLog(String msg) {
+        appendLog(msg, null);
+    }
+    
+    private void appendLog(String msg, Boolean isSent) {
+        String time = new SimpleDateFormat("HH:mm:ss.SSS", Locale.getDefault()).format(new Date());
+        
+        String displayMsg = msg;
+        String cmdDesc = "";
+        
+        // 濡傛灉鏄� hex 鎸囦护 (绾� 0-9 A-F a-f)锛屽姞绌烘牸鏍煎紡鍖�
+        if (msg.matches("^[0-9A-Fa-f]+$")) {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < msg.length(); i += 2) {
+                if (i + 2 <= msg.length()) {
+                    sb.append(msg.substring(i, i + 2)).append(" ");
+                } else {
+                    sb.append(msg.substring(i));
+                }
+            }
+            displayMsg = sb.toString().trim();
+            
+            // 鑾峰彇鎸囦护鎻忚堪
+            cmdDesc = getCmdDescription(msg, isSent);
+        }
+        
+        String logLine;
+        if (isSent != null) {
+            String color = isSent ? "#1890ff" : "#05aa87"; // Blue for sent, Green for received
+            // 鎷兼帴鍒板墠缂�鍚庨潰: "鍙戦��-璇荤珯鍙�: " 鎴� "鏀跺埌-璇荤珯鍙�: "
+            String prefix = (isSent ? "鍙戦��" : "鏀跺埌") + cmdDesc + ": ";
+            logLine = time + " <font color='" + color + "'>" + prefix + displayMsg + "</font><br>";
+        } else {
+            // 鏅�氭棩蹇�
+            logLine = time + " " + displayMsg + "<br>";
+        }
+        
+        logBuilder.append(logLine);
+        
+        // Update UI
+        if (tv_log != null) {
+            tv_log.setText(Html.fromHtml(logBuilder.toString()));
+             if (svLog != null) {
+                svLog.post(() -> svLog.fullScroll(View.FOCUS_DOWN));
+            }
+        }
+    }
+    
+    // Kept for backward compatibility if needed, but redirected to appendLog
+    private void addLog(String message) {
+        appendLog(message);
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEvent(UpdateEvent event) {
+        if (event.getType() == UpdateEvent.Type.CONN_STATU) {
+            updateBluetoothStatus();
+        } else if (event.getType() == UpdateEvent.Type.DEVICE_INFO) {
+            String hex = event.getMsg();
+            appendLog(hex, false); // false for received (Green)
+            parseAndRefresh(hex);
+        }
+    }
+    
+    private void parseAndRefresh(String hex) {
+        if (hex == null) return;
+        
+        // 鍐欏叆鎸囦护鐨勮繑鍥� (A55A06寮�澶�)
+        if (hex.startsWith("A55A06") && hex.length() >= 12) {
+             String statusHex = hex.substring(10, 12);
+             boolean isSuccess = "01".equals(statusHex);
+
+             if (hex.startsWith(CMD.ENTER_SETTING.substring(0, 8))) {
+                 if (isSuccess) {
+                     appendLog("杩涘叆璁惧畾妯″紡鎴愬姛");
+                 } else {
+                     appendLog("杩涘叆璁惧畾妯″紡澶辫触");
+                 }
+                 return;
+             }
+             
+             if (hex.startsWith(CMD.EXIT_SETTING.substring(0, 8))) {
+                 appendLog("閫�鍑鸿瀹氭ā寮忔垚鍔�");
+                 return;
+             }
+
+             if (hex.startsWith(CMD.WRITE_THRESHOLD_SETTING.substring(0, 8))) {
+                 if (isSuccess) {
+                     appendLog("闃堝�煎啓鍏ユ垚鍔�");
+                     Toast.makeText(this, "闃堝�煎啓鍏ユ垚鍔�", Toast.LENGTH_SHORT).show();
+                 } else {
+                     appendLog("闃堝�煎啓鍏ュけ璐�");
+                     Toast.makeText(this, "闃堝�煎啓鍏ュけ璐�", Toast.LENGTH_SHORT).show();
+                 }
+             } else if (hex.startsWith(CMD.WRITE_SENSITIVITY_SETTING.substring(0, 8))) {
+                 if (isSuccess) {
+                     appendLog("鐏垫晱搴﹀啓鍏ユ垚鍔�");
+                     Toast.makeText(this, "鐏垫晱搴﹀啓鍏ユ垚鍔�", Toast.LENGTH_SHORT).show();
+                 } else {
+                     appendLog("鐏垫晱搴﹀啓鍏ュけ璐�");
+                     Toast.makeText(this, "鐏垫晱搴﹀啓鍏ュけ璐�", Toast.LENGTH_SHORT).show();
+                 }
+             } else if (hex.startsWith(CMD.WRITE_BOARD_RESET.substring(0, 8))) { 
+                 boolean isBoardReset = pendingSettingCmd.equals(CMD.WRITE_BOARD_RESET);
+                 String name = isBoardReset ? "涓绘澘澶嶄綅" : "浼犳劅鍣ㄥ浣�";
+                 
+                 if (isSuccess) {
+                     appendLog(name + "鎴愬姛");
+                     Toast.makeText(this, name + "鎴愬姛", Toast.LENGTH_SHORT).show();
+                 } else {
+                     appendLog(name + "澶辫触");
+                     Toast.makeText(this, name + "澶辫触", Toast.LENGTH_SHORT).show();
+                 }
+             }
+        }
+
+        // Check for Self Check command response
+        if (hex.startsWith(CMD.WRITE_START_CHECK.substring(0, 8)) && hex.length() >= 12) {
+             String statusHex = hex.substring(10, 12);
+             boolean isSuccess = "01".equals(statusHex);
+             String opName = isSelfCheckMode ? "寮�濮嬭嚜妫�" : "缁撴潫鑷";
+             
+             if (isSuccess) {
+                 appendLog(opName + "鎴愬姛");
+                 Toast.makeText(this, opName + "鎴愬姛", Toast.LENGTH_SHORT).show();
+                 
+                 // If success and isSelfCheckMode, wait 5s then read data
+                 if (isSelfCheckMode) {
+                     appendLog("5绉掑悗璇诲彇鑷缁撴灉...");
+                     new android.os.Handler().postDelayed(() -> {
+                         sendCmdWithCrc(CMD.READ_DATA);
+                     }, 5000);
+                 }
+             } else {
+                 appendLog(opName + "澶辫触");
+                 Toast.makeText(this, opName + "澶辫触", Toast.LENGTH_SHORT).show();
+             }
+        }
+        
+        // Handle READ_DATA response for Self Check results
+        // A55A0301...
+        if (hex.startsWith(CMD.READ_DATA.substring(0, 8)) && hex.length() >= 26) {
+             parseSelfCheckData(hex);
+        }
+    }
+    
+    private void parseSelfCheckData(String hex) {
+        try {
+             // 11th hex -> index 10-18 (8 chars)
+             String part1Hex = hex.substring(10, 18);
+             long part1Bits = Long.parseLong(part1Hex, 16);
+             
+             // 18th hex -> index 18-26 (8 chars)
+             String part2Hex = hex.substring(18, 26);
+             long part2Bits = Long.parseLong(part2Hex, 16);
+             
+             appendLog("鑷鏁版嵁瑙f瀽: " + part1Hex + ", " + part2Hex);
+             
+             boolean hasChange = false;
+             for (BoxStatus box : boxStatusList) {
+                 int bitIndex = box.id - 1;
+                 if (bitIndex >= 0 && bitIndex < 32) {
+                     // Determine success based on both bits
+                     // Assuming both need to be 1, or following specific logic.
+                     // Based on user request "11th and 18th hex", we check both.
+                     // Usually part1 is Glass (Detection), part2 is Online.
+                     // We'll assume success means bit is set in both (Online and Detected?)
+                     // OR maybe just Online? 
+                     // Let's stick to combining them to be safe as user mentioned both.
+                     // But if Self Check is just checking if it's working, maybe Online is enough?
+                     // Let's use: Success = (part1 & 1) && (part2 & 1) ? 
+                     // Let's use bitwise AND of the two parts for the result.
+                     
+                     boolean bit1 = ((part1Bits >> bitIndex) & 1) == 1;
+                     boolean bit2 = ((part2Bits >> bitIndex) & 1) == 1;
+                     
+                     // If user meant "11th OR 18th", or "11th is this, 18th is that".
+                     // Given "Success/Fail", I'll assume both must be valid.
+                     // However, in normal operation:
+                     // Glass=0, Online=1 -> Empty box, but sensor working.
+                     // Glass=1, Online=1 -> Full box, sensor working.
+                     // Online=0 -> Sensor broken/offline.
+                     
+                     // If "Self Check" puts the sensor in a state where it should report "1" for Glass?
+                     // If so, then we expect Glass=1 AND Online=1.
+                     // If "Self Check" just checks health, then Glass might be 0.
+                     
+                     // "纭畾鍝簺鏍煎瓙鑷鎴愬姛" (Determine which grids passed self-check).
+                     // If I use bit1 && bit2:
+                     // If a sensor is working but empty (Glass=0), it fails self-check?
+                     // This implies Self Check expects a "1" signal.
+                     // This is common in self-checks (force a signal).
+                     
+                     if (bit1 && bit2) {
+                         box.checkResult = 1; // Green
+                     } else {
+                         box.checkResult = 0; // Red
+                     }
+                     hasChange = true;
+                 }
+             }
+             
+             if (hasChange && mAdapter != null) {
+                 mAdapter.notifyDataSetChanged();
+                 appendLog("鑷缁撴灉宸叉洿鏂�");
+             }
+             
+        } catch (Exception e) {
+            e.printStackTrace();
+            appendLog("鑷鏁版嵁瑙f瀽寮傚父: " + e.getMessage());
+        }
+    }
+    
+    
+    private void sendCmdWithCrc(String cmd) {
+        if (!BleGlobalManager.getInstance().isConnected()) {
+            Toast.makeText(this, "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+            appendLog("閿欒: 钃濈墮鏈繛鎺�");
+            return;
+        }
+        
+        byte[] cmdBytes = BleGlobalManager.hexStringToBytes(cmd);
+        if (cmdBytes != null) {
+            String crc = CRCutil.getCRC(cmdBytes);
+            // Pad CRC to 4 chars if needed
+            while (crc.length() < 4) {
+                crc = "0" + crc;
+            }
+            String fullCmd = cmd + crc.toUpperCase();
+            
+            appendLog(fullCmd, true); // true for sent (Blue)
+            BleGlobalManager.getInstance().sendCmd(fullCmd);
+        } else {
+            appendLog("閿欒: 鎸囦护杞崲澶辫触");
+        }
+    }
+
+    private void handleThresholdWrite() {
+        int position = sp_threshold_mode.getSelectedItemPosition();
+        String inputValue = et_threshold_value.getText().toString().trim();
+        String modeHex = "";
+        String valueHex = "";
+        
+        if (position == 0) { // 涓�閿瀹�
+            modeHex = "00";
+            valueHex = "00";
+        } else if (position == 1) { // 鍗曞眰璁惧畾
+            modeHex = "01";
+            if (inputValue.isEmpty()) {
+                Toast.makeText(this, "璇疯緭鍏ラ槇鍊�(1-30)", Toast.LENGTH_SHORT).show();
+                return;
+            }
+            try {
+                int val = Integer.parseInt(inputValue);
+                if (val < 1 || val > 30) {
+                    Toast.makeText(this, "闃堝�艰寖鍥�1-30", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+                valueHex = String.format("%02X", val);
+            } catch (NumberFormatException e) {
+                Toast.makeText(this, "杈撳叆鏍煎紡閿欒", Toast.LENGTH_SHORT).show();
+                return;
+            }
+        } else {
+            return;
+        }
+        
+        // Construct pending command: CMD (32) + Len (02) + Mode + Value
+        // CMD.WRITE_THRESHOLD_SETTING is "A55A063202"
+        pendingSettingCmd = CMD.WRITE_THRESHOLD_SETTING + modeHex + valueHex;
+        sendCmdWithCrc(pendingSettingCmd);
+    }
+    
+    private void handleSensitivityWrite() {
+        int position = sp_sensitivity_mode.getSelectedItemPosition();
+        String inputValue = et_sensitivity_value.getText().toString().trim();
+        String modeHex = "";
+        String valueHex = "";
+        
+        // 0: 鎵归噺澧炲姞(00), 1: 鎵归噺鍑忓皯(01), 2: 鍗曞眰澧炲姞(02), 3: 鍗曞眰鍑忓皯(03)
+        if (position == 0) {
+            modeHex = "00";
+            valueHex = "00";
+        } else if (position == 1) {
+            modeHex = "01";
+            valueHex = "00";
+        } else if (position == 2) {
+            modeHex = "02";
+        } else if (position == 3) {
+            modeHex = "03";
+        } else {
+            return;
+        }
+        
+        if (position == 2 || position == 3) {
+            if (inputValue.isEmpty()) {
+                Toast.makeText(this, "璇疯緭鍏ユ暟鍊�(1-30)", Toast.LENGTH_SHORT).show();
+                return;
+            }
+            try {
+                int val = Integer.parseInt(inputValue);
+                if (val < 1 || val > 30) {
+                    Toast.makeText(this, "鏁板�艰寖鍥�1-30", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+                valueHex = String.format("%02X", val);
+            } catch (NumberFormatException e) {
+                Toast.makeText(this, "杈撳叆鏍煎紡閿欒", Toast.LENGTH_SHORT).show();
+                return;
+            }
+        }
+        
+        // Construct pending command: CMD (33) + Len (02) + Mode + Value
+        // CMD.WRITE_SENSITIVITY_SETTING is "A55A063302"
+        pendingSettingCmd = CMD.WRITE_SENSITIVITY_SETTING + modeHex + valueHex;
+        sendCmdWithCrc(pendingSettingCmd);
+    }
+
+    private void updateBluetoothStatus() {
+        if (tv_right_text == null) return;
+        if (BleGlobalManager.getInstance().isConnected()) {
+            String name = "鏈煡璁惧";
+            if (BleGlobalManager.getInstance().getBluetoothLeDevice() != null) {
+                String deviceName = BleGlobalManager.getInstance().getBluetoothLeDevice().getName();
+                if (deviceName != null && !deviceName.isEmpty()) {
+                    name = deviceName;
+                }
+            }
+            tv_right_text.setText(name);
+        } else {
+            tv_right_text.setText("鏈繛鎺�");
+        }
+    }
+
+    private void showResetConfirmDialog(String message, final String cmd) {
+        new AlertDialog.Builder(this)
+                .setTitle("鎻愮ず")
+                .setMessage(message)
+                .setPositiveButton("纭畾", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                         pendingSettingCmd = cmd;
+                         sendCmdWithCrc(cmd);
+                    }
+                })
+                .setNegativeButton("鍙栨秷", null)
+                .show();
+    }
+    
+    // Inner classes
+    
+    private static class BoxStatus {
+        int id;
+        // -1: Unknown/Initial (White), 0: Fail (Red), 1: Success (Green)
+        int checkResult = -1;
+        
+        public BoxStatus(int id) {
+            this.id = id;
+            this.checkResult = -1;
+        }
+    }
+    
+    private class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {
+
+        @NonNull
+        @Override
+        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid_box, parent, false);
+            return new ViewHolder(view);
+        }
+
+        @Override
+        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+            // Calculate Box ID based on 3 rows of 10, Right to Left logic as seen in image
+            // Row 1 (pos 0-9): 10 ... 1
+            // Row 2 (pos 10-19): 20 ... 11
+            // Row 3 (pos 20-29): 30 ... 21
+            
+            int row = position / 10;
+            int col = position % 10;
+            int boxId = (row + 1) * 10 - col;
+            
+            holder.tvBoxNumber.setText(String.valueOf(boxId));
+            
+            // Find status for this box
+            BoxStatus status = null;
+            for (BoxStatus s : boxStatusList) {
+                if (s.id == boxId) {
+                    status = s;
+                    break;
+                }
+            }
+            
+            if (status != null) {
+                if (status.checkResult == 1) {
+                    // Success
+                    holder.viewBox.setBackgroundResource(R.drawable.bg_box_full); // Green
+                } else if (status.checkResult == 0) {
+                    // Fail
+                    holder.viewBox.setBackgroundResource(R.drawable.bg_box_error); // Red
+                } else {
+                    // Unknown / Initial
+                    holder.viewBox.setBackgroundResource(R.drawable.bg_box_empty); // White
+                }
+            }
+        }
+
+        @Override
+        public int getItemCount() {
+            return 30;
+        }
+
+        class ViewHolder extends RecyclerView.ViewHolder {
+            TextView tvBoxNumber;
+            View viewBox;
+
+            public ViewHolder(@NonNull View itemView) {
+                super(itemView);
+                tvBoxNumber = itemView.findViewById(R.id.tv_box_number);
+                viewBox = itemView.findViewById(R.id.view_box);
+            }
+        }
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/TestActivity.java b/app/src/main/java/com/shlb/comb/activity/TestActivity.java
new file mode 100644
index 0000000..d0ab2ae
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/TestActivity.java
@@ -0,0 +1,357 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattService;
+import android.bluetooth.BluetoothGattDescriptor;
+import android.bluetooth.BluetoothProfile;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class TestActivity extends BaseActivity {
+
+    private TextView tvStatus;
+    private TextView tvSelectedService;
+    private QMUIGroupListView mGroupListView;
+    private EditText etCommand;
+    private Button btnSend;
+    private TextView tvLog;
+
+    private BluetoothConnectManager connectManager;
+    private BluetoothLeDevice mDevice;
+    private BluetoothGatt mGatt;
+    private BluetoothGattCharacteristic selectedCharacteristic;
+    
+    // Store pairs of (Characteristic, UI Item) if needed, or just list
+    private List<BluetoothGattCharacteristic> writeableCharacteristics = new ArrayList<>();
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_test);
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        tv_center.setText("钃濈墮娴嬭瘯");
+        if (iv_left != null) {
+            iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+            iv_left.setOnClickListener(v -> finish());
+        }
+        
+        tvStatus = findViewById(R.id.tv_status);
+        tvSelectedService = findViewById(R.id.tv_selected_service);
+        mGroupListView = findViewById(R.id.groupListView);
+        etCommand = findViewById(R.id.et_command);
+        btnSend = findViewById(R.id.btn_send);
+        tvLog = findViewById(R.id.tv_log);
+    }
+
+    @Override
+    protected void initData() {
+        mDevice = Singletion.getInstance().mDevice;
+        if (mDevice == null) {
+            appendLog("鏈�夋嫨璁惧!");
+            return;
+        }
+        initConn(mDevice);
+    }
+
+    @Override
+    protected void initEvent() {
+        btnSend.setOnClickListener(v -> {
+            String cmd = etCommand.getText().toString().trim();
+            if (TextUtils.isEmpty(cmd)) {
+                Toast("璇疯緭鍏ユ寚浠�");
+                return;
+            }
+            if (selectedCharacteristic == null) {
+                Toast("璇烽�夋嫨涓�涓湇鍔�/鐗瑰緛鍊�");
+                return;
+            }
+            sendCmd(cmd);
+        });
+    }
+
+    private void initConn(BluetoothLeDevice device) {
+        appendLog("姝e湪杩炴帴 " + device.getAddress() + "...");
+        connectManager = BluetoothConnectManager.getInstance(this);
+        connectManager.addConnectStateListener(stateListener);
+        connectManager.setBluetoothGattCallback(new BluetoothGattCallback() {
+            @Override
+            public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
+                super.onConnectionStateChange(gatt, status, newState);
+                EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.CONN_STATU, newState, "conn_statu"));
+                if (newState == BluetoothProfile.STATE_CONNECTED) {
+                    mGatt = gatt;
+                }
+            }
+
+            @Override
+            public void onServicesDiscovered(BluetoothGatt gatt, int status) {
+                super.onServicesDiscovered(gatt, status);
+                if (status == BluetoothGatt.GATT_SUCCESS) {
+                    runOnUiThread(() -> processServices(gatt.getServices()));
+                }
+            }
+
+            @Override
+            public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
+                super.onCharacteristicWrite(gatt, characteristic, status);
+                String msg = (status == BluetoothGatt.GATT_SUCCESS) ? "鍐欏叆鎴愬姛" : "鍐欏叆澶辫触";
+                String uuid = characteristic.getUuid().toString().substring(0, 8);
+                runOnUiThread(() -> appendLog(msg + " (" + uuid + ")"));
+            }
+
+            @Override
+            public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
+                super.onCharacteristicChanged(gatt, characteristic);
+                byte[] value = characteristic.getValue();
+                String hex = bytesToHexString(value);
+                String uuid = characteristic.getUuid().toString().substring(0, 8);
+                runOnUiThread(() -> appendLog("鏀跺埌(" + uuid + "): " + hex));
+
+            }
+        });
+        connectManager.connect(device.getAddress());
+    }
+
+    private ConnectStateListener stateListener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            runOnUiThread(() -> {
+                String stateStr = "";
+                switch (state) {
+                    case CONNECTED: stateStr = "宸茶繛鎺�"; break;
+                    case CONNECTING: stateStr = "杩炴帴涓�"; break;
+                    case NORMAL: stateStr = "宸叉柇寮�"; break;
+                    default: stateStr = state.toString();
+                }
+                tvStatus.setText("鐘舵��: " + stateStr);
+                appendLog("鐘舵�佸彉鏇�: " + stateStr);
+            });
+        }
+    };
+
+    private void processServices(List<BluetoothGattService> services) {
+        writeableCharacteristics.clear();
+        int size = QMUIDisplayHelper.dp2px(this, 20);
+        QMUIGroupListView.Section section = QMUIGroupListView.newSection(this)
+                .setTitle("鍙啓鏈嶅姟鍒楄〃")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+        for (BluetoothGattService service : services) {
+            for (BluetoothGattCharacteristic characteristic : service.getCharacteristics()) {
+                int props = characteristic.getProperties();
+                // Filter for Write properties
+                if ((props & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0 ||
+                    (props & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0) {
+                    
+                    writeableCharacteristics.add(characteristic);
+                    
+                    String propertyStr = getPropertyString(props);
+                    String uuidFull = characteristic.getUuid().toString();
+                    
+                    QMUICommonListItemView item = mGroupListView.createItemView(null,
+                            "UUID: " + uuidFull,
+                            propertyStr,
+                            QMUICommonListItemView.VERTICAL,
+                            QMUICommonListItemView.ACCESSORY_TYPE_NONE);
+                            
+                    item.setTag(characteristic);
+                    
+                    section.addItemView(item, v -> {
+                        if (v.getTag() instanceof BluetoothGattCharacteristic) {
+                            handleCharacteristicSelection((BluetoothGattCharacteristic) v.getTag());
+                        }
+                    });
+                }
+            }
+        }
+        
+        section.addTo(mGroupListView);
+        
+        if (!writeableCharacteristics.isEmpty()) {
+            // Default select first
+            handleCharacteristicSelection(writeableCharacteristics.get(0));
+        } else {
+            appendLog("鏈壘鍒板彲鍐欑壒寰佸��.");
+        }
+    }
+
+    private void handleCharacteristicSelection(BluetoothGattCharacteristic characteristic) {
+        selectedCharacteristic = characteristic;
+        tvSelectedService.setText("褰撳墠閫夋嫨鏈嶅姟: " + selectedCharacteristic.getUuid().toString());
+        appendLog("宸查�夋嫨鐗瑰緛鍊�: " + selectedCharacteristic.getUuid());
+        Toast("宸查�夋嫨璇ユ湇鍔�");
+
+        // Attempt to find and enable notification on a characteristic in the same service
+        BluetoothGattService service = characteristic.getService();
+        boolean foundNotify = false;
+        for (BluetoothGattCharacteristic c : service.getCharacteristics()) {
+            int props = c.getProperties();
+            if ((props & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0 ||
+                    (props & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+                appendLog("灏濊瘯鍚敤閫氱煡: " + c.getUuid());
+                enableNotification(c);
+                foundNotify = true;
+                // Found one, stop searching to avoid concurrent descriptor writes
+                break; 
+            }
+        }
+        
+        if (!foundNotify) {
+             appendLog("褰撳墠鏈嶅姟鏈壘鍒板彲閫氱煡鐨勭壒寰佸��");
+        }
+    }
+    
+    private String getPropertyString(int property) {
+        StringBuilder sb = new StringBuilder();
+        if ((property & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
+            sb.append("璇� ");
+        }
+        if ((property & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0
+                || (property & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0) {
+            sb.append("鍐� ");
+        }
+        if ((property & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
+            sb.append("閫氱煡 ");
+        }
+        if ((property & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+            sb.append("鎸囩ず ");
+        }
+        return sb.toString();
+    }
+
+    private void enableNotification(BluetoothGattCharacteristic characteristic) {
+        if (mGatt == null || characteristic == null) return;
+
+        boolean success = mGatt.setCharacteristicNotification(characteristic, true);
+        if (success) {
+            appendLog("鍚敤閫氱煡鐩戝惉鎴愬姛");
+
+            // Write Descriptor for Notify/Indicate
+            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
+                    UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"));
+
+            if (descriptor != null) {
+                int props = characteristic.getProperties();
+                byte[] value = null;
+                if ((props & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
+                    value = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE;
+                } else if ((props & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+                    value = BluetoothGattDescriptor.ENABLE_INDICATION_VALUE;
+                }
+
+                if (value != null) {
+                    descriptor.setValue(value);
+                    boolean writeDesc = mGatt.writeDescriptor(descriptor);
+                    appendLog("鍐欏叆Descriptor: " + writeDesc);
+                }
+            }
+        } else {
+            appendLog("鍚敤閫氱煡鐩戝惉澶辫触!");
+        }
+    }
+
+    private void sendCmd(String hexCmd) {
+        if (selectedCharacteristic == null || mGatt == null) return;
+        
+        byte[] data = hexStringToBytes(hexCmd);
+        if (data == null) {
+            Toast("Hex鎸囦护鏍煎紡閿欒");
+            return;
+        }
+
+        selectedCharacteristic.setValue(data);
+        boolean status = mGatt.writeCharacteristic(selectedCharacteristic);
+        appendLog("鍙戦��: " + hexCmd + ", 缁撴灉: " + status);
+    }
+
+    private void appendLog(String msg) {
+        tvLog.append(msg + "\n");
+        ((View)tvLog.getParent()).post(() -> ((View)tvLog.getParent()).scrollTo(0, tvLog.getBottom()));
+    }
+
+    public static byte[] hexStringToBytes(String hexString) {
+        if (hexString == null || hexString.equals("")) {
+            return null;
+        }
+        hexString = hexString.toUpperCase();
+        hexString = hexString.replace(" ", "");
+        if (hexString.length() % 2 != 0) {
+            hexString = "0" + hexString;
+        }
+        
+        int length = hexString.length() / 2;
+        char[] hexChars = hexString.toCharArray();
+        byte[] d = new byte[length];
+        for (int i = 0; i < length; i++) {
+            int pos = i * 2;
+            d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
+        }
+        return d;
+    }
+
+    private static byte charToByte(char c) {
+        return (byte) "0123456789ABCDEF".indexOf(c);
+    }
+    
+    public static String bytesToHexString(byte[] src) {
+        StringBuilder stringBuilder = new StringBuilder("");
+        if (src == null || src.length <= 0) {
+            return null;
+        }
+        for (int i = 0; i < src.length; i++) {
+            int v = src[i] & 0xFF;
+            String hv = Integer.toHexString(v);
+            if (hv.length() < 2) {
+                stringBuilder.append(0);
+            }
+            stringBuilder.append(hv);
+        }
+        return stringBuilder.toString().toUpperCase();
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventRefresh(UpdateEvent event) {
+        // Handle global events if necessary
+    }
+    
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (connectManager != null && mDevice != null) {
+            connectManager.removeConnectStateListener(stateListener);
+            connectManager.disconnect(mDevice.getAddress());
+        }
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/WriteActivity.java b/app/src/main/java/com/shlb/comb/activity/WriteActivity.java
new file mode 100644
index 0000000..af7e1e4
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/WriteActivity.java
@@ -0,0 +1,627 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattService;
+import android.text.InputType;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ThreadUtils;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class WriteActivity extends BaseActivity {
+
+    QMUIGroupListView mGroupListView;
+
+    QMUIRoundButton send;
+
+    LinearLayout llRoot;
+
+    TextView sendNum;
+
+
+    private BluetoothConnectManager connectManager;
+    private BluetoothGatt gatt;
+
+    private BluetoothGattCharacteristic characteristic;
+
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_write);
+
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        mGroupListView = findViewById(R.id.groupListView);
+        send = findViewById(R.id.send);
+        llRoot = findViewById(R.id.ll_root);
+        sendNum = findViewById(R.id.sendNum);
+        initTitlebar();
+        tv_center.setText("缂栧潃");
+        initGroupListView();
+
+    }
+
+    @Override
+    protected void initData() {
+        String uuid = Singletion.getInstance().uuid;
+        initWrite(uuid);
+
+
+    }
+
+    @Override
+    protected void initEvent() {
+        send.setOnClickListener(this);
+
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_left) {
+            finish();
+        } else if (id == R.id.btnExit) {
+            writeCmd(CMD.EXIT);
+        } else if (id == R.id.btnInto) {
+            writeCmd(CMD.GETINTO);
+        } else if (id == R.id.btnClean) {
+            writeCmd(CMD.CLEAN);
+        } else if (id == R.id.btn1) {
+            sendYJCmd(1);
+        } else if (id == R.id.btn2) {
+            sendYJCmd(2);
+        } else if (id == R.id.btn3) {
+            sendYJCmd(3);
+        } else if (id == R.id.btn4) {
+            sendYJCmd(4);
+        } else if (id == R.id.btn5) {
+            sendYJCmd(5);
+        } else if (id == R.id.btn6) {
+            sendYJCmd(6);
+        } else if (id == R.id.btn7) {
+            sendYJCmd(7);
+        } else if (id == R.id.btn8) {
+            sendYJCmd(8);
+        } else if (id == R.id.btn9) {
+            sendYJCmd(9);
+        } else if (id == R.id.btn10) {
+            sendYJCmd(10);
+        } else if (id == R.id.btn11) {
+            sendYJCmd(11);
+        } else if (id == R.id.btn12) {
+            sendYJCmd(12);
+        } else if (id == R.id.btn13) {
+            sendYJCmd(13);
+        } else if (id == R.id.btn14) {
+            sendYJCmd(14);
+        } else if (id == R.id.btn15) {
+            sendYJCmd(15);
+        } else if (id == R.id.btn16) {
+            sendYJCmd(16);
+        } else if (id == R.id.send) {
+                switch (curCmd) {
+                    case -1:
+                        Toast("璇烽�夋嫨鎸囦护!");
+                        break;
+                    case 1:
+                        //杩涘叆缂栧潃
+                        writeCmd(CMD.GETINTO);
+                        break;
+                    case 2:
+                        //娓呴櫎鍦板潃
+                        writeCmd(CMD.CLEAN);
+                        break;
+                    case 3:
+                        String addrNos = item3.getDetailText().toString();
+                        Integer addrNo = -1;
+                        try {
+                            addrNo = Integer.parseInt(addrNos);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (addrNo == -1) {
+                            Toast("鍦板潃鏁版嵁寮傚父");
+                            return;
+
+                        }
+                        String sNo = Integer.toHexString(addrNo);
+                        if (sNo.length() < 2) {
+                            sNo = "0" + sNo;
+                        }
+
+                        String cmd = CMD.ADDR_PREFIX + sNo + CMD.ADDR_SUFFIX;
+                        byte[] bytes = invertStringToBytes(cmd);
+                        String crc = CRCutil.getCRC(bytes);
+                        String zl = cmd + crc;
+                        LogUtils.e("reszl", zl);
+                        writeCmd(zl);
+                        Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+                        break;
+                    case 4:
+                        //閫�鍑虹紪鍧�
+                        writeCmd(CMD.EXIT);
+                        break;
+                    case 5:
+                        String addrNos2 = item5.getDetailText().toString();
+                        Integer addrNo2 = -1;
+                        try {
+                            addrNo2 = Integer.parseInt(addrNos2);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        final Integer no2 = addrNo2;
+                        if (no2 == -1) {
+                            Toast("鍦板潃鏁版嵁寮傚父");
+                            return;
+
+                        }
+
+                        ThreadUtils.executeBySingle(new ThreadUtils.SimpleTask<Object>() {
+                            @Override
+                            public Object doInBackground() throws Throwable {
+                                writeCmd(CMD.GETINTO);
+                                Thread.sleep(200);
+
+                                writeCmd(CMD.CLEAN);
+                                Thread.sleep(200);
+
+                                String sNo2 = Integer.toHexString(no2);
+                                //
+                                if (sNo2.length() < 2) {
+                                    sNo2 = "0" + sNo2;
+                                }
+
+                                String cmd = CMD.ADDR_PREFIX + sNo2 + CMD.ADDR_SUFFIX;
+                                byte[] bytes = invertStringToBytes(cmd);
+                                String crc = CRCutil.getCRC(bytes);
+                                String zl = cmd + crc;
+                                LogUtils.e("reszl", zl);
+                                Thread.sleep(200);
+                                writeCmd(zl);
+
+                                return null;
+                            }
+
+                            @Override
+                            public void onSuccess(Object result) {
+
+                            }
+                        });
+                        Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+                        break;
+                }
+        }
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventReceiveNotify(UpdateEvent event) {
+        if (event != null && event.getType() == UpdateEvent.Type.BLE_DATA) {
+            BluetoothGattCharacteristic characteristic = (BluetoothGattCharacteristic) event.getObj();
+            final byte[] dataArr = characteristic.getValue();
+            final String flag = event.getMsg();
+            if (dataArr != null && dataArr.length > 0) {
+                if (flag.equals("read")) {
+                } else if (flag.equals("write")) {
+                } else if (flag.equals("notify")) {
+                    //杩斿洖缁撴灉
+                    String crc = CRCutil.getCRC(dataArr);
+                    LogUtils.e("resCRC", crc);
+                    //CRC璁$畻缁撴灉涓�0鏃跺懡浠ゆ墽琛屾垚鍔燂紝鑷姩鎵ц閫�鍑哄懡浠�
+                    if (crc.equals("0")) {
+                        writeCmd(CMD.EXIT);
+                        Toast("鎿嶄綔鎴愬姛锛岃嚜鍔ㄦ墽琛岄��鍑虹紪鍧�鎸囦护");
+                        curCmd = -1;
+                        item6.setText("缂栧潃鎴愬姛");
+                    }
+                    //璁$畻杩斿洖涓�0鏃� 鑷姩閫�鍑�
+
+                    LogUtils.e("res", ByteUtils.byteArrayToHexString(dataArr));
+                } else {
+
+                    Toast("瑙f瀽杩斿洖淇℃伅澶辫触锛�");
+                }
+            } else {
+                Toast("杩斿洖淇℃伅涓虹┖锛�");
+            }
+        }
+    }
+
+    QMUICommonListItemView item1;
+    QMUICommonListItemView item2;
+    QMUICommonListItemView item3;
+    QMUICommonListItemView item4;
+    QMUICommonListItemView item5;
+    QMUICommonListItemView item6;
+    View.OnClickListener onClickListener;
+    int curCmd = -1;
+
+    String[] cmdName = {"杩涘叆缂栧潃", "娓呴櫎鍦板潃", "缂栬緫鍦板潃", "閫�鍑虹紪鍧�", "涓�閿紪鍧�"};
+
+    private void initGroupListView() {
+        item1 = mGroupListView.createItemView(null,
+                cmdName[0], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item2 = mGroupListView.createItemView(null,
+                cmdName[1], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item3 = mGroupListView.createItemView(null,
+                cmdName[2], "鐐瑰嚮閫夋嫨缂栧彿",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+        item4 = mGroupListView.createItemView(null,
+                cmdName[3], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+
+        onClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (v instanceof QMUICommonListItemView) {
+                    CharSequence text = ((QMUICommonListItemView) v).getText();
+                    //杩涘叆缂栧潃
+                    if (text.equals(cmdName[0])) {
+                        curCmd = 1;
+                        item6.setText(cmdName[0]);
+                        item6.setDetailText("");
+                        //娓呴櫎鍦板潃
+                    } else if (text.equals(cmdName[1])) {
+                        curCmd = 2;
+                        item6.setText(cmdName[1]);
+                        item6.setDetailText("");
+                        //缂栬緫鍦板潃
+                    } else if (text.equals(cmdName[2])) {
+                        showEditTextDialog();
+                        //閫�鍑虹紪鍧�
+                    } else if (text.equals(cmdName[3])) {
+                        curCmd = 4;
+                        item6.setText(cmdName[3]);
+                        item6.setDetailText("");
+                        //涓�閿紪鍧�
+                    } else if (text.equals(cmdName[4])) {
+                        showQuickDialog();
+                    }
+
+
+                }
+            }
+        };
+
+        int size = QMUIDisplayHelper.dp2px(this, 20);
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 1:鎿嶄綔鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item1, onClickListener)
+                .addItemView(item2, onClickListener)
+                .addItemView(item3, onClickListener)
+                .addItemView(item4, onClickListener)
+                .addTo(mGroupListView);
+
+        item5 = mGroupListView.createItemView(cmdName[4]);
+        item5.setOrientation(QMUICommonListItemView.VERTICAL);
+        item5.setDetailText("杩涘叆-娓呴櫎-缂栧潃-閫�鍑�");
+        item5.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item6 = mGroupListView.createItemView("寰呴�夋嫨");
+        item6.setOrientation(QMUICommonListItemView.HORIZONTAL);
+
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 2:蹇嵎鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item5, onClickListener)
+                .addTo(mGroupListView);
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 3:褰撳墠鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item6, onClickListener)
+                .addTo(mGroupListView);
+
+    }
+
+    /**
+     * 鍒濆鍖栧啓鍏ユ湇鍔�
+     *
+     * @param uu
+     */
+    private void initWrite(String uu) {
+        BluetoothLeDevice mDevice = Singletion.getInstance().mDevice;
+        connectManager = BluetoothConnectManager.getInstance(this);
+        connectManager.addConnectStateListener(listener);
+        String uuid = uu;
+        UUID serverUUid = null;
+        gatt = connectManager.getBluetoothGatt(mDevice.getAddress());
+        if (gatt != null) {
+            List<BluetoothGattService> list = gatt.getServices();
+            if (list != null) {
+                for (BluetoothGattService service : list) {
+                    for (BluetoothGattCharacteristic characteristics : service.getCharacteristics()) {
+                        if (characteristics.getUuid().toString().equals(uuid)) {
+                            characteristic = characteristics;
+                            serverUUid = service.getUuid();
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        if (serverUUid == null) {
+            Toast("serverUUid涓嶈兘涓虹┖!");
+            return;
+        }
+        //1.set service uuid
+        connectManager.setServiceUUID(serverUUid.toString());
+        //2.clean history descriptor data
+        connectManager.cleanSubscribeData();
+        //3.add subscribe params
+        if (BluetoothUtils.isCharacteristicRead(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicRead(characteristic.getUuid()).build());
+        }
+        if (BluetoothUtils.isCharacteristicNotify(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicNotify(characteristic.getUuid()).build()
+            );
+        }
+
+        connectManager.startSubscribe(gatt);
+    }
+
+    private void writeCmd(String cmd) {
+        int len = cmd.length();
+        if (len > 0 && len % 2 == 0) {
+            byte[] bytes = invertStringToBytes(cmd);
+            if (bytes != null) {
+                characteristic.setValue(bytes);
+                gatt.writeCharacteristic(characteristic);
+                runOnUiThread(() -> {
+                    item6.setDetailText(item6.getDetailText() + "  宸插彂閫�");
+                });
+            } else {
+                Log.e("tag", "write value fail");
+            }
+        } else {
+
+            runOnUiThread(() -> {
+                Toast("鎸囦护閿欒锛�");
+            });
+        }
+    }
+
+    private byte[] invertStringToBytes(String value) {
+        int len = value.length() / 2;
+        if (len > 0) {
+            byte[] bytes = new byte[len];
+            for (int i = 0; i < len; i++) {
+                Integer val = Integer.valueOf(value.substring(i * 2, i * 2 + 2), 16);
+                bytes[i] = val.byteValue();
+            }
+            return bytes;
+        }
+        return null;
+    }
+
+    private List<Map<String, Object>> getWriteData() {
+        List<Map<String, Object>> res = new ArrayList<>();
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("name", "杩涘叆缂栧潃鐘舵��");
+        map1.put("flag", "0");
+        map1.put("value", "A55A060100000000002F35");
+        res.add(map1);
+        Map<String, Object> map2 = new HashMap<>();
+        map2.put("name", "閫�鍑虹紪鍧�鐘舵��");
+        map2.put("flag", "0");
+        map2.put("value", "A55A060400000000002F60");
+        res.add(map2);
+        Map<String, Object> map3 = new HashMap<>();
+        map3.put("name", "缂栧潃");
+        map3.put("flag", "0");
+        map3.put("value", "A55A060300020000002F6F");
+        res.add(map3);
+        Map<String, Object> map4 = new HashMap<>();
+        map4.put("name", "娓呴櫎鍦板潃");
+        map4.put("flag", "0");
+        map4.put("value", "A55A060200000000002F06");
+        res.add(map4);
+        return res;
+
+    }
+
+    private ConnectStateListener listener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            switch (state) {
+                case CONNECTED:
+                    break;
+                case CONNECTING:
+                    break;
+                case NORMAL:
+                    break;
+            }
+        }
+    };
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚� 鎵ц缂栧潃鎸囦护
+     */
+    private void showEditTextDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                        Integer res = -1;
+                        try {
+                            res = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (res == null || res < 0 || res > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            item3.setDetailText(text);
+                            curCmd = 3;
+                            item6.setText(cmdName[2]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚�  涓�閿墽琛屾墍鏈夋寚浠�
+     */
+    private void showQuickDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                        Integer addrrNo = -1;
+                        try {
+                            addrrNo = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (addrrNo == null || addrrNo < 0 || addrrNo > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            curCmd = 5;
+                            item5.setDetailText(text);
+                            item6.setText(cmdName[4]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    public void initTitlebar() {
+        iv_right.setVisibility(View.VISIBLE);
+        iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+        iv_right.setImageDrawable(getResources().getDrawable(R.mipmap.icon_topbar_overflow));
+    }
+
+    /**
+     * 鍙戦�佷竴閿懡浠�
+     * @param no2
+     */
+   private  void sendYJCmd(int no2){
+       sendNum.setText(no2+"");
+
+
+       if (no2 > 16|| no2<1 ) {
+           Toast("鍦板潃鏁版嵁寮傚父");
+           return;
+
+       }
+
+       ThreadUtils.executeBySingle(new ThreadUtils.SimpleTask<Object>() {
+           @Override
+           public Object doInBackground() throws Throwable {
+               writeCmd(CMD.GETINTO);
+               Thread.sleep(200);
+
+               writeCmd(CMD.CLEAN);
+               Thread.sleep(200);
+
+               String sNo2 = Integer.toHexString(no2);
+               //
+               if (sNo2.length() < 2) {
+                   sNo2 = "0" + sNo2;
+               }
+
+               String cmd = CMD.ADDR_PREFIX + sNo2 + CMD.ADDR_SUFFIX;
+               byte[] bytes = invertStringToBytes(cmd);
+               String crc = CRCutil.getCRC(bytes);
+               String zl = cmd + crc;
+               LogUtils.e("reszl", zl);
+               Thread.sleep(200);
+               writeCmd(zl);
+
+               return null;
+           }
+
+           @Override
+           public void onSuccess(Object result) {
+
+           }
+       });
+       Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+   }
+
+}
diff --git a/app/src/main/java/com/shlb/comb/activity/WriteActivity2.java b/app/src/main/java/com/shlb/comb/activity/WriteActivity2.java
new file mode 100644
index 0000000..0fee50d
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/activity/WriteActivity2.java
@@ -0,0 +1,531 @@
+package com.shlb.comb.activity;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattService;
+import android.text.InputType;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ThreadUtils;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
+import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+import com.shlb.comb.R;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class WriteActivity2 extends BaseActivity {
+
+    QMUIGroupListView mGroupListView;
+
+    QMUIRoundButton send;
+
+    private BluetoothConnectManager connectManager;
+    private BluetoothGatt gatt;
+
+    private BluetoothGattCharacteristic characteristic;
+
+
+    @Override
+    protected void contentView() {
+        setContentView(R.layout.activity_write);
+
+    }
+
+    @Override
+    protected void initView() {
+        super.initHead();
+        mGroupListView = findViewById(R.id.groupListView);
+        send = findViewById(R.id.send);
+        initTitlebar();
+        tv_center.setText("缂栧潃");
+        initGroupListView();
+
+    }
+
+    @Override
+    protected void initData() {
+        String uuid = Singletion.getInstance().uuid;
+        initWrite(uuid);
+
+
+    }
+
+    @Override
+    protected void initEvent() {
+        send.setOnClickListener(this);
+
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_left) {
+            finish();
+        } else if (id == R.id.iv_right) {
+        } else if (id == R.id.send) {
+                switch (curCmd){
+                    case -1:
+                        Toast("璇烽�夋嫨鎸囦护!");
+                        break;
+                    case 1:
+                        //杩涘叆缂栧潃
+                        writeCmd(CMD.GETINTO);
+                        break;
+                    case 2:
+                        //娓呴櫎鍦板潃
+                        writeCmd(CMD.CLEAN);
+                        break;
+                    case 3:
+                        String addrNos = item3.getDetailText().toString();
+                        Integer addrNo = -1;
+                        try {
+                            addrNo = Integer.parseInt(addrNos);
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                        if(addrNo == -1 ){
+                            Toast("鍦板潃鏁版嵁寮傚父");
+                            return;
+
+                        }
+                        String sNo = Integer.toHexString(addrNo);
+                        if(sNo.length()<2){
+                            sNo = "0" + sNo;
+                        }
+
+                        String cmd = CMD.ADDR_PREFIX + sNo + CMD.ADDR_SUFFIX;
+                        byte[] bytes = invertStringToBytes(cmd);
+                        String crc = CRCutil.getCRC(bytes);
+                        String zl = cmd + crc;
+                        LogUtils.e("reszl", zl);
+                        writeCmd(zl);
+                        Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+                        break;
+                    case 4:
+                        //閫�鍑虹紪鍧�
+                        writeCmd(CMD.EXIT);
+                        break;
+                    case 5:
+                        String addrNos2 = item5.getDetailText().toString();
+                        Integer addrNo2 = -1;
+                        try {
+                            addrNo2 = Integer.parseInt(addrNos2);
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                        final Integer no2 = addrNo2;
+                        if(no2 == -1 ){
+                            Toast("鍦板潃鏁版嵁寮傚父");
+                            return;
+
+                        }
+
+                        ThreadUtils.executeBySingle(new ThreadUtils.SimpleTask<Object>() {
+                            @Override
+                            public Object doInBackground() throws Throwable {
+                                writeCmd(CMD.GETINTO);
+                                Thread.sleep(200);
+
+                                writeCmd(CMD.CLEAN);
+                                Thread.sleep(200);
+
+                                String sNo2 = Integer.toHexString(no2);
+                                //
+                                if(sNo2.length()<2){
+                                    sNo2 = "0" + sNo2;
+                                }
+
+                                String cmd = CMD.ADDR_PREFIX + sNo2 + CMD.ADDR_SUFFIX;
+                                byte[] bytes = invertStringToBytes(cmd);
+                                String crc = CRCutil.getCRC(bytes);
+                                String zl = cmd + crc;
+                                LogUtils.e("reszl", zl);
+                                Thread.sleep(200);
+                                writeCmd(zl);
+
+                                return null;
+                            }
+
+                            @Override
+                            public void onSuccess(Object result) {
+
+                            }
+                        });
+                        Toast("缂栧潃鎸囦护宸插彂閫侊紒");
+                        break;
+                }
+        }
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventReceiveNotify(UpdateEvent event) {
+        if (event != null && event.getType() == UpdateEvent.Type.BLE_DATA) {
+            BluetoothGattCharacteristic characteristic = (BluetoothGattCharacteristic) event.getObj();
+            final byte[] dataArr = characteristic.getValue();
+            final String flag = event.getMsg();
+            if (dataArr != null && dataArr.length > 0) {
+                if (flag.equals("read")) {
+                } else if (flag.equals("write")) {
+                } else if (flag.equals("notify")) {
+                    //杩斿洖缁撴灉
+                    String crc = CRCutil.getCRC(dataArr);
+                    LogUtils.e("resCRC", crc);
+                    //CRC璁$畻缁撴灉涓�0鏃跺懡浠ゆ墽琛屾垚鍔燂紝鑷姩鎵ц閫�鍑哄懡浠�
+                    if (crc.equals("0")) {
+                        writeCmd(CMD.EXIT);
+                        Toast("鎿嶄綔鎴愬姛锛岃嚜鍔ㄦ墽琛岄��鍑虹紪鍧�鎸囦护");
+                        curCmd  = -1;
+                        item6.setText("缂栧潃鎴愬姛");
+                    }
+                    //璁$畻杩斿洖涓�0鏃� 鑷姩閫�鍑�
+
+                    LogUtils.e("res", ByteUtils.byteArrayToHexString(dataArr));
+                } else {
+
+                    Toast("瑙f瀽杩斿洖淇℃伅澶辫触锛�");
+                }
+            } else {
+                Toast("杩斿洖淇℃伅涓虹┖锛�");
+            }
+        }
+    }
+
+    QMUICommonListItemView item1;
+    QMUICommonListItemView item2;
+    QMUICommonListItemView item3;
+    QMUICommonListItemView item4;
+    QMUICommonListItemView item5;
+    QMUICommonListItemView item6;
+    View.OnClickListener onClickListener;
+    int  curCmd = -1;
+
+    String[] cmdName = {"杩涘叆缂栧潃", "娓呴櫎鍦板潃", "缂栬緫鍦板潃", "閫�鍑虹紪鍧�", "涓�閿紪鍧�"};
+    private void initGroupListView() {
+        item1 = mGroupListView.createItemView(null,
+                cmdName[0], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item2 = mGroupListView.createItemView(null,
+                cmdName[1], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item3 = mGroupListView.createItemView(null,
+                cmdName[2], "鐐瑰嚮閫夋嫨缂栧彿",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+        item4 = mGroupListView.createItemView(null,
+                cmdName[3], "",
+                QMUICommonListItemView.HORIZONTAL,
+                QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+
+        onClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (v instanceof QMUICommonListItemView) {
+                    CharSequence text = ((QMUICommonListItemView) v).getText();
+                    //杩涘叆缂栧潃
+                    if (text.equals(cmdName[0])) {
+                      curCmd = 1;
+                      item6.setText(cmdName[0]);
+                        item6.setDetailText("");
+                        //娓呴櫎鍦板潃
+                    } else if (text.equals(cmdName[1])) {
+                        curCmd = 2;
+                        item6.setText(cmdName[1]);
+                        item6.setDetailText("");
+                        //缂栬緫鍦板潃
+                    } else if (text.equals(cmdName[2])) {
+                        showEditTextDialog();
+                        //閫�鍑虹紪鍧�
+                    } else if (text.equals(cmdName[3])) {
+                       curCmd = 4;
+                        item6.setText(cmdName[3]);
+                        item6.setDetailText("");
+                        //涓�閿紪鍧�
+                    }else if (text.equals(cmdName[4])) {
+                        showQuickDialog();
+                    }
+
+
+                }
+            }
+        };
+
+        int size = QMUIDisplayHelper.dp2px(this, 20);
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 1:鎿嶄綔鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item1, onClickListener)
+                .addItemView(item2, onClickListener)
+                .addItemView(item3, onClickListener)
+                .addItemView(item4, onClickListener)
+                .addTo(mGroupListView);
+
+        item5  = mGroupListView.createItemView(cmdName[4]);
+        item5.setOrientation(QMUICommonListItemView.VERTICAL);
+        item5.setDetailText("杩涘叆-娓呴櫎-缂栧潃-閫�鍑�");
+        item5.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
+
+        item6  = mGroupListView.createItemView("寰呴�夋嫨");
+        item6.setOrientation(QMUICommonListItemView.HORIZONTAL);
+
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 2:蹇嵎鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item5, onClickListener)
+                .addTo(mGroupListView);
+
+        QMUIGroupListView.newSection(this)
+                .setTitle("Section 3:褰撳墠鎸囦护")
+                .setDescription("")
+                .setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
+                .addItemView(item6, onClickListener)
+                .addTo(mGroupListView);
+
+    }
+
+    /**
+     * 鍒濆鍖栧啓鍏ユ湇鍔�
+     *
+     * @param uu
+     */
+    private void initWrite(String uu) {
+        BluetoothLeDevice mDevice = Singletion.getInstance().mDevice;
+        connectManager = BluetoothConnectManager.getInstance(this);
+        connectManager.addConnectStateListener(listener);
+        String uuid = uu;
+        UUID serverUUid = null;
+        gatt = connectManager.getBluetoothGatt(mDevice.getAddress());
+        if (gatt != null) {
+            List<BluetoothGattService> list = gatt.getServices();
+            if (list != null) {
+                for (BluetoothGattService service : list) {
+                    for (BluetoothGattCharacteristic characteristics : service.getCharacteristics()) {
+                        if (characteristics.getUuid().toString().equals(uuid)) {
+                            characteristic = characteristics;
+                            serverUUid = service.getUuid();
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        if (serverUUid == null) {
+            Toast("serverUUid涓嶈兘涓虹┖!");
+            return;
+        }
+        //1.set service uuid
+        connectManager.setServiceUUID(serverUUid.toString());
+        //2.clean history descriptor data
+        connectManager.cleanSubscribeData();
+        //3.add subscribe params
+        if (BluetoothUtils.isCharacteristicRead(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicRead(characteristic.getUuid()).build());
+        }
+        if (BluetoothUtils.isCharacteristicNotify(characteristic.getProperties())) {
+            connectManager.addBluetoothSubscribeData(
+                    new BluetoothSubScribeData.Builder().setCharacteristicNotify(characteristic.getUuid()).build()
+            );
+        }
+
+        connectManager.startSubscribe(gatt);
+    }
+
+    private void writeCmd(String cmd) {
+        int len = cmd.length();
+        if (len > 0 && len % 2 == 0) {
+            byte[] bytes = invertStringToBytes(cmd);
+            if (bytes != null) {
+                characteristic.setValue(bytes);
+                gatt.writeCharacteristic(characteristic);
+                runOnUiThread(()->{
+                    item6.setDetailText(item6.getDetailText()+"  宸插彂閫�");
+                });
+            } else {
+                Log.e("tag", "write value fail");
+            }
+        } else {
+
+            runOnUiThread(()->{
+                Toast("鎸囦护閿欒锛�");
+            });
+        }
+    }
+
+    private byte[] invertStringToBytes(String value) {
+        int len = value.length() / 2;
+        if (len > 0) {
+            byte[] bytes = new byte[len];
+            for (int i = 0; i < len; i++) {
+                Integer val = Integer.valueOf(value.substring(i * 2, i * 2 + 2), 16);
+                bytes[i] = val.byteValue();
+            }
+            return bytes;
+        }
+        return null;
+    }
+
+    private List<Map<String, Object>> getWriteData() {
+        List<Map<String, Object>> res = new ArrayList<>();
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("name", "杩涘叆缂栧潃鐘舵��");
+        map1.put("flag", "0");
+        map1.put("value", "A55A060100000000002F35");
+        res.add(map1);
+        Map<String, Object> map2 = new HashMap<>();
+        map2.put("name", "閫�鍑虹紪鍧�鐘舵��");
+        map2.put("flag", "0");
+        map2.put("value", "A55A060400000000002F60");
+        res.add(map2);
+        Map<String, Object> map3 = new HashMap<>();
+        map3.put("name", "缂栧潃");
+        map3.put("flag", "0");
+        map3.put("value", "A55A060300020000002F6F");
+        res.add(map3);
+        Map<String, Object> map4 = new HashMap<>();
+        map4.put("name", "娓呴櫎鍦板潃");
+        map4.put("flag", "0");
+        map4.put("value", "A55A060200000000002F06");
+        res.add(map4);
+        return res;
+
+    }
+
+    private ConnectStateListener listener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            switch (state) {
+                case CONNECTED:
+                    break;
+                case CONNECTING:
+                    break;
+                case NORMAL:
+                    break;
+            }
+        }
+    };
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚� 鎵ц缂栧潃鎸囦护
+     */
+    private void showEditTextDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                        Integer res = -1;
+                        try {
+                            res = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (res == null || res < 0 || res > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            item3.setDetailText(text);
+                            curCmd = 3;
+                            item6.setText(cmdName[2]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    /**
+     * 杈撳叆缂栧潃搴忓彿鍚�  涓�閿墽琛屾墍鏈夋寚浠�
+     */
+    private void showQuickDialog() {
+        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(this);
+        builder.setTitle("鎻愮ず")
+                .setPlaceholder("璇疯緭鍏ョ紪鍧�鍙风爜(1-16)")
+                .setInputType(InputType.TYPE_CLASS_TEXT)
+                .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        dialog.dismiss();
+                    }
+                })
+                .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                    @Override
+                    public void onClick(QMUIDialog dialog, int index) {
+                        String text = builder.getEditText().getText().toString();
+                         Integer addrrNo = -1;
+                        try {
+                            addrrNo = Integer.parseInt(text);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (addrrNo == null || addrrNo < 0 || addrrNo > 16) {
+                            Toast("璇疯緭鍏�1-16鏁板瓧");
+                        } else {
+                            curCmd = 5;
+                            item5.setDetailText(text);
+                            item6.setText(cmdName[4]);
+                            item6.setDetailText(text);
+                            dialog.dismiss();
+
+
+                        }
+
+
+                    }
+                })
+                .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+    }
+
+    public void initTitlebar() {
+        iv_right.setVisibility(View.VISIBLE);
+        iv_left.setImageDrawable(getResources().getDrawable(R.mipmap.icon_back));
+        iv_right.setImageDrawable(getResources().getDrawable(R.mipmap.icon_topbar_overflow));
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/BaseArrayListAdapter.java b/app/src/main/java/com/shlb/comb/adapter/BaseArrayListAdapter.java
new file mode 100644
index 0000000..51eb173
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/BaseArrayListAdapter.java
@@ -0,0 +1,246 @@
+/*
+ * FileName: BaseArrayListAdapter.java
+ * Copyright (C) 2014 Plusub Tech. Co. Ltd. All Rights Reserved <admin@plusub.com>
+ * 
+ * Licensed under the Plusub License, Version 1.0 (the "License");
+ * 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.
+ *
+ * author  : quhao <blakequ@gmail.com>
+ * date     : 2014-6-7 涓嬪崍9:50:52
+ * last modify author :
+ * version : 1.0
+ */
+package com.shlb.comb.adapter;
+
+import android.content.Context;
+import android.util.DisplayMetrics;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.BaseAdapter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鏁扮粍閫傞厤鍣紝鍙渶瑕佸疄鐜� {@link #getView(int, View, ViewGroup)}
+ * @author blakequ Blakequ@gmail.com
+ *
+ * @param <T>
+ */
+public abstract class BaseArrayListAdapter<T> extends BaseAdapter {
+
+	protected Context mContext;
+	protected LayoutInflater mInflater;
+	private List<T> mDatas;
+	/**灞忓箷鐨勫搴�*/
+	protected int mScreenWidth;
+	/**灞忓箷楂樺害*/
+	protected int mScreenHeight;
+	/**灞忓箷瀵嗗害*/
+	protected float mDensity;
+	
+	public BaseArrayListAdapter(Context context){
+		mContext = context;
+		mInflater = LayoutInflater.from(context);
+		mDatas = new ArrayList<T>();
+		DisplayMetrics metric = new DisplayMetrics();
+		WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
+        wm.getDefaultDisplay().getMetrics(metric);
+		mScreenWidth = metric.widthPixels;
+		mScreenHeight = metric.heightPixels;
+		mDensity = metric.density;
+	}
+	
+	public BaseArrayListAdapter(Context context, List<T> datas){
+		mContext = context;
+		mInflater = LayoutInflater.from(context);
+		if (datas != null && datas.size() > 0) {
+			mDatas = datas;
+		}else{
+			mDatas = new ArrayList<T>();
+		}
+	}
+	
+	/**
+	 * get context
+	 * <p>Title: getContext
+	 * <p>Description: 
+	 * @return
+	 */
+	public Context getContext() {
+		return mContext;
+	}
+
+	public LayoutInflater getInflater() {
+		return mInflater;
+	}
+
+	/**
+	 * get screen width
+	 * <p>Title: getScreenWidth
+	 * <p>Description: 
+	 * @return
+	 */
+	public int getScreenWidth() {
+		return mScreenWidth;
+	}
+
+	/**
+	 * get screen height
+	 * <p>Title: getScreenHeight
+	 * <p>Description: 
+	 * @return
+	 */
+	public int getScreenHeight() {
+		return mScreenHeight;
+	}
+
+	/**
+	 * return all data
+	 * <p>Title: getAllData
+	 * <p>Description: 
+	 * @return
+	 */
+	public List<T> getAllData(){
+		return mDatas;
+	}
+	
+	/**
+	 * add data to head
+	 * <p>Title: addHead
+	 * <p>Description: 
+	 * @param datas
+	 */
+	public void addHead(T datas){
+		if (datas != null) {
+			mDatas.add(0, datas);
+			notifyDataSetChanged();
+		}
+	}
+	
+	/**
+	 * add data list to head
+	 * <p>Title: addHead
+	 * <p>Description: 
+	 * @param datas
+	 */
+	public void addHead(List<T> datas){
+		if (datas != null) {
+			for (int i = 0; i < datas.size(); i++) {
+				mDatas.add(i, datas.get(i));
+			}
+			notifyDataSetChanged();
+		}
+	}
+	
+	
+	public void add(T datas){
+		if (datas != null) {
+			mDatas.add(datas);
+			notifyDataSetChanged();
+		}
+	}
+	
+	public void add(int position, T datas){
+		if (position < 0 || position >= mDatas.size() || datas == null) {
+			return;
+		}
+		mDatas.add(position, datas);
+		notifyDataSetChanged();
+	}
+	
+	/**
+	 * 鏇存柊鎸囧畾浣嶇疆鏁版嵁
+	 * <p>Title: update
+	 * <p>Description: 
+	 * @param position
+	 * @param datas
+	 */
+	public void update(int position, T datas){
+		if (position < 0 || position >= mDatas.size() || datas == null) {
+			return;
+		}
+		mDatas.remove(position);
+		mDatas.add(position, datas);
+		notifyDataSetChanged();
+	}
+	
+	/**
+	 * add data to adapter
+	 * <p>Title: addAll
+	 * <p>Description: 
+	 * @param datas
+	 */
+	public void addAll(List<T> datas){
+		if (datas != null) {
+			mDatas.addAll(datas);
+			notifyDataSetChanged();
+		}
+	}
+	
+	/**
+	 * refresh data to adapter, history data will be remove
+	 * <p>Title: refreshData
+	 * <p>Description: 
+	 * @param datas
+	 */
+	public void refreshData(List<T> datas){
+		if (datas != null) {
+			mDatas.clear();
+			mDatas.addAll(datas);
+			notifyDataSetChanged();
+		}
+	}
+	
+	/**
+	 * clear all data
+	 * <p>Title: clear
+	 * <p>Description:
+	 */
+	public void clear(){
+		mDatas.clear();
+		notifyDataSetChanged();
+	}
+	
+	/**
+	 * 鍒犻櫎鎸囧畾浣嶇疆鏁版嵁
+	 * <p>Title: delete
+	 * <p>Description: 
+	 * @param position
+	 */
+	public void delete(int position){
+		if (position < 0 || position >= mDatas.size()) {
+			return;
+		}
+		mDatas.remove(position);
+		notifyDataSetChanged();
+	}
+	
+	@Override
+	public int getCount() {
+		// TODO Auto-generated method stub
+		return mDatas.size();
+	}
+
+	@Override
+	public Object getItem(int position) {
+		// TODO Auto-generated method stub
+		if (mDatas == null || mDatas.size() <= 0 || position < 0 || position >= mDatas.size()) {
+			return null;
+		}
+		return mDatas.get(position);
+	}
+ 
+	@Override
+	public long getItemId(int position) {
+		// TODO Auto-generated method stub
+		return position;
+	}
+
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter.java b/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter.java
new file mode 100644
index 0000000..5d5d56b
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter.java
@@ -0,0 +1,83 @@
+package com.shlb.comb.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+
+import com.blakequ.bluetooth_manager_lib.device.BeaconType;
+import com.blakequ.bluetooth_manager_lib.device.BeaconUtils;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord;
+import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.shlb.comb.R;
+import com.shlb.comb.util.Constants;
+
+
+public class DeviceListAdapter extends BaseArrayListAdapter<BluetoothLeDevice>{
+
+    private int scrodKey;
+    public DeviceListAdapter(Context context) {
+        super(context);
+    }
+
+    public void updateConfig(int scrodKey){
+        this.scrodKey = scrodKey;
+    }
+
+    @Override
+    public View getView(int position, View view, ViewGroup parent) {
+        final ViewHolder viewHolder;
+        // General ListView optimization code.
+        if (view == null) {
+            view = mInflater.inflate(R.layout.dialog_layout_bluetooth_item, null);
+            viewHolder = new ViewHolder();
+            viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
+            viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
+            viewHolder.deviceIcon = (ImageView) view.findViewById(R.id.device_icon);
+
+            view.setTag(viewHolder);
+        } else {
+            viewHolder = (ViewHolder) view.getTag();
+        }
+
+        final BluetoothLeDevice device = (BluetoothLeDevice) getItem(position);
+        final String deviceName = device.getName();
+        final double rssi = device.getRssi();
+
+        if (deviceName != null && deviceName.length() > 0) {
+            viewHolder.deviceName.setText(deviceName);
+        } else {
+            viewHolder.deviceName.setText(R.string.unknown_device);
+        }
+
+
+
+
+
+        return view;
+    }
+
+    public double calculateAccuracy(final int txPower, final double rssi) {
+        if (rssi == 0) {
+            return 0; // if we cannot determine accuracy, return -1.
+        }
+
+        final double ratio = rssi * 1.0 / txPower;
+        if (ratio < 1.0) {
+            return Math.pow(ratio, 10);
+        } else {
+            return (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
+        }
+    }
+
+    static class ViewHolder {
+        TextView deviceName;
+        TextView deviceAddress;
+        ImageView deviceIcon;
+
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter2.java b/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter2.java
new file mode 100644
index 0000000..0068a2d
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/DeviceListAdapter2.java
@@ -0,0 +1,137 @@
+package com.shlb.comb.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.blakequ.bluetooth_manager_lib.device.BeaconType;
+import com.blakequ.bluetooth_manager_lib.device.BeaconUtils;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord;
+import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.shlb.comb.R;
+import com.shlb.comb.util.Constants;
+
+
+public class DeviceListAdapter2 extends BaseArrayListAdapter<BluetoothLeDevice>{
+
+    private int scrodKey;
+    public DeviceListAdapter2(Context context) {
+        super(context);
+    }
+
+    public void updateConfig(int scrodKey){
+        this.scrodKey = scrodKey;
+    }
+
+    @Override
+    public View getView(int position, View view, ViewGroup parent) {
+        final ViewHolder viewHolder;
+        // General ListView optimization code.
+        if (view == null) {
+            view = mInflater.inflate(R.layout.list_item_device, null);
+            viewHolder = new ViewHolder();
+            viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
+            viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
+            viewHolder.deviceRssi = (TextView) view.findViewById(R.id.device_rssi);
+            viewHolder.deviceIcon = (ImageView) view.findViewById(R.id.device_icon);
+            viewHolder.deviceLastUpdated = (TextView) view.findViewById(R.id.device_last_update);
+            viewHolder.ibeaconMajor = (TextView) view.findViewById(R.id.ibeacon_major);
+            viewHolder.ibeaconMinor = (TextView) view.findViewById(R.id.ibeacon_minor);
+            viewHolder.ibeaconDistance = (TextView) view.findViewById(R.id.ibeacon_distance);
+            viewHolder.ibeaconUUID = (TextView) view.findViewById(R.id.ibeacon_uuid);
+            viewHolder.ibeaconTxPower = (TextView) view.findViewById(R.id.ibeacon_tx_power);
+            viewHolder.ibeaconSection = view.findViewById(R.id.ibeacon_section);
+            viewHolder.ibeaconDistanceDescriptor = (TextView) view.findViewById(R.id.ibeacon_distance_descriptor);
+            viewHolder.deviceRecord = (TextView) view.findViewById(R.id.ibeacon_scan_record);
+            view.setTag(viewHolder);
+        } else {
+            viewHolder = (ViewHolder) view.getTag();
+        }
+
+        final BluetoothLeDevice device = (BluetoothLeDevice) getItem(position);
+        final String deviceName = device.getName();
+        final double rssi = device.getRssi();
+
+        if (deviceName != null && deviceName.length() > 0) {
+            viewHolder.deviceName.setText(deviceName);
+        } else {
+            viewHolder.deviceName.setText(R.string.unknown_device);
+        }
+
+        if (BeaconUtils.getBeaconType(device) == BeaconType.IBEACON) {
+            final IBeaconDevice iBeacon = new IBeaconDevice(device);
+            final String accuracy = Constants.DOUBLE_TWO_DIGIT_ACCURACY.format(iBeacon.getAccuracy());
+
+            viewHolder.deviceIcon.setImageResource(R.mipmap.ic_device_ibeacon);
+            viewHolder.ibeaconSection.setVisibility(View.VISIBLE);
+            viewHolder.ibeaconMajor.setText(String.valueOf(iBeacon.getMajor()));
+            viewHolder.ibeaconMinor.setText(String.valueOf(iBeacon.getMinor()));
+            viewHolder.ibeaconTxPower.setText(String.valueOf(iBeacon.getCalibratedTxPower()));
+            viewHolder.ibeaconUUID.setText(iBeacon.getUUID());
+            viewHolder.ibeaconDistance.setText(
+                    mContext.getString(R.string.formatter_meters, accuracy));
+            viewHolder.ibeaconDistanceDescriptor.setText(iBeacon.getDistanceDescriptor().toString());
+        } else {
+            viewHolder.deviceIcon.setImageResource(R.mipmap.ic_bluetooth);
+            viewHolder.ibeaconSection.setVisibility(View.GONE);
+        }
+
+        final String rssiString =
+                mContext.getString(R.string.formatter_db, String.valueOf(rssi));
+        final String runningAverageRssiString =
+                mContext.getString(R.string.formatter_db, String.valueOf(device.getRunningAverageRssi()));
+
+        viewHolder.deviceLastUpdated.setText(
+                android.text.format.DateFormat.format(
+                        Constants.TIME_FORMAT, new java.util.Date(device.getTimestamp())));
+        viewHolder.deviceAddress.setText(device.getAddress());
+        viewHolder.deviceRssi.setText(rssiString + " / " + runningAverageRssiString);
+
+        //add for test
+        if (scrodKey != -1){
+            AdRecord record = device.getAdRecordStore().getRecord(scrodKey);
+            if (record != null) {
+                viewHolder.deviceRecord.setVisibility(View.VISIBLE);
+                viewHolder.deviceRecord.setText(record.getHumanReadableType()+"锛�"+ByteUtils.byteArrayToHexString(record.getData()));
+            }else {
+                viewHolder.deviceRecord.setVisibility(View.GONE);
+            }
+        }else {
+            viewHolder.deviceRecord.setVisibility(View.GONE);
+        }
+        return view;
+    }
+
+    public double calculateAccuracy(final int txPower, final double rssi) {
+        if (rssi == 0) {
+            return 0; // if we cannot determine accuracy, return -1.
+        }
+
+        final double ratio = rssi * 1.0 / txPower;
+        if (ratio < 1.0) {
+            return Math.pow(ratio, 10);
+        } else {
+            return (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
+        }
+    }
+
+    static class ViewHolder {
+        TextView deviceName;
+        TextView deviceAddress;
+        TextView deviceRssi;
+        TextView ibeaconUUID;
+        TextView ibeaconMajor;
+        TextView ibeaconMinor;
+        TextView ibeaconTxPower;
+        TextView ibeaconDistance;
+        TextView ibeaconDistanceDescriptor;
+        TextView deviceLastUpdated;
+        View ibeaconSection;
+        ImageView deviceIcon;
+        TextView deviceRecord;
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/HomeAdapter.java b/app/src/main/java/com/shlb/comb/adapter/HomeAdapter.java
new file mode 100644
index 0000000..face410
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/HomeAdapter.java
@@ -0,0 +1,25 @@
+package com.shlb.comb.adapter;
+
+
+import androidx.annotation.NonNull;
+
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.shlb.comb.R;
+import com.shlb.comb.model.HomeItem;
+
+import java.util.List;
+
+
+public class HomeAdapter extends BaseQuickAdapter<HomeItem, BaseViewHolder> {
+    public HomeAdapter(int layoutResId, List data) {
+        super(layoutResId, data);
+    }
+
+    @Override
+    protected void convert(@NonNull BaseViewHolder helper, HomeItem item) {
+        helper.setText(R.id.tweetName, item.getTitle());
+        //helper.setImageResource(R.id.icon, item.getImageResource());
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java b/app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java
new file mode 100644
index 0000000..e6fa862
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java
@@ -0,0 +1,240 @@
+package com.shlb.comb.adapter;
+
+import android.bluetooth.BluetoothDevice;
+import android.content.Context;
+import android.os.ParcelUuid;
+import android.util.SparseArray;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanRecordCompat;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.shlb.comb.R;
+
+import java.util.List;
+import java.util.Map;
+
+
+public class HomeDeviceListAdapter extends BaseArrayListAdapter<BluetoothLeDevice> {
+    private setOnItemButtonClick onItemButtonClick;
+
+
+    private int scrodKey;
+    private int expandedPosition = -1;
+
+    public HomeDeviceListAdapter(Context context, setOnItemButtonClick onItemButtonClick) {
+        super(context);
+        this.onItemButtonClick = onItemButtonClick;
+    }
+
+    public void updateConfig(int scrodKey) {
+        this.scrodKey = scrodKey;
+    }
+
+    @Override
+    public View getView(int position, View view, ViewGroup parent) {
+        final ViewHolder viewHolder;
+        // General ListView optimization code.
+        if (view == null) {
+            view = mInflater.inflate(R.layout.home_list_bluetooth_item, null);
+            viewHolder = new ViewHolder();
+            viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
+            viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
+            viewHolder.rssi = (TextView) view.findViewById(R.id.rssi);
+            viewHolder.deviceIcon = (ImageView) view.findViewById(R.id.device_icon);
+            viewHolder.ivDown = (ImageView) view.findViewById(R.id.iv_down);
+            viewHolder.llMainContent = (LinearLayout) view.findViewById(R.id.ll_main_content);
+            viewHolder.llMoreInfo = (LinearLayout) view.findViewById(R.id.ll_more_info);
+            viewHolder.tvDeviceType = (TextView) view.findViewById(R.id.tv_device_type);
+            viewHolder.tvAdvType = (TextView) view.findViewById(R.id.tv_adv_type);
+            viewHolder.tvFlags = (TextView) view.findViewById(R.id.tv_flags);
+            viewHolder.tvLocalName = (TextView) view.findViewById(R.id.tv_local_name);
+            viewHolder.tvTxPower = (TextView) view.findViewById(R.id.tv_tx_power);
+            viewHolder.tvServiceUuids = (TextView) view.findViewById(R.id.tv_service_uuids);
+            viewHolder.tvServiceData = (TextView) view.findViewById(R.id.tv_service_data);
+            viewHolder.tvManufacturerData = (TextView) view.findViewById(R.id.tv_manufacturer_data);
+
+            view.findViewById(R.id.conn_btn).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    onItemButtonClick.buttonClick(view, position);
+                }
+            });
+            view.setTag(viewHolder);
+        } else {
+            viewHolder = (ViewHolder) view.getTag();
+        }
+
+        final BluetoothLeDevice device = (BluetoothLeDevice) getItem(position);
+        final String deviceName = device.getName();
+        final String deviceAddress = device.getAddress();
+        final double rssi = device.getRssi();
+
+
+        if (deviceName != null && deviceName.length() > 0) {
+            viewHolder.deviceName.setText(deviceName);
+        } else {
+            viewHolder.deviceName.setText(R.string.unknown_device);
+        }
+        if (deviceAddress != null && deviceAddress.length() > 0) {
+            viewHolder.deviceAddress.setText(deviceAddress);
+        }
+        if (Math.abs(rssi) > 0) {
+            viewHolder.rssi.setText("-" + rssi + "dBm");
+        }
+
+        if (expandedPosition == position) {
+            viewHolder.llMoreInfo.setVisibility(View.VISIBLE);
+            viewHolder.ivDown.setRotation(180);
+            populateMoreInfo(viewHolder, device);
+        } else {
+            viewHolder.llMoreInfo.setVisibility(View.GONE);
+            viewHolder.ivDown.setRotation(0);
+        }
+
+        viewHolder.llMainContent.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (expandedPosition == position) {
+                    expandedPosition = -1;
+                } else {
+                    expandedPosition = position;
+                }
+                notifyDataSetChanged();
+            }
+        });
+
+
+        return view;
+    }
+
+    private void populateMoreInfo(ViewHolder holder, BluetoothLeDevice device) {
+        holder.tvDeviceType.setText("璁惧绫诲瀷: " + getDeviceType(device));
+
+        ScanRecordCompat record = ScanRecordCompat.parseFromBytes(device.getScanRecord());
+        if (record != null) {
+            holder.tvAdvType.setText("骞挎挱绫诲瀷: Legacy");
+            holder.tvFlags.setText("鏍囧織 (Flags): " + getFlags(record));
+            holder.tvLocalName.setText("瀹屾暣鏈湴鍚嶇О: " + (record.getDeviceName() != null ? record.getDeviceName() : "鏃�"));
+            
+            int txPower = record.getTxPowerLevel();
+            holder.tvTxPower.setText("鍙戝皠鍔熺巼: " + (txPower == Integer.MIN_VALUE ? "鏃�" : txPower + " dBm"));
+
+            List<ParcelUuid> uuids = record.getServiceUuids();
+            if (uuids != null && !uuids.isEmpty()) {
+                StringBuilder sb = new StringBuilder("鏈嶅姟 UUID: ");
+                for (ParcelUuid uuid : uuids) {
+                    sb.append(uuid.toString()).append("\n");
+                }
+                holder.tvServiceUuids.setVisibility(View.VISIBLE);
+                holder.tvServiceUuids.setText(sb.toString().trim());
+            } else {
+                holder.tvServiceUuids.setVisibility(View.GONE);
+            }
+
+            Map<ParcelUuid, byte[]> serviceData = record.getServiceData();
+            if (serviceData != null && !serviceData.isEmpty()) {
+                StringBuilder sb = new StringBuilder("鏈嶅姟鏁版嵁: ");
+                for (Map.Entry<ParcelUuid, byte[]> entry : serviceData.entrySet()) {
+                    sb.append(entry.getKey().toString()).append(": ")
+                      .append(ByteUtils.byteArrayToHexString(entry.getValue())).append("\n");
+                }
+                holder.tvServiceData.setVisibility(View.VISIBLE);
+                holder.tvServiceData.setText(sb.toString().trim());
+            } else {
+                holder.tvServiceData.setVisibility(View.GONE);
+            }
+
+            holder.tvManufacturerData.setText("鍘傚晢鏁版嵁: " + getManufacturerData(record));
+        } else {
+            holder.tvAdvType.setText("骞挎挱绫诲瀷: 鏃�");
+            holder.tvFlags.setText("鏍囧織 (Flags): 鏃�");
+            holder.tvLocalName.setText("瀹屾暣鏈湴鍚嶇О: 鏃�");
+            holder.tvTxPower.setText("鍙戝皠鍔熺巼: 鏃�");
+            holder.tvServiceUuids.setVisibility(View.GONE);
+            holder.tvServiceData.setVisibility(View.GONE);
+            holder.tvManufacturerData.setText("鍘傚晢鏁版嵁: 鏃�");
+        }
+    }
+
+    private String getDeviceType(BluetoothLeDevice device) {
+        int type = device.getDevice().getType();
+        switch (type) {
+            case BluetoothDevice.DEVICE_TYPE_CLASSIC:
+                return "浠呯粡鍏歌摑鐗� (Classic)";
+            case BluetoothDevice.DEVICE_TYPE_LE:
+                return "浠呬綆鍔熻�楄摑鐗� (LE)";
+            case BluetoothDevice.DEVICE_TYPE_DUAL:
+                return "鍙屾ā (Dual Mode)";
+            default:
+                return "鏈煡";
+        }
+    }
+
+    private String getFlags(ScanRecordCompat record) {
+        int flags = record.getAdvertiseFlags();
+        if (flags == -1) return "鏃�";
+        StringBuilder sb = new StringBuilder();
+        if ((flags & 0x01) != 0) sb.append("LE 鏈夐檺鍙彂鐜版ā寮�, ");
+        if ((flags & 0x02) != 0) sb.append("LE 鏅�氬彲鍙戠幇妯″紡, ");
+        if ((flags & 0x04) != 0) sb.append("涓嶆敮鎸� BR/EDR, ");
+        if ((flags & 0x08) != 0) sb.append("鎺у埗鍣ㄦ敮鎸� LE 鍜� BR/EDR, ");
+        if ((flags & 0x10) != 0) sb.append("涓绘満鏀寔 LE 鍜� BR/EDR, ");
+        if (sb.length() > 2) sb.setLength(sb.length() - 2);
+        return sb.toString();
+    }
+
+    private String getManufacturerData(ScanRecordCompat record) {
+        SparseArray<byte[]> data = record.getManufacturerSpecificData();
+        if (data == null || data.size() == 0) return "鏃�";
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < data.size(); i++) {
+            int id = data.keyAt(i);
+            byte[] bytes = data.valueAt(i);
+            sb.append(String.format("ID: 0x%04X, 鏁版嵁: ", id));
+            sb.append(ByteUtils.byteArrayToHexString(bytes));
+            if (i < data.size() - 1) sb.append("\n");
+        }
+        return sb.toString();
+    }
+
+    public double calculateAccuracy(final int txPower, final double rssi) {
+        if (rssi == 0) {
+            return 0; // if we cannot determine accuracy, return -1.
+        }
+
+        final double ratio = rssi * 1.0 / txPower;
+        if (ratio < 1.0) {
+            return Math.pow(ratio, 10);
+        } else {
+            return (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
+        }
+    }
+
+    static class ViewHolder {
+        TextView deviceName;
+        TextView deviceAddress;
+        TextView rssi;
+        ImageView deviceIcon;
+        ImageView ivDown;
+        LinearLayout llMainContent;
+        LinearLayout llMoreInfo;
+        TextView tvDeviceType;
+        TextView tvAdvType;
+        TextView tvFlags;
+        TextView tvLocalName;
+        TextView tvTxPower;
+        TextView tvServiceUuids;
+        TextView tvServiceData;
+        TextView tvManufacturerData;
+
+    }
+
+    public interface setOnItemButtonClick {
+        void buttonClick(View view, int position);
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/adapter/WriteAdapter.java b/app/src/main/java/com/shlb/comb/adapter/WriteAdapter.java
new file mode 100644
index 0000000..95f4581
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/adapter/WriteAdapter.java
@@ -0,0 +1,32 @@
+package com.shlb.comb.adapter;
+
+
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.shlb.comb.R;
+import com.shlb.comb.model.HomeItem;
+
+import java.util.List;
+import java.util.Map;
+
+
+public class WriteAdapter extends BaseQuickAdapter<Map<String,Object>, BaseViewHolder> {
+    public WriteAdapter(int layoutResId, List data) {
+        super(layoutResId, data);
+    }
+
+    @Override
+    protected void convert(@NonNull BaseViewHolder helper, Map<String,Object> item) {
+        helper.setText(R.id.name, item.get("name").toString());
+        if("1" == item.get("flag").toString()){
+            helper.getView(R.id.logo).setVisibility(View.VISIBLE);
+        }else {
+            helper.getView(R.id.logo).setVisibility(View.GONE);
+        }
+
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/base/BaseActivity.java b/app/src/main/java/com/shlb/comb/base/BaseActivity.java
new file mode 100755
index 0000000..00080a3
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/base/BaseActivity.java
@@ -0,0 +1,275 @@
+package com.shlb.comb.base;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.blankj.utilcode.util.SnackbarUtils;
+import com.blankj.utilcode.util.ToastUtils;
+import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
+import com.shlb.comb.R;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import pub.devrel.easypermissions.EasyPermissions;
+
+public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks  {
+    public String TAG = this.getClass().getSimpleName();
+    //title宸﹁竟鎸夐挳
+    protected ImageView iv_left;
+    //title鏍囬
+    protected TextView tv_center;
+    //title鍙宠竟鎸夐挳
+    protected ImageView iv_right;
+
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        contentView();
+        EventBus.getDefault().register(this);
+        init();
+    }
+
+    private void init() {
+        initView();
+        initData();
+        initEvent();
+    }
+
+    protected void initHead() {
+        iv_left = findViewById(R.id.iv_left);
+        tv_center = findViewById(R.id.tv_center);
+        iv_right = findViewById(R.id.iv_right);
+        initHeadEvent();
+    }
+
+
+    private void initHeadEvent() {
+        iv_left.setOnClickListener(this);
+        iv_right.setOnClickListener(this);
+    }
+
+    protected abstract void contentView();
+
+    protected abstract void initView();
+
+    protected abstract void initData();
+
+    protected abstract void initEvent();
+
+
+    @Override
+    public void setTitle(CharSequence title) {
+        tv_center.setText(title);
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_left) {
+            finish();
+        } else if (id == R.id.iv_right) {
+        }
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
+
+    QMUITipDialog tipDialog;
+
+    //寮瑰嚭鎻愮ず
+    public void showTips(String tips) {
+        tipDialog = new QMUITipDialog.CustomBuilder(this)
+                .setContent(R.layout.tipdialog_custom)
+                .create();
+        tipDialog.setCanceledOnTouchOutside(true);
+        ((TextView) tipDialog.findViewById(R.id.tv_tip)).setText(tips);
+        tipDialog.show();
+
+        new Timer().schedule(new TimerTask() {
+            @Override
+            public void run() {
+                if (tipDialog != null)tipDialog.dismiss();
+            }
+        }, 1500);
+//        LogUtils.e("TAG","鍑嗗");
+//        handler.postDelayed(new Runnable() {
+//            @Override
+//            public void run() {
+//                LogUtils.e("TAG","杩涘叆");
+//                if (tipDialog != null) {
+//                    LogUtils.e("TAG","鍏抽棴");
+//                    tipDialog.dismiss();
+//                }
+//            }
+//        }, 1500);
+    }
+    QMUITipDialog  loading;
+    public void showLoading(){
+        showLoading("姝e湪鍔犺浇");
+    }
+
+    public void showLoading(String msg){
+        if(loading != null && loading.isShowing()){
+            loading.dismiss();
+        }
+        loading = new QMUITipDialog.Builder(this)
+                .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING)
+                .setTipWord(msg)
+                .create();
+        loading.show();
+    }
+
+    public void hiddeLoading(){
+        if (loading != null) {
+            loading.dismiss();
+        }
+    }
+
+
+    /**
+     * 寮哄埗闅愯棌閿洏
+     */
+    protected void hideKeyborad() {
+        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+        imm.hideSoftInputFromWindow(iv_left.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
+    }
+
+    /**
+     * 鎵撳紑鑷虫寚瀹氱殑Activity
+     *
+     * @param pClass
+     */
+    public void openActivity(Class<?> pClass) {
+        openActivity(pClass, null);
+    }
+
+    /**
+     * 鎵撳紑鑷虫寚瀹氱殑Activity
+     *
+     * @param pClass
+     * @param pBundle 浼犲��
+     */
+    public void openActivity(Class<?> pClass, Bundle pBundle) {
+        Intent intent = new Intent(this, pClass);
+        if (pBundle != null) {
+            intent.putExtras(pBundle);
+        }
+        startActivity(intent);
+    }
+
+    /**
+     * 鎵撳紑activity
+     *
+     * @param pAction activity鍔ㄤ綔
+     */
+    public void openActivity(String pAction) {
+        openActivity(pAction, null);
+    }
+
+    /**
+     * 鎵撳紑activity
+     *
+     * @param pAction activity鍔ㄤ綔
+     * @param pBundle 鏁版嵁
+     */
+    public void openActivity(String pAction, Bundle pBundle) {
+        Intent intent = new Intent(pAction);
+        if (pBundle != null) {
+            intent.putExtras(pBundle);
+        }
+        startActivity(intent);
+    }
+
+    /**
+     * 杩斿洖activity 锛岀粦瀹氭暟鎹�
+     *
+     * @param pClass
+     */
+    public void returnActivity(Class<?> pClass) {
+        returnActivity(pClass, null);
+    }
+
+    /**
+     * 杩斿洖activity 锛岀粦瀹氭暟鎹�
+     *
+     * @param pClass
+     * @param pBundle
+     */
+    public void returnActivity(Class<?> pClass, Bundle pBundle) {
+        Intent intent = new Intent(this, pClass);
+        if (pBundle != null) {
+            intent.putExtras(pBundle);
+        }
+        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
+        startActivity(intent);
+    }
+
+    /**
+     * 杩斿洖activity
+     *
+     * @param pAction activity鍔ㄤ綔
+     */
+    public void returnActivity(String pAction) {
+        returnActivity(pAction, null);
+    }
+
+    /**
+     * 杩斿洖activity
+     *
+     * @param pAction activity鍔ㄤ綔
+     * @param pBundle 鏁版嵁
+     */
+    public void returnActivity(String pAction, Bundle pBundle) {
+        Intent intent = new Intent(pAction);
+        if (pBundle != null) {
+            intent.putExtras(pBundle);
+        }
+        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
+        startActivity(intent);
+    }
+
+    public void Toast(String text) {
+        ToastUtils.showShort(text);
+//        SnackbarUtils.with(tv_center).setDuration(SnackbarUtils.LENGTH_LONG).setMessage(text).show();
+    }
+    @Override
+    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+        // Forward results to EasyPermissions
+        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
+    }
+
+
+
+    @Override
+    public void onPermissionsGranted(int requestCode, List<String> list) {
+        // Some permissions have been granted
+        Toast("鏉冮檺妫�娴嬮�氳繃锛�");
+    }
+
+    @Override
+    public void onPermissionsDenied(int requestCode, List<String> list) {
+        // Some permissions have been denied
+       Toast("鏈墦寮�鎵�闇�鏉冮檺锛岀▼搴忔棤娉曟甯歌繍琛�"+list.toString());
+    }
+
+}
diff --git a/app/src/main/java/com/shlb/comb/event/UpdateEvent.java b/app/src/main/java/com/shlb/comb/event/UpdateEvent.java
new file mode 100644
index 0000000..5c67667
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/event/UpdateEvent.java
@@ -0,0 +1,79 @@
+package com.shlb.comb.event;
+
+/**
+ */
+public class UpdateEvent {
+
+    private Type type;
+    private Object obj;
+    private String msg;
+    private int arg1;
+
+    public UpdateEvent(Type type) {
+        this.type = type;
+    }
+
+    public UpdateEvent(Type type, Object obj) {
+        this.obj = obj;
+        this.type = type;
+    }
+
+    public UpdateEvent(Type type, Object obj, String msg) {
+        this.obj = obj;
+        this.type = type;
+        this.msg = msg;
+    }
+
+    public UpdateEvent(Type type, int arg1) {
+        this.type = type;
+        this.arg1 = arg1;
+    }
+
+    public int getArg1() {
+        return arg1;
+    }
+
+    public void setArg1(int arg1) {
+        this.arg1 = arg1;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public Type getType() {
+        return type;
+    }
+
+    public void setType(Type type) {
+        this.type = type;
+    }
+
+    public Object getObj() {
+        return obj;
+    }
+
+    public void setObj(Object obj) {
+        this.obj = obj;
+    }
+
+    public static enum Type{
+        SCAN_UPDATE,
+        BLE_DATA,
+        POP_SHOW,
+        TAB_SWITCH,
+        CONFIG_CHANGE,
+
+        CONN_STATU,
+        CONN_SERVICE,
+        ONLINE,
+        OFFLINE,
+        DEVICE_INFO
+    }
+
+
+}
diff --git a/app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java b/app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java
new file mode 100644
index 0000000..8d5f7a6
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java
@@ -0,0 +1,358 @@
+package com.shlb.comb.fragment;
+
+import android.Manifest;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager;
+import com.blakequ.bluetooth_manager_lib.scan.ScanOverListener;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
+import com.shlb.comb.R;
+import com.shlb.comb.activity.ConnActivity;
+import com.shlb.comb.activity.TestActivity;
+import com.shlb.comb.activity.HomeActivity;
+import com.shlb.comb.adapter.HomeDeviceListAdapter;
+import com.shlb.comb.base.BaseActivity;
+import com.shlb.comb.event.UpdateEvent;
+import com.shlb.comb.model.BluetoothLeDeviceStore;
+import com.shlb.comb.util.Singletion;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.List;
+
+import pub.devrel.easypermissions.AfterPermissionGranted;
+import pub.devrel.easypermissions.EasyPermissions;
+
+public class DeviceListFragment extends Fragment implements AdapterView.OnItemClickListener, EasyPermissions.PermissionCallbacks {
+    private static final int BLUETOOTH_NEDD_PERMISSIONS = 1011;
+
+    public static final int MODE_RETURN_SETTINGS = 0;
+    public static final int MODE_GO_TO_TEST = 1;
+    private static int navigationMode = MODE_RETURN_SETTINGS;
+    private boolean isSwitchingDevice = false;
+
+    public static void setNavigationMode(int mode) {
+        navigationMode = mode;
+    }
+
+    private QMUIEmptyView mEmptyView;
+    private ListView homeList;
+    private BluetoothScanManager scanManager;
+    private BluetoothLeDeviceStore mDeviceStore;
+    private BluetoothUtils mBluetoothUtils;
+    private HomeDeviceListAdapter mLeDeviceListAdapter;
+    private com.qmuiteam.qmui.widget.dialog.QMUITipDialog mLoadingDialog;
+
+    private void showLoading(String message) {
+        if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
+            mLoadingDialog.dismiss();
+        }
+        mLoadingDialog = new com.qmuiteam.qmui.widget.dialog.QMUITipDialog.Builder(getContext())
+                .setIconType(com.qmuiteam.qmui.widget.dialog.QMUITipDialog.Builder.ICON_TYPE_LOADING)
+                .setTipWord(message)
+                .create();
+        mLoadingDialog.show();
+    }
+
+    private void dismissLoading() {
+        if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
+            mLoadingDialog.dismiss();
+            mLoadingDialog = null;
+        }
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_device_list, container, false);
+        mEmptyView = view.findViewById(R.id.emptyView);
+        homeList = view.findViewById(R.id.homeList);
+        return view;
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        EventBus.getDefault().register(this);
+        initView();
+        initData();
+    }
+
+    private void initView() {
+        mEmptyView.show(true, "鎼滅储钃濈墮", "", "閲嶆柊鎵弿", new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (scanManager != null && !scanManager.isScanning()) {
+                    startScan();
+                }
+            }
+        });
+    }
+
+    private void initData() {
+        if (getActivity() instanceof HomeActivity) {
+            HomeActivity activity = (HomeActivity) getActivity();
+            mBluetoothUtils = activity.getBluetoothUtils();
+            mDeviceStore = activity.getDeviceStore();
+            scanManager = activity.getScanManager();
+        }
+        
+        mLeDeviceListAdapter = new HomeDeviceListAdapter(getContext(), new HomeDeviceListAdapter.setOnItemButtonClick() {
+            @Override
+            public void buttonClick(View view, int position) {
+                final BluetoothLeDevice device = (BluetoothLeDevice) mLeDeviceListAdapter.getItem(position);
+                if (device == null) {
+                    Toast.makeText(getContext(), "杩炴帴璁惧涓嶈兘涓虹┖锛�", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+                Singletion.getInstance().mDevice = device;
+                if (device.getAddress() == null) {
+                    Toast.makeText(getContext(), "杩炴帴璁惧鍦板潃涓嶈兘涓虹┖锛�", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+
+                if (com.shlb.comb.manager.BleGlobalManager.getInstance().isConnected()) {
+                    new QMUIDialog.MessageDialogBuilder(getContext())
+                            .setTitle("鎻愮ず")
+                            .setMessage("褰撳墠宸茶繛鎺ヨ澶囷紝鏄惁鏂紑骞惰繛鎺ユ柊璁惧锛�")
+                            .addAction("鍙栨秷", (dialog, index) -> dialog.dismiss())
+                            .addAction("纭畾", (dialog, index) -> {
+                                dialog.dismiss();
+                                isSwitchingDevice = true;
+                                com.shlb.comb.manager.BleGlobalManager.getInstance().disconnect();
+                                connectToDevice(device);
+                            })
+                            .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+                } else {
+                    connectToDevice(device);
+                }
+            }
+        });
+        homeList.setOnItemClickListener(this);
+        homeList.setAdapter(mLeDeviceListAdapter);
+        scanManager.setScanOverListener(new ScanOverListener() {
+            @Override
+            public void onScanOver() {
+            }
+        });
+
+        scanManager.setScanCallbackCompat(new ScanCallbackCompat() {
+            @Override
+            public void onScanFailed(final int errorCode) {
+                super.onScanFailed(errorCode);
+                Toast.makeText(getContext(), "鎵弿澶辫触锛�" + errorCode, Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onScanResult(int callbackType, ScanResultCompat result) {
+                super.onScanResult(callbackType, result);
+                String deviceName = result.getScanRecord().getDeviceName();
+                LogUtils.i("scan device ", result.getLeDevice().getAddress() + " " + deviceName);
+                if (deviceName != null) deviceName = deviceName.toLowerCase();
+
+                if (!TextUtils.isEmpty(deviceName)) {
+                    mDeviceStore.addDevice(result.getLeDevice());
+                    EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.SCAN_UPDATE));
+                }
+            }
+        });
+        startScan();
+    }
+
+    private void connectToDevice(BluetoothLeDevice device) {
+        if (navigationMode == MODE_RETURN_SETTINGS) {
+            com.shlb.comb.manager.BleGlobalManager.getInstance().connect(getContext(), device);
+            showLoading("姝e湪杩炴帴 " + device.getName() + "...");
+        } else {
+            Intent intent = new Intent(getContext(), TestActivity.class);
+            startActivity(intent);
+        }
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+    }
+
+    public void startScan() {
+        if (checkPermission()) {
+            if (checkIsBleState()) {
+                if (mDeviceStore != null && scanManager != null && scanManager.isScanning()) {
+                    if (getActivity() instanceof BaseActivity) {
+                        ((BaseActivity) getActivity()).Toast("姝e湪鎵弿涓�...");
+                    }
+                    return;
+                }
+                mDeviceStore.clear();
+                EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.SCAN_UPDATE));
+               ((BaseActivity) getActivity()).Toast("寮�濮嬫壂鎻�...");
+                scanManager.startScanNow();
+            }
+        }
+    }
+
+    public void startScanOnce() {
+        if (checkPermission()) {
+            if (checkIsBleState()) {
+                if (mDeviceStore != null && scanManager != null && scanManager.isScanning()) return;
+                mDeviceStore.clear();
+                EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.SCAN_UPDATE));
+                scanManager.startScanOnce();
+            }
+        }
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventRefresh(UpdateEvent event) {
+        if (event.getType() == UpdateEvent.Type.CONN_STATU) {
+             int status = 0;
+             if (event.getObj() instanceof Integer) {
+                 status = (int) event.getObj();
+             }
+             if (status == android.bluetooth.BluetoothProfile.STATE_CONNECTED) {
+                 dismissLoading();
+                 Toast.makeText(getContext(), "杩炴帴鎴愬姛", Toast.LENGTH_SHORT).show();
+                 if (getFragmentManager() != null) {
+                     getFragmentManager().popBackStack();
+                 }
+             } else if (status == android.bluetooth.BluetoothProfile.STATE_DISCONNECTED) {
+                if (isSwitchingDevice) {
+                    isSwitchingDevice = false;
+                    return;
+                }
+                dismissLoading();
+                Toast.makeText(getContext(), "杩炴帴鏂紑", Toast.LENGTH_SHORT).show();
+            }
+        }
+        if (event.getType() == UpdateEvent.Type.SCAN_UPDATE) {
+            if (mLeDeviceListAdapter != null && mDeviceStore != null && mDeviceStore.getDeviceList() != null) {
+                mLeDeviceListAdapter.refreshData(mDeviceStore.getDeviceList());
+            }
+            if (mDeviceStore != null && mDeviceStore.getDeviceList() != null && mDeviceStore.getDeviceList().size() > 0) {
+                mEmptyView.hide();
+                homeList.setVisibility(View.VISIBLE);
+            } else {
+                homeList.setVisibility(View.GONE);
+                mEmptyView.show(true, "鎼滅储钃濈墮", "", "閲嶆柊鎵弿", new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        if (scanManager != null && !scanManager.isScanning()) {
+                            startScan();
+                        }
+                    }
+                });
+            }
+        }
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
+    }
+
+    @Override
+    public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
+        startScan();
+    }
+
+    @Override
+    public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
+        Toast.makeText(getContext(), "鏈幏寰楀繀瑕佹潈闄愶紝鏃犳硶鎵弿", Toast.LENGTH_SHORT).show();
+    }
+
+    private boolean checkIsBleState() {
+        if (!mBluetoothUtils.isBluetoothLeSupported(getContext())) {
+            Toast.makeText(getContext(), "褰撳墠鎵嬫満涓嶆敮鎸丅LE浣庡姛鑰楄摑鐗欙紝鏃犳硶浣跨敤锛�", Toast.LENGTH_SHORT).show();
+        } else if (!mBluetoothUtils.isBluetoothIsEnable()) {
+            new QMUIDialog.MessageDialogBuilder(getContext())
+                    .setTitle("鎻愮ず")
+                    .setMessage("钃濈墮鏈墦寮�锛岀‘瀹氭墦寮�钃濈墮锛�")
+                    .addAction("鍙栨秷", new QMUIDialogAction.ActionListener() {
+                        @Override
+                        public void onClick(QMUIDialog dialog, int index) {
+                            dialog.dismiss();
+                        }
+                    })
+                    .addAction("纭畾", new QMUIDialogAction.ActionListener() {
+                        @Override
+                        public void onClick(QMUIDialog dialog, int index) {
+                            mBluetoothUtils.askUserToEnableBluetoothIfNeeded(getActivity());
+                            dialog.dismiss();
+                        }
+                    })
+                    .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show();
+        } else {
+            return true;
+        }
+        return false;
+    }
+
+    @AfterPermissionGranted(BLUETOOTH_NEDD_PERMISSIONS)
+    private boolean checkPermission() {
+        String[] permissionList;
+        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
+            permissionList = new String[]{
+                    Manifest.permission.BLUETOOTH_SCAN,
+                    Manifest.permission.BLUETOOTH_CONNECT,
+                    Manifest.permission.ACCESS_FINE_LOCATION
+            };
+        } else {
+            permissionList = new String[]{
+                    Manifest.permission.BLUETOOTH,
+                    Manifest.permission.BLUETOOTH_ADMIN,
+                    Manifest.permission.ACCESS_COARSE_LOCATION,
+                    Manifest.permission.ACCESS_FINE_LOCATION,
+                    Manifest.permission.READ_EXTERNAL_STORAGE,
+                    Manifest.permission.WRITE_EXTERNAL_STORAGE
+            };
+        }
+
+        if (EasyPermissions.hasPermissions(getContext(), permissionList)) {
+            return true;
+        } else {
+            EasyPermissions.requestPermissions(this, "绋嬪簭杩愯闇�瑕佹潈闄�!",
+                    BLUETOOTH_NEDD_PERMISSIONS, permissionList);
+            return false;
+        }
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if (scanManager != null && scanManager.isScanning()) {
+            scanManager.stopCycleScan();
+        }
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        dismissLoading();
+        EventBus.getDefault().unregister(this);
+        if (scanManager != null) {
+            scanManager.setScanCallbackCompat(null);
+            scanManager.setScanOverListener(null);
+        }
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/fragment/SettingsFragment.java b/app/src/main/java/com/shlb/comb/fragment/SettingsFragment.java
new file mode 100644
index 0000000..2702ac4
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/fragment/SettingsFragment.java
@@ -0,0 +1,712 @@
+package com.shlb.comb.fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+import com.shlb.comb.manager.BleGlobalManager;
+import com.shlb.comb.event.UpdateEvent;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+import android.bluetooth.BluetoothProfile;
+import com.shlb.comb.R;
+
+import java.util.ArrayList;
+import java.util.List;
+import com.shlb.comb.util.CMD;
+import com.shlb.comb.util.CRCutil;
+
+import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
+import android.text.Html;
+import android.content.DialogInterface;
+
+public class SettingsFragment extends Fragment {
+
+    private RecyclerView rvGrid;
+    private EditText etLayer;
+    private EditText etStation;
+    private Spinner spinnerBaud;
+    private QMUIRoundButton btnWriteAll;
+    private QMUIRoundButton btnReadData;
+    private QMUIRoundButton btnReadParam;
+    private QMUIRoundButton btnClearLog;
+    private TextView tvStatus;
+    private TextView tvLog;
+    private TextView tvLayerStatus;
+    private TextView tvStationStatus;
+    private TextView tvBaudStatus;
+    private android.widget.ScrollView svLog;
+    
+    private QMUITipDialog mLoadingDialog;
+    
+    private GridAdapter mAdapter;
+    private List<BoxStatus> boxStatusList = new ArrayList<>();
+    private StringBuilder logBuilder = new StringBuilder();
+
+    private java.util.Queue<String> cmdQueue = new java.util.LinkedList<>();
+    private String currentExecutingCmd = ""; // 褰撳墠姝e湪鎵ц鐨勬寚浠わ紝鐢ㄤ簬鏍¢獙鍝嶅簲
+
+    private static class BoxStatus {
+        int id;
+        boolean isOnline;
+        boolean hasGlass;
+        
+        public BoxStatus(int id) {
+            this.id = id;
+            this.isOnline = false;
+            this.hasGlass = false;
+        }
+    }
+
+    private Runnable autoReadRunnable = new Runnable() {
+        @Override
+        public void run() {
+            // 钃濈墮杩炴帴鎴愬姛鍚� 鑷姩瑙﹀彂鐩戞帶璇︽儏鐨� 璇诲彇鏁版嵁 鍜� 鍙傛暟璁惧畾杩欓噷鐨� 璇诲彇鍙傛暟
+            if (BleGlobalManager.getInstance().isConnected()) {
+                showLoading("姝e湪鍚屾鏁版嵁...");
+                
+                if (btnReadData != null) btnReadData.performClick();
+                
+                new android.os.Handler().postDelayed(() -> {
+                    if (btnReadParam != null) btnReadParam.performClick();
+                    
+                    // 鍋囪鍙傛暟璇诲彇瑙﹀彂鍚� 1.5绉� 鍏抽棴 loading锛屾垨鑰呭湪瑙f瀽瀹屾墍鏈夊弬鏁板悗鍏抽棴
+                    // 杩欓噷绠�鍗曞鐞嗭紝寤舵椂鍏抽棴
+                    new android.os.Handler().postDelayed(() -> {
+                         dismissLoading();
+                    }, 1500);
+                }, 1000); // 闂撮殧1绉掞紝閬垮厤鎸囦护鍐茬獊
+            }
+        }
+    };
+    private android.os.Handler debounceHandler = new android.os.Handler();
+    private static final long DEBOUNCE_DELAY_MS = 1500; // 1.5 seconds debounce
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this);
+        }
+        updateConnectionStatus();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().unregister(this);
+        }
+    }
+
+    private void updateConnectionStatus() {
+        if (BleGlobalManager.getInstance().isConnected()) {
+            tvStatus.setText("鐘舵�侊細宸茶繛鎺�");
+        } else {
+            tvStatus.setText("鐘舵�侊細鏈繛鎺�");
+        }
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventRefresh(UpdateEvent event) {
+        if (event.getType() == UpdateEvent.Type.CONN_STATU) {
+            // Check if obj is integer
+            if (event.getObj() instanceof Integer) {
+                 int status = (int) event.getObj();
+                 if (status == BluetoothProfile.STATE_CONNECTED) {
+                     tvStatus.setText("鐘舵�侊細宸茶繛鎺�");
+                     Toast.makeText(getContext(), "钃濈墮宸茶繛鎺�", Toast.LENGTH_SHORT).show();
+                     
+                     // 钃濈墮杩炴帴鎴愬姛鍚� 鑷姩瑙﹀彂
+                     triggerAutoRead();
+                 } else {
+                     tvStatus.setText("鐘舵�侊細宸叉柇寮�");
+                 }
+            }
+        } else if (event.getType() == UpdateEvent.Type.DEVICE_INFO) {
+            // Received data
+            String hex = event.getMsg();
+            tvStatus.setText("鏀跺埌鏁版嵁: " + hex);
+            appendLog(hex, false); // false for received (Green)
+            parseAndRefresh(hex);
+        }
+    }
+    
+    private void parseAndRefresh(String hex) {
+        if (hex == null) return;
+
+        // 鏍规嵁CMD鍓�8浣嶅垽鏂寚浠ょ被鍨�
+        if (hex.length() >= 8) {
+            // 鍙傛暟璇诲彇杩斿洖 (闀垮害鑷冲皯12浣�)
+            // 璇诲眰鏁�: A55A0308...
+            // 璇荤珯鍙�: A55A0304...
+            // 璇绘尝鐗圭巼: A55A0305...
+            if (hex.length() >= 12 && (
+                hex.startsWith(CMD.READ_FLOORS.substring(0, 8)) ||
+                hex.startsWith(CMD.READ_STATION_NUM.substring(0, 8)) ||
+                hex.startsWith(CMD.READ_BAUD_RATE.substring(0, 8)))) {
+                parseParamResponse(hex);
+                return;
+            }
+
+            // 鏁版嵁璇诲彇杩斿洖 (闀垮害鑷冲皯32浣�)
+            // 璇绘暟鎹�: A55A0301...
+            if (hex.length() >= 32 && hex.startsWith(CMD.READ_DATA.substring(0, 8))) {
+                parseDataResponse(hex);
+                return;
+            }
+        }
+
+        // 鍐欏叆鎸囦护鐨勮繑鍥� (A55A06寮�澶�)
+        if (hex.startsWith("A55A06") && hex.length() >= 12) {
+            parseWriteResponse(hex);
+            return;
+        }
+    }
+
+    private void setLabelStatus(TextView view, String text, int colorResId) {
+        if (view != null && getContext() != null) {
+            view.setText(text);
+            view.setTextColor(androidx.core.content.ContextCompat.getColor(getContext(), colorResId));
+        }
+    }
+
+    /**
+     * 瑙f瀽鍙傛暟璇诲彇杩斿洖 (绔欏彿銆佹尝鐗圭巼銆佸眰鏁�)
+     */
+    private void parseParamResponse(String hex) {
+        try {
+            // 鍛戒护绫诲瀷: 绗�7-8浣�
+            String cmdType = hex.substring(6, 8);
+            // 鏁版嵁鍐呭: 绗�11-12浣�
+            String dataHex = hex.substring(10, 12);
+            int value = Integer.parseInt(dataHex, 16);
+            
+            if ("04".equals(cmdType)) {
+                // 绔欏彿
+                if (etStation != null) etStation.setText(String.valueOf(value));
+                setLabelStatus(tvStationStatus, "(璇诲彇鍊�)", R.color.base_color);
+                appendLog("璇诲彇绔欏彿: " + value);
+            } else if ("05".equals(cmdType)) {
+                // 娉㈢壒鐜�
+                if (spinnerBaud != null && value >= 0 && value < spinnerBaud.getAdapter().getCount()) {
+                    spinnerBaud.setSelection(value);
+                }
+                setLabelStatus(tvBaudStatus, "(璇诲彇鍊�)", R.color.base_color);
+                appendLog("璇诲彇娉㈢壒鐜�: " + value);
+            } else if ("08".equals(cmdType)) {
+                // 灞傛暟
+                if (etLayer != null) etLayer.setText(String.valueOf(value));
+                setLabelStatus(tvLayerStatus, "(璇诲彇鍊�)", R.color.base_color);
+                appendLog("璇诲彇灞傛暟: " + value);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            appendLog("鍙傛暟瑙f瀽寮傚父: " + e.getMessage());
+            setLabelStatus(tvStationStatus, "(璇诲彇澶辫触)", R.color.orange);
+            setLabelStatus(tvBaudStatus, "(璇诲彇澶辫触)", R.color.orange);
+            setLabelStatus(tvLayerStatus, "(璇诲彇澶辫触)", R.color.orange);
+        }
+    }
+
+    /**
+     * 瑙f瀽鍐欏叆鎸囦护杩斿洖
+     */
+    private void parseWriteResponse(String hex) {
+        try {
+            // 缁撴灉鐘舵��: 绗�11-12浣�
+            String statusHex = hex.substring(10, 12);
+            boolean isSuccess = "01".equals(statusHex);
+
+            // 鍙褰撳墠鏈夋鍦ㄦ墽琛岀殑鎸囦护锛屼笖鏀跺埌浜嗗啓鍏ュ洖澶嶏紙A55A06寮�澶达級锛屾垜浠氨璁や负鏄綋鍓嶆寚浠ょ殑鍥炲
+            // 鍥犱负鎴戜滑閲囩敤闃熷垪鏈哄埗锛屽繀椤诲彂涓�鏉$瓑涓�鏉★紝鎵�浠ヤ笉浼氭湁涔卞簭闂銆�
+            // 杩欑鏂瑰紡瑙勯伩浜� ENTER 鍜� EXIT 鍓�8浣嶇浉鍚屽鑷存棤娉曞尯鍒嗙殑闂銆�
+            
+            if (!currentExecutingCmd.isEmpty()) {
+                if (isSuccess) {
+                    // 璁板綍鏃ュ織锛氭牴鎹綋鍓嶆湡寰呯殑鎸囦护鏉ヨ褰曪紝鑰屼笉鏄牴鎹繑鍥炵殑 hex
+                    // 浣跨敤瀹屾暣鎸囦护鍓嶇紑鍖归厤锛岄伩鍏� ENTER (3B0101) 鍜� EXIT (3B0100) 鍓�8浣嶇浉鍚屽鑷寸殑璇垽
+                    if (currentExecutingCmd.startsWith(CMD.ENTER_SETTING)) {
+                        appendLog("杩涘叆璁惧畾妯″紡鎴愬姛");
+                    } else if (currentExecutingCmd.startsWith(CMD.WRITE_STATION_NUM)) {
+                        appendLog("鍐欏叆绔欏彿鎴愬姛");
+                        setLabelStatus(tvStationStatus, "(鍐欏叆鍊�)", R.color.base_color_s);
+                    } else if (currentExecutingCmd.startsWith(CMD.WRITE_BAUD_RATE)) {
+                        appendLog("鍐欏叆娉㈢壒鐜囨垚鍔�");
+                        setLabelStatus(tvBaudStatus, "(鍐欏叆鍊�)", R.color.base_color_s);
+                    } else if (currentExecutingCmd.startsWith(CMD.EXIT_SETTING)) {
+                        appendLog("閫�鍑鸿瀹氭ā寮忔垚鍔�");
+                    }
+                    
+                    // 鍙湁鎴愬姛鎵嶇户缁墽琛屼笅涓�鏉�
+                    processNextCmd();
+                } else {
+                    // 鎵ц澶辫触
+                    cmdQueue.clear();
+                    currentExecutingCmd = "";
+                    tvStatus.setText("鍐欏叆澶辫触");
+                    
+                    if (currentExecutingCmd.startsWith(CMD.WRITE_STATION_NUM)) {
+                        setLabelStatus(tvStationStatus, "(鍐欏叆澶辫触)", R.color.orange);
+                    } else if (currentExecutingCmd.startsWith(CMD.WRITE_BAUD_RATE)) {
+                        setLabelStatus(tvBaudStatus, "(鍐欏叆澶辫触)", R.color.orange);
+                    }
+                    
+                    appendLog("鍐欏叆澶辫触: " + hex);
+                    Toast.makeText(getContext(), "鍐欏叆澶辫触", Toast.LENGTH_SHORT).show();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            cmdQueue.clear();
+            currentExecutingCmd = "";
+            appendLog("鍐欏叆鍝嶅簲瑙f瀽寮傚父: " + e.getMessage());
+            // 寮傚父涔熻涓哄け璐�
+            setLabelStatus(tvStationStatus, "(鍐欏叆澶辫触)", R.color.orange);
+            setLabelStatus(tvBaudStatus, "(鍐欏叆澶辫触)", R.color.orange);
+        }
+    }
+
+    private void processNextCmd() {
+        if (cmdQueue != null && !cmdQueue.isEmpty()) {
+            String nextCmd = cmdQueue.poll();
+            currentExecutingCmd = nextCmd;
+            
+            // 鏇存柊鐘舵�佹樉绀�
+            if (nextCmd.startsWith(CMD.ENTER_SETTING.substring(0, 10))) {
+                tvStatus.setText("姝e湪杩涘叆璁惧畾妯″紡...");
+            } else if (nextCmd.startsWith(CMD.WRITE_STATION_NUM.substring(0, 10))) {
+                tvStatus.setText("姝e湪鍐欏叆绔欏彿...");
+            } else if (nextCmd.startsWith(CMD.WRITE_BAUD_RATE.substring(0, 10))) {
+                tvStatus.setText("姝e湪鍐欏叆娉㈢壒鐜�...");
+            } else if (nextCmd.startsWith(CMD.EXIT_SETTING.substring(0, 10))) {
+                tvStatus.setText("姝e湪閫�鍑鸿瀹氭ā寮�...");
+            }
+            
+            sendCmdWithCrc(nextCmd);
+        } else {
+            // 闃熷垪涓虹┖锛屽叏閮ㄥ畬鎴�
+            currentExecutingCmd = "";
+            tvStatus.setText("鍙傛暟鍐欏叆瀹屾垚");
+            Toast.makeText(getContext(), "鍙傛暟鍐欏叆鎴愬姛", Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    /**
+     * 瑙f瀽鐩戞帶鏁版嵁杩斿洖 (鏄惁鏈夌幓鐠冦�佸湪绾跨姸鎬�)
+     */
+    private void parseDataResponse(String hex) {
+        try {
+            // 瑙f瀽鏄惁鏈夌幓鐠�: 绗�11-18浣� (8涓瓧绗� = 32浣�)
+            // 绱㈠紩 10-17
+            String glassHex = hex.substring(10, 18);
+            appendLog("瑙f瀽鐜荤拑鏁版嵁: " + glassHex);
+            
+            // 鐩存帴瑙f瀽 hex 涓� long (Big Endian)
+            // "00000004" -> 4 -> ...00100 -> Bit 2 -> Box 3
+            long glassBits = Long.parseLong(glassHex, 16);
+            
+            String onlineHex = hex.substring(18, 26);
+            appendLog("瑙f瀽鍦ㄧ嚎鏁版嵁: " + onlineHex);
+            long onlineBits = Long.parseLong(onlineHex, 16);
+            
+            // 鏇存柊30涓牸瀛愮殑鐘舵��
+            for (BoxStatus box : boxStatusList) {
+                int bitIndex = box.id - 1; // 瀵瑰簲浣嶇储寮� 0-29
+                if (bitIndex >= 0 && bitIndex < 32) {
+                    // 妫�鏌ュ搴斾綅鏄惁涓�1
+                    box.hasGlass = ((glassBits >> bitIndex) & 1) == 1;
+                    box.isOnline = ((onlineBits >> bitIndex) & 1) == 1;
+                }
+            }
+            
+            // 鍒锋柊鍒楄〃鏄剧ず
+            if (mAdapter != null) {
+                mAdapter.notifyDataSetChanged();
+            }
+            
+        } catch (Exception e) {
+            e.printStackTrace();
+            tvStatus.setText("鏁版嵁瑙f瀽閿欒: " + e.getMessage());
+            appendLog("鏁版嵁瑙f瀽閿欒: " + e.getMessage());
+        }
+    }
+
+
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_settings, container, false);
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        
+        // Initialize box status list
+        boxStatusList.clear();
+        for (int i = 1; i <= 30; i++) {
+            boxStatusList.add(new BoxStatus(i));
+        }
+        
+        initView(view);
+        
+        // 濡傛灉宸茬粡杩炴帴锛岃嚜鍔ㄨЕ鍙戣鍙�
+        if (BleGlobalManager.getInstance().isConnected()) {
+            triggerAutoRead();
+        }
+    }
+
+    private void triggerAutoRead() {
+        // 浣跨敤闃叉姈鏈哄埗锛岄伩鍏嶇煭鏃堕棿鍐呭娆¤Е鍙�
+        debounceHandler.removeCallbacks(autoReadRunnable);
+        debounceHandler.postDelayed(autoReadRunnable, DEBOUNCE_DELAY_MS);
+    }
+    
+    private void showLoading(String msg) {
+        if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
+            mLoadingDialog.dismiss();
+        }
+        mLoadingDialog = new QMUITipDialog.Builder(getContext())
+                .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING)
+                .setTipWord(msg)
+                .create();
+        // 鍏佽鐐瑰嚮澶栭儴鎴栬繑鍥為敭鍙栨秷 loading锛堝彧鏄叧闂� dialog锛�
+        mLoadingDialog.setCancelable(true);
+        mLoadingDialog.setCanceledOnTouchOutside(true);
+        mLoadingDialog.show();
+    }
+    
+    private void dismissLoading() {
+        if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
+            mLoadingDialog.dismiss();
+        }
+    }
+
+    private void initView(View view) {
+        rvGrid = view.findViewById(R.id.rv_grid);
+        etLayer = view.findViewById(R.id.et_layer);
+        etStation = view.findViewById(R.id.et_station);
+        spinnerBaud = view.findViewById(R.id.spinner_baud);
+        btnWriteAll = view.findViewById(R.id.btn_write_all);
+        btnReadData = view.findViewById(R.id.btn_read_data);
+        btnReadParam = view.findViewById(R.id.btn_read_param);
+        btnClearLog = view.findViewById(R.id.btn_clear_log);
+        tvStatus = view.findViewById(R.id.tv_status);
+        tvLog = view.findViewById(R.id.tv_log);
+        svLog = view.findViewById(R.id.sv_log);
+        tvLayerStatus = view.findViewById(R.id.tv_layer_status);
+        tvStationStatus = view.findViewById(R.id.tv_station_status);
+        tvBaudStatus = view.findViewById(R.id.tv_baud_status);
+
+        // 瑙e喅鏃ュ織鍖哄煙婊戝姩鍐茬獊
+        svLog.setOnTouchListener((v, event) -> {
+            v.getParent().requestDisallowInterceptTouchEvent(true);
+            if ((event.getAction() & android.view.MotionEvent.ACTION_MASK) == android.view.MotionEvent.ACTION_UP) {
+                v.getParent().requestDisallowInterceptTouchEvent(false);
+            }
+            return false;
+        });
+        
+        // Restore logs if any
+        if (logBuilder.length() > 0) {
+            tvLog.setText(Html.fromHtml(logBuilder.toString()));
+        } else {
+            logBuilder.append("鏃ュ織璁板綍:<br>");
+            tvLog.setText(Html.fromHtml(logBuilder.toString()));
+        }
+
+        // Grid Setup
+        // 10 columns to match the image (10 boxes per row)
+        // Since we are in a horizontal scroll view, this will layout correctly
+        rvGrid.setLayoutManager(new GridLayoutManager(getContext(), 10)); 
+        mAdapter = new GridAdapter();
+        rvGrid.setAdapter(mAdapter);
+
+        // Spinner Setup
+        String[] baudRates = new String[]{"156Kbps", "625Kbps", "2.5Mbps", "5Mbps", "10Mbps"};
+        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, baudRates);
+        spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        spinnerBaud.setAdapter(spinnerAdapter);
+        spinnerBaud.setSelection(0); // Select 156Kbps by default
+
+        // Button Listeners
+        btnWriteAll.setOnClickListener(v -> {
+            if (!BleGlobalManager.getInstance().isConnected()) {
+                Toast.makeText(getContext(), "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+                appendLog("閿欒: 钃濈墮鏈繛鎺�");
+                return;
+            }
+
+            String stationStr = etStation.getText().toString().trim();
+            if (stationStr.isEmpty()) {
+                Toast.makeText(getContext(), "璇疯緭鍏ョ珯鍙�", Toast.LENGTH_SHORT).show();
+                return;
+            }
+
+            try {
+                int station = Integer.parseInt(stationStr);
+                if (station < 1 || station > 64) {
+                    Toast.makeText(getContext(), "绔欏彿鑼冨洿鏃犳晥(1-64)", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+            } catch (NumberFormatException e) {
+                Toast.makeText(getContext(), "璇疯緭鍏ユ湁鏁堢殑鏁板瓧", Toast.LENGTH_SHORT).show();
+                return;
+            }
+
+            // 鏋勯�犳寚浠ら槦鍒�
+            cmdQueue.clear();
+            
+            // 1. 杩涘叆璁惧畾
+            cmdQueue.offer(CMD.ENTER_SETTING);
+            
+            // 2. 鍐欏叆绔欏彿
+            int station = Integer.parseInt(stationStr);
+            String stationHex = String.format("%02X", station);
+            cmdQueue.offer(CMD.WRITE_STATION_NUM + stationHex);
+            
+            // 3. 鍐欏叆娉㈢壒鐜�
+            int baudIndex = spinnerBaud.getSelectedItemPosition();
+            String baudHex = String.format("%02X", baudIndex);
+            cmdQueue.offer(CMD.WRITE_BAUD_RATE + baudHex);
+            
+            // 4. 閫�鍑鸿瀹�
+            cmdQueue.offer(CMD.EXIT_SETTING);
+            
+            // 寮�濮嬫墽琛�
+            processNextCmd();
+        });
+
+        btnReadData.setOnClickListener(v -> {
+             if (BleGlobalManager.getInstance().isConnected()) {
+                 tvStatus.setText("鐘舵�侊細姝e湪璇诲彇鏁版嵁...");
+                 sendCmdWithCrc(CMD.READ_DATA);
+             } else {
+                 Toast.makeText(getContext(), "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+                 appendLog("閿欒: 钃濈墮鏈繛鎺�");
+             }
+        });
+
+        btnReadParam.setOnClickListener(v -> {
+             if (BleGlobalManager.getInstance().isConnected()) {
+                 tvStatus.setText("鐘舵�侊細姝e湪璇诲彇鍙傛暟...");
+                 sendCmdWithCrc(CMD.READ_FLOORS);
+                 new android.os.Handler().postDelayed(() -> {
+                     sendCmdWithCrc(CMD.READ_STATION_NUM);
+                 }, 200);
+                 new android.os.Handler().postDelayed(() -> {
+                     sendCmdWithCrc(CMD.READ_BAUD_RATE);
+                 }, 400);
+             } else {
+                 Toast.makeText(getContext(), "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+                 appendLog("閿欒: 钃濈墮鏈繛鎺�");
+             }
+        });
+
+        btnClearLog.setOnClickListener(v -> {
+            logBuilder.setLength(0);
+            logBuilder.append("鏃ュ織璁板綍:<br>");
+            tvLog.setText(Html.fromHtml(logBuilder.toString()));
+        });
+    }
+
+    private void appendLog(String msg) {
+        appendLog(msg, null);
+    }
+
+    private String getCmdDescription(String hex) {
+        if (hex == null) return "";
+        
+        // 鍙戦�佹寚浠ゅ尮閰�
+        if (hex.startsWith(CMD.READ_DATA)) return "-璇绘暟鎹�";
+        if (hex.startsWith(CMD.READ_FLOORS)) return "-璇诲眰鏁�";
+        if (hex.startsWith(CMD.READ_STATION_NUM)) return "-璇荤珯鍙�";
+        if (hex.startsWith(CMD.READ_BAUD_RATE)) return "-璇绘尝鐗圭巼";
+        
+        // 3B鎸囦护 (Enter/Exit) 鐗规畩澶勭悊
+        if (hex.startsWith(CMD.ENTER_SETTING.substring(0, 8))) {
+             // 1. 涓婁笅鏂囦紭鍏�: 濡傛灉褰撳墠鏈夋鍦ㄦ墽琛岀殑鎸囦护锛屼互褰撳墠鎸囦护涓哄噯
+             if (!currentExecutingCmd.isEmpty()) {
+                 if (currentExecutingCmd.startsWith(CMD.ENTER_SETTING)) return "-杩涘叆璁惧畾";
+                 if (currentExecutingCmd.startsWith(CMD.EXIT_SETTING)) return "-閫�鍑鸿瀹�";
+             }
+             
+             // 2. 绮剧‘鍖归厤閫�鍑烘寚浠�
+             if (hex.startsWith(CMD.EXIT_SETTING)) return "-閫�鍑鸿瀹�";
+
+             // 3. 榛樿鎯呭喌: 涓婁笅鏂囦负绌轰笖闈炴槑纭��鍑烘寚浠わ紝浼樺厛鍒ゅ畾涓洪��鍑鸿瀹�
+             // (淇: 浠庡弬鏁拌瀹氶〉杩斿洖鏃讹紝鏀跺埌鐨勯��鍑哄搷搴斾細琚鍒や负杩涘叆璁惧畾)
+             return "-閫�鍑鸿瀹�";
+        }
+
+        if (hex.startsWith(CMD.ENTER_SETTING)) return "-杩涘叆璁惧畾";
+        if (hex.startsWith(CMD.EXIT_SETTING)) return "-閫�鍑鸿瀹�";
+        if (hex.startsWith(CMD.WRITE_STATION_NUM)) return "-鍐欑珯鍙�";
+        if (hex.startsWith(CMD.WRITE_BAUD_RATE)) return "-鍐欐尝鐗圭巼";
+
+        // 鎺ユ敹鏁版嵁鍖归厤
+        // 璇绘暟鎹繑鍥�: A55A0301...
+        if (hex.startsWith(CMD.READ_DATA.substring(0, 8))) return "-璇绘暟鎹�";
+        
+        // 璇诲弬鏁拌繑鍥�
+        if (hex.length() >= 8) {
+             if (hex.startsWith(CMD.READ_FLOORS.substring(0, 8))) return "-璇诲眰鏁�";
+             if (hex.startsWith(CMD.READ_STATION_NUM.substring(0, 8))) return "-璇荤珯鍙�";
+             if (hex.startsWith(CMD.READ_BAUD_RATE.substring(0, 8))) return "-璇绘尝鐗圭巼";
+        }
+        
+        // 鍐欏叆杩斿洖 (A55A06寮�澶�)
+        if (hex.startsWith("A55A06") && hex.length() >= 12) {
+             return "-鍐欏叆杩斿洖";
+        }
+
+        return "";
+    }
+
+    private void appendLog(String msg, Boolean isSent) {
+        String time = com.blankj.utilcode.util.TimeUtils.getNowString(new java.text.SimpleDateFormat("HH:mm:ss.SSS"));
+        
+        String displayMsg = msg;
+        String cmdDesc = "";
+        
+        // 濡傛灉鏄� hex 鎸囦护 (绾� 0-9 A-F a-f)锛屽姞绌烘牸鏍煎紡鍖�
+        if (msg.matches("^[0-9A-Fa-f]+$")) {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < msg.length(); i += 2) {
+                if (i + 2 <= msg.length()) {
+                    sb.append(msg.substring(i, i + 2)).append(" ");
+                } else {
+                    sb.append(msg.substring(i));
+                }
+            }
+            displayMsg = sb.toString().trim();
+            
+            // 鑾峰彇鎸囦护鎻忚堪
+            cmdDesc = getCmdDescription(msg);
+        }
+
+        String logLine;
+        if (isSent != null) {
+            String color = isSent ? "#1890ff" : "#05aa87"; // Blue for sent, Green for received
+            // 鎷兼帴鍒板墠缂�鍚庨潰: "鍙戦��-璇荤珯鍙�: " 鎴� "鏀跺埌-璇荤珯鍙�: "
+            String prefix = (isSent ? "鍙戦��" : "鏀跺埌") + cmdDesc + ": ";
+            logLine = time + " <font color='" + color + "'>" + prefix + displayMsg + "</font><br>";
+        } else {
+            // 鏅�氭棩蹇�
+            logLine = time + " " + displayMsg + "<br>";
+        }
+        
+        logBuilder.append(logLine);
+        if (tvLog != null) {
+            tvLog.setText(Html.fromHtml(logBuilder.toString()));
+            if (svLog != null) {
+                svLog.post(() -> svLog.fullScroll(View.FOCUS_DOWN));
+            }
+        }
+    }
+
+    private void sendCmdWithCrc(String cmd) {
+        if (!BleGlobalManager.getInstance().isConnected()) {
+            Toast.makeText(getContext(), "璇峰厛杩炴帴钃濈墮", Toast.LENGTH_SHORT).show();
+            appendLog("閿欒: 钃濈墮鏈繛鎺�");
+            return;
+        }
+        
+        byte[] cmdBytes = BleGlobalManager.hexStringToBytes(cmd);
+        if (cmdBytes != null) {
+            String crc = CRCutil.getCRC(cmdBytes);
+            // Pad CRC to 4 chars if needed
+            while (crc.length() < 4) {
+                crc = "0" + crc;
+            }
+            String fullCmd = cmd + crc.toUpperCase();
+            
+            appendLog(fullCmd, true); // true for sent (Blue)
+            BleGlobalManager.getInstance().sendCmd(fullCmd);
+        } else {
+            appendLog("閿欒: 鎸囦护杞崲澶辫触");
+        }
+    }
+
+    private class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {
+
+        @NonNull
+        @Override
+        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid_box, parent, false);
+            return new ViewHolder(view);
+        }
+
+        @Override
+        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+            // Calculate Box ID based on 3 rows of 10, Right to Left logic as seen in image
+            // Row 1 (pos 0-9): 10 ... 1
+            // Row 2 (pos 10-19): 20 ... 11
+            // Row 3 (pos 20-29): 30 ... 21
+            
+            int row = position / 10;
+            int col = position % 10;
+            int boxId = (row + 1) * 10 - col;
+            
+            holder.tvBoxNumber.setText(String.valueOf(boxId));
+            
+            // Find status for this box
+            BoxStatus status = null;
+            for (BoxStatus s : boxStatusList) {
+                if (s.id == boxId) {
+                    status = s;
+                    break;
+                }
+            }
+            
+            if (status != null) {
+                // Priority: Online > Glass
+                // User requirement: "浼樺厛鏄剧ず鏄惁鍦ㄧ嚎" (Prioritize displaying online status)
+                // "19-26涓轰篃鏄�16杩涘埗锛岃В鏋愭垚浜岃繘鍒�32浠g爜鎴戣繖30涓牸瀛愭槸鍚﹀湪绾�"
+                // Usually this means if offline, show offline color. If online, show state (glass/no glass).
+                
+                if (!status.isOnline) {
+                    holder.viewBox.setBackgroundResource(R.drawable.bg_box_offline); // Offline (Grey)
+                } else {
+                    if (status.hasGlass) {
+                        holder.viewBox.setBackgroundResource(R.drawable.bg_box_full); // Green
+                    } else {
+                        holder.viewBox.setBackgroundResource(R.drawable.bg_box_empty); // Online but empty (White)
+                    }
+                }
+            }
+        }
+
+        @Override
+        public int getItemCount() {
+            return 30;
+        }
+
+        class ViewHolder extends RecyclerView.ViewHolder {
+            TextView tvBoxNumber;
+            View viewBox;
+
+            public ViewHolder(@NonNull View itemView) {
+                super(itemView);
+                tvBoxNumber = itemView.findViewById(R.id.tv_box_number);
+                viewBox = itemView.findViewById(R.id.view_box);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/shlb/comb/manager/BleGlobalManager.java b/app/src/main/java/com/shlb/comb/manager/BleGlobalManager.java
new file mode 100644
index 0000000..ce4da21
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/manager/BleGlobalManager.java
@@ -0,0 +1,268 @@
+package com.shlb.comb.manager;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattDescriptor;
+import android.bluetooth.BluetoothGattService;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+import android.widget.Toast;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.shlb.comb.event.UpdateEvent;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.List;
+import java.util.UUID;
+
+public class BleGlobalManager {
+    private static volatile BleGlobalManager instance;
+    private BluetoothConnectManager connectManager;
+    private BluetoothLeDevice mDevice;
+    private BluetoothGatt mGatt;
+    
+    private BluetoothGattCharacteristic writeCharacteristic;
+    private BluetoothGattCharacteristic notifyCharacteristic;
+    
+    private Context mContext;
+    private Handler mHandler = new Handler(Looper.getMainLooper());
+
+    private BleGlobalManager() {
+    }
+
+    public static BleGlobalManager getInstance() {
+        if (instance == null) {
+            synchronized (BleGlobalManager.class) {
+                if (instance == null) {
+                    instance = new BleGlobalManager();
+                }
+            }
+        }
+        return instance;
+    }
+
+    public BluetoothLeDevice getBluetoothLeDevice() {
+        return mDevice;
+    }
+
+    public void connect(Context context, BluetoothLeDevice device) {
+        this.mContext = context;
+        if (connectManager == null) {
+            connectManager = BluetoothConnectManager.getInstance(mContext);
+            connectManager.addConnectStateListener(stateListener);
+        }
+        // 姣忔杩炴帴閮介噸鏂拌缃瓽attCallback锛岄槻姝㈣鍏朵粬Activity(濡俆estActivity)瑕嗙洊
+        connectManager.setBluetoothGattCallback(gattCallback);
+        
+        this.mDevice = device;
+        connectManager.connect(device.getAddress());
+    }
+
+    public void disconnect() {
+        if (connectManager != null && mDevice != null) {
+            connectManager.disconnect(mDevice.getAddress());
+        }
+        resetCharacteristics();
+    }
+    
+    public boolean isConnected() {
+        return connectManager != null && connectManager.isConnectDevice();
+    }
+
+    private void resetCharacteristics() {
+        writeCharacteristic = null;
+        notifyCharacteristic = null;
+        mGatt = null;
+    }
+
+    private ConnectStateListener stateListener = new ConnectStateListener() {
+        @Override
+        public void onConnectStateChanged(String address, ConnectState state) {
+            if (state == ConnectState.CONNECTED) {
+                EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.CONN_STATU, BluetoothProfile.STATE_CONNECTED, "conn_statu"));
+            } else if (state == ConnectState.NORMAL) {
+                EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.CONN_STATU, BluetoothProfile.STATE_DISCONNECTED, "conn_statu"));
+            }
+
+            if (state == ConnectState.NORMAL) {
+                resetCharacteristics();
+            }
+        }
+    };
+
+    private BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
+        @Override
+        public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
+            super.onConnectionStateChange(gatt, status, newState);
+            if (newState == BluetoothProfile.STATE_CONNECTED) {
+                mGatt = gatt;
+            }
+        }
+
+        @Override
+        public void onServicesDiscovered(BluetoothGatt gatt, int status) {
+            super.onServicesDiscovered(gatt, status);
+            if (status == BluetoothGatt.GATT_SUCCESS) {
+                mHandler.post(() -> findAndEnableCharacteristics(gatt.getServices()));
+            }
+        }
+
+        @Override
+        public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
+            super.onCharacteristicWrite(gatt, characteristic, status);
+            // Optional: Broadcast write status
+        }
+
+        @Override
+        public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
+            super.onCharacteristicChanged(gatt, characteristic);
+            byte[] value = characteristic.getValue();
+            String hex = bytesToHexString(value);
+            // Broadcast received data
+            // You can define a custom event or interface for this
+             EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.DEVICE_INFO, 0, hex));
+        }
+    };
+
+    private void findAndEnableCharacteristics(List<BluetoothGattService> services) {
+        // Simple logic: Find first Write and first Notify in the same service if possible
+        // Or just find any Write and any Notify
+        
+        for (BluetoothGattService service : services) {
+            for (BluetoothGattCharacteristic characteristic : service.getCharacteristics()) {
+                int props = characteristic.getProperties();
+                
+                // Find Write Characteristic
+                if ((props & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0 ||
+                    (props & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0) {
+                    // TODO   寰呯‘璁�
+                    if (writeCharacteristic == null && characteristic.getUuid().toString().startsWith("0000ff") ) {
+                        writeCharacteristic = characteristic;
+                        
+                        // Once we found a write char, let's look for a notify char in the SAME service
+                        findNotifyInService(service);
+                        
+                        if (notifyCharacteristic != null) {
+                            // Found both in same service, we are good
+                            return; 
+                        }
+                    }
+                }
+            }
+        }
+        
+        if (writeCharacteristic != null && notifyCharacteristic == null) {
+            // If we didn't find notify in the same service, look everywhere
+             for (BluetoothGattService service : services) {
+                 findNotifyInService(service);
+                 if (notifyCharacteristic != null) break;
+             }
+        }
+        
+        if (writeCharacteristic != null) {
+            Toast.makeText(mContext, "鏈嶅姟宸插氨缁� (Write: " + writeCharacteristic.getUuid().toString().substring(0,8) + ")", Toast.LENGTH_SHORT).show();
+        } else {
+             Toast.makeText(mContext, "鏈壘鍒板彲鍐欑壒寰佸��", Toast.LENGTH_SHORT).show();
+        }
+    }
+    
+    private void findNotifyInService(BluetoothGattService service) {
+         for (BluetoothGattCharacteristic c : service.getCharacteristics()) {
+            int props = c.getProperties();
+            if ((props & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0 ||
+                    (props & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+                notifyCharacteristic = c;
+                enableNotification(c);
+                return;
+            }
+        }
+    }
+
+    private void enableNotification(BluetoothGattCharacteristic characteristic) {
+        if (mGatt == null || characteristic == null) return;
+
+        boolean success = mGatt.setCharacteristicNotification(characteristic, true);
+        if (success) {
+            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
+                    UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"));
+
+            if (descriptor != null) {
+                int props = characteristic.getProperties();
+                byte[] value = null;
+                if ((props & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
+                    value = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE;
+                } else if ((props & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+                    value = BluetoothGattDescriptor.ENABLE_INDICATION_VALUE;
+                }
+
+                if (value != null) {
+                    descriptor.setValue(value);
+                    mGatt.writeDescriptor(descriptor);
+                }
+            }
+        }
+    }
+
+    public void sendCmd(String hexCmd) {
+        if (writeCharacteristic == null || mGatt == null) {
+            Toast.makeText(mContext, "钃濈墮鏈繛鎺ユ垨鏈嶅姟鏈壘鍒�", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        
+        byte[] data = hexStringToBytes(hexCmd);
+        if (data == null) {
+             Toast.makeText(mContext, "鎸囦护鏍煎紡閿欒", Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+        writeCharacteristic.setValue(data);
+        mGatt.writeCharacteristic(writeCharacteristic);
+    }
+    
+    public static byte[] hexStringToBytes(String hexString) {
+        if (hexString == null || hexString.equals("")) {
+            return null;
+        }
+        hexString = hexString.toUpperCase();
+        hexString = hexString.replace(" ", "");
+        if (hexString.length() % 2 != 0) {
+            hexString = "0" + hexString;
+        }
+        
+        int length = hexString.length() / 2;
+        char[] hexChars = hexString.toCharArray();
+        byte[] d = new byte[length];
+        for (int i = 0; i < length; i++) {
+            int pos = i * 2;
+            d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
+        }
+        return d;
+    }
+
+    private static byte charToByte(char c) {
+        return (byte) "0123456789ABCDEF".indexOf(c);
+    }
+    
+    public static String bytesToHexString(byte[] src) {
+        StringBuilder stringBuilder = new StringBuilder("");
+        if (src == null || src.length <= 0) {
+            return null;
+        }
+        for (int i = 0; i < src.length; i++) {
+            int v = src[i] & 0xFF;
+            String hv = Integer.toHexString(v);
+            if (hv.length() < 2) {
+                stringBuilder.append(0);
+            }
+            stringBuilder.append(hv);
+        }
+        return stringBuilder.toString().toUpperCase();
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/model/BluetoothLeDeviceStore.java b/app/src/main/java/com/shlb/comb/model/BluetoothLeDeviceStore.java
new file mode 100644
index 0000000..e2b39f9
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/model/BluetoothLeDeviceStore.java
@@ -0,0 +1,150 @@
+package com.shlb.comb.model;
+
+
+import com.blakequ.bluetooth_manager_lib.device.BeaconType;
+import com.blakequ.bluetooth_manager_lib.device.BeaconUtils;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.shlb.comb.util.CsvWriterHelper;
+import com.shlb.comb.util.TimeFormatter;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+
+public class BluetoothLeDeviceStore {
+    private final Map<String, BluetoothLeDevice> mDeviceMap;
+
+
+    public BluetoothLeDeviceStore() {
+        mDeviceMap = new HashMap<>();
+    }
+
+    public void addDevice(final BluetoothLeDevice device) {
+        //if (mDeviceMap.containsKey(device.getAddress())) {
+        //    mDeviceMap.get(device.getAddress()).updateRssiReading(device.getTimestamp(), device.getRssi());
+        //} else {
+        //    mDeviceMap.put(device.getAddress(), device);
+        //}
+        mDeviceMap.put(device.getAddress(), device);
+    }
+
+    public void clear() {
+        mDeviceMap.clear();
+    }
+
+
+    public List<BluetoothLeDevice> getDeviceList() {
+        final List<BluetoothLeDevice> methodResult = new ArrayList<>(mDeviceMap.values());
+        if(methodResult==null || methodResult.size()< 1) return  methodResult;
+
+        Collections.sort(methodResult, new Comparator<BluetoothLeDevice>() {
+
+            @Override
+            public int compare(final BluetoothLeDevice arg0, final BluetoothLeDevice arg1) {
+                return arg0.getAddress().compareToIgnoreCase(arg1.getAddress());
+            }
+        });
+
+        return methodResult;
+    }
+
+    public int size(){
+        return mDeviceMap.size();
+    }
+
+    private String getListAsCsv() {
+        final List<BluetoothLeDevice> list = getDeviceList();
+        final StringBuilder sb = new StringBuilder();
+        sb.append(CsvWriterHelper.addStuff("mac"));
+        sb.append(CsvWriterHelper.addStuff("name"));
+        sb.append(CsvWriterHelper.addStuff("firstTimestamp"));
+        sb.append(CsvWriterHelper.addStuff("firstRssi"));
+        sb.append(CsvWriterHelper.addStuff("currentTimestamp"));
+        sb.append(CsvWriterHelper.addStuff("currentRssi"));
+        sb.append(CsvWriterHelper.addStuff("adRecord"));
+        sb.append(CsvWriterHelper.addStuff("iBeacon"));
+        sb.append(CsvWriterHelper.addStuff("uuid"));
+        sb.append(CsvWriterHelper.addStuff("major"));
+        sb.append(CsvWriterHelper.addStuff("minor"));
+        sb.append(CsvWriterHelper.addStuff("txPower"));
+        sb.append(CsvWriterHelper.addStuff("distance"));
+        sb.append(CsvWriterHelper.addStuff("accuracy"));
+        sb.append('\n');
+
+        for (final BluetoothLeDevice device : list) {
+            sb.append(CsvWriterHelper.addStuff(device.getAddress()));
+            sb.append(CsvWriterHelper.addStuff(device.getName()));
+            sb.append(CsvWriterHelper.addStuff(TimeFormatter.getIsoDateTime(device.getFirstTimestamp())));
+            sb.append(CsvWriterHelper.addStuff(device.getFirstRssi()));
+            sb.append(CsvWriterHelper.addStuff(TimeFormatter.getIsoDateTime(device.getTimestamp())));
+            sb.append(CsvWriterHelper.addStuff(device.getRssi()));
+            sb.append(CsvWriterHelper.addStuff(ByteUtils.byteArrayToHexString(device.getScanRecord())));
+            final boolean isIBeacon = BeaconUtils.getBeaconType(device) == BeaconType.IBEACON;
+            final String uuid;
+            final String minor;
+            final String major;
+            final String txPower;
+            final String distance;
+            final String accuracy;
+
+            if (isIBeacon) {
+                final IBeaconDevice beacon = new IBeaconDevice(device);
+                uuid = String.valueOf(beacon.getUUID());
+                minor = String.valueOf(beacon.getMinor());
+                major = String.valueOf(beacon.getMajor());
+                txPower = String.valueOf(beacon.getCalibratedTxPower());
+                distance = beacon.getDistanceDescriptor().toString().toLowerCase(Locale.US);
+                accuracy = String.valueOf(beacon.getAccuracy());
+            } else {
+                uuid = "";
+                minor = "";
+                major = "";
+                txPower = "";
+                distance = "";
+                accuracy = "";
+            }
+
+            sb.append(CsvWriterHelper.addStuff(isIBeacon));
+            sb.append(CsvWriterHelper.addStuff(uuid));
+            sb.append(CsvWriterHelper.addStuff(minor));
+            sb.append(CsvWriterHelper.addStuff(major));
+            sb.append(CsvWriterHelper.addStuff(txPower));
+            sb.append(CsvWriterHelper.addStuff(distance));
+            sb.append(CsvWriterHelper.addStuff(accuracy));
+
+            sb.append('\n');
+        }
+
+        return sb.toString();
+    }
+
+
+    private static FileWriter generateFile(final File file, final String contents) {
+        FileWriter writer = null;
+        try {
+            writer = new FileWriter(file);
+            writer.append(contents);
+            writer.flush();
+
+        } catch (final IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                writer.close();
+            } catch (final IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return writer;
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/model/HomeItem.java b/app/src/main/java/com/shlb/comb/model/HomeItem.java
new file mode 100644
index 0000000..82febe6
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/model/HomeItem.java
@@ -0,0 +1,40 @@
+package com.shlb.comb.model;
+
+public class HomeItem {
+    private String title;
+    private Class<?> activity;
+    private int imageResource;
+
+    public HomeItem() {
+    }
+
+    public HomeItem(String title, Class<?> activity, int imageResource) {
+        this.title = title;
+        this.activity = activity;
+        this.imageResource = imageResource;
+    }
+
+    public int getImageResource() {
+        return imageResource;
+    }
+
+    public void setImageResource(int imageResource) {
+        this.imageResource = imageResource;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public Class<?> getActivity() {
+        return activity;
+    }
+
+    public void setActivity(Class<?> activity) {
+        this.activity = activity;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/shlb/comb/util/CMD.java b/app/src/main/java/com/shlb/comb/util/CMD.java
new file mode 100644
index 0000000..49aa4ab
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/CMD.java
@@ -0,0 +1,67 @@
+package com.shlb.comb.util;
+
+public class CMD {
+    //杩涘叆
+    public final static String  GETINTO  =  "A55A060100000000002F35";
+    //娓呴櫎
+    public final static String  CLEAN  =  "A55A060200000000002F06";
+    //閫�鍑�
+    public final static String  EXIT  =  "A55A060400000000002F60";
+
+
+
+    public final static String  ADDR_PREFIX  =  "A55A060300";
+    public final static String  ADDR_SUFFIX  =  "000000";
+
+
+    //璇诲彇鍓嶇紑
+    public final static String  READ_PREFIX  =  "A55A03";
+    //鍐欏叆鍓嶇紑
+    public final static String  WRITE_SUFFIX  =  "A55A06";
+
+
+    //璇绘暟鎹�
+    public final static String  READ_DATA  =  READ_PREFIX + "0100";
+    //杩涘叆璁惧畾
+    public final static String  ENTER_SETTING  = WRITE_SUFFIX + "3B0101";
+    //閫�鍑鸿瀹�
+    public final static String  EXIT_SETTING  = WRITE_SUFFIX + "3B0100";
+
+
+    //璇诲眰鏁�
+    public final static String  READ_FLOORS  = READ_PREFIX + "080100";
+    //璇荤珯鍙�
+    public final static String  READ_STATION_NUM  = READ_PREFIX + "040100";
+    //璇绘尝鐗圭巼
+    public final static String  READ_BAUD_RATE  = READ_PREFIX + "050100";
+    //璇讳富鏉跨増鏈�
+    public final static String  READ_BOARD_VERSION  = READ_PREFIX + "0A0100";
+    //璇讳紶鎰熷櫒鐗堟湰
+    public final static String  READ_SENSOR_VERSION  = READ_PREFIX + "0B0100";
+
+
+
+    //鍐欑珯鍙�
+    public final static String  WRITE_STATION_NUM  = WRITE_SUFFIX + "3401";
+    //鍐欐尝鐗圭巼
+    public final static String  WRITE_BAUD_RATE  = WRITE_SUFFIX + "3501";
+
+    //寮�濮嬬紪鍧�
+    public final static String  WRITE_START_ADDRESS  = WRITE_SUFFIX + "3A0100";
+    //缁撴潫缂栧潃
+    public final static String  WRITE_END_ADDRESS  = WRITE_SUFFIX + "3A0101";
+    //寮�濮嬭嚜妫�
+    public final static String  WRITE_START_CHECK  = WRITE_SUFFIX + "390100";
+    //缁撴潫鑷
+    public final static String  WRITE_END_CHECK  = WRITE_SUFFIX + "390101";
+    // 闃堝�艰瀹�
+    public final static String  WRITE_THRESHOLD_SETTING  = WRITE_SUFFIX + "3202";
+    //鐏垫晱璁惧畾
+    public final static String  WRITE_SENSITIVITY_SETTING  = WRITE_SUFFIX + "3302";
+
+
+    //涓绘澘澶嶄綅
+    public final static String  WRITE_BOARD_RESET  = WRITE_SUFFIX + "360100";
+    //浼犳劅鍣ㄥ浣�
+    public final static String  WRITE_SENSOR_RESET  = WRITE_SUFFIX + "360101";
+}
diff --git a/app/src/main/java/com/shlb/comb/util/CRCutil.java b/app/src/main/java/com/shlb/comb/util/CRCutil.java
new file mode 100644
index 0000000..625a183
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/CRCutil.java
@@ -0,0 +1,34 @@
+package com.shlb.comb.util;
+
+public class CRCutil {
+    /**
+     * 璁$畻CRC16鏍¢獙鐮�
+     *
+     * @param bytes
+     * @return
+     */
+    public static String getCRC(byte[] bytes) {
+        int CRC = 0xFFFF;
+        int POLYNOMIAL = 0xA001;
+
+        int i, j,m,n;
+        for (i = 0; i < bytes.length; i++) {
+            CRC ^= ((int) bytes[i] & 0x000000ff);
+            for (j = 0; j < 8; j++) {
+                if ((CRC & 0x00000001) != 0) {
+                    CRC >>= 1;
+                    CRC ^= POLYNOMIAL;
+                } else {
+                    CRC >>= 1;
+                }
+            }
+        }
+        m = CRC /256;
+        n = CRC%256;
+        CRC = n * 256 +m;
+        return Integer.toHexString(CRC);
+
+    }
+
+
+}
diff --git a/app/src/main/java/com/shlb/comb/util/Constants.java b/app/src/main/java/com/shlb/comb/util/Constants.java
new file mode 100644
index 0000000..f25ca9a
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/Constants.java
@@ -0,0 +1,15 @@
+package com.shlb.comb.util;
+
+import java.text.DecimalFormat;
+
+public class Constants {
+    public static final DecimalFormat DOUBLE_TWO_DIGIT_ACCURACY = new DecimalFormat("#.##");
+    public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+    public static final String FILTER_SWITCH = "switch";
+    public static final String FILTER_NAME = "name";
+    public static final String FILTER_RSSI = "rssi";
+    public static final String SCAN_PERIOD = "scan";
+    public static final String PAUSE_PERIOD = "pause";
+    public static final String SHOW_SPINNER = "spinner";
+}
diff --git a/app/src/main/java/com/shlb/comb/util/CsvWriterHelper.java b/app/src/main/java/com/shlb/comb/util/CsvWriterHelper.java
new file mode 100644
index 0000000..849f539
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/CsvWriterHelper.java
@@ -0,0 +1,26 @@
+package com.shlb.comb.util;
+
+public class CsvWriterHelper {
+    private static final String QUOTE = "\"";
+
+    public static String addStuff(final Integer text) {
+        return QUOTE + text + QUOTE + ",";
+    }
+
+    public static String addStuff(final Long text) {
+        return QUOTE + text + QUOTE + ",";
+    }
+
+    public static String addStuff(final boolean value) {
+        return QUOTE + value + QUOTE + ",";
+    }
+
+    public static String addStuff(String text) {
+        if (text == null) {
+            text = "<blank>";
+        }
+        text = text.replace(QUOTE, "'");
+
+        return QUOTE + text.trim() + QUOTE + ",";
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/util/Singletion.java b/app/src/main/java/com/shlb/comb/util/Singletion.java
new file mode 100644
index 0000000..6488acc
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/Singletion.java
@@ -0,0 +1,36 @@
+package com.shlb.comb.util;
+
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鐢ㄤ簬瀛樺偍宸茶繛鎺ヨ摑鐗欐暟鎹�
+ */
+public class Singletion {
+    private static final Singletion mInstance = new Singletion();
+
+    private Singletion() {
+
+    }
+    public static Singletion getInstance() {
+        return mInstance;
+    }
+    //褰撳墠杩炴帴钃濈墮鐨勭殑鍙啓鏈嶅姟
+    public  List<Map<String,String>>  mbluetoothServices = new ArrayList<>();
+    //褰撳墠杩炴帴钃濈墮
+    public BluetoothLeDevice mDevice;
+
+    public boolean mConnected;
+
+    public String uuid;
+
+    public void clean(){
+        mbluetoothServices.clear();
+        mDevice = null;
+    }
+
+
+}
diff --git a/app/src/main/java/com/shlb/comb/util/TimeFormatter.java b/app/src/main/java/com/shlb/comb/util/TimeFormatter.java
new file mode 100644
index 0000000..f9e735b
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/util/TimeFormatter.java
@@ -0,0 +1,18 @@
+package com.shlb.comb.util;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class TimeFormatter {
+    private final static String FORMAT = "yyyy-MM-dd HH:mm:ss zzz";
+    private final static SimpleDateFormat FORMATTER = new SimpleDateFormat(FORMAT, Locale.CHINA);
+
+    public static String getIsoDateTime(final Date date) {
+        return FORMATTER.format(date);
+    }
+
+    public static String getIsoDateTime(final long millis) {
+        return getIsoDateTime(new Date(millis));
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/view/ParticleView.java b/app/src/main/java/com/shlb/comb/view/ParticleView.java
new file mode 100644
index 0000000..d03edee
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/view/ParticleView.java
@@ -0,0 +1,379 @@
+package com.shlb.comb.view;
+
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.LinearGradient;
+import android.graphics.Paint;
+import android.graphics.PointF;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.shlb.comb.R;
+import com.shlb.comb.view.particleview.LineEvaluator;
+import com.shlb.comb.view.particleview.Particle;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+
+/**
+ * 浣滆�咃細 宸存帉 on 16/8/27 11:29
+ * Github: https://github.com/JeasonWong
+ */
+public class ParticleView extends View {
+
+    private final int STATUS_MOTIONLESS = 0;
+    private final int STATUS_PARTICLE_GATHER = 1;
+    private final int STATUS_TEXT_MOVING = 2;
+
+    private final int ROW_NUM = 10;
+    private final int COLUMN_NUM = 10;
+
+    private final int DEFAULT_MAX_TEXT_SIZE = sp2px(80);
+    private final int DEFAULT_MIN_TEXT_SIZE = sp2px(30);
+
+    public final int DEFAULT_TEXT_ANIM_TIME = 1000;
+    public final int DEFAULT_SPREAD_ANIM_TIME = 300;
+    public final int DEFAULT_HOST_TEXT_ANIM_TIME = 800;
+
+    private Paint mHostTextPaint;
+    private Paint mParticleTextPaint;
+    private Paint mCirclePaint;
+    private Paint mHostBgPaint;
+    private int mWidth, mHeight;
+
+    private Particle[][] mParticles = new Particle[ROW_NUM][COLUMN_NUM];
+    private Particle[][] mMinParticles = new Particle[ROW_NUM][COLUMN_NUM];
+
+    //鑳屾櫙鑹�
+    private int mBgColor;
+    //绮掑瓙鑹�
+    private int mParticleColor;
+    //榛樿绮掑瓙鏂囨澶у皬
+    private int mParticleTextSize = DEFAULT_MIN_TEXT_SIZE;
+
+    private int mStatus = STATUS_MOTIONLESS;
+
+    private ParticleAnimListener mParticleAnimListener;
+
+    //绮掑瓙鏂囨
+    private String mParticleText;
+    //涓绘枃妗�
+    private String mHostText;
+    //鎵╂暎瀹藉害
+    private float mSpreadWidth;
+    //Host鏂囧瓧灞曠幇瀹藉害
+    private float mHostRectWidth;
+    //绮掑瓙鏂囨鐨剎鍧愭爣
+    private float mParticleTextX;
+    //Host鏂囧瓧鐨剎鍧愭爣
+    private float mHostTextX;
+
+    //Text anim time in milliseconds
+    private int mTextAnimTime;
+    //Spread anim time in milliseconds
+    private int mSpreadAnimTime;
+    //HostText anim time in milliseconds
+    private int mHostTextAnimTime;
+
+    private PointF mStartMaxP, mEndMaxP;
+    private PointF mStartMinP, mEndMinP;
+
+    public ParticleView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public ParticleView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initView(attrs);
+    }
+
+    private void initView(AttributeSet attrs) {
+
+        TypedArray typeArray = getContext().obtainStyledAttributes(attrs, R.styleable.ParticleView);
+        mHostText = null == typeArray.getString(R.styleable.ParticleView_pv_host_text) ? "" : typeArray.getString(R.styleable.ParticleView_pv_host_text);
+        mParticleText = null == typeArray.getString(R.styleable.ParticleView_pv_particle_text) ? "" : typeArray.getString(R.styleable.ParticleView_pv_particle_text);
+        mParticleTextSize = (int) typeArray.getDimension(R.styleable.ParticleView_pv_particle_text_size, DEFAULT_MIN_TEXT_SIZE);
+        int hostTextSize = (int) typeArray.getDimension(R.styleable.ParticleView_pv_host_text_size, DEFAULT_MIN_TEXT_SIZE);
+        mBgColor = typeArray.getColor(R.styleable.ParticleView_pv_background_color, 0xFF0867AB);
+        mParticleColor = typeArray.getColor(R.styleable.ParticleView_pv_text_color, 0xFFCEF4FD);
+        mTextAnimTime = typeArray.getInt(R.styleable.ParticleView_pv_text_anim_time, DEFAULT_TEXT_ANIM_TIME);
+        mSpreadAnimTime = typeArray.getInt(R.styleable.ParticleView_pv_text_anim_time, DEFAULT_SPREAD_ANIM_TIME);
+        mHostTextAnimTime = typeArray.getInt(R.styleable.ParticleView_pv_text_anim_time, DEFAULT_HOST_TEXT_ANIM_TIME);
+        typeArray.recycle();
+
+        mHostTextPaint = new Paint();
+        mHostTextPaint.setAntiAlias(true);
+        mHostTextPaint.setTextSize(hostTextSize);
+        mParticleTextPaint = new Paint();
+        mParticleTextPaint.setAntiAlias(true);
+        mCirclePaint = new Paint();
+        mCirclePaint.setAntiAlias(true);
+        mHostBgPaint = new Paint();
+        mHostBgPaint.setAntiAlias(true);
+        mHostBgPaint.setTextSize(hostTextSize);
+
+        mParticleTextPaint.setTextSize(mParticleTextSize);
+        mCirclePaint.setTextSize(mParticleTextSize);
+
+        mParticleTextPaint.setColor(mBgColor);
+        mHostTextPaint.setColor(mBgColor);
+        mCirclePaint.setColor(mParticleColor);
+        mHostBgPaint.setColor(mParticleColor);
+
+    }
+
+    @Override
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(w, h, oldw, oldh);
+        mWidth = w;
+        mHeight = h;
+
+        mStartMinP = new PointF(mWidth / 2 - getTextWidth(mParticleText, mParticleTextPaint) / 2f - dip2px(4), mHeight / 2 + getTextHeight(mHostText, mHostTextPaint) / 2 - getTextHeight(mParticleText, mParticleTextPaint) / 0.7f);
+        mEndMinP = new PointF(mWidth / 2 + getTextWidth(mParticleText, mParticleTextPaint) / 2f + dip2px(10), mHeight / 2 + getTextHeight(mHostText, mHostTextPaint) / 2);
+
+        for (int i = 0; i < ROW_NUM; i++) {
+            for (int j = 0; j < COLUMN_NUM; j++) {
+                mMinParticles[i][j] = new Particle(mStartMinP.x + (mEndMinP.x - mStartMinP.x) / COLUMN_NUM * j, mStartMinP.y + (mEndMinP.y - mStartMinP.y) / ROW_NUM * i, dip2px(0.8f));
+            }
+        }
+
+        mStartMaxP = new PointF(mWidth / 2 - DEFAULT_MAX_TEXT_SIZE, mHeight / 2 - DEFAULT_MAX_TEXT_SIZE);
+        mEndMaxP = new PointF(mWidth / 2 + DEFAULT_MAX_TEXT_SIZE, mHeight / 2 + DEFAULT_MAX_TEXT_SIZE);
+
+        for (int i = 0; i < ROW_NUM; i++) {
+            for (int j = 0; j < COLUMN_NUM; j++) {
+                mParticles[i][j] = new Particle(mStartMaxP.x + (mEndMaxP.x - mStartMaxP.x) / COLUMN_NUM * j, mStartMaxP.y + (mEndMaxP.y - mStartMaxP.y) / ROW_NUM * i, getTextWidth(mHostText + mParticleText, mParticleTextPaint) / (COLUMN_NUM * 1.8f));
+            }
+        }
+
+        Shader linearGradient = new LinearGradient(mWidth / 2 - getTextWidth(mParticleText, mCirclePaint) / 2f,
+                mHeight / 2 - getTextHeight(mParticleText, mCirclePaint) / 2,
+                mWidth / 2 - getTextWidth(mParticleText, mCirclePaint) / 2,
+                mHeight / 2 + getTextHeight(mParticleText, mCirclePaint) / 2,
+                new int[]{mParticleColor, Color.argb(120, getR(mParticleColor), getG(mParticleColor), getB(mParticleColor))}, null, Shader.TileMode.CLAMP);
+        mCirclePaint.setShader(linearGradient);
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+
+        if (mStatus == STATUS_PARTICLE_GATHER) {
+            for (int i = 0; i < ROW_NUM; i++) {
+                for (int j = 0; j < COLUMN_NUM; j++) {
+                    canvas.drawCircle(mParticles[i][j].x, mParticles[i][j].y, mParticles[i][j].radius, mCirclePaint);
+                }
+            }
+        }
+
+        if (mStatus == STATUS_TEXT_MOVING) {
+            canvas.drawText(mHostText, mHostTextX, mHeight / 2 + getTextHeight(mHostText, mHostBgPaint) / 2, mHostBgPaint);
+            canvas.drawRect(mHostTextX + mHostRectWidth, mHeight / 2 - getTextHeight(mHostText, mHostBgPaint) / 1.2f, mHostTextX + getTextWidth(mHostText, mHostTextPaint), mHeight / 2 + getTextHeight(mHostText, mHostBgPaint) / 1.2f, mHostTextPaint);
+        }
+
+        if (mStatus == STATUS_PARTICLE_GATHER) {
+            canvas.drawRoundRect(new RectF(mWidth / 2 - mSpreadWidth, mStartMinP.y, mWidth / 2 + mSpreadWidth, mEndMinP.y), dip2px(2), dip2px(2), mHostBgPaint);
+            canvas.drawText(mParticleText, mWidth / 2 - getTextWidth(mParticleText, mParticleTextPaint) / 2, mStartMinP.y + (mEndMinP.y - mStartMinP.y) / 2 + getTextHeight(mParticleText, mParticleTextPaint) / 2, mParticleTextPaint);
+        } else if (mStatus == STATUS_TEXT_MOVING) {
+            canvas.drawRoundRect(new RectF(mParticleTextX - dip2px(4), mStartMinP.y, mParticleTextX + getTextWidth(mParticleText, mParticleTextPaint) + dip2px(4), mEndMinP.y), dip2px(2), dip2px(2), mHostBgPaint);
+            canvas.drawText(mParticleText, mParticleTextX, mStartMinP.y + (mEndMinP.y - mStartMinP.y) / 2 + getTextHeight(mParticleText, mParticleTextPaint) / 2, mParticleTextPaint);
+        }
+
+    }
+
+    private void startParticleAnim() {
+
+        mStatus = STATUS_PARTICLE_GATHER;
+
+        Collection<Animator> animList = new ArrayList<>();
+
+        ValueAnimator textAnim = ValueAnimator.ofInt(DEFAULT_MAX_TEXT_SIZE, mParticleTextSize);
+        textAnim.setDuration((int) (mTextAnimTime * 0.8f));
+        textAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator valueAnimator) {
+                int textSize = (int) valueAnimator.getAnimatedValue();
+                mParticleTextPaint.setTextSize(textSize);
+            }
+        });
+        animList.add(textAnim);
+
+        for (int i = 0; i < ROW_NUM; i++) {
+            for (int j = 0; j < COLUMN_NUM; j++) {
+                final int tempI = i;
+                final int tempJ = j;
+                ValueAnimator animator = ValueAnimator.ofObject(new LineEvaluator(), mParticles[i][j], mMinParticles[i][j]);
+                animator.setDuration(mTextAnimTime + ((int) (mTextAnimTime * 0.02f)) * i + ((int) (mTextAnimTime * 0.03f)) * j);
+                animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+                    @Override
+                    public void onAnimationUpdate(ValueAnimator animation) {
+                        mParticles[tempI][tempJ] = (Particle) animation.getAnimatedValue();
+                        if (tempI == ROW_NUM - 1 && tempJ == COLUMN_NUM - 1) {
+                            invalidate();
+                        }
+                    }
+                });
+                animList.add(animator);
+            }
+        }
+
+        AnimatorSet set = new AnimatorSet();
+        set.playTogether(animList);
+        set.start();
+
+        set.addListener(new AnimListener() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                startSpreadAnim();
+            }
+        });
+
+    }
+
+    private void startSpreadAnim() {
+        ValueAnimator animator = ValueAnimator.ofFloat(0, getTextWidth(mParticleText, mParticleTextPaint) / 2 + dip2px(4));
+        animator.setDuration(mSpreadAnimTime);
+        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                mSpreadWidth = (float) animation.getAnimatedValue();
+                invalidate();
+            }
+        });
+        animator.addListener(new AnimListener() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                startHostTextAnim();
+            }
+        });
+        animator.start();
+    }
+
+    private void startHostTextAnim() {
+        mStatus = STATUS_TEXT_MOVING;
+
+        Collection<Animator> animList = new ArrayList<>();
+
+        ValueAnimator particleTextXAnim = ValueAnimator.ofFloat(mStartMinP.x + dip2px(4), mWidth / 2 - (getTextWidth(mHostText, mHostTextPaint) + getTextWidth(mParticleText, mParticleTextPaint)) / 2 + getTextWidth(mHostText, mHostTextPaint));
+        particleTextXAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                mParticleTextX = (float) animation.getAnimatedValue();
+            }
+        });
+        animList.add(particleTextXAnim);
+
+        ValueAnimator animator = ValueAnimator.ofFloat(0, getTextWidth(mHostText, mHostTextPaint));
+        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                mHostRectWidth = (float) animation.getAnimatedValue();
+            }
+        });
+        animList.add(animator);
+
+        ValueAnimator hostTextXAnim = ValueAnimator.ofFloat(mStartMinP.x, mWidth / 2 - (getTextWidth(mHostText, mHostTextPaint) + getTextWidth(mParticleText, mParticleTextPaint) + dip2px(20)) / 2);
+        hostTextXAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                mHostTextX = (float) animation.getAnimatedValue();
+                invalidate();
+            }
+        });
+        animList.add(hostTextXAnim);
+
+        AnimatorSet set = new AnimatorSet();
+        set.playTogether(animList);
+        set.setDuration(mHostTextAnimTime);
+        set.addListener(new AnimListener() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                if (null != mParticleAnimListener) {
+                    mParticleAnimListener.onAnimationEnd();
+                }
+            }
+        });
+        set.start();
+
+    }
+
+    public void startAnim() {
+        post(new Runnable() {
+            @Override
+            public void run() {
+                startParticleAnim();
+            }
+        });
+    }
+
+    private abstract class AnimListener implements Animator.AnimatorListener {
+        @Override
+        public void onAnimationStart(Animator animation) {
+
+        }
+
+        @Override
+        public void onAnimationCancel(Animator animation) {
+
+        }
+
+        @Override
+        public void onAnimationRepeat(Animator animation) {
+
+        }
+    }
+
+    public void setOnParticleAnimListener(ParticleAnimListener particleAnimListener) {
+        mParticleAnimListener = particleAnimListener;
+    }
+
+    public interface ParticleAnimListener {
+        void onAnimationEnd();
+    }
+
+    private int dip2px(float dipValue) {
+        final float scale = getContext().getResources().getDisplayMetrics().density;
+        return (int) (dipValue * scale + 0.5f);
+    }
+
+    private int sp2px(float spValue) {
+        final float fontScale = getContext().getResources().getDisplayMetrics().scaledDensity;
+        return (int) (spValue * fontScale + 0.5f);
+    }
+
+    private float getTextHeight(String text, Paint paint) {
+        Rect rect = new Rect();
+        paint.getTextBounds(text, 0, text.length(), rect);
+        return rect.height() / 1.1f;
+    }
+
+    private float getTextWidth(String text, Paint paint) {
+        return paint.measureText(text);
+    }
+
+    private int getR(int color) {
+        int r = (color >> 16) & 0xFF;
+        return r;
+    }
+
+    private int getG(int color) {
+        int g = (color >> 8) & 0xFF;
+        return g;
+    }
+
+    private int getB(int color) {
+        int b = color & 0xFF;
+        return b;
+    }
+}
+
diff --git a/app/src/main/java/com/shlb/comb/view/particleview/LineEvaluator.java b/app/src/main/java/com/shlb/comb/view/particleview/LineEvaluator.java
new file mode 100644
index 0000000..a1d9ecc
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/view/particleview/LineEvaluator.java
@@ -0,0 +1,16 @@
+package com.shlb.comb.view.particleview;
+
+
+import android.animation.TypeEvaluator;
+
+public class LineEvaluator implements TypeEvaluator<Particle> {
+
+    @Override
+    public Particle evaluate(float fraction, Particle startValue, Particle endValue) {
+        Particle particle = new Particle();
+        particle.x = startValue.x + (endValue.x - startValue.x) * fraction;
+        particle.y = startValue.y + (endValue.y - startValue.y) * fraction;
+        particle.radius = startValue.radius + (endValue.radius - startValue.radius) * fraction;
+        return particle;
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/view/particleview/Particle.java b/app/src/main/java/com/shlb/comb/view/particleview/Particle.java
new file mode 100644
index 0000000..298e10c
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/view/particleview/Particle.java
@@ -0,0 +1,17 @@
+package com.shlb.comb.view.particleview;
+
+public class Particle {
+
+    public float x;
+    public float y;
+    public float radius;
+
+    public Particle() {
+    }
+
+    public Particle(float x, float y, float radius) {
+        this.x = x;
+        this.y = y;
+        this.radius = radius;
+    }
+}
diff --git a/app/src/main/java/com/shlb/comb/view/t.java b/app/src/main/java/com/shlb/comb/view/t.java
new file mode 100644
index 0000000..cfda13d
--- /dev/null
+++ b/app/src/main/java/com/shlb/comb/view/t.java
@@ -0,0 +1,4 @@
+package com.shlb.comb.view;
+
+public class t {
+}
diff --git a/app/src/main/res/color/s_app_color_blue_2.xml b/app/src/main/res/color/s_app_color_blue_2.xml
new file mode 100644
index 0000000..045c709
--- /dev/null
+++ b/app/src/main/res/color/s_app_color_blue_2.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Tencent is pleased to support the open source community by making QMUI_Android available.
+
+ Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
+
+ Licensed under the MIT License (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+
+ http://opensource.org/licenses/MIT
+
+ 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/app_color_blue_2_pressed" android:state_pressed="true"/>
+    <item android:color="@color/app_color_blue_2"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/selector_drawer_icon.xml b/app/src/main/res/color/selector_drawer_icon.xml
new file mode 100644
index 0000000..123ba4b
--- /dev/null
+++ b/app/src/main/res/color/selector_drawer_icon.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="#1890ff" android:state_selected="true" />
+    <item android:color="#1890ff" android:state_pressed="true" />
+    <item android:color="#757575" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/color/selector_drawer_text.xml b/app/src/main/res/color/selector_drawer_text.xml
new file mode 100644
index 0000000..2cc55bb
--- /dev/null
+++ b/app/src/main/res/color/selector_drawer_text.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="#1890ff" android:state_selected="true" />
+    <item android:color="#1890ff" android:state_pressed="true" />
+    <item android:color="#333333" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                android:endX="85.84757"
+                android:endY="92.4963"
+                android:startX="42.9492"
+                android:startY="49.59793"
+                android:type="linear">
+                <item
+                    android:color="#44000000"
+                    android:offset="0.0" />
+                <item
+                    android:color="#00000000"
+                    android:offset="1.0" />
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_box_empty.xml b/app/src/main/res/drawable/bg_box_empty.xml
new file mode 100644
index 0000000..3abe1b4
--- /dev/null
+++ b/app/src/main/res/drawable/bg_box_empty.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFFFFF"/>
+    <corners android:radius="6dp"/>
+    <stroke android:width="1dp" android:color="#E0E0E0"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_box_error.xml b/app/src/main/res/drawable/bg_box_error.xml
new file mode 100644
index 0000000..8653dee
--- /dev/null
+++ b/app/src/main/res/drawable/bg_box_error.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#F44336"/>
+    <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_box_full.xml b/app/src/main/res/drawable/bg_box_full.xml
new file mode 100644
index 0000000..b198059
--- /dev/null
+++ b/app/src/main/res/drawable/bg_box_full.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#4CAF50"/>
+    <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_box_offline.xml b/app/src/main/res/drawable/bg_box_offline.xml
new file mode 100644
index 0000000..73f0379
--- /dev/null
+++ b/app/src/main/res/drawable/bg_box_offline.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#9E9E9E"/>
+    <corners android:radius="6dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_card.xml b/app/src/main/res/drawable/bg_card.xml
new file mode 100644
index 0000000..fc92cfa
--- /dev/null
+++ b/app/src/main/res/drawable/bg_card.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/white"/>
+    <corners android:radius="12dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_drawer_header_gradient.xml b/app/src/main/res/drawable/bg_drawer_header_gradient.xml
new file mode 100644
index 0000000..d2161ef
--- /dev/null
+++ b/app/src/main/res/drawable/bg_drawer_header_gradient.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <gradient
+        android:angle="135"
+        android:startColor="#1890ff"
+        android:endColor="#0050b3"
+        android:type="linear" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_drawer_item.xml b/app/src/main/res/drawable/bg_drawer_item.xml
new file mode 100644
index 0000000..f6f2d9f
--- /dev/null
+++ b/app/src/main/res/drawable/bg_drawer_item.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="#201890ff">
+    <item>
+        <selector>
+            <item android:state_selected="true">
+                <shape android:shape="rectangle">
+                    <solid android:color="#E6F7FF" />
+                    <corners android:radius="8dp" />
+                </shape>
+            </item>
+            <item android:state_pressed="true">
+                <shape android:shape="rectangle">
+                    <solid android:color="#F5F5F5" />
+                    <corners android:radius="8dp" />
+                </shape>
+            </item>
+            <item>
+                <shape android:shape="rectangle">
+                    <solid android:color="@android:color/transparent" />
+                    <corners android:radius="8dp" />
+                </shape>
+            </item>
+        </selector>
+    </item>
+</ripple>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_edittext.xml b/app/src/main/res/drawable/bg_edittext.xml
new file mode 100644
index 0000000..2f07fbf
--- /dev/null
+++ b/app/src/main/res/drawable/bg_edittext.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/white"/>
+    <corners android:radius="4dp"/>
+    <stroke android:width="1dp" android:color="@color/gray_line"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_input_field.xml b/app/src/main/res/drawable/bg_input_field.xml
new file mode 100644
index 0000000..344c1c4
--- /dev/null
+++ b/app/src/main/res/drawable/bg_input_field.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#F5F6FA"/>
+    <corners android:radius="8dp"/>
+    <stroke android:width="0dp" android:color="@color/gray_line"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_round.xml b/app/src/main/res/drawable/bg_round.xml
new file mode 100755
index 0000000..765fee2
--- /dev/null
+++ b/app/src/main/res/drawable/bg_round.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle"
+    >
+    <solid
+        android:color="@color/white"
+        />
+    <corners
+        android:radius="3dp"
+        />
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_gray.xml b/app/src/main/res/drawable/btn_gray.xml
new file mode 100644
index 0000000..81b5d97
--- /dev/null
+++ b/app/src/main/res/drawable/btn_gray.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#D0D0D0"/>
+            <corners android:radius="4dp"/>
+            <stroke android:width="1dp" android:color="#A0A0A0"/>
+        </shape>
+    </item>
+    <item>
+        <shape>
+            <solid android:color="#E0E0E0"/>
+            <corners android:radius="4dp"/>
+            <stroke android:width="1dp" android:color="#B0B0B0"/>
+        </shape>
+    </item>
+</selector>
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillColor="#3DDC84"
+        android:pathData="M0,0h108v108h-108z" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M9,0L9,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,0L19,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,0L29,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,0L39,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,0L49,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,0L59,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,0L69,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,0L79,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M89,0L89,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M99,0L99,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,9L108,9"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,19L108,19"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,29L108,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,39L108,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,49L108,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,59L108,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,69L108,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,79L108,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,89L108,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,99L108,99"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,29L89,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,39L89,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,49L89,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,59L89,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,69L89,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,79L89,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,19L29,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,19L39,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,19L49,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,19L59,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,19L69,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,19L79,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/app/src/main/res/drawable/item_flag_view.xml b/app/src/main/res/drawable/item_flag_view.xml
new file mode 100755
index 0000000..b2786fa
--- /dev/null
+++ b/app/src/main/res/drawable/item_flag_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle"
+    >
+
+    <solid
+        android:color="@color/colorPrimary"
+        />
+    <corners
+        android:radius="1dp"
+        />
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/radius_button_bg.xml b/app/src/main/res/drawable/radius_button_bg.xml
new file mode 100644
index 0000000..872a130
--- /dev/null
+++ b/app/src/main/res/drawable/radius_button_bg.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Tencent is pleased to support the open source community by making QMUI_Android available.
+
+ Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
+
+ Licensed under the MIT License (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+
+ http://opensource.org/licenses/MIT
+
+ 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <!-- rectangle 琛ㄧず涓虹煩褰� -->
+
+    <!-- 濉厖鐨勯鑹� -->
+    <solid android:color="#FFEBF9FF"/>
+
+    <!-- 杈规鐨勯鑹插拰绮楃粏 -->
+    <stroke
+        android:width="1px"
+        android:color="@color/app_color_blue_2"/>
+
+    <!-- android:radius 鍦嗚鐨勫崐寰� -->
+    <corners android:radius="4dp"/>
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/radius_button_bg_pressed.xml b/app/src/main/res/drawable/radius_button_bg_pressed.xml
new file mode 100644
index 0000000..5661fb8
--- /dev/null
+++ b/app/src/main/res/drawable/radius_button_bg_pressed.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Tencent is pleased to support the open source community by making QMUI_Android available.
+
+ Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
+
+ Licensed under the MIT License (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+
+ http://opensource.org/licenses/MIT
+
+ 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <!-- rectangle 琛ㄧず涓虹煩褰� -->
+
+    <!-- 濉厖鐨勯鑹� -->
+    <solid android:color="#7FEBF9FF"/>
+
+    <!-- 杈规鐨勯鑹插拰绮楃粏 -->
+    <stroke
+        android:width="1px"
+        android:color="@color/app_color_blue_2_pressed"/>
+
+    <!-- android:radius 鍦嗚鐨勫崐寰� -->
+    <corners android:radius="4dp"/>
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/s_radius_button_bg.xml b/app/src/main/res/drawable/s_radius_button_bg.xml
new file mode 100644
index 0000000..4007e5f
--- /dev/null
+++ b/app/src/main/res/drawable/s_radius_button_bg.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Tencent is pleased to support the open source community by making QMUI_Android available.
+
+ Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
+
+ Licensed under the MIT License (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+
+ http://opensource.org/licenses/MIT
+
+ 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/radius_button_bg_pressed" android:state_pressed="true"/>
+    <item android:drawable="@drawable/radius_button_bg"/>
+</selector>
diff --git a/app/src/main/res/layout/activity_advanced_setting.xml b/app/src/main/res/layout/activity_advanced_setting.xml
new file mode 100644
index 0000000..bf16f8c
--- /dev/null
+++ b/app/src/main/res/layout/activity_advanced_setting.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/gray_bg"
+    android:orientation="vertical">
+
+    <include layout="@layout/include_head" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:padding="15dp">
+
+            <!-- Advanced Settings Section -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/bg_card"
+                android:orientation="vertical"
+                android:padding="20dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginBottom="20dp"
+                    android:text="楂樼骇璁剧疆"
+                    android:textColor="@color/base_text"
+                    android:textSize="18sp"
+                    android:textStyle="bold" />
+
+                <!-- Mainboard Version Row -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:layout_marginBottom="25dp">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:layout_marginBottom="10dp">
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="涓绘澘鐗堟湰"
+                            android:textColor="@color/base_text"
+                            android:textSize="15sp"
+                            android:textStyle="bold"/>
+                        <TextView
+                            android:id="@+id/tv_mainboard_status"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text=""
+                            android:textSize="14sp"
+                            android:layout_marginLeft="10dp"/>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <EditText
+                            android:id="@+id/et_mainboard_version"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/bg_input_field"
+                            android:paddingStart="10dp"
+                            android:paddingEnd="10dp"
+                            android:hint="10-10-1961-01"
+                            android:enabled="false"
+                            android:textColor="@color/base_text"
+                            android:textSize="14sp"
+                            android:layout_marginRight="10dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_mainboard_read"
+                            android:layout_width="80dp"
+                            android:layout_height="45dp"
+                            android:text="璇诲彇"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color"
+                            app:qmui_radius="8dp"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/gray_line"
+                    android:layout_marginBottom="20dp"/>
+
+                <!-- Display Version Row -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:layout_marginBottom="25dp">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:layout_marginBottom="10dp">
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鏄剧ず灞忕増鏈�"
+                            android:textColor="@color/base_text"
+                            android:textSize="15sp"
+                            android:textStyle="bold"/>
+                        <TextView
+                            android:id="@+id/tv_sensor_status"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text=""
+                            android:textSize="14sp"
+                            android:layout_marginLeft="10dp"/>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <EditText
+                            android:id="@+id/et_display_version"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/bg_input_field"
+                            android:paddingStart="10dp"
+                            android:paddingEnd="10dp"
+                            android:hint="10-10-1962-01"
+                            android:enabled="false"
+                            android:textColor="@android:color/black"
+                            android:textSize="14sp"
+                            android:layout_marginRight="10dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_display_read"
+                            android:layout_width="80dp"
+                            android:layout_height="45dp"
+                            android:text="璇诲彇"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color"
+                            app:qmui_radius="8dp"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/gray_line"
+                    android:layout_marginBottom="20dp"/>
+
+                <!-- Addressing Buttons -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center">
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                        android:id="@+id/btn_start_addressing"
+                        android:layout_width="0dp"
+                        android:layout_height="45dp"
+                        android:layout_weight="1"
+                        android:text="寮�濮嬬紪鍧�"
+                        android:textColor="@color/white"
+                        android:textSize="14sp"
+                        app:qmui_backgroundColor="@color/base_color"
+                        app:qmui_radius="8dp"
+                        android:layout_marginRight="15dp"/>
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                        android:id="@+id/btn_end_addressing"
+                        android:layout_width="0dp"
+                        android:layout_height="45dp"
+                        android:layout_weight="1"
+                        android:text="缁撴潫缂栧潃"
+                        android:textColor="@color/white"
+                        android:textSize="14sp"
+                        app:qmui_backgroundColor="@color/base_color"
+                        app:qmui_radius="8dp"/>
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <!-- Log Display -->
+            <androidx.cardview.widget.CardView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:cardCornerRadius="12dp"
+                app:cardElevation="2dp"
+                app:cardBackgroundColor="@color/white"
+                android:layout_marginTop="16dp"
+                android:layout_marginBottom="24dp">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <!-- Card Header -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:gravity="center_vertical"
+                        android:padding="16dp"
+                        android:background="#FAFAFA">
+
+                        <View
+                            android:layout_width="4dp"
+                            android:layout_height="16dp"
+                            android:background="@color/base_color"
+                            android:layout_marginEnd="8dp"/>
+
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="鎿嶄綔璁板綍"
+                            android:textSize="16sp"
+                            android:textStyle="bold"
+                            android:textColor="#333333" />
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_clear_log"
+                            android:layout_width="wrap_content"
+                            android:layout_height="32dp"
+                            android:text="娓呯┖"
+                            android:textColor="@color/white"
+                            android:textSize="12sp"
+                            android:paddingStart="12dp"
+                            android:paddingEnd="12dp"
+                            app:qmui_backgroundColor="#FF5252"
+                            app:qmui_radius="4dp"/>
+                    </LinearLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#EEEEEE"/>
+
+                    <ScrollView
+                        android:layout_width="match_parent"
+                        android:layout_height="200dp"
+                        android:padding="12dp"
+                        android:background="#FAFAFA">
+
+                        <TextView
+                            android:id="@+id/tv_log"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="绛夊緟鎿嶄綔..."
+                            android:textColor="#333333"
+                            android:textSize="12sp"
+                            android:fontFamily="monospace"
+                            android:lineSpacingExtra="4dp"/>
+                    </ScrollView>
+
+                </LinearLayout>
+            </androidx.cardview.widget.CardView>
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_base.xml b/app/src/main/res/layout/activity_base.xml
new file mode 100755
index 0000000..16d6574
--- /dev/null
+++ b/app/src/main/res/layout/activity_base.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:titlebar="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ll_root"
+    android:orientation="vertical">
+
+ <include
+     android:id="@+id/include_head"
+     layout="@layout/include_head"/>
+
+    <RelativeLayout
+        android:id="@+id/container"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+
+        <!--鍔犺浇澶辫触-->
+        <LinearLayout
+            android:id="@+id/ll_error_refresh"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:orientation="vertical"
+            android:visibility="gone">
+
+            <ImageView
+                android:id="@+id/img_err"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/load_err" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鍔犺浇澶辫触,鐐瑰嚮閲嶈瘯"
+                android:textSize="15sp" />
+        </LinearLayout>
+
+        <!--鍔犺浇涓�..-->
+        <ViewStub
+            android:id="@+id/vs_loading"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:inflatedId="@+id/panel_import"
+            android:layout="@layout/layout_loading_view" />
+
+    </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_conn.xml b/app/src/main/res/layout/activity_conn.xml
new file mode 100644
index 0000000..bc282bc
--- /dev/null
+++ b/app/src/main/res/layout/activity_conn.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/qmui_config_color_background"
+    android:orientation="vertical"
+    tools:context=".activity.HomeActivity">
+    <include layout="@layout/include_head"/>
+    <com.qmuiteam.qmui.widget.QMUIEmptyView
+        android:id="@+id/emptyView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+    <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+        android:id="@+id/groupListView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+</LinearLayout >
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_current_device.xml b/app/src/main/res/layout/activity_current_device.xml
new file mode 100644
index 0000000..d55b65b
--- /dev/null
+++ b/app/src/main/res/layout/activity_current_device.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <include layout="@layout/include_head" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="#F5F5F5"
+        android:scrollbars="none">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingBottom="24dp">
+
+            <!-- 纭欢淇℃伅 -->
+            <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+                android:id="@+id/group_hardware"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="16dp" />
+
+            <!-- 浣庡姛鑰楄摑鐗� -->
+            <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+                android:id="@+id/group_ble"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp" />
+
+            <!-- 钃濈墮闊抽 -->
+            <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+                android:id="@+id/group_audio"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp" />
+
+            <!-- 灞忓箷淇℃伅 -->
+            <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+                android:id="@+id/group_screen"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp" />
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
new file mode 100644
index 0000000..eb9fcf1
--- /dev/null
+++ b/app/src/main/res/layout/activity_home.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/drawer_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="false"
+    tools:context=".activity.HomeActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fitsSystemWindows="false"
+        android:orientation="vertical">
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="25dp"
+            android:background="@color/base_color" />
+
+        <include layout="@layout/include_head_home" />
+
+        <FrameLayout
+            android:id="@+id/fragment_container"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginBottom="@dimen/dimension_20"
+            android:gravity="center"
+            android:text="涓婃捣鍏板疂浼犳劅绉戞妧鑲′唤鏈夐檺鍏徃"
+            android:textColor="@color/dark_hint" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/nav_view"
+        android:layout_width="300dp"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        android:background="@color/white"
+        android:clickable="true"
+        android:focusable="true"
+        android:orientation="vertical">
+
+        <!-- 鎶藉眽澶撮儴 (宸﹀彸缁撴瀯锛屼娇鐢ㄤ富棰樿壊) -->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="160dp"
+            android:background="@color/base_color"
+            android:gravity="bottom"
+            android:orientation="horizontal"
+            android:padding="20dp">
+
+            <ImageView
+                android:layout_width="60dp"
+                android:layout_height="60dp"
+                android:src="@mipmap/ic_launcher" />
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="60dp"
+                android:layout_marginLeft="15dp"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="COMB"
+                    android:textColor="@color/white"
+                    android:textSize="22sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="Shanghai Lanbao Sensing Technology Co., Ltd."
+                    android:textColor="@color/white"
+                    android:textSize="11sp"
+                    android:letterSpacing="0.1" />
+            </LinearLayout>
+        </LinearLayout>
+
+        <!-- 鑿滃崟鍒楄〃 -->
+        <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:paddingTop="5dp">
+
+                <!-- 瀹炴椂鐩戞帶 -->
+                <LinearLayout
+                    android:id="@+id/menu_monitor"
+                    android:layout_width="match_parent"
+                    android:layout_height="48dp"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingLeft="20dp"
+                    android:paddingRight="20dp">
+
+                    <ImageView
+                        android:layout_width="22dp"
+                        android:layout_height="22dp"
+                        android:src="@mipmap/icon_record"
+                        app:tint="@color/drawer_item_text_gray" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="25dp"
+                        android:text="瀹炴椂鐩戞帶"
+                        android:textColor="@color/drawer_item_text_gray"
+                        android:textSize="15sp" />
+                </LinearLayout>
+
+                <!-- 钃濈墮璁惧 -->
+                <LinearLayout
+                    android:id="@+id/menu_devices"
+                    android:layout_width="match_parent"
+                    android:layout_height="48dp"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingLeft="20dp"
+                    android:paddingRight="20dp">
+
+                    <ImageView
+                        android:layout_width="22dp"
+                        android:layout_height="22dp"
+                        android:src="@mipmap/ic_bluetooth"
+                        app:tint="@color/drawer_item_text_gray" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="25dp"
+                        android:text="钃濈墮璁惧"
+                        android:textColor="@color/drawer_item_text_gray"
+                        android:textSize="15sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:layout_marginTop="5dp"
+                    android:layout_marginBottom="5dp"
+                    android:background="@color/drawer_divider" />
+
+                <!-- 鍙傛暟璁惧畾 -->
+                <LinearLayout
+                    android:id="@+id/menu_settings"
+                    android:layout_width="match_parent"
+                    android:layout_height="48dp"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingLeft="20dp"
+                    android:paddingRight="20dp">
+
+                    <ImageView
+                        android:layout_width="22dp"
+                        android:layout_height="22dp"
+                        android:src="@mipmap/icon_topbar_overflow"
+                        app:tint="@color/drawer_item_text_gray" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="25dp"
+                        android:text="鍙傛暟璁惧畾"
+                        android:textColor="@color/drawer_item_text_gray"
+                        android:textSize="15sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:layout_marginTop="5dp"
+                    android:layout_marginBottom="5dp"
+                    android:background="@color/drawer_divider" />
+
+                <!-- 褰撳墠璁惧 -->
+                <LinearLayout
+                    android:id="@+id/menu_current_device"
+                    android:layout_width="match_parent"
+                    android:layout_height="48dp"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingLeft="20dp"
+                    android:paddingRight="20dp">
+
+                    <ImageView
+                        android:layout_width="22dp"
+                        android:layout_height="22dp"
+                        android:src="@mipmap/icon_topbar_about"
+                        app:tint="@color/drawer_item_text_gray" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="25dp"
+                        android:text="褰撳墠璁惧"
+                        android:textColor="@color/drawer_item_text_gray"
+                        android:textSize="15sp" />
+                </LinearLayout>
+
+                <!-- 楂樼骇璁剧疆 -->
+                <LinearLayout
+                    android:id="@+id/menu_advanced_settings"
+                    android:layout_width="match_parent"
+                    android:layout_height="48dp"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingLeft="20dp"
+                    android:paddingRight="20dp">
+
+                    <ImageView
+                        android:layout_width="22dp"
+                        android:layout_height="22dp"
+                        android:src="@mipmap/icon_topbar_overflow"
+                        app:tint="@color/drawer_item_text_gray" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="25dp"
+                        android:text="楂樼骇璁剧疆"
+                        android:textColor="@color/drawer_item_text_gray"
+                        android:textSize="15sp" />
+                </LinearLayout>
+
+            </LinearLayout>
+        </ScrollView>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="20dp"
+            android:gravity="center"
+            android:id="@+id/tv_version"
+            android:text="1.0.0"
+            android:textColor="@color/dark_hint"
+            android:textSize="11sp"
+            android:letterSpacing="0.1" />
+
+    </LinearLayout>
+
+</androidx.drawerlayout.widget.DrawerLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_parameter_setting.xml b/app/src/main/res/layout/activity_parameter_setting.xml
new file mode 100644
index 0000000..2345e2e
--- /dev/null
+++ b/app/src/main/res/layout/activity_parameter_setting.xml
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/gray_bg"
+    android:orientation="vertical">
+
+    <include layout="@layout/include_head" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:padding="15dp">
+
+            <!-- Monitoring Details Section -->
+            <androidx.cardview.widget.CardView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:cardCornerRadius="12dp"
+                app:cardElevation="2dp"
+                app:cardBackgroundColor="@color/white"
+                android:layout_marginBottom="24dp">
+                
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <!-- Card Header -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:gravity="center_vertical"
+                        android:padding="16dp"
+                        android:background="#FAFAFA">
+                        
+                        <View
+                            android:layout_width="4dp"
+                            android:layout_height="16dp"
+                            android:background="@color/base_color"
+                            android:layout_marginEnd="8dp"/>
+                            
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="鑷鐩戞祴"
+                            android:textSize="16sp"
+                            android:textStyle="bold"
+                            android:textColor="#333333" />
+                    </LinearLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#EEEEEE"/>
+
+                    <!-- Card Content -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:padding="16dp">
+
+                        <HorizontalScrollView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:scrollbars="none">
+
+                            <androidx.recyclerview.widget.RecyclerView
+                                android:id="@+id/rv_grid"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content" />
+                        </HorizontalScrollView>
+
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="#EEEEEE"
+                            android:layout_marginTop="16dp"
+                            android:layout_marginBottom="12dp"/>
+
+                        <!-- Legend -->
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:gravity="center_vertical"
+                            android:paddingStart="4dp">
+
+                            <View
+                                android:layout_width="12dp"
+                                android:layout_height="12dp"
+                                android:background="@drawable/bg_box_full"
+                                android:layout_marginEnd="6dp"/>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鑷鎴愬姛"
+                                android:textSize="12sp"
+                                android:textColor="#666666"
+                                android:layout_marginEnd="16dp"/>
+
+                            <View
+                                android:layout_width="12dp"
+                                android:layout_height="12dp"
+                                android:background="@drawable/bg_box_error"
+                                android:layout_marginEnd="6dp"/>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鑷澶辫触"
+                                android:textSize="12sp"
+                                android:textColor="#666666"
+                                android:layout_marginEnd="16dp"/>
+                        </LinearLayout>
+
+                        <!-- Start/End Check Buttons -->
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:layout_marginTop="20dp">
+
+                            <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                                android:id="@+id/btn_start_check"
+                                android:layout_width="0dp"
+                                android:layout_height="48dp"
+                                android:layout_weight="1"
+                                android:text="寮�濮嬭嚜妫�"
+                                android:textColor="@color/white"
+                                android:textSize="14sp"
+                                app:qmui_backgroundColor="@color/base_color"
+                                app:qmui_radius="8dp"
+                                android:layout_marginRight="10dp"/>
+
+                            <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                                android:id="@+id/btn_end_check"
+                                android:layout_width="0dp"
+                                android:layout_height="48dp"
+                                android:layout_weight="1"
+                                android:text="缁撴潫鑷"
+                                android:textColor="@color/base_color"
+                                android:textSize="14sp"
+                                app:qmui_backgroundColor="@color/white"
+                                app:qmui_borderColor="@color/base_color"
+                                app:qmui_borderWidth="1dp"
+                                app:qmui_radius="8dp"
+                                android:layout_marginLeft="10dp"/>
+                        </LinearLayout>
+
+                    </LinearLayout>
+                </LinearLayout>
+            </androidx.cardview.widget.CardView>
+
+            <!-- Customer Use Section -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/bg_card"
+                android:orientation="vertical"
+                android:padding="20dp">
+
+                <!-- Threshold Row -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:layout_marginBottom="25dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="闃堝��"
+                        android:textColor="@color/base_text"
+                        android:textSize="15sp"
+                        android:textStyle="bold"
+                        android:layout_marginBottom="10dp"/>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <Spinner
+                            android:id="@+id/sp_threshold_mode"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1.5"
+                            android:entries="@array/threshold_modes"
+                            android:background="@drawable/bg_input_field"
+                            android:paddingStart="10dp"
+                            android:layout_marginRight="10dp" />
+
+                        <EditText
+                            android:id="@+id/et_threshold_value"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/bg_input_field"
+                            android:gravity="center"
+                            android:hint="1-30"
+                            android:inputType="number"
+                            android:textSize="14sp"/>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:orientation="horizontal">
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_threshold_read"
+                            android:layout_width="0dp"
+                            android:layout_height="45dp"
+                            android:layout_weight="1"
+                            android:text="璇诲彇"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color"
+                            app:qmui_radius="8dp"
+                            android:layout_marginRight="10dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_threshold_write"
+                            android:layout_width="0dp"
+                            android:layout_height="45dp"
+                            android:layout_weight="1"
+                            android:text="鍐欏叆"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color_s"
+                            app:qmui_radius="8dp"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/gray_line"
+                    android:layout_marginBottom="20dp"/>
+
+                <!-- Sensitivity Row -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:layout_marginBottom="25dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="鐏垫晱搴�"
+                        android:textColor="@color/base_text"
+                        android:textSize="15sp"
+                        android:textStyle="bold"
+                        android:layout_marginBottom="10dp"/>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <Spinner
+                            android:id="@+id/sp_sensitivity_mode"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1.5"
+                            android:entries="@array/sensitivity_modes"
+                            android:background="@drawable/bg_input_field"
+                            android:paddingStart="10dp"
+                            android:layout_marginRight="10dp" />
+
+                        <EditText
+                            android:id="@+id/et_sensitivity_value"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/bg_input_field"
+                            android:gravity="center"
+                            android:hint="1-30"
+                            android:inputType="number"
+                            android:textSize="14sp"/>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:orientation="horizontal">
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_sensitivity_read"
+                            android:layout_width="0dp"
+                            android:layout_height="45dp"
+                            android:layout_weight="1"
+                            android:text="璇诲彇"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color"
+                            app:qmui_radius="8dp"
+                            android:layout_marginRight="10dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_sensitivity_write"
+                            android:layout_width="0dp"
+                            android:layout_height="45dp"
+                            android:layout_weight="1"
+                            android:text="鍐欏叆"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/base_color_s"
+                            app:qmui_radius="8dp"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/gray_line"
+                    android:layout_marginBottom="20dp"/>
+
+                <!-- Control Buttons -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+                    
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="鎿嶄綔"
+                        android:textColor="@color/base_text"
+                        android:textSize="15sp"
+                        android:textStyle="bold"
+                        android:layout_marginBottom="10dp"/>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_reset_mainboard"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:text="涓绘澘澶嶄綅"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/orange"
+                            app:qmui_radius="8dp"
+                            android:layout_marginRight="10dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_reset_sensor"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:text="浼犳劅澶嶄綅"
+                            android:textColor="@color/white"
+                            android:textSize="14sp"
+                            app:qmui_backgroundColor="@color/orange"
+                            app:qmui_radius="8dp"
+                            android:layout_marginLeft="10dp"/>
+                    </LinearLayout>
+                </LinearLayout>
+            </LinearLayout>
+
+            <!-- Log Display -->
+            <androidx.cardview.widget.CardView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:cardCornerRadius="12dp"
+                app:cardElevation="2dp"
+                app:cardBackgroundColor="@color/white"
+                android:layout_marginTop="16dp"
+                android:layout_marginBottom="24dp">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <!-- Card Header -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:gravity="center_vertical"
+                        android:padding="16dp"
+                        android:background="#FAFAFA">
+                        
+                        <View
+                            android:layout_width="4dp"
+                            android:layout_height="16dp"
+                            android:background="@color/base_color"
+                            android:layout_marginEnd="8dp"/>
+                            
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_weight="1"
+                            android:text="鏃ュ織"
+                            android:textSize="16sp"
+                            android:textStyle="bold"
+                            android:textColor="#333333" />
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_clear_log"
+                            android:layout_width="wrap_content"
+                            android:layout_height="28dp"
+                            android:text="娓呯┖"
+                            android:textColor="@color/white"
+                            android:textSize="12sp"
+                            android:paddingStart="12dp"
+                            android:paddingEnd="12dp"
+                            app:qmui_backgroundColor="#FF5252"
+                            app:qmui_radius="4dp"/>
+                    </LinearLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#EEEEEE"/>
+
+                    <ScrollView
+                        android:id="@+id/sv_log"
+                        android:layout_width="match_parent"
+                        android:layout_height="200dp"
+                        android:padding="12dp"
+                        android:scrollbars="vertical"
+                        android:background="#FAFAFA">
+
+                        <TextView
+                            android:id="@+id/tv_log"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="鏃ュ織璁板綍:\n"
+                            android:textSize="12sp"
+                            android:fontFamily="monospace"
+                            android:textColor="#333333"
+                            android:lineSpacingExtra="4dp"/>
+                    </ScrollView>
+                </LinearLayout>
+            </androidx.cardview.widget.CardView>
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
new file mode 100644
index 0000000..0958166
--- /dev/null
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:pv="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <com.shlb.comb.view.ParticleView
+        android:id="@+id/ptview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/colorPrimary"
+        pv:pv_background_color="@color/colorPrimary"
+        pv:pv_host_text="COMB"
+        pv:pv_host_text_anim_time="600"
+        pv:pv_particle_text="绉诲姩骞冲彴"
+        pv:pv_particle_text_size="14sp"
+        pv:pv_spread_anim_time="1000"
+        pv:pv_text_anim_time="600"
+        pv:pv_text_color="#FFF" />
+    <TextView
+        android:textColor="@color/white"
+        android:layout_marginBottom="@dimen/dimension_20"
+        android:layout_centerHorizontal="true"
+        android:layout_alignParentBottom="true"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="涓婃捣鍏板疂浼犳劅绉戞妧鑲′唤鏈夐檺鍏徃"
+        />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..1981340
--- /dev/null
+++ b/app/src/main/res/layout/activity_test.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/qmui_config_color_background"
+    android:orientation="vertical">
+
+    <include layout="@layout/include_head"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:padding="16dp">
+
+        <TextView
+            android:id="@+id/tv_status"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="鐘舵��: 鏈繛鎺�"
+            android:textSize="16sp"
+            android:textStyle="bold"
+            android:textColor="@android:color/black"/>
+
+        <TextView
+            android:id="@+id/tv_selected_service"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="褰撳墠閫夋嫨鏈嶅姟: 鏃�"
+            android:layout_marginTop="10dp"
+            android:textColor="@color/base_color"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="鍙敤鏈嶅姟鍒楄〃:"
+            android:layout_marginTop="10dp"/>
+
+        <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="250dp"
+            android:layout_marginTop="5dp"
+            android:background="@drawable/bg_round">
+            <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+                android:id="@+id/groupListView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+        </ScrollView>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:gravity="center_vertical"
+            android:layout_marginTop="10dp">
+            <EditText
+                android:id="@+id/et_command"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:background="@drawable/bg_edittext"
+                android:padding="10dp"
+                android:textSize="14sp"
+                android:hint="璇疯緭鍏ex鎸囦护 (濡� A55A...)"/>
+            <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                android:id="@+id/btn_send"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:padding="10dp"
+                android:text="鍙戦��"
+                android:textColor="@color/white"
+                android:layout_marginLeft="10dp"/>
+        </LinearLayout>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="鏃ュ織:"
+            android:layout_marginTop="10dp"/>
+
+        <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="150dp"
+            android:background="#FAFAFA"
+            android:layout_marginTop="5dp">
+            <TextView
+                android:id="@+id/tv_log"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:padding="5dp"
+                android:textSize="12sp"
+                android:fontFamily="monospace"/>
+        </ScrollView>
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/activity_write.xml b/app/src/main/res/layout/activity_write.xml
new file mode 100644
index 0000000..c771fc3
--- /dev/null
+++ b/app/src/main/res/layout/activity_write.xml
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/qmui_config_color_background"
+    android:orientation="vertical"
+    tools:context=".activity.HomeActivity">
+
+    <include layout="@layout/include_head" />
+
+    <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+        android:id="@+id/groupListView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:visibility="gone" />
+
+    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+        android:id="@+id/send"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="@dimen/dimension_15"
+        android:clickable="true"
+        android:padding="10dp"
+        android:text="鍙戦�佹寚浠�"
+        android:visibility="gone"
+        app:qmui_radius="4dp" />
+
+    <TextView
+        android:textSize="@dimen/dimension_40"
+        android:gravity="center"
+        android:layout_width="match_parent"
+        android:layout_height="80dp"
+        android:id="@+id/sendNum"
+        />
+
+    <LinearLayout
+        android:id="@+id/ll_root"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+
+        <Button
+            android:visibility="gone"
+            android:id="@+id/btnInto"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+            android:gravity="center"
+            android:text="杩涘叆缂栧潃"
+            android:textStyle="bold" />
+
+
+        <Button
+            android:visibility="gone"
+            android:id="@+id/btnClean"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+
+            android:gravity="center"
+            android:text="娓呴櫎鍦板潃"
+            android:textStyle="bold" />
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10">
+
+            <Button
+                android:id="@+id/btn1"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="1"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn2"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="2"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn3"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="3"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn4"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="4"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn5"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="5"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn6"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="6"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn7"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="7"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn8"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="8"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn9"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="9"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn10"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="10"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn11"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="11"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn12"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="12"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn13"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="13"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn14"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="14"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn15"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="15"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn16"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="16"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <Button
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+            android:id="@+id/btnExit"
+            android:gravity="center"
+            android:text="閫�鍑虹紪鍧�"
+            android:textStyle="bold" />
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_write2.xml b/app/src/main/res/layout/activity_write2.xml
new file mode 100644
index 0000000..6b3a3a9
--- /dev/null
+++ b/app/src/main/res/layout/activity_write2.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/qmui_config_color_background"
+    android:orientation="vertical"
+    tools:context=".activity.HomeActivity">
+    <include layout="@layout/include_head"/>
+
+    <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+        android:id="@+id/groupListView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+
+    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+        android:layout_marginTop="@dimen/dimension_15"
+        android:id="@+id/send"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:clickable="true"
+        android:layout_gravity="center"
+        android:padding="10dp"
+        android:text="鍙戦�佹寚浠�"
+        app:qmui_radius="4dp"/>
+
+</LinearLayout >
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_layout_bluetooth_item.xml b/app/src/main/res/layout/dialog_layout_bluetooth_item.xml
new file mode 100644
index 0000000..25bd164
--- /dev/null
+++ b/app/src/main/res/layout/dialog_layout_bluetooth_item.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <RelativeLayout
+        android:layout_width="@dimen/dimension_60"
+        android:layout_height="50dp"
+        >
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/device_icon"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:src="@mipmap/ic_sanjiao" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="-dBm"
+                android:layout_gravity="center"
+                android:textColor="@color/qmui_config_color_gray_6"
+                android:textSize="@dimen/dimension_10" />
+
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="50dp"
+         >
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:orientation="vertical"
+            >
+            <TextView
+                android:id="@+id/device_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="JDY-123-456"
+                />
+            <TextView
+                android:id="@+id/device_address"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="24:6d:12:dd:ad:df:cd"
+                android:textSize="@dimen/dimension_10"
+                android:textColor="@color/qmui_config_color_gray_6"
+                />
+
+
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_width="130dp"
+        android:layout_height="50dp"
+        >
+
+        <Button
+            android:layout_width="@dimen/dimension_80"
+            android:layout_height="40dp"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="@dimen/dimension_5"
+            android:layout_toLeftOf="@id/iv_down"
+            android:focusable="false"
+            android:text="CONNECT"
+            android:textSize="@dimen/dimension_10" />
+        <ImageView
+            android:layout_marginRight="20dp"
+            android:id="@+id/iv_down"
+            android:layout_alignParentRight="true"
+            android:src="@mipmap/ic_down"
+            android:layout_centerVertical="true"
+            android:layout_width="20dp"
+            android:layout_height="20dp"/>
+    </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_layout_bluetooth_list.xml b/app/src/main/res/layout/dialog_layout_bluetooth_list.xml
new file mode 100644
index 0000000..3211c76
--- /dev/null
+++ b/app/src/main/res/layout/dialog_layout_bluetooth_list.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/bg_round"
+    android:orientation="vertical"
+    >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="400dp"
+        android:orientation="vertical">
+        <ListView
+            android:id="@android:id/list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+    </LinearLayout>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_layout_write_item.xml b/app/src/main/res/layout/dialog_layout_write_item.xml
new file mode 100644
index 0000000..9a6f3e5
--- /dev/null
+++ b/app/src/main/res/layout/dialog_layout_write_item.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/dimension_30"
+    android:orientation="vertical"
+    >
+    <TextView
+        android:layout_marginLeft="@dimen/dimension_15"
+        android:text="娴嬭瘯"
+        android:textSize="@dimen/dimension_12"
+        android:layout_centerVertical="true"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/name"
+        />
+
+    <ImageView
+        android:layout_marginRight="@dimen/dimension_15"
+        android:layout_alignParentRight="true"
+        android:id="@+id/logo"
+        android:layout_centerVertical="true"
+        android:layout_width="@dimen/dimension_20"
+        android:layout_height="@dimen/dimension_20"
+        android:src="@mipmap/about_logo"
+        />
+
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_layout_write_list.xml b/app/src/main/res/layout/dialog_layout_write_list.xml
new file mode 100644
index 0000000..887083c
--- /dev/null
+++ b/app/src/main/res/layout/dialog_layout_write_list.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/bg_round"
+    android:orientation="vertical"
+    >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="400dp"
+        android:orientation="vertical">
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dimension_40">
+            <TextView
+                android:layout_marginLeft="15dp"
+                android:text="閫夋嫨鍛戒护"
+                android:textSize="@dimen/dimension_12"
+                android:layout_centerVertical="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"/>
+
+            <ImageView
+                android:id="@+id/iv_close"
+                android:layout_width="@dimen/dimension_20"
+                android:layout_height="@dimen/dimension_20"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="@dimen/dimension_20"
+                android:src="@mipmap/icon_colse" />
+        </RelativeLayout>
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/write"
+            android:layout_width="match_parent"
+            android:layout_height="200dp"/>
+
+        <TextView
+            android:id="@+id/selectedtv"
+            android:layout_marginLeft="@dimen/dimension_15"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:textSize="@dimen/dimension_12"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dimension_20"
+            android:text="褰撳墠閫夋嫨锛�"
+            />
+
+        <TextView
+            android:id="@+id/restv"
+            android:layout_marginLeft="@dimen/dimension_15"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:textSize="@dimen/dimension_12"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dimension_20"
+            android:text="杩斿洖淇℃伅锛�"
+            />
+        <EditText
+            android:id="@+id/writeed"
+            android:layout_marginLeft="@dimen/dimension_15"
+            android:layout_marginRight="@dimen/dimension_15"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/dimension_10"
+            />
+        <Button
+            android:id="@+id/writebtn"
+            android:layout_gravity="center"
+            android:textSize="@dimen/dimension_12"
+            android:layout_width="@dimen/dimension_90"
+            android:layout_height="@dimen/dimension_40"
+            android:text="send"
+            />
+    </LinearLayout>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_device_list.xml b/app/src/main/res/layout/fragment_device_list.xml
new file mode 100644
index 0000000..26e531a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_device_list.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <com.qmuiteam.qmui.widget.QMUIEmptyView
+        android:id="@+id/emptyView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+    <ListView
+        android:id="@+id/homeList"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="@color/gray_line"
+        android:dividerHeight="1dp"
+        android:visibility="gone" />
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 0000000..6dc124f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#F5F6FA"
+    android:fillViewport="true">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:padding="16dp">
+
+        <!-- Card 1: Grid Status -->
+        <androidx.cardview.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:cardCornerRadius="12dp"
+            app:cardElevation="2dp"
+            app:cardBackgroundColor="@color/white"
+            android:layout_marginBottom="24dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <!-- Card Header -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center_vertical"
+                    android:padding="16dp"
+                    android:background="#FAFAFA">
+                    
+                    <View
+                        android:layout_width="4dp"
+                        android:layout_height="16dp"
+                        android:background="@color/base_color"
+                        android:layout_marginEnd="8dp"/>
+                        
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="鐩戞帶璇︽儏"
+                        android:textSize="16sp"
+                        android:textStyle="bold"
+                        android:textColor="#333333" />
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                        android:id="@+id/btn_read_data"
+                        android:layout_width="wrap_content"
+                        android:layout_height="32dp"
+                        android:text="璇诲彇鏁版嵁"
+                        android:textColor="@color/white"
+                        android:textSize="12sp"
+                        android:paddingStart="12dp"
+                        android:paddingEnd="12dp"
+                        app:qmui_backgroundColor="@color/base_color"
+                        app:qmui_radius="4dp"/>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#EEEEEE"/>
+
+                <!-- Card Content -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:padding="16dp">
+
+                    <HorizontalScrollView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:scrollbars="none">
+
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/rv_grid"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content" />
+                    </HorizontalScrollView>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#EEEEEE"
+                        android:layout_marginTop="16dp"
+                        android:layout_marginBottom="12dp"/>
+
+                    <!-- Legend -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:gravity="center_vertical"
+                        android:paddingStart="4dp">
+
+                        <View
+                            android:layout_width="12dp"
+                            android:layout_height="12dp"
+                            android:background="@drawable/bg_box_full"
+                            android:layout_marginEnd="6dp"/>
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鏈夌幓鐠�"
+                            android:textSize="12sp"
+                            android:textColor="#666666"
+                            android:layout_marginEnd="16dp"/>
+
+                        <View
+                            android:layout_width="12dp"
+                            android:layout_height="12dp"
+                            android:background="@drawable/bg_box_empty"
+                            android:layout_marginEnd="6dp"/>
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鏃犵幓鐠�"
+                            android:textSize="12sp"
+                            android:textColor="#666666"
+                            android:layout_marginEnd="16dp"/>
+
+                        <View
+                            android:layout_width="12dp"
+                            android:layout_height="12dp"
+                            android:background="@drawable/bg_box_offline"
+                            android:layout_marginEnd="6dp"/>
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="绂荤嚎"
+                            android:textSize="12sp"
+                            android:textColor="#666666"/>
+                    </LinearLayout>
+                </LinearLayout>
+            </LinearLayout>
+        </androidx.cardview.widget.CardView>
+
+        <!-- Card 2: Controls -->
+        <androidx.cardview.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:cardCornerRadius="12dp"
+            app:cardElevation="2dp"
+            app:cardBackgroundColor="@color/white">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <!-- Card Header -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center_vertical"
+                    android:padding="16dp"
+                    android:background="#FAFAFA">
+                    
+                    <View
+                        android:layout_width="4dp"
+                        android:layout_height="16dp"
+                        android:background="@color/base_color"
+                        android:layout_marginEnd="8dp"/>
+                        
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="鍙傛暟"
+                        android:textSize="16sp"
+                        android:textStyle="bold"
+                        android:textColor="#333333" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#EEEEEE"/>
+
+                <!-- Card Content -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:padding="16dp">
+
+                    <!-- Layer Input -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:layout_marginBottom="16dp">
+                        
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:gravity="center_vertical"
+                            android:layout_marginBottom="8dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="灞傛暟"
+                                android:textSize="14sp"
+                                android:textColor="#666666"/>
+                            
+                            <TextView
+                                android:id="@+id/tv_layer_status"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:textSize="10sp"
+                                android:layout_marginStart="8dp"/>
+                        </LinearLayout>
+                            
+                        <EditText
+                            android:id="@+id/et_layer"
+                            android:layout_width="match_parent"
+                            android:layout_height="48dp"
+                            android:background="@drawable/bg_input_field"
+                            android:paddingStart="16dp"
+                            android:paddingEnd="16dp"
+                            android:hint="灞傛暟 (1-30)"
+                            android:textColorHint="#CCCCCC"
+                            android:textSize="14sp"
+                            android:focusable="false"
+                            android:focusableInTouchMode="false"
+                            android:inputType="none"/>
+                    </LinearLayout>
+
+                    <!-- Station Input -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:layout_marginBottom="16dp">
+                        
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:gravity="center_vertical"
+                            android:layout_marginBottom="8dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="绔欏彿"
+                                android:textSize="14sp"
+                                android:textColor="#666666"/>
+
+                            <TextView
+                                android:id="@+id/tv_station_status"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:textSize="10sp"
+                                android:layout_marginStart="8dp"/>
+                        </LinearLayout>
+                            
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal">
+                            
+                            <EditText
+                                android:id="@+id/et_station"
+                                android:layout_width="0dp"
+                                android:layout_height="48dp"
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_input_field"
+                                android:paddingStart="16dp"
+                                android:paddingEnd="16dp"
+                                android:hint="璇疯緭鍏ョ珯鍙� (1-64)"
+                                android:textColorHint="#CCCCCC"
+                                android:textSize="14sp"
+                                android:inputType="number"/>
+                                
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <!-- Baud Rate -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+                        
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal"
+                            android:gravity="center_vertical"
+                            android:layout_marginBottom="8dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="娉㈢壒鐜�"
+                                android:textSize="14sp"
+                                android:textColor="#666666"/>
+
+                            <TextView
+                                android:id="@+id/tv_baud_status"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:textSize="10sp"
+                                android:layout_marginStart="8dp"/>
+                        </LinearLayout>
+                            
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal">
+                            
+                            <FrameLayout
+                                android:layout_width="0dp"
+                                android:layout_height="48dp"
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_input_field">
+                                
+                                <Spinner
+                                    android:id="@+id/spinner_baud"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="match_parent"
+                                    android:background="@null"
+                                    android:paddingStart="8dp"/>
+                            </FrameLayout>
+                        </LinearLayout>
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal"
+                        android:layout_marginTop="24dp">
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_read_param"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:layout_marginEnd="8dp"
+                            android:text="璇诲彇鍙傛暟"
+                            android:textColor="@color/white"
+                            android:textSize="16sp"
+                            android:textStyle="bold"
+                            app:qmui_backgroundColor="@color/base_color"
+                            app:qmui_radius="8dp"/>
+
+                        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                            android:id="@+id/btn_write_all"
+                            android:layout_width="0dp"
+                            android:layout_height="48dp"
+                            android:layout_weight="1"
+                            android:layout_marginStart="8dp"
+                            android:text="鍐欏叆鍙傛暟"
+                            android:textColor="@color/white"
+                            android:textSize="16sp"
+                            android:textStyle="bold"
+                            app:qmui_backgroundColor="@color/base_color_s"
+                            app:qmui_radius="8dp"/>
+                    </LinearLayout>
+
+                </LinearLayout>
+            </LinearLayout>
+        </androidx.cardview.widget.CardView>
+
+        <TextView
+            android:id="@+id/tv_status"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="褰撳墠鐘舵�侊細绛夊緟鎿嶄綔..."
+            android:gravity="center"
+            android:textSize="12sp"
+            android:textColor="#999999"
+            android:layout_marginTop="16dp"/>
+
+        <!-- Log Display -->
+        <androidx.cardview.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:cardCornerRadius="12dp"
+            app:cardElevation="2dp"
+            app:cardBackgroundColor="@color/white"
+            android:layout_marginTop="16dp"
+            android:layout_marginBottom="24dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <!-- Card Header -->
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center_vertical"
+                    android:padding="16dp"
+                    android:background="#FAFAFA">
+
+                    <View
+                        android:layout_width="4dp"
+                        android:layout_height="16dp"
+                        android:background="@color/base_color"
+                        android:layout_marginEnd="8dp"/>
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="鏃ュ織"
+                        android:textSize="16sp"
+                        android:textStyle="bold"
+                        android:textColor="#333333" />
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                        android:id="@+id/btn_clear_log"
+                        android:layout_width="wrap_content"
+                        android:layout_height="32dp"
+                        android:text="娓呯┖"
+                        android:textColor="@color/white"
+                        android:textSize="12sp"
+                        android:paddingStart="12dp"
+                        android:paddingEnd="12dp"
+                        app:qmui_backgroundColor="#FF5252"
+                        app:qmui_radius="4dp"/>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="#EEEEEE"/>
+
+                <ScrollView
+                    android:id="@+id/sv_log"
+                    android:layout_width="match_parent"
+                    android:layout_height="200dp"
+                    android:padding="12dp"
+                    android:scrollbars="vertical"
+                    android:background="#FAFAFA">
+
+                    <TextView
+                        android:id="@+id/tv_log"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="鏃ュ織璁板綍:\n"
+                        android:textSize="12sp"
+                        android:fontFamily="monospace"
+                        android:textColor="#333333"
+                        android:lineSpacingExtra="4dp"/>
+                </ScrollView>
+            </LinearLayout>
+        </androidx.cardview.widget.CardView>
+
+    </LinearLayout>
+
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/home_item_view.xml b/app/src/main/res/layout/home_item_view.xml
new file mode 100755
index 0000000..44beb47
--- /dev/null
+++ b/app/src/main/res/layout/home_item_view.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView
+    android:id="@+id/card_view"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:layout_marginLeft="5dp"
+    android:layout_marginRight="5dp"
+    android:foreground="?android:attr/selectableItemBackground"
+    card_view:cardBackgroundColor="@color/white"
+    card_view:cardCornerRadius="4dp"
+    card_view:cardUseCompatPadding="true">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        >
+
+
+        <ImageView
+            android:id="@+id/img"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentStart="true"
+            android:layout_alignParentTop="true"
+            android:scaleType="centerCrop"
+            android:src="@mipmap/animation_img1"/>
+
+        <TextView
+            android:id="@+id/tweetName"
+            android:paddingLeft="@dimen/dp_10"
+            style="@style/tweetName"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Chad"
+            android:layout_marginTop="@dimen/dp_10"
+            android:layout_below="@+id/img"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentStart="true"/>
+
+        <TextView
+            android:id="@+id/tweetText"
+            android:paddingLeft="@dimen/dp_10"
+            style="@style/tweetText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="浼犳劅鍣ㄧ紪鍧�"
+            android:textColor="@android:color/darker_gray"
+            android:layout_below="@+id/tweetName"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentStart="true"
+            android:paddingRight="@dimen/dp_10"
+            android:paddingBottom="@dimen/dp_10"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentEnd="true"/>
+
+        <TextView
+            android:id="@+id/tweetDate"
+            style="@style/tweetDate"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text=""
+            android:paddingRight="@dimen/dp_10"
+            android:layout_alignBaseline="@+id/tweetName"
+            android:layout_alignBottom="@+id/tweetName"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentEnd="true"/>
+
+    </RelativeLayout>
+</androidx.cardview.widget.CardView>
diff --git a/app/src/main/res/layout/home_list_bluetooth_item.xml b/app/src/main/res/layout/home_list_bluetooth_item.xml
new file mode 100644
index 0000000..202c676
--- /dev/null
+++ b/app/src/main/res/layout/home_list_bluetooth_item.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/ll_main_content"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dimension_70"
+        android:orientation="horizontal">
+
+        <RelativeLayout
+            android:layout_width="@dimen/dimension_80"
+            android:layout_height="@dimen/dimension_70">
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerInParent="true"
+                android:orientation="vertical">
+
+                <ImageView
+                    android:id="@+id/device_icon"
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:src="@mipmap/ic_sanjiao" />
+
+                <TextView
+                    android:id="@+id/rssi"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:layout_marginTop="@dimen/dimension_5"
+                    android:text="-dBm"
+                    android:textColor="@color/qmui_config_color_gray_6"
+                    android:textSize="@dimen/dimension_10" />
+
+            </LinearLayout>
+
+        </RelativeLayout>
+
+        <RelativeLayout
+            android:layout_width="0dp"
+            android:layout_height="@dimen/dimension_70"
+            android:layout_weight="1">
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/device_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:maxLines="1" />
+
+                <TextView
+                    android:id="@+id/device_address"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/dimension_5"
+                    android:maxLines="1"
+                    android:textColor="@color/qmui_config_color_gray_6"
+                    android:textSize="@dimen/dimension_10" />
+
+
+            </LinearLayout>
+
+        </RelativeLayout>
+
+        <RelativeLayout
+            android:layout_width="130dp"
+            android:layout_height="@dimen/dimension_70">
+
+            <Button
+                android:id="@+id/conn_btn"
+                android:layout_width="@dimen/dimension_80"
+                android:layout_height="40dp"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_toLeftOf="@id/iv_down"
+                android:focusable="false"
+                android:text="CONNECT"
+                android:textSize="@dimen/dimension_10" />
+
+            <ImageView
+                android:id="@+id/iv_down"
+                android:layout_width="20dp"
+                android:layout_height="20dp"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="20dp"
+                android:src="@mipmap/ic_down" />
+        </RelativeLayout>
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/ll_more_info"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:paddingLeft="20dp"
+        android:paddingRight="20dp"
+        android:paddingBottom="10dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/tv_device_type"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_adv_type"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_flags"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_local_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_tx_power"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_service_uuids"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_service_data"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+
+        <TextView
+            android:id="@+id/tv_manufacturer_data"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/qmui_config_color_gray_6"
+            android:textSize="12sp"
+            android:layout_marginTop="2dp"/>
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_head.xml b/app/src/main/res/layout/include_head.xml
new file mode 100755
index 0000000..b35475d
--- /dev/null
+++ b/app/src/main/res/layout/include_head.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/head"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/dimension_50"
+    android:background="@color/base_color"
+    android:gravity="center_vertical">
+
+
+    <ImageView
+        android:id="@+id/iv_left"
+        android:layout_width="@dimen/dimension_40"
+        android:layout_height="@dimen/dimension_40"
+        android:layout_centerVertical="true"
+        android:padding="@dimen/dimension_10"
+        android:src="@mipmap/icon_menu"
+          />
+
+    <TextView
+        android:textColor="@color/white"
+        android:textSize="@dimen/dimension_15"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:id="@+id/tv_center"
+        />
+
+    <TextView
+        android:id="@+id/tv_right_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:paddingRight="16dp"
+        android:text="鏈繛鎺�"
+        android:textColor="@color/white"
+        android:textSize="14sp"/>
+
+    <ImageView
+        android:visibility="gone"
+        android:padding="@dimen/dimension_10"
+        android:layout_alignParentRight="true"
+        android:id="@+id/iv_right"
+        android:layout_centerVertical="true"
+        android:layout_width="@dimen/dimension_40"
+        android:layout_height="@dimen/dimension_40"
+        android:src="@mipmap/icon_topbar_right"
+        />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_head_home.xml b/app/src/main/res/layout/include_head_home.xml
new file mode 100644
index 0000000..53a1363
--- /dev/null
+++ b/app/src/main/res/layout/include_head_home.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/head"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/dimension_60"
+    android:background="@color/base_color"
+    android:paddingTop="@dimen/dimension_10"
+    android:gravity="center_vertical">
+
+    <ImageView
+        android:id="@+id/iv_left"
+        android:layout_width="@dimen/dimension_40"
+        android:layout_height="@dimen/dimension_40"
+        android:layout_centerVertical="true"
+        android:padding="@dimen/dimension_10"
+        android:src="@mipmap/icon_menu" />
+
+    <TextView
+        android:id="@+id/tv_center"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:layout_toEndOf="@id/iv_left"
+        android:layout_toRightOf="@id/iv_left"
+        android:textColor="@color/white"
+        android:textSize="@dimen/fontsize_18"
+        android:textStyle="bold"
+        android:layout_marginLeft="@dimen/dimension_10"
+        android:layout_marginStart="@dimen/dimension_10" />
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/tv_scan"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/dimension_10"
+            android:text="SCAN"
+            android:textColor="@color/white"
+            android:textSize="@dimen/fontsize_15" />
+
+        <ImageView
+            android:id="@+id/iv_right"
+            android:layout_width="@dimen/dimension_40"
+            android:layout_height="@dimen/dimension_40"
+            android:padding="@dimen/dimension_10"
+            android:src="@mipmap/icon_topbar_right"
+            android:visibility="visible" />
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/app/src/main/res/layout/item_grid_box.xml b/app/src/main/res/layout/item_grid_box.xml
new file mode 100644
index 0000000..cdebe0d
--- /dev/null
+++ b/app/src/main/res/layout/item_grid_box.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:orientation="vertical"
+    android:padding="2dp">
+
+    <TextView
+        android:id="@+id/tv_box_number"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="9sp"
+        android:textColor="#999999"
+        android:layout_marginBottom="2dp"/>
+
+    <FrameLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        
+        <View
+            android:id="@+id/view_box"
+            android:layout_width="28dp"
+            android:layout_height="28dp"
+            android:background="@drawable/bg_box_empty" />
+            
+        <!-- Add a subtle shadow or overlay effect if needed in future -->
+    </FrameLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_loading_view.xml b/app/src/main/res/layout/layout_loading_view.xml
new file mode 100755
index 0000000..de60b23
--- /dev/null
+++ b/app/src/main/res/layout/layout_loading_view.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/ll_progress_bar"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content">
+
+    <ImageView
+        android:id="@+id/img_progress"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+         />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_toRightOf="@+id/img_progress"
+        android:text="鍔姏鍔犺浇涓�..."
+        android:textColor="#585858"
+        android:textSize="14sp" />
+
+</RelativeLayout>
diff --git a/app/src/main/res/layout/list_item_device.xml b/app/src/main/res/layout/list_item_device.xml
new file mode 100644
index 0000000..55c7dc9
--- /dev/null
+++ b/app/src/main/res/layout/list_item_device.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:gravity="top"
+              android:orientation="horizontal"
+    tools:ignore="MissingDefaultResource">
+
+    <ImageView
+        android:id="@+id/device_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingRight="5dp"
+        android:paddingTop="5dp"
+        android:src="@mipmap/ic_bluetooth"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/device_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textSize="24sp"/>
+
+        <GridLayout
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:columnCount="2">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_mac"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/device_address"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="12sp"
+                android:typeface="monospace"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_updated"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/device_last_update"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_rssi"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/device_rssi"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+        </GridLayout>
+
+        <TextView
+            android:id="@+id/ibeacon_scan_record"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingRight="5dp"
+            android:visibility="gone"
+            android:textSize="12sp"/>
+
+        <GridLayout
+            android:id="@+id/ibeacon_section"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:background="#66e0e0e0"
+            android:columnCount="4">
+
+            <!-- ROW 1 -->
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_uuid"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_uuid"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_columnSpan="3"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <!-- ROW 2 -->
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_major"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_major"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:paddingRight="5dp"
+                android:text="@string/label_minor"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_minor"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <!-- ROW 3 -->
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_tx_power"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_tx_power"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:paddingRight="5dp"
+                android:text="@string/label_distance"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_distance"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+            <!-- ROW 4 -->
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="5dp"
+                android:text="@string/label_decriptor"
+                android:textSize="12sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/ibeacon_distance_descriptor"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_columnSpan="3"
+                android:paddingRight="5dp"
+                android:textSize="12sp"/>
+
+        </GridLayout>
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/normal_activity_write.xml b/app/src/main/res/layout/normal_activity_write.xml
new file mode 100644
index 0000000..2500a22
--- /dev/null
+++ b/app/src/main/res/layout/normal_activity_write.xml
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/qmui_config_color_background"
+    android:orientation="vertical"
+    tools:context=".activity.HomeActivity">
+
+    <include layout="@layout/include_head" />
+
+    <com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
+        android:id="@+id/groupListView"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+       />
+
+    <Button
+        android:id="@+id/send"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="@dimen/dimension_15"
+        android:clickable="true"
+        android:padding="10dp"
+        android:text="鍙戦�佹寚浠�"
+        />
+
+    <LinearLayout
+        android:visibility="gone"
+        android:id="@+id/ll_root"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+
+        <Button
+            android:id="@+id/btnInto"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+            android:gravity="center"
+            android:text="杩涘叆缂栧潃"
+            android:textStyle="bold" />
+
+
+        <Button
+            android:id="@+id/btnClean"
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+
+            android:gravity="center"
+            android:text="娓呴櫎鍦板潃"
+            android:textStyle="bold" />
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10">
+
+            <Button
+                android:id="@+id/btn1"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="1"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn2"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="2"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn3"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="3"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn4"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="4"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn5"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="5"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn6"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="6"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn7"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="7"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn8"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="8"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn9"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="9"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn10"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="10"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn11"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="11"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn12"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="12"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingLeft="@dimen/dimension_10"
+            android:paddingTop="@dimen/dimension_10"
+            android:paddingRight="@dimen/dimension_10"
+
+            >
+
+            <Button
+                android:id="@+id/btn13"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="13"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn14"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="14"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn15"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_marginRight="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="15"
+                android:textStyle="bold" />
+
+            <Button
+                android:id="@+id/btn16"
+                android:layout_width="0dp"
+                android:layout_height="45dp"
+                android:layout_marginLeft="@dimen/dimension_5"
+                android:layout_weight="1"
+
+                android:gravity="center"
+                android:text="16"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <Button
+            android:layout_width="match_parent"
+            android:layout_height="45dp"
+            android:layout_marginLeft="@dimen/dimension_10"
+            android:layout_marginTop="@dimen/dimension_10"
+            android:layout_marginRight="10dp"
+            android:id="@+id/btnExit"
+            android:gravity="center"
+            android:text="閫�鍑虹紪鍧�"
+            android:textStyle="bold" />
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/tipdialog_custom.xml b/app/src/main/res/layout/tipdialog_custom.xml
new file mode 100755
index 0000000..4e9ee80
--- /dev/null
+++ b/app/src/main/res/layout/tipdialog_custom.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              xmlns:tools="http://schemas.android.com/tools"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:gravity="center"
+              android:orientation="horizontal"
+              tools:ignore="UseCompoundDrawables">
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:contentDescription="鑷畾涔� icon"
+        android:src="@drawable/qmui_icon_notify_info"/>
+
+    <TextView
+        android:id="@+id/tv_tip"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:text="鑷畾涔夌粨鏋�"
+        android:textColor="@color/qmui_config_color_white"
+        android:textSize="16sp"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/top_view.xml b/app/src/main/res/layout/top_view.xml
new file mode 100644
index 0000000..43b199c
--- /dev/null
+++ b/app/src/main/res/layout/top_view.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:src="@mipmap/top_background"/>
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right|bottom"
+        android:src="@mipmap/monkey"/>
+</FrameLayout>
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
new file mode 100644
index 0000000..187e767
--- /dev/null
+++ b/app/src/main/res/menu/menu_main.xml
@@ -0,0 +1,10 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:context="com.shlb.comb.MainActivity">
+    <item
+        android:id="@+id/action_settings"
+        android:orderInCategory="100"
+        android:title="@string/action_settings"
+        app:showAsAction="never" />
+</menu>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..34ed9da
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..06cd83c
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/about_logo.png b/app/src/main/res/mipmap-xhdpi/about_logo.png
new file mode 100644
index 0000000..a1ce71e
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/about_logo.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/animation_img1.png b/app/src/main/res/mipmap-xhdpi/animation_img1.png
new file mode 100644
index 0000000..e9698df
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/animation_img1.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/example_image0.png b/app/src/main/res/mipmap-xhdpi/example_image0.png
new file mode 100644
index 0000000..12d180c
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/example_image0.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_bluetooth.png b/app/src/main/res/mipmap-xhdpi/ic_bluetooth.png
new file mode 100644
index 0000000..2434af2
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_bluetooth.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_device_ibeacon.png b/app/src/main/res/mipmap-xhdpi/ic_device_ibeacon.png
new file mode 100644
index 0000000..0c3f7fc
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_device_ibeacon.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_down.png b/app/src/main/res/mipmap-xhdpi/ic_down.png
new file mode 100644
index 0000000..f6cb7b7
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_down.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..2552412
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_sanjiao.png b/app/src/main/res/mipmap-xhdpi/ic_sanjiao.png
new file mode 100644
index 0000000..9baff38
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_sanjiao.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_sport_bg.png b/app/src/main/res/mipmap-xhdpi/ic_sport_bg.png
new file mode 100755
index 0000000..6a0555c
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_sport_bg.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_back.png b/app/src/main/res/mipmap-xhdpi/icon_back.png
new file mode 100755
index 0000000..d42451b
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_back.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_colse.png b/app/src/main/res/mipmap-xhdpi/icon_colse.png
new file mode 100644
index 0000000..61a85a5
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_colse.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_head.png b/app/src/main/res/mipmap-xhdpi/icon_head.png
new file mode 100755
index 0000000..b1d67d7
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_head.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_menu.png b/app/src/main/res/mipmap-xhdpi/icon_menu.png
new file mode 100644
index 0000000..04ec7d9
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_menu.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_record.png b/app/src/main/res/mipmap-xhdpi/icon_record.png
new file mode 100755
index 0000000..5c26e0d
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_record.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png b/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png
new file mode 100644
index 0000000..02773b9
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png b/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png
new file mode 100644
index 0000000..1b6d918
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_topbar_right.png b/app/src/main/res/mipmap-xhdpi/icon_topbar_right.png
new file mode 100644
index 0000000..47d2f3b
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_topbar_right.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/load_err.png b/app/src/main/res/mipmap-xhdpi/load_err.png
new file mode 100755
index 0000000..389b433
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/load_err.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/monkey.png b/app/src/main/res/mipmap-xhdpi/monkey.png
new file mode 100644
index 0000000..a944619
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/monkey.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/top_background.png b/app/src/main/res/mipmap-xhdpi/top_background.png
new file mode 100644
index 0000000..e0d2d09
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/top_background.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/animation_img1.png b/app/src/main/res/mipmap-xxhdpi/animation_img1.png
new file mode 100644
index 0000000..ffa85dd
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/animation_img1.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/animation_img2.png b/app/src/main/res/mipmap-xxhdpi/animation_img2.png
new file mode 100644
index 0000000..e80ec8c
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/animation_img2.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/animation_img3.png b/app/src/main/res/mipmap-xxhdpi/animation_img3.png
new file mode 100644
index 0000000..a8c2e01
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/animation_img3.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..90ee4ad
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png b/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png
new file mode 100644
index 0000000..4313791
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..13151e9
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-land/dimens.xml
@@ -0,0 +1,3 @@
+<resources>
+    <dimen name="fab_margin">48dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/app/src/main/res/values-w1240dp/dimens.xml
new file mode 100644
index 0000000..d73f4a3
--- /dev/null
+++ b/app/src/main/res/values-w1240dp/dimens.xml
@@ -0,0 +1,3 @@
+<resources>
+    <dimen name="fab_margin">200dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-w600dp/dimens.xml
@@ -0,0 +1,3 @@
+<resources>
+    <dimen name="fab_margin">48dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..6bf4d8b
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string-array name="threshold_modes">
+        <item>涓�閿瀹�</item>
+        <item>鍗曞眰璁惧畾</item>
+    </string-array>
+    <string-array name="sensitivity_modes">
+        <item>鎵归噺澧炲姞</item>
+        <item>鎵归噺鍑忓皯</item>
+        <item>鍗曞眰澧炲姞</item>
+        <item>鍗曞眰鍑忓皯</item>
+    </string-array>
+</resources>
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..b1e0e3a
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="colorPrimary">#1890ff</color>
+    <color name="colorPrimaryDark">#1890ff</color>
+    <color name="colorAccent">#1890ff</color>
+
+    <color name="white">#ffffff</color>
+    <color name="base_color">#1890ff</color>
+    <color name="base_color_s">#05aa87</color>
+    <color name="gray_line">#e5e5e5</color>
+    <color name="gray_bg">#f7f7f7</color>
+    <color name="dark_line">#C2C2C2</color>
+    <color name="dark_hint">#898989</color>
+    <color name="dark_border">#979797</color>
+    <color name="dark_big_line">#727272</color>
+    <color name="dark_line2">#9E9E9E</color>
+    <color name="bg_green">#2AD9A4</color>
+    <color name="bg_title">#EFEEF5</color>
+
+
+    <color name="base_line">#F4F5F7</color>
+    <color name="app_color_blue_2">#31BDF3</color>
+    <color name="app_color_blue_2_disabled">#7F31BDF3</color>
+    <color name="app_color_blue_2_pressed">#7F31BDF3</color>
+
+    <color name="app_color_theme_1">#EF5362</color> <!-- Grapefruit -->
+    <color name="app_color_theme_2">#FE6D4B</color> <!-- Bittersweet -->
+    <color name="app_color_theme_3">#FFCF47</color> <!-- Sunflower -->
+    <color name="app_color_theme_4">#9FD661</color> <!-- Grass -->
+    <color name="app_color_theme_5">#3FD0AD</color> <!-- Mint -->
+    <color name="app_color_theme_6">#2BBDF3</color> <!-- Aqua -->
+    <color name="app_color_theme_7">#5A9AEF</color> <!-- Blue Jeans -->
+    <color name="app_color_theme_8">#AC8FEF</color> <!-- Lavender -->
+    <color name="app_color_theme_9">#EE85C1</color> <!-- Pink Rose -->
+
+    <color name="e5">#F7F7F7</color>
+    <color name="base_text">#000</color>
+    <color name="bg">#10858C96</color>
+    <color name="bg_table">#F0F0F0</color>
+    <color name="blue_">#196CA0</color>
+    <color name="orange">#FAA02A</color>
+
+    <color name="green">#00FF00</color>
+    <color name="blue">#EE9A00</color>
+    <color name="red">#EE0000</color>
+
+    <color name="content_background">#f2f2f2</color>
+
+    <color name="red_normal">#FF0000</color>
+    <color name="red_pressed">#FF6666</color>
+
+    <color name="shape1">#5d8df7</color>
+    <color name="shape2">#5EB9F8</color>
+    <color name="shape3">#5CC2F8</color>
+
+    <color name="title1">#1890ff</color>
+    <color name="title2">#1890ff</color>
+    <color name="title3">#1890ff</color>
+    <color name="title4">#1890ff</color>
+
+
+    <color name="bar1">#C0FF8C</color>
+    <color name="bar2">#FFF78C</color>
+    <color name="bar3">#FFD08C</color>
+    <color name="bar4">#8CEAFF</color>
+    <color name="bar5">#FF8C9D</color>
+    
+    <color name="drawer_header_teal">#008299</color>
+    <color name="drawer_item_selected_blue">#00B2D4</color>
+    <color name="drawer_item_text_gray">#666666</color>
+    <color name="drawer_divider">#EEEEEE</color>
+    <color name="drawer_badge_red">#EE0000</color>
+
+
+
+
+    <integer-array name="gradient_arc_color">
+        <item>@color/green</item>
+        <item>@color/blue</item>
+        <item>@color/red</item>
+    </integer-array>
+
+    <integer-array name="titlecolor">
+        <item>@color/title1</item>
+        <item>@color/title2</item>
+        <item>@color/title3</item>
+    </integer-array>
+</resources>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100755
index 0000000..ca9c1e7
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,102 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+
+    <dimen name="padding_top">0dp</dimen>
+
+    <!-- 瀛椾綋澶у皬 -->
+    <dimen name="fontsize_8">8sp</dimen>
+    <dimen name="fontsize_10">10sp</dimen>
+    <dimen name="fontsize_12">12sp</dimen>
+    <dimen name="fontsize_13">13sp</dimen>
+    <dimen name="fontsize_14">14sp</dimen>
+    <dimen name="fontsize_15">15sp</dimen>
+    <dimen name="fontsize_16">16sp</dimen>
+    <dimen name="fontsize_17">17sp</dimen>
+    <dimen name="fontsize_18">18sp</dimen>
+    <dimen name="fontsize_20">20sp</dimen>
+    <dimen name="fontsize_22">22sp</dimen>
+    <dimen name="fontsize_24">24sp</dimen>
+    <dimen name="fontsize_26">26sp</dimen>
+    <dimen name="fontsize_28">28sp</dimen>
+    <dimen name="fontsize_34">34sp</dimen>
+    <dimen name="fontsize_40">40sp</dimen>
+
+    <!-- 灏哄 -->
+    <dimen name="dimension_0">0dp</dimen>
+    <dimen name="dimension_dp_litter">0.25dp</dimen>
+    <dimen name="dimension_dp_half">0.5dp</dimen>
+    <dimen name="dimension_1">1dp</dimen>
+    <dimen name="dimension_2">2dp</dimen>
+    <dimen name="dimension_3">3dp</dimen>
+    <dimen name="dimension_4">4dp</dimen>
+    <dimen name="dimension_5">5dp</dimen>
+    <dimen name="dimension_6">6dp</dimen>
+    <dimen name="dimension_7">7dp</dimen>
+    <dimen name="dimension_8">8dp</dimen>
+    <dimen name="dimension_10">10dp</dimen>
+    <dimen name="dimension_11">11dp</dimen>
+    <dimen name="dimension_12">12dp</dimen>
+    <dimen name="dimension_13">13dp</dimen>
+    <dimen name="dimension_14">14dp</dimen>
+    <dimen name="dimension_15">15dp</dimen>
+    <dimen name="dimension_16">16dp</dimen>
+    <dimen name="dimension_17">17dp</dimen>
+    <dimen name="dimension_18">18dp</dimen>
+    <dimen name="dimension_20">20dp</dimen>
+    <dimen name="dimension_21">21dp</dimen>
+    <dimen name="dimension_23">23dp</dimen>
+    <dimen name="dimension_24">24dp</dimen>
+    <dimen name="dimension_25">25dp</dimen>
+    <dimen name="dimension_28">28dp</dimen>
+    <dimen name="dimension_30">30dp</dimen>
+    <dimen name="dimension_32">32dp</dimen>
+    <dimen name="dimension_34">34dp</dimen>
+    <dimen name="dimension_35">35dp</dimen>
+    <dimen name="dimension_36">36dp</dimen>
+    <dimen name="dimension_38">38dp</dimen>
+    <dimen name="dimension_40">40dp</dimen>
+    <dimen name="dimension_41">41dp</dimen>
+    <dimen name="dimension_43">43dp</dimen>
+    <dimen name="dimension_39">39dp</dimen>
+    <dimen name="dimension_42">42dp</dimen>
+    <dimen name="dimension_44">44dp</dimen>
+    <dimen name="dimension_45">45dp</dimen>
+    <dimen name="dimension_47">47dp</dimen>
+    <dimen name="dimension_48">48dp</dimen>
+    <dimen name="dimension_50">50dp</dimen>
+    <dimen name="dimension_52">52dp</dimen>
+    <dimen name="dimension_55">55dp</dimen>
+    <dimen name="dimension_60">60dp</dimen>
+    <dimen name="dimension_65">65dp</dimen>
+    <dimen name="dimension_70">70dp</dimen>
+    <dimen name="dimension_75">75dp</dimen>
+    <dimen name="dimension_77">77dp</dimen>
+    <dimen name="dimension_80">80dp</dimen>
+    <dimen name="dimension_85">85dp</dimen>
+    <dimen name="dimension_90">90dp</dimen>
+    <dimen name="dimension_95">95dp</dimen>
+    <dimen name="dimension_100">100dp</dimen>
+    <dimen name="dimension_120">120dp</dimen>
+    <dimen name="dimension_135">135dp</dimen>
+    <dimen name="dimension_140">140dp</dimen>
+    <dimen name="dimension_160">160dp</dimen>
+    <dimen name="dimension_165">165dp</dimen>
+    <dimen name="dimension_170">170dp</dimen>
+    <dimen name="dimension_150">150dp</dimen>
+    <dimen name="dimension_180">180dp</dimen>
+    <dimen name="dimension_200">200dp</dimen>
+    <dimen name="dimension_220">220dp</dimen>
+    <dimen name="dimension_250">250dp</dimen>
+    <dimen name="dimension_260">260dp</dimen>
+    <dimen name="dimension_290">290dp</dimen>
+    <dimen name="dimension_300">300dp</dimen>
+    <dimen name="dimension_px_half">0.5px</dimen>
+    <dimen name="dimension_px_1">1px</dimen>
+    <dimen name="dimension_dp_15">15dp</dimen>
+    <dimen name="dimension_px_30">30px</dimen>
+    <dimen name="dimension_px_100">100px</dimen>
+
+    <dimen name="status_bar_height">0dp</dimen>
+</resources>
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
new file mode 100644
index 0000000..17494e1
--- /dev/null
+++ b/app/src/main/res/values/ids.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Tencent is pleased to support the open source community by making QMUI_Android available.
+
+ Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
+
+ Licensed under the MIT License (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+
+ http://opensource.org/licenses/MIT
+
+ 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.
+-->
+
+<resources>
+    <item name="qmuidemo" type="id"/>
+    <item name="main_container" type="id"/>
+
+    <item name="empty_button" type="id"/>
+
+    <item name="topbar_right_about_button" type="id"/>
+    <item name="topbar_right_change_button" type="id"/>
+
+    <item name="layout_for_test" type="id"/>
+    <!--main-->
+    <item name="ble_connec" type="id"/>
+    <item name="ble_address" type="id"/>
+
+    <!--address-->
+    <item name="address_write_list" type="id"/>
+    <item name="address_ble_name" type="id"/>
+    <item name="address_ble_statu" type="id"/>
+    <item name="address_ble_mac" type="id"/>
+
+
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..e36b8df
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,75 @@
+<resources>
+    <string name="app_name">comb</string>
+    <string name="action_settings">Settings</string>
+    <!-- Strings used for fragments for navigation -->
+    <string name="first_fragment_label">First Fragment</string>
+    <string name="second_fragment_label">Second Fragment</string>
+    <string name="next">Next</string>
+    <string name="previous">Previous</string>
+
+    <string name="hello_first_fragment">Hello first fragment</string>
+    <string name="hello_second_fragment">Hello second fragment. Arg: %1$s</string>
+
+
+
+
+    <!-- Labels -->
+    <string name="about_dialog_text">This is a sample application using the Bluetooth LE Library.\n\nGithub: https://github.com/alt236/Bluetooth-LE-Library---Android\n\nCopyright: Alexandros Schillings</string>
+    <string name="header_device_info">Device Info</string>
+    <string name="header_ibeacon_data">iBeacon Data</string>
+    <string name="header_raw_ad_records">Raw Ad Records</string>
+    <string name="header_rssi_info">RSSI Info</string>
+    <string name="header_scan_record">Scan Record</string>
+    <string name="label_advertisement">Advertisement:</string>
+    <string name="label_as_array">As Array:</string>
+    <string name="label_as_string">As String:</string>
+    <string name="label_bluetooth_le_status">Bluetooth LE:</string>
+    <string name="label_bluetooth_status">Bluetooth:</string>
+    <string name="label_bluetooth_filter">Filter:</string>
+    <string name="label_bluetooth_period">Period:</string>
+    <string name="label_bonding_state">Bonding State:</string>
+    <string name="label_company_id">Company ID:</string>
+    <string name="label_data">Data:</string>
+    <string name="label_desc">Desc:</string>
+    <string name="label_device_address">Device address:</string>
+    <string name="label_device_class">Device Class:</string>
+    <string name="label_device_major_class">Major Class:</string>
+    <string name="label_device_services">Services:</string>
+    <string name="label_device_name">Device Name:</string>
+    <string name="label_distance">Distance:</string>
+    <string name="label_first_rssi">First RSSI:</string>
+    <string name="label_first_timestamp">First Timestamp:</string>
+    <string name="label_last_rssi">Last RSSI:</string>
+    <string name="label_last_timestamp">Last Timestamp:</string>
+    <string name="label_mac">MAC:</string>
+    <string name="label_major">Major:</string>
+    <string name="label_minor">Minor:</string>
+    <string name="label_rssi">RSSI:</string>
+    <string name="label_running_average_rssi">Running Average RSSI:</string>
+    <string name="label_state">State:</string>
+    <string name="label_tx_power">TX Power:</string>
+    <string name="label_uuid">UUID:</string>
+    <string name="label_updated">Updated:</string>
+    <string name="label_decriptor">Descriptor:</string>
+    <string name="label_record">Record:</string>
+
+    <string name="connected">Connected</string>
+    <string name="disconnected">Disconnected</string>
+    <string name="invalid_device_data">Invalid Device Data!</string>
+    <string name="no_data">No data</string>
+    <string name="not_supported">Not supported</string>
+    <string name="off">Off</string>
+    <string name="period">scan:10s, pause:5s</string>
+    <string name="on">On</string>
+    <string name="supported">Supported</string>
+    <string name="unknown">unknown</string>
+    <string name="unknown_characteristic">Unknown characteristic</string>
+    <string name="unknown_device">Unknown device</string>
+    <string name="unknown_service">Unknown service</string>
+    <string name="no_known_services">No known services</string>
+    <!-- Formatters -->
+    <string name="formatter_meters">%sm</string>
+    <string name="formatter_db">%sdb</string>
+    <string name="formatter_item_count">Items: %s</string>
+
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..c2eb304
--- /dev/null
+++ b/app/src/main/res/values/themes.xml
@@ -0,0 +1,77 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+
+    <!-- Base application theme. -->
+    <style name="AppTheme"  parent="QMUI.Compat.NoActionBar">
+        <!-- Customize your theme here. -->
+        <item name="colorPrimary">@color/colorPrimary</item>
+        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+        <item name="colorAccent">@color/colorAccent</item>
+        <item name="android:windowBackground">@color/gray_bg</item>
+
+        <item name="QMUITopBarStyle">@style/QDTopBar</item>
+        <item name="android:navigationBarColor">@android:color/transparent</item>
+    </style>
+
+    <!--SplashActivity Theme-->
+    <style name="SplashTheme" parent="AppTheme">
+        <item name="android:windowIsTranslucent">false</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowBackground">@color/colorPrimary</item>
+        <item name="android:windowFullscreen">true</item>
+        <item name="android:navigationBarColor">@color/colorPrimary</item>
+        <item name="android:statusBarColor">@color/colorPrimary</item>
+    </style>
+
+
+    <style name="QDTopBar" parent="QMUI.TopBar">
+        <item name="qmui_topbar_title_color">@color/qmui_config_color_white</item>
+        <item name="qmui_topbar_subtitle_color">@color/qmui_config_color_white</item>
+        <item name="qmui_topbar_height">48dp</item>
+        <item name="qmui_topbar_title_text_size">15dp</item>
+        <item name="qmui_topbar_image_btn_height">48dp</item>
+    </style>
+
+
+
+
+
+    <style name="tweetName">
+        <item name="android:textColor">#48495f</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textSize">18sp</item>
+        <!--<item name="android:textStyle">bold</item>-->
+        <item name="android:shadowColor">#44000000</item>
+        <item name="android:shadowDx">1</item>
+        <item name="android:shadowDy">1</item>
+        <item name="android:shadowRadius">1</item>
+    </style>
+
+    <style name="tweetText">
+        <item name="android:textSize">13sp</item>
+        <item name="android:textColorLink">#888888</item>
+        <item name="android:lineSpacingExtra">4dp</item>
+    </style>
+
+    <style name="tweetDate">
+        <item name="android:textSize">10sp</item>
+        <item name="android:textColor">#FFCCCCCC</item>
+    </style>
+    <style name="ButtonBase" parent="android:Widget.Holo.Light.Button"/>
+    <style name="Button" parent="ButtonBase"/>
+    <style name="CustomButton" parent="@style/Button">
+        <item name="android:layout_height">40dp</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_marginTop">10dp</item>
+        <item name="android:layout_gravity">center</item>
+        <item name="android:paddingLeft">?attr/qmui_content_spacing_horizontal</item>
+        <item name="android:paddingRight">?attr/qmui_content_spacing_horizontal</item>
+        <item name="android:background">@drawable/s_radius_button_bg</item>
+        <item name="android:textColor">@color/s_app_color_blue_2</item>
+        <item name="android:textSize">12sp</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:gravity">center</item>
+    </style>
+
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/values.xml b/app/src/main/res/values/values.xml
new file mode 100644
index 0000000..44557a9
--- /dev/null
+++ b/app/src/main/res/values/values.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <declare-styleable name="ParticleView"><attr format="string" name="pv_host_text"/><attr format="dimension" name="pv_host_text_size"/><attr format="string" name="pv_particle_text"/><attr format="dimension" name="pv_particle_text_size"/><attr format="color" name="pv_text_color"/><attr format="color" name="pv_background_color"/><attr format="integer" name="pv_text_anim_time"/><attr format="integer" name="pv_spread_anim_time"/><attr format="integer" name="pv_host_text_anim_time"/></declare-styleable>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+   Sample backup rules file; uncomment and customize as necessary.
+   See https://developer.android.com/guide/topics/data/autobackup
+   for details.
+   Note: This file is ignored for devices older that API 31
+   See https://developer.android.com/about/versions/12/backup-restore
+-->
+<full-backup-content>
+    <!--
+   <include domain="sharedpref" path="."/>
+   <exclude domain="sharedpref" path="device.xml"/>
+-->
+</full-backup-content>
\ No newline at end of file
diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+   Sample data extraction rules file; uncomment and customize as necessary.
+   See https://developer.android.com/about/versions/12/backup-restore#xml-changes
+   for details.
+-->
+<data-extraction-rules>
+    <cloud-backup>
+        <!-- TODO: Use <include> and <exclude> to control what is backed up.
+        <include .../>
+        <exclude .../>
+        -->
+    </cloud-backup>
+    <!--
+    <device-transfer>
+        <include .../>
+        <exclude .../>
+    </device-transfer>
+    -->
+</data-extraction-rules>
\ No newline at end of file
diff --git a/bluetooth-manager-lib/.gitignore b/bluetooth-manager-lib/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/bluetooth-manager-lib/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/bluetooth-manager-lib/build.gradle b/bluetooth-manager-lib/build.gradle
new file mode 100644
index 0000000..13556da
--- /dev/null
+++ b/bluetooth-manager-lib/build.gradle
@@ -0,0 +1,37 @@
+apply plugin: 'com.android.library'
+
+android {
+    namespace "com.blakequ.bluetooth_manager_lib"
+    compileSdkVersion 28
+    defaultConfig {
+        minSdk 21
+        targetSdk 28
+        versionCode 1
+        versionName "1.0"
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+        }
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+}
+
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
+
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    testImplementation 'junit:junit:4.12'
+    implementation 'androidx.appcompat:appcompat:1.3.0'
+    api 'com.blankj:utilcodex:1.31.0'
+}
+
diff --git a/bluetooth-manager-lib/proguard-rules.pro b/bluetooth-manager-lib/proguard-rules.pro
new file mode 100644
index 0000000..b6a8c5b
--- /dev/null
+++ b/bluetooth-manager-lib/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in D:\studio_sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/bluetooth-manager-lib/src/main/AndroidManifest.xml b/bluetooth-manager-lib/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0eeb1c8
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/AndroidManifest.xml
@@ -0,0 +1,13 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.blakequ.bluetooth_manager_lib">
+
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <application
+        android:allowBackup="true">
+
+    </application>
+
+</manifest>
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleManager.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleManager.java
new file mode 100644
index 0000000..5828586
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleManager.java
@@ -0,0 +1,111 @@
+package com.blakequ.bluetooth_manager_lib;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import androidx.annotation.NonNull;
+import android.util.Log;
+
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectManager;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectConfig;
+import com.blakequ.bluetooth_manager_lib.connect.multiple.MultiConnectManager;
+import com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager;
+
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/17 11:02 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description: scan and connect ble device
+ */
+@TargetApi(18)
+public final class BleManager {
+    private static BleParamsOptions configOptions;
+    private BleManager(){
+    }
+
+    public static BleParamsOptions getBleParamsOptions(){
+        if (configOptions == null){
+            setBleParamsOptions(BleParamsOptions.createDefault());
+        }
+        return configOptions;
+    }
+
+    /**
+     * set config of ble connect and scan
+     * @param options
+     */
+    public static void setBleParamsOptions(@NonNull BleParamsOptions options){
+        if (options != null){
+            configOptions = options;
+            ConnectConfig.maxConnectDeviceNum = options.getMaxConnectDeviceNum();
+
+        }
+    }
+
+    /**
+     * get connect manager, only connect one device
+     * @param context
+     * @return
+     * @see #getMultiConnectManager(Context)
+     */
+    public static BluetoothConnectManager getConnectManager(@NonNull Context context){
+        return BluetoothConnectManager.getInstance(context);
+    }
+
+    /**
+     * get scan bluetooth manager
+     * @param context
+     * @return
+     */
+    public static BluetoothScanManager getScanManager(@NonNull Context context){
+        return BluetoothScanManager.getInstance(context);
+    }
+
+    /**
+     * get multi bluetooth device connect manager
+     * @param context
+     * @return
+     * @see #getConnectManager(Context)
+     */
+    public static MultiConnectManager getMultiConnectManager(@NonNull Context context){
+        return MultiConnectManager.getInstance(context);
+    }
+
+    /**
+     * Check if Bluetooth LE is supported by this Android device, and if so, make sure it is enabled.
+     *
+     * @return false if it is supported and not enabled
+     * @throws BleNotAvailableException if Bluetooth LE is not supported.  (Note: The Android emulator will do this)
+     */
+    public static boolean checkAvailability(Context context) throws BleNotAvailableException {
+        if (isSDKAvailable()) {
+            if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
+                throw new BleNotAvailableException("Bluetooth LE not supported by this device");
+            } else {
+                if (((BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter().isEnabled()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    public static boolean isSDKAvailable(){
+        if (android.os.Build.VERSION.SDK_INT < 18) {
+            throw new BleNotAvailableException("Bluetooth LE not supported by this device");
+        }
+        return true;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleNotAvailableException.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleNotAvailableException.java
new file mode 100644
index 0000000..edf774a
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleNotAvailableException.java
@@ -0,0 +1,40 @@
+/**
+ * Radius Networks, Inc.
+ * http://www.radiusnetworks.com
+ *
+ * @author David G. Young
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.blakequ.bluetooth_manager_lib;
+
+/**
+ * Indicates that Bluetooth Low Energy is not available on this device
+ * @see ScanManager#checkAvailability()
+ * @author David G. Young
+ *
+ */
+public class BleNotAvailableException extends RuntimeException {
+
+    private static final long serialVersionUID = 2242747823097637729L;
+
+    public BleNotAvailableException(String message) {
+            super(message);
+        }
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleParamsOptions.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleParamsOptions.java
new file mode 100644
index 0000000..59fca97
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/BleParamsOptions.java
@@ -0,0 +1,285 @@
+package com.blakequ.bluetooth_manager_lib;
+
+
+import androidx.annotation.IntRange;
+
+import com.blakequ.bluetooth_manager_lib.connect.ConnectConfig;
+
+import static com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver.DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD;
+import static com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver.DEFAULT_BACKGROUND_SCAN_PERIOD;
+import static com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver.DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD;
+import static com.blakequ.bluetooth_manager_lib.scan.BackgroundPowerSaver.DEFAULT_FOREGROUND_SCAN_PERIOD;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/12/1 14:28 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description: config of ble connect and scan
+ */
+
+public class BleParamsOptions {
+
+    private final boolean isDebugMode;
+
+    //using for scan
+    private final long foregroundScanPeriod;
+    private final long foregroundBetweenScanPeriod;
+    private final long backgroundScanPeriod;
+    private final long backgroundBetweenScanPeriod;
+
+    //using for connect
+    private final int maxConnectDeviceNum; //涓�娆℃渶澶ц繛鎺ヨ澶囦釜鏁�
+    private final int reconnectStrategy; //閲嶈繛绛栫暐
+    private final int reconnectMaxTimes; //鏈�澶ч噸杩炴鏁�
+    private final long reconnectBaseSpaceTime; //閲嶈繛鍩虹鏃堕棿闂撮殧ms
+    private final int reconnectedLineToExponentTimes; //蹇�熼噸杩炵殑娆℃暟(绾挎�у埌鎸囨暟)
+    private final int connectTimeOutTimes; //杩炴帴瓒呮椂鏃堕棿
+
+    public boolean isDebugMode() {
+        return isDebugMode;
+    }
+
+    public long getForegroundScanPeriod() {
+        return foregroundScanPeriod;
+    }
+
+    public long getForegroundBetweenScanPeriod() {
+        return foregroundBetweenScanPeriod;
+    }
+
+    public long getBackgroundScanPeriod() {
+        return backgroundScanPeriod;
+    }
+
+    public long getBackgroundBetweenScanPeriod() {
+        return backgroundBetweenScanPeriod;
+    }
+
+    public int getMaxConnectDeviceNum() {
+        return maxConnectDeviceNum;
+    }
+
+    public int getReconnectStrategy() {
+        return reconnectStrategy;
+    }
+
+    public int getReconnectMaxTimes() {
+        return reconnectMaxTimes;
+    }
+
+    public long getReconnectBaseSpaceTime() {
+        return reconnectBaseSpaceTime;
+    }
+
+    public int getReconnectedLineToExponentTimes() {
+        return reconnectedLineToExponentTimes;
+    }
+
+    public int getConnectTimeOutTimes() {
+        return connectTimeOutTimes;
+    }
+
+    private BleParamsOptions(Builder builder){
+        this.isDebugMode = builder.isDebugMode;
+        this.foregroundScanPeriod = builder.foregroundScanPeriod;
+        this.foregroundBetweenScanPeriod = builder.foregroundBetweenScanPeriod;
+        this.backgroundScanPeriod = builder.backgroundScanPeriod;
+        this.backgroundBetweenScanPeriod = builder.backgroundBetweenScanPeriod;
+        this.maxConnectDeviceNum = builder.maxConnectDeviceNum;
+        this.reconnectStrategy = builder.reconnectStrategy;
+        this.reconnectMaxTimes = builder.reconnectMaxTimes;
+        this.reconnectBaseSpaceTime = builder.reconnectBaseSpaceTime;
+        this.reconnectedLineToExponentTimes = builder.reconnectedLineToExponentTimes;
+        this.connectTimeOutTimes = builder.connectTimeOutTimes;
+    }
+
+    public static class Builder {
+
+        private boolean isDebugMode = true;
+        private long foregroundScanPeriod = DEFAULT_FOREGROUND_SCAN_PERIOD;
+        private long foregroundBetweenScanPeriod = DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD;
+        private long backgroundScanPeriod = DEFAULT_BACKGROUND_SCAN_PERIOD;
+        private long backgroundBetweenScanPeriod = DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD;
+        private int maxConnectDeviceNum = 5;//涓�娆℃渶澶ц繛鎺ヨ澶囦釜鏁�
+        private int reconnectStrategy = ConnectConfig.RECONNECT_LINE_EXPONENT; //閲嶈繛绛栫暐
+        private int reconnectMaxTimes = Integer.MAX_VALUE; //鏈�澶ч噸杩炴鏁�
+        private long reconnectBaseSpaceTime = 8000; //閲嶈繛鍩虹鏃堕棿闂撮殧ms
+        private int reconnectedLineToExponentTimes = 5; //蹇�熼噸杩炵殑娆℃暟(绾挎�у埌鎸囨暟)
+        private int connectTimeOutTimes = 15000; //杩炴帴瓒呮椂鏃堕棿15s
+
+        /**
+         * setting is debug mode, if false then the log will disable
+         * @param isDebugMode you can set by BuildConfig.DEBUG, default is true
+         * @return
+         */
+        public Builder setDebugMode(boolean isDebugMode){
+            this.isDebugMode = isDebugMode;
+            return this;
+        }
+
+        /**
+         * Sets the duration in milliseconds of each Bluetooth LE scan cycle to look for beacons.
+         * This function is used to setup the period when switching
+         * between background/foreground. To have it effect on an already running scan (when the next
+         * cycle starts)
+         *
+         * @param foregroundScanPeriod defalut is 10 seconds, you should using milliseconds
+         * @return
+         */
+        public Builder setForegroundScanPeriod(@IntRange(from = 0) long foregroundScanPeriod) {
+            if (foregroundScanPeriod < 0){
+                throw new IllegalArgumentException("Period time must > 0, now is "+foregroundScanPeriod);
+            }
+            this.foregroundScanPeriod = foregroundScanPeriod;
+            return this;
+        }
+
+        /**
+         * Sets the duration in milliseconds between each Bluetooth LE scan cycle to look for beacons.
+         * This function is used to setup the period when switching
+         * between background/foreground. To have it effect on an already running scan (when the next
+         * cycle starts)
+         * @param foregroundBetweenScanPeriod defalut is 5 seconds, you should using milliseconds
+         * @return
+         */
+        public Builder setForegroundBetweenScanPeriod(@IntRange(from = 0) long foregroundBetweenScanPeriod) {
+            if (foregroundBetweenScanPeriod < 0){
+                throw new IllegalArgumentException("Period time must > 0, now is "+foregroundBetweenScanPeriod);
+            }
+            this.foregroundBetweenScanPeriod = foregroundBetweenScanPeriod;
+            return this;
+        }
+
+        /**
+         * Sets the duration in milliseconds of each Bluetooth LE scan cycle to look for beacons.
+         * This function is used to setup the period when switching
+         * between background/foreground. To have it effect on an already running scan (when the next
+         * cycle starts)
+         * @param backgroundScanPeriod default is 10 seconds, you should using milliseconds
+         * @return
+         */
+        public Builder setBackgroundScanPeriod(@IntRange(from = 0) long backgroundScanPeriod) {
+            if (backgroundScanPeriod < 0){
+                throw new IllegalArgumentException("Period time must > 0, now is "+backgroundScanPeriod);
+            }
+            this.backgroundScanPeriod = backgroundScanPeriod;
+            return this;
+        }
+
+        /**
+         * Sets the duration in milliseconds spent not scanning between each Bluetooth LE scan cycle when no ranging/monitoring clients are in the foreground
+         * @param backgroundBetweenScanPeriod default is 5 minutes, you should using milliseconds
+         * @return
+         */
+        public Builder setBackgroundBetweenScanPeriod(@IntRange(from = 0) long backgroundBetweenScanPeriod) {
+            if (backgroundBetweenScanPeriod < 0){
+                throw new IllegalArgumentException("Period time must > 0, now is "+backgroundBetweenScanPeriod);
+            }
+            this.backgroundBetweenScanPeriod = backgroundBetweenScanPeriod;
+            return this;
+        }
+
+        /**
+         * max number of connect ble device
+         * @param maxConnectDeviceNum default is 5
+         * @return
+         */
+        public Builder setMaxConnectDeviceNum(@IntRange(from = 1) int maxConnectDeviceNum) {
+            if (maxConnectDeviceNum < 1){
+                throw new IllegalArgumentException("Connect device number must > 1, now is "+maxConnectDeviceNum);
+            }
+            this.maxConnectDeviceNum = maxConnectDeviceNum;
+            return this;
+        }
+
+        /**
+         * how to reconnect, you have choose reconnectStrategy:
+         * <ol>
+         * <li>1. ConnectConfig.RECONNECT_LINEAR, each reconnection interval time is the same</li>
+         * <li>2. ConnectConfig.RECONNECT_EXPONENT, the reconnect time interval is exponential growth</li>
+         * <li>3. ConnectConfig.RECONNECT_LINE_EXPONENT, Start time interval is the same, after reconnectedLineToExponentTimes times then use exponential growth<li/>
+         * </ol>
+         * @param reconnectStrategy
+         * @return
+         */
+        public Builder setReconnectStrategy(@IntRange(from = 1, to = 4) int reconnectStrategy) {
+            if (reconnectStrategy < 1 || reconnectStrategy > 4){
+                throw new IllegalArgumentException("reconnectStrategy range is 1 to 4");
+            }
+            this.reconnectStrategy = reconnectStrategy;
+            return this;
+        }
+
+        /**
+         * usable only the reconnect strategy is ConnectConfig.RECONNECT_LINE_EXPONENT
+         * @param reconnectedLineToExponentTimes the times from linear to exponential, default is 5 times
+         * @return
+         */
+        public Builder setReconnectedLineToExponentTimes(@IntRange(from = 1) int reconnectedLineToExponentTimes) {
+            if (reconnectedLineToExponentTimes < 1){
+                throw new IllegalArgumentException("reconnectedLineToExponentTimes value must >= 1, now is "+reconnectedLineToExponentTimes);
+            }
+            this.reconnectedLineToExponentTimes = reconnectedLineToExponentTimes;
+            return this;
+        }
+
+        /**
+         * max reconnect times, if you set 0 will not reconnect
+         * @param reconnectMaxTimes default is Integer.MAX_VALUE
+         * @return
+         */
+        public Builder setReconnectMaxTimes(@IntRange(from = 0) int reconnectMaxTimes) {
+            if (reconnectMaxTimes < 0){
+                throw new IllegalArgumentException("Reconnect max times must > 0, now is "+reconnectMaxTimes);
+            }
+            this.reconnectMaxTimes = reconnectMaxTimes;
+            return this;
+        }
+
+        /**
+         * reconnect interval time(>=1000ms)
+         * @param reconnectBaseSpaceTime default is 8 seconds
+         * @return
+         */
+        public Builder setReconnectBaseSpaceTime(@IntRange(from = 1000) long reconnectBaseSpaceTime) {
+            if (reconnectBaseSpaceTime < 1000){
+                throw new IllegalArgumentException("reconnectBaseSpaceTime must >= 1000ms, now is "+reconnectBaseSpaceTime);
+            }
+            this.reconnectBaseSpaceTime = reconnectBaseSpaceTime;
+            return this;
+        }
+
+        /**
+         * time out of connect device(after this time will check bluetooth state, if bluetooth not available will close all connect)
+         * @param connectTimeOutTimes default is 15 seconds(must > 1 seconds)
+         * @return
+         */
+        public Builder setConnectTimeOutTimes(@IntRange(from = 1000) int connectTimeOutTimes){
+            if (connectTimeOutTimes < 1000){
+                throw new IllegalArgumentException("connectTimeOutTimes must >= 1000ms, now is "+connectTimeOutTimes);
+            }
+            this.connectTimeOutTimes = connectTimeOutTimes;
+            return this;
+        }
+
+        /** Builds configured {@link BleParamsOptions} object */
+        public BleParamsOptions build() {
+            return new BleParamsOptions(this);
+        }
+    }
+
+    public static BleParamsOptions createDefault() {
+        return new Builder().build();
+    }
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectInterface.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectInterface.java
new file mode 100644
index 0000000..40326ea
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectInterface.java
@@ -0,0 +1,398 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattDescriptor;
+import android.bluetooth.BluetoothGattService;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.lang.reflect.Field;
+import java.util.List;
+import java.util.Queue;
+import java.util.UUID;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/19 11:16 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:bluetooth connect interface
+ */
+public abstract class BluetoothConnectInterface {
+    protected static final String TAG = "BluetoothConnectInterface";
+    protected Context context;
+    private BluetoothOperatorQueue mOpratorQueue;
+    private Handler mHandler = new Handler(Looper.getMainLooper());
+
+    public BluetoothConnectInterface(Context context){
+        this.context = context;
+        mOpratorQueue = new BluetoothOperatorQueue();
+    }
+
+    /**
+     * release resource
+     */
+    public abstract void release();
+
+    /**
+     * get gatt connect callback
+     * @return
+     */
+    protected abstract BluetoothGattCallback getBluetoothGattCallback();
+
+    protected abstract String getServiceUUID();
+
+    /**
+     * get device gatt service, if not will return null
+     * @param address
+     * @return null if not find gatt service
+     */
+    public abstract BluetoothGatt getBluetoothGatt(String address);
+
+    /**
+     * get the list of subscribe
+     * @return
+     */
+    protected abstract Queue<BluetoothSubScribeData> getSubscribeDataQueue();
+
+    /**
+     * invoke when bluetooth disconnect
+     * @param gatt
+     */
+    protected abstract void onDeviceDisconnect(BluetoothGatt gatt, int errorState);
+
+    /**
+     * invoke when bluetooth connected
+     * @param gatt
+     */
+    protected abstract void onDeviceConnected(BluetoothGatt gatt);
+
+    /**
+     * invoke when fail to discover service
+     * @param gatt
+     */
+    protected abstract void onDiscoverServicesFail(BluetoothGatt gatt);
+
+    /**
+     * invoke when success to discover service
+     * @param gatt
+     */
+    protected abstract void onDiscoverServicesSuccess(BluetoothGatt gatt);
+
+    /**
+     * Runs the specified action on the UI thread. If the current thread is the UI
+     * thread, then the action is executed immediately. If the current thread is
+     * not the UI thread, the action is posted to the event queue of the UI thread.
+     *
+     * @param action the action to run on the UI thread
+     */
+    public final void runOnUiThread(Runnable action) {
+        if (Thread.currentThread() != Looper.getMainLooper().getThread()) {
+            mHandler.post(action);
+        } else {
+            action.run();
+        }
+    }
+
+    protected Handler getMainLooperHandler(){
+        return mHandler;
+    }
+
+    protected BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
+        @Override
+        public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
+            super.onCharacteristicChanged(gatt, characteristic);
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onCharacteristicChanged(gatt, characteristic);
+        }
+
+        @Override
+        public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
+            super.onCharacteristicRead(gatt, characteristic, status);
+            LogUtils.i("onCharacteristicRead data status:" + GattError.parseConnectionError(status) + " " + characteristic.getUuid().toString());
+            mOpratorQueue.nextOperator();
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onCharacteristicRead(gatt, characteristic, status);
+        }
+
+        @Override
+        public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
+            super.onCharacteristicWrite(gatt, characteristic, status);
+            LogUtils.i("onCharacteristicWrite write status:" + GattError.parseConnectionError(status));
+            mOpratorQueue.nextOperator();
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onCharacteristicWrite(gatt, characteristic, status);
+        }
+
+        @Override
+        public void onConnectionStateChange(final BluetoothGatt gatt, int status, final int newState) {
+            super.onConnectionStateChange(gatt, status, newState);
+            //status=133鏄疓ATT_ERROR閿欒http://stackoverflow.com/questions/25330938/android-bluetoothgatt-status-133-register-callback
+            //http://www.loverobots.cn/android-ble-connection-solution-bluetoothgatt-status-133.html
+            LogUtils.i("onConnectionStateChange gattStatus=" + GattError.parseConnectionError(status) + " newStatus="
+                    + (newState == BluetoothProfile.STATE_CONNECTED ? "CONNECTED" : "DISCONNECTED"));
+
+            //涓嶅悓鐨勬墜鏈哄綋钃濈墮鍏抽棴锛岃澶囨柇寮�锛堥噸鍚紝杩滅锛夎繑鍥炵殑鐘舵�佷笉涓�鏍凤紝newState閮戒竴鏍锋槸DISCONNECTED锛岃澶囧垏鎹笉浼氫骇鐢熷奖鍝�
+            if (status == BluetoothGatt.GATT_SUCCESS) {
+                if (newState == BluetoothProfile.STATE_CONNECTED) {//璋冪敤connect浼氳皟鐢�
+                    LogUtils.i("Connected to GATT server");
+                    // Attempts to discover services after successful connection.
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            onDeviceConnected(gatt);
+                            if (gatt != null && !gatt.discoverServices()) {
+                                LogUtils.e("onConnectionStateChange start service discovery fail! Thread:" + Thread.currentThread());
+                            }
+                        }
+                    });
+                } else if (newState == BluetoothProfile.STATE_DISCONNECTED) {//璋冪敤disconnect浼氳皟鐢紝璁惧鏂紑鎴栬摑鐗欏叧闂細杩涘叆
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            onDeviceDisconnect(gatt, newState);
+                        }
+                    });
+                }
+            } else{ //璋冪敤connect鍜宒isconnect鍑洪敊鍚庝細杩涘叆,璁惧鏂紑鎴栬摑鐗欏叧闂細杩涘叆
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        onDeviceDisconnect(gatt, newState);
+                    }
+                });
+            }
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onConnectionStateChange(gatt, status, newState);
+        }
+
+        @Override
+        public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
+            super.onDescriptorRead(gatt, descriptor, status);
+            LogUtils.i("onDescriptorRead status=" + GattError.parseConnectionError(status));
+            mOpratorQueue.nextOperator();
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onDescriptorRead(gatt, descriptor, status);
+        }
+
+        @Override
+        public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
+            super.onDescriptorWrite(gatt, descriptor, status);
+            LogUtils.i("onDescriptorWrite status=" + GattError.parseConnectionError(status));
+            mOpratorQueue.nextOperator();
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onDescriptorWrite(gatt, descriptor, status);
+        }
+
+        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+        @Override
+        public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
+            super.onMtuChanged(gatt, mtu, status);
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onMtuChanged(gatt, mtu, status);
+        }
+
+        @Override
+        public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
+            super.onReadRemoteRssi(gatt, rssi, status);
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onReadRemoteRssi(gatt, rssi, status);
+        }
+
+        @Override
+        public void onReliableWriteCompleted(BluetoothGatt gatt, int status) {
+            super.onReliableWriteCompleted(gatt, status);
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onReliableWriteCompleted(gatt, status);
+        }
+
+        @Override
+        public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
+            LogUtils.i("onServicesDiscovered status=" + GattError.parseConnectionError(status));
+            if (status == BluetoothGatt.GATT_SUCCESS) {
+                //start subscribe data
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        onDiscoverServicesSuccess(gatt);
+                        if (gatt != null){
+                            startSubscribe(gatt);
+                        }
+                    }
+                });
+            }else {
+                LogUtils.e("onServicesDiscovered fail!");
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        onDiscoverServicesFail(gatt);
+                    }
+                });
+            }
+            if (getBluetoothGattCallback() != null) getBluetoothGattCallback().onServicesDiscovered(gatt, status);
+        }
+    };
+
+    /**
+     * start subscribe data, add data to subscribe list before invoke this method
+     * <p>You should invoke this method after onServicesDiscovered, otherwise can not find service<p/>
+     * @param bluetoothGatt
+     * @return boolean is success start read or write character
+     */
+    public boolean startSubscribe(BluetoothGatt bluetoothGatt){
+        if (bluetoothGatt == null){
+            LogUtils.e("Fail to subscribe, BluetoothGatt is null");
+            return false;
+        }
+        boolean isSuccess = subscribe(bluetoothGatt.getDevice().getAddress());
+        mOpratorQueue.start(bluetoothGatt);
+        return isSuccess;
+    }
+
+    /**
+     * 璁㈤槄钃濈墮璁惧閫氱煡鍙婅鍐欐暟鎹�
+     * @return
+     */
+    protected boolean subscribe(String address){
+        BluetoothGatt mBluetoothGatt = getBluetoothGatt(address);
+        if (mBluetoothGatt == null){
+            LogUtils.e("can not subscribe to ble device info "+address);
+            return false;
+        }
+        mOpratorQueue.clean();
+
+        if (isEmpty(getServiceUUID())){
+            LogUtils.e("Service UUID is null");
+            return false;
+        }
+
+        //check subscribe list
+        if (getSubscribeDataQueue() == null && getSubscribeDataQueue().size() > 0){
+            LogUtils.e("Subscribe BLE data is null, you must invoke addBluetoothSubscribeData to add data");
+            return false;
+        }
+
+        BluetoothGattService gattService = mBluetoothGatt.getService(UUID.fromString(getServiceUUID()));
+        if (gattService != null){
+            for (BluetoothSubScribeData data:getSubscribeDataQueue()){
+                final BluetoothGattCharacteristic characteristic = gattService.getCharacteristic(data.getCharacteristicUUID());
+                if (characteristic != null){
+                    switch (data.getOperatorType()){
+                        case CHAR_WIRTE:
+                            if (BluetoothUtils.isCharacteristicWrite(characteristic.getProperties())){
+                                characteristic.setValue(data.getCharacteristicValue());
+                                mOpratorQueue.addOperator(characteristic, true);
+                            }else{
+                                LogUtils.e("Fail to write characteristic, not have write property , uuid:"+characteristic.getUuid()+" ,property:"+characteristic.getProperties());
+                            }
+                            break;
+                        case CHAR_READ:
+                            //bug fix:samsung phone bug, can not read value
+                            if (checkIsSamsung()){
+                                setProperty(characteristic);
+                            }
+                            if(BluetoothUtils.isCharacteristicRead(characteristic.getProperties())){
+                                mOpratorQueue.addOperator(characteristic, false);
+                            }else{
+                                LogUtils.e("Fail to read characteristic, not have read property , uuid:" + characteristic.getUuid() + " ,property:" + characteristic.getProperties());
+                            }
+                            break;
+                        case DESC_READ:
+                            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(data.getDescriptorUUID());
+                            if (descriptor != null){
+                                mOpratorQueue.addOperator(descriptor, false);
+                            }else {
+                                LogUtils.e("Fail to get descriptor read uuid:"+data.getDescriptorUUID());
+                            }
+                            break;
+                        case DESC_WRITE:
+                            BluetoothGattDescriptor descriptor2 = characteristic.getDescriptor(data.getDescriptorUUID());
+                            if (descriptor2 != null){
+                                descriptor2.setValue(data.getDescriptorValue());
+                                mOpratorQueue.addOperator(descriptor2, true);
+                            }else {
+                                LogUtils.e("Fail to get descriptor write uuid:"+data.getDescriptorUUID());
+                            }
+                            break;
+                        case NOTIFY:
+                            if(BluetoothUtils.isCharacteristicNotify(characteristic.getProperties())){
+                                mBluetoothGatt.setCharacteristicNotification(characteristic, true);
+                                BluetoothGattDescriptor descriptor3 = characteristic.getDescriptor(data.getDescriptorUUID());
+                                if (descriptor3 != null){
+                                    if ((characteristic.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0){
+                                        descriptor3.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
+                                    }else if((characteristic.getProperties() & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0){
+                                        //涓や釜閮芥槸閫氱煡鐨勬剰鎬濓紝notify鍜宨ndication鐨勫尯鍒湪浜庯紝notify鍙槸灏嗕綘瑕佸彂鐨勬暟鎹彂閫佺粰鎵嬫満锛屾病鏈夌‘璁ゆ満鍒讹紝
+                                        //涓嶄細淇濊瘉鏁版嵁鍙戦�佹槸鍚﹀埌杈俱�傝�宨ndication鐨勬柟寮忓湪鎵嬫満鏀跺埌鏁版嵁鏃朵細涓诲姩鍥炰竴涓猘ck鍥炴潵銆傚嵆鏈夌‘璁ゆ満鍒讹紝鍙湁鏀�
+                                        //鍒拌繖涓猘ck浣犳墠鑳界户缁彂閫佷笅涓�涓暟鎹�傝繖淇濊瘉浜嗘暟鎹殑姝g‘鍒拌揪锛屼篃璧峰埌浜嗘祦鎺х殑浣滅敤銆傛墍浠ュ湪鎵撳紑閫氱煡鐨勬椂鍊欙紝闇�瑕佽缃竴涓嬨��
+                                        descriptor3.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE);
+                                    }
+                                    mOpratorQueue.addOperator(descriptor3, true);
+                                }else {
+                                    LogUtils.e("Fail to get notify descriptor uuid:"+data.getDescriptorUUID());
+                                }
+                            }else{
+                                LogUtils.e("Fail to notify characteristic, not have notify property , uuid:" + characteristic.getUuid() + " ,property:" + characteristic.getProperties());
+                            }
+                            break;
+                    }
+                }else {
+                    LogUtils.e("Fail to get characteristic service uuid:"+data.getCharacteristicUUID());
+                }
+            }
+        }else {
+            LogUtils.e("Can not get gatt service uuid:"+getServiceUUID());
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 璁剧疆灞炴��,璁剧疆璇绘潈闄�
+     * @param flagReadChar
+     */
+    @SuppressLint("SoonBlockedPrivateApi")
+    private void setProperty(BluetoothGattCharacteristic flagReadChar){
+        Field properField = null;
+        try {
+            properField = flagReadChar.getClass().getDeclaredField("mProperties");
+            properField.setAccessible(true);
+            properField.set(flagReadChar, 10);
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 鍒ゆ柇鎵嬫満绫诲瀷
+     * @return
+     */
+    protected boolean checkIsSamsung() {
+        String brand = android.os.Build.BRAND;
+        if (brand.toLowerCase().equals("samsung")) {
+            return true;
+        }
+        return false;
+    }
+
+    public boolean isEmpty(String str) {
+        return str == null || str.length() == 0;
+    }
+
+    public <V> boolean isEmpty(List<V> sourceList) {
+        return sourceList == null || sourceList.size() == 0;
+    }
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectManager.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectManager.java
new file mode 100644
index 0000000..0126d7b
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothConnectManager.java
@@ -0,0 +1,475 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothManager;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.os.Looper;
+import android.os.SystemClock;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.BleParamsOptions;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/18 11:29 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description: 鐢ㄤ簬褰撳墠钃濈墮鐨勮繛鎺ョ鐞嗭紝璐熻矗杩炴帴鐨勫缓绔嬫柇寮�锛屼娇鐢ㄦ椂闇�瑕佽缃洖璋儃@link #setBluetoothGattCallback(BluetoothGattCallback)},
+ * 杩炴帴{@link #connect(String)},鏂紑杩炴帴{@link #disconnect(String)}, 鍏抽棴杩炴帴{@link #close(String)}.
+ * 娉ㄦ剰锛�<br>
+ * 1.鍦ㄨ繘琛岃摑鐗欐柇寮�鍜岃繛鎺ヨ皟鐢ㄧ殑鏃跺�欙紝闇�瑕佸湪涓荤嚎绋嬫墽琛岋紝鍚﹀垯鍦ㄤ笁鏄熸墜鏈轰細鍑虹幇璁稿寮傚父閿欒鎴栨棤娉曡繛鎺ョ殑鎯呭喌<br>
+ * 2.璇ヨ繛鎺ョ鐞嗗彧鑳借繛鎺ヤ竴涓澶囷紝涓嶆敮鎸佸悓鏃惰繛鎺ュ涓澶�<br>
+ * 3.鍙互鑷畾涔夋柇寮�鍚庨噸杩炴鏁板拰閲嶈繛鐨勯棿闅旀椂闂�<br>
+ * 4.濡傛灉瑕佽闃呮湇鍔℃暟鎹紙read,write,notify锛塖ervice UUID {@link #setServiceUUID(String)}锛� 鍚﹀垯涓嶈兘鑷姩鐨勮繘琛岄�氱煡鍜宑har鍜宒esc鐨勮鍐欐搷浣滐紙杩橀渶瑕亄@link #addBluetoothSubscribeData(BluetoothSubScribeData)}锛�<br>
+ * 5.鍗曠嫭璁㈤槄鏁版嵁锛岄渶瑕佽皟鐢▄@link #cleanSubscribeData()}娓呴櫎璁㈤槄鍘嗗彶鍒楄〃, {@link #addBluetoothSubscribeData(BluetoothSubScribeData)}娣诲姞鍙傛暟, {@link #startSubscribe(BluetoothGatt)}鍚姩璁㈤槄锛屼細鑷姩鍥炶皟{@link #setBluetoothGattCallback(BluetoothGattCallback)}璁㈤槄缁撴灉
+ */
+@TargetApi(18)
+public final class BluetoothConnectManager extends BluetoothConnectInterface{
+    private static final String TAG = "BluetoothConnectManager";
+
+    private static BluetoothConnectManager INSTANCE = null;
+    private final BluetoothUtils mBluetoothUtils;
+    private BluetoothGattCallback mBluetoothGattCallback;
+    private BluetoothManager bluetoothManager;
+    private final Map<String, BluetoothGatt> gattMap; //淇濆瓨杩炴帴杩囩殑gatt
+    private final Queue<BluetoothSubScribeData> subscribeQueue;
+    private static String serviceUUID;
+    private ReconnectParamsBean reconnectParamsBean;
+    private List<ConnectStateListener> connectStateListeners;
+    private ConnectState currentState = ConnectState.NORMAL;
+    private static Object obj = new Object();
+
+    public BluetoothConnectManager(Context context) {
+        super(context);
+        subscribeQueue = new ConcurrentLinkedQueue<BluetoothSubScribeData>();
+        mBluetoothUtils = BluetoothUtils.getInstance(context);
+        bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
+        gattMap = new ConcurrentHashMap<String, BluetoothGatt>(); //浼氭湁骞跺彂鐨勬柇寮�鍜岃繛鎺ワ紝鏁呰�屽繀椤讳娇鐢ㄥ苟鍙慍oncurrentHashMap鎵嶈锛屽惁鍒欎細鏈塁oncurrentModificationException
+        connectStateListeners = new ArrayList<>();
+        BleManager.getBleParamsOptions();
+    }
+
+    @Override
+    public void release() {
+        closeAll();
+        gattMap.clear();
+        reconnectParamsBean = null;
+    }
+
+
+    public static BluetoothConnectManager getInstance(Context context){
+        if (INSTANCE == null){
+            synchronized (obj){
+                if (INSTANCE == null){
+                    INSTANCE = new BluetoothConnectManager(context);
+                }
+            }
+        }
+        return INSTANCE;
+    }
+
+
+    /**
+     * add callback of gatt connect, notice:<br>
+     * 1. can not do any task which need a lot of time<br>
+     * 2. you should update UI in the main thread, in callback method use {@link #runOnUiThread(Runnable)}
+     * @param callback
+     * @see #runOnUiThread(Runnable)
+     */
+    public void setBluetoothGattCallback(BluetoothGattCallback callback){
+        this.mBluetoothGattCallback = callback;
+    }
+
+    /**
+     * add listener of connect state
+     * @param listener
+     * @see #removeConnectStateListener(ConnectStateListener)
+     */
+    public void addConnectStateListener(ConnectStateListener listener){
+        synchronized(connectStateListeners){
+            connectStateListeners.add(listener);
+        }
+    }
+
+    /**
+     * remove listener
+     * @param listener
+     * @see #addBluetoothSubscribeData(BluetoothSubScribeData)
+     */
+    public void removeConnectStateListener(ConnectStateListener listener){
+        synchronized(connectStateListeners){
+            connectStateListeners.remove(listener);
+        }
+    }
+
+    /**
+     * add subscribe data while auto read or write characteristic(or descriptor) after discover service, you can clean subscribe list by {@link #cleanSubscribeData()}
+     * @param data
+     * @see #cleanSubscribeData()
+     * @see #startSubscribe(BluetoothGatt)
+     * @see #setServiceUUID(String)
+     */
+    public void addBluetoothSubscribeData(BluetoothSubScribeData data){
+        subscribeQueue.add(data);
+    }
+
+    /**
+     * clean subscribe list
+     * @see #addBluetoothSubscribeData(BluetoothSubScribeData)
+     */
+    public void cleanSubscribeData(){
+        subscribeQueue.clear();
+    }
+
+    /**
+     * set bluetooth service uuid, can not be null
+     * @see #addBluetoothSubscribeData(BluetoothSubScribeData)
+     * @param serviceUUID
+     */
+    public void setServiceUUID(String serviceUUID){
+        this.serviceUUID = serviceUUID;
+    }
+
+    @Override
+    public BluetoothGatt getBluetoothGatt(String address){
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            return gattMap.get(address);
+        }
+        return null;
+    }
+
+    @Override
+    protected BluetoothGattCallback getBluetoothGattCallback() {
+        return mBluetoothGattCallback;
+    }
+
+    @Override
+    protected String getServiceUUID() {
+        return serviceUUID;
+    }
+
+    @Override
+    protected void onDeviceDisconnect(final BluetoothGatt gatt, int errorState) {
+        //is bluetooth enable
+        //鍙互涓嶅叧闂紝浠ヤ究閲嶇敤锛屽洜涓哄湪杩炴帴connect鐨勬椂鍊欏彲浠ュ揩閫熻繛鎺�
+        if (!checkIsSamsung() || !mBluetoothUtils.isBluetoothIsEnable()){//涓夋槦鎵嬫満鏂紑鍚庣洿鎺ヨ繛鎺�
+            LogUtils.e( "Disconnected from GATT server address:"+gatt.getDevice().getAddress());
+            close(gatt.getDevice().getAddress()); //闃叉鍑虹幇status 133
+        }else {
+            updateConnectStateListener(gatt.getDevice().getAddress(), ConnectState.NORMAL);
+        }
+
+        //if disconnect by hand, so not run reconnect device
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                reconnectDevice(gatt.getDevice().getAddress()); //濡傛灉璁惧鏂紑鍒欐寚瀹氭椂闂村悗灏濊瘯閲嶆柊杩炴帴,閲嶆柊杩炴帴
+            }
+        });
+    }
+
+    @Override
+    protected void onDeviceConnected(BluetoothGatt gatt) {
+        updateConnectStateListener(gatt.getDevice().getAddress(), ConnectState.CONNECTED);
+        reconnectParamsBean = null;
+    }
+
+    @Override
+    protected void onDiscoverServicesFail(final BluetoothGatt gatt) {
+        if (!checkIsSamsung() || !mBluetoothUtils.isBluetoothIsEnable()){//涓夋槦鎵嬫満鏂紑鍚庣洿鎺ヨ繛鎺�
+            LogUtils.e( "Disconnected from GATT server address:"+gatt.getDevice().getAddress());
+            close(gatt.getDevice().getAddress()); //闃叉鍑虹幇status 133
+        }else {
+            updateConnectStateListener(gatt.getDevice().getAddress(), ConnectState.NORMAL);
+        }
+
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                reconnectDevice(gatt.getDevice().getAddress());
+            }
+        });
+    }
+
+    public void updateReconnectParams(){
+        reconnectParamsBean = null;
+    }
+
+    @Override
+    protected void onDiscoverServicesSuccess(BluetoothGatt gatt) {
+    }
+
+    @Override
+    protected Queue<BluetoothSubScribeData> getSubscribeDataQueue() {
+        return subscribeQueue;
+    }
+
+    /**
+     * has device is connected or connecting
+     * @return
+     */
+    public boolean isConnectDevice(){
+        if (gattMap.size() == 0) return false;
+        return true;
+    }
+
+    /**
+     * 鑾峰彇宸茬粡杩炴帴鐨勮澶�,娉ㄦ剰锛氳繑鍥炵殑璁惧涓嶄竴瀹氬叏閮ㄦ槸褰撳墠APP鎵�杩炴帴鐨勮澶囷紝闇�瑕侀�氳繃UUID鎴栬澶囧悕瀛楃瓑鍖哄垎
+     * @return
+     */
+    public List<BluetoothDevice> getConnectedDevice(){
+        if (isConnectDevice()){
+            return bluetoothManager.getConnectedDevices(BluetoothProfile.GATT);
+        }
+        return Collections.EMPTY_LIST;
+    }
+
+    public ConnectState getCurrentState(){
+        return currentState;
+    }
+
+    /**
+     * Connects to the GATT server hosted on the Bluetooth LE device. 涓轰繚璇佸彧鏈変竴涓繛鎺ワ紝褰撹繛鎺ュ垱寤烘垨鍒濆鍖栨垚鍔熷垯浼氬己鍒跺叧闂叾浠栬繛鎺�
+     *
+     * @param address The device address of the destination device.
+     * @return Return true if the connection is initiated successfully. The connection result
+     * is reported asynchronously through the
+     * {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)}
+     * callback.
+     */
+    public boolean connect(final String address) {
+        BluetoothAdapter mAdapter = mBluetoothUtils.getBluetoothAdapter();
+        if (mAdapter == null || address == null) {
+            LogUtils.w( "BluetoothAdapter not initialized or unspecified address.");
+            updateConnectStateListener(address, ConnectState.NORMAL);
+            return false;
+        }
+
+        if (!mBluetoothUtils.isBluetoothIsEnable()){
+            LogUtils.e( "bluetooth is not enable.");
+            updateConnectStateListener(address, ConnectState.NORMAL);
+            return false;
+        }
+
+        // Previously connected device.  Try to reconnect.
+        if (gattMap.containsKey(address)){
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            LogUtils.i( "Trying to use an existing gatt and reconnection device " + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+            if (mBluetoothGatt.connect()) {
+                closeOtherDevice(address);
+                updateConnectStateListener(address, ConnectState.CONNECTING);
+                return true;
+            } else {
+                close(address);
+                return false;
+            }
+        }
+
+        BluetoothDevice device = mAdapter.getRemoteDevice(address);
+        if (device != null){
+             /*if We want to directly connect to the device, we can setting the autoConnect
+             parameter to false.*/
+            BluetoothGatt mBluetoothGatt = device.connectGatt(context, false, gattCallback);
+            if (mBluetoothGatt != null){
+                LogUtils.d( "create a new connection address=" + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+                gattMap.put(address, mBluetoothGatt);
+                closeOtherDevice(address);
+                updateConnectStateListener(address, ConnectState.CONNECTING);
+                return true;
+            }else{
+                LogUtils.e( "Get Gatt fail!, address=" + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+            }
+        }else{
+            LogUtils.e( "Device not found, address=" + address);
+        }
+        updateConnectStateListener(address, ConnectState.NORMAL);
+        return false;
+    }
+
+
+    /**
+     * close bluetooth, release resource
+     * @param address
+     */
+    public boolean close(String address) {
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            LogUtils.w("close gatt server " + address);
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            mBluetoothGatt.close();
+            gattMap.remove(address);
+            updateConnectStateListener(address, ConnectState.NORMAL);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * close all bluetooth connect,  release all resource
+     */
+    public void closeAll(){
+        for (String address:gattMap.keySet()) {
+            close(address);
+        }
+    }
+
+    /**
+     * 鏂紑钃濈墮杩炴帴锛屼笉浼氶噴鏀綛luetoothGatt鎸佹湁鐨勬墍鏈夎祫婧愶紝鍙互璋冪敤mBluetoothGatt.connect()寰堝揩閲嶆柊杩炴帴涓�
+     * 濡傛灉涓嶅強鏃堕噴鏀捐祫婧愶紝鍙兘鍑虹幇133閿欒锛宧ttp://www.loverobots.cn/android-ble-connection-solution-bluetoothgatt-status-133.html
+     * @param address
+     */
+    public void disconnect(String address){
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            reconnectParamsBean = new ReconnectParamsBean(address);
+            reconnectParamsBean.setNumber(1000);
+            LogUtils.w("disconnect gatt server " + address);
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            mBluetoothGatt.disconnect();
+            updateConnectStateListener(address, ConnectState.NORMAL);
+        }
+    }
+
+    /**
+     * 閲嶆柊杩炴帴鏂紑鐨勮澶�
+     * @param address
+     */
+    private void reconnectDevice(final String address){
+        if (reconnectParamsBean != null){
+            if (!reconnectParamsBean.getAddress().equals(address)){
+                reconnectParamsBean.updateAddress(address);
+            }else {
+                if (reconnectParamsBean.getNumber() == 0){//same device
+                    reconnectParamsBean.updateAddress(address);
+                }else if(reconnectParamsBean.getNumber() == 1000){//disconnect by hand
+                    LogUtils.i("reconnect fail! disconnect by hand");
+                    reconnectParamsBean.setNumber(0);
+                    return;
+                }
+            }
+            reconnectParamsBean.addNumber();
+        }else{
+            reconnectParamsBean = new ReconnectParamsBean(address);
+        }
+
+        //璁$畻涓嬩竴娆¢噸杩炵殑鏃堕棿
+        long nextReconnectTime = reconnectParamsBean.getNextReconnectTime() - SystemClock.elapsedRealtime();
+        if (nextReconnectTime < 0){
+            nextReconnectTime = 0;
+        }
+        LogUtils.i("next reconnect time " + reconnectParamsBean.toString()+" after:"+nextReconnectTime/1000+"seconds");
+
+        getMainLooperHandler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                //閲嶆柊杩炴帴瑕佹眰娌℃湁宸茬粡杩炴帴鐨勮澶囷紝娌℃湁姝e湪杩炴帴鐨勶紝钃濈墮鍙敤
+                if (mBluetoothUtils.isBluetoothIsEnable()) {
+                    boolean isReconncted = false;
+                    if (gattMap.containsKey(address)) {
+                        if (gattMap.size() == 1) isReconncted = true;
+                    } else if (gattMap.size() == 0) {
+                        isReconncted = true;
+                    }
+
+                    //濡傛灉宸茬粡杩炴帴涓婏紝涔熶笉閲嶈繛
+                    if (!isEmpty(getConnectedDevice())) {
+                        isReconncted = false;
+                        reconnectParamsBean = null;
+                    }
+
+                    if (isReconncted && getConnectedDevice().size() == 0) {
+                        LogUtils.d("reconnecting! will reconnect " + address);
+                        if (reconnectParamsBean != null){
+                            //閲嶈繛蹇呴』鍦ㄤ富绾跨▼杩愯
+                            runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    connect(address);
+                                }
+                            });
+                        }else {
+                            LogUtils.w("Fail to reconnect, ReconnectParams is null");
+                        }
+                    } else {
+                        LogUtils.w("Fail to reconnect, refuse! " + address + " flag:" + isReconncted);
+                    }
+                }else{
+                    LogUtils.w("Fail to reconnect, the bluetooth is disable!");
+                }
+            }
+        }, nextReconnectTime);
+    }
+
+    /**
+     * 鍏抽棴闄や簡褰撳墠鍦板潃鐨勮澶囧鐨勫叾浠栬繛鎺�
+     * @param address
+     */
+    private void closeOtherDevice(String address){
+        if (!isEmpty(address)){
+            //鍏抽棴姝e湪宸茬粡杩炴帴鐨勮澶�
+            List<BluetoothDevice> list = getConnectedDevice();
+            for (BluetoothDevice device:list) {
+                if (!device.getAddress().equals(address)){
+                    close(device.getAddress());
+                }
+            }
+
+            //鍏抽棴鍏朵粬宸茬粡鏂紑鐨勮澶�
+            for (String ads:gattMap.keySet()) {
+                BluetoothGatt mBluetoothGatt = gattMap.get(ads);
+                if (!ads.equals(address)){
+                    close(ads);
+                }
+            }
+        }
+    }
+
+    private void updateConnectStateListener(String address, ConnectState state){
+        synchronized (connectStateListeners){
+            currentState = state;
+            if (state == ConnectState.CONNECTING){
+                //start check time out connect
+                BleParamsOptions options = BleManager.getBleParamsOptions();
+                getMainLooperHandler().postDelayed(timeOutTask, options.getConnectTimeOutTimes());
+            }
+            for (ConnectStateListener listener:connectStateListeners){
+                if (listener != null) listener.onConnectStateChanged(address, state);
+            }
+        }
+    }
+
+    /**
+     * connect time out task
+     */
+    private Runnable timeOutTask = new Runnable() {
+        @Override
+        public void run() {
+            if (!mBluetoothUtils.isBluetoothIsEnable()){
+                LogUtils.w("Fail to connect device! Bluetooth is not enable!");
+                closeAll();
+            }
+        }
+    };
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothOperatorQueue.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothOperatorQueue.java
new file mode 100644
index 0000000..b9722e2
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothOperatorQueue.java
@@ -0,0 +1,135 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothGattDescriptor;
+
+
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * bluetooth write and read queue oprator
+ * Created by PLUSUB on 2015/11/16.
+ */
+public class BluetoothOperatorQueue {
+
+    private String uuid;
+    private final Queue<SimpleEntity> sWriteQueue = new ConcurrentLinkedQueue<SimpleEntity>();
+    private boolean sIsWriting = false;
+    private BluetoothGatt mBluetoothGatt;
+
+    public BluetoothOperatorQueue(){
+    }
+
+    public synchronized void clean(){
+        sIsWriting = false;
+        uuid = null;
+        sWriteQueue.clear();
+    }
+
+    /**
+     * start operator to write or read BluetoothGatt Service
+     * @param mBluetoothGatt
+     * @exception IllegalArgumentException if mBluetoothGatt is null
+     */
+    public void start(BluetoothGatt mBluetoothGatt){
+        if (mBluetoothGatt == null){
+            throw new IllegalArgumentException("BluetoothGatt is null, can not write or read BluetoothGatt Service");
+        }
+        this.mBluetoothGatt = mBluetoothGatt;
+        nextOperator();
+    }
+
+    /**
+     * add write or read characteristic operator by order,In order execution
+     * @param gattCharacteristic
+     * @param isWrite true is write operator, false is read
+     */
+    public synchronized void addOperator(BluetoothGattCharacteristic gattCharacteristic, boolean isWrite) {
+        SimpleEntity entity = new SimpleEntity(isWrite, gattCharacteristic);
+        sWriteQueue.add(entity);
+    }
+
+    /**
+     * add write or read descriptor operator by order,In order execution
+     * @param gattDescriptor
+     * @param isWrite true is write operator, false is read
+     */
+    public synchronized void addOperator(BluetoothGattDescriptor gattDescriptor, boolean isWrite) {
+        SimpleEntity entity = new SimpleEntity(isWrite, gattDescriptor);
+        sWriteQueue.add(entity);
+    }
+
+    /**
+     * next operator, should invoke by hand
+     */
+    public synchronized void nextOperator() {
+        sIsWriting = false;
+        if (!sWriteQueue.isEmpty() && !sIsWriting) {
+            doOperator(sWriteQueue.poll());
+        }
+    }
+
+    /**
+     * do operator of read or write
+     * @param entity
+     */
+    private synchronized boolean doOperator(SimpleEntity entity) {
+        if (mBluetoothGatt == null){
+            LogUtils.e("do operator fail, bluetoothgatt is null");
+            return false;
+        }
+        boolean result = true;
+        if (entity.obj instanceof BluetoothGattCharacteristic) {
+            sIsWriting = true;
+            BluetoothGattCharacteristic character = (BluetoothGattCharacteristic) entity.obj;
+            uuid = character.getUuid().toString();
+            if (entity.isWrite){
+                result = mBluetoothGatt.writeCharacteristic(character);
+            }else{
+//                test(character);
+                result = mBluetoothGatt.readCharacteristic(character);
+            }
+        } else if (entity.obj instanceof BluetoothGattDescriptor) {
+            sIsWriting = true;
+            BluetoothGattDescriptor desc = (BluetoothGattDescriptor) entity.obj;
+            uuid = desc.getUuid().toString();
+            if (entity.isWrite){
+                result = mBluetoothGatt.writeDescriptor(desc);
+            }else {
+                result = mBluetoothGatt.readDescriptor(desc);
+            }
+        } else {
+            LogUtils.d("do operator next");
+            nextOperator();
+        }
+        LogUtils.d("do operator result:"+result+" "+uuid);
+        return result;
+    }
+
+//    private void test(BluetoothGattCharacteristic characteristic){
+//        boolean result = (characteristic.getProperties() &
+//                BluetoothGattCharacteristic.PROPERTY_READ) == 0;
+//        System.out.println("result:"+result+ " "+characteristic.getProperties()+" "+BluetoothGattCharacteristic.PROPERTY_READ);
+//    }
+
+    private static class SimpleEntity {
+        public boolean isWrite;
+        public Object obj;
+        public String info;
+
+        public SimpleEntity(boolean isWrite, Object obj) {
+            this.isWrite = isWrite;
+            this.obj = obj;
+        }
+
+        public SimpleEntity(boolean isWrite, Object obj, String info) {
+            this.isWrite = isWrite;
+            this.obj = obj;
+            this.info = info;
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothSubScribeData.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothSubScribeData.java
new file mode 100644
index 0000000..9f4515f
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/BluetoothSubScribeData.java
@@ -0,0 +1,187 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+import com.blakequ.bluetooth_manager_lib.device.resolvers.GattAttributeResolver;
+
+import java.util.UUID;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/18 17:48 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+public class BluetoothSubScribeData {
+
+    private UUID characteristicUUID;
+    private byte[] characteristicValue;
+    private UUID descriptorUUID;
+    private byte[] descriptorValue;
+    //the notification uuid for Characteristic
+    private Type operatorType;
+
+    private BluetoothSubScribeData(UUID characteristicUUID, byte[] characteristicValue, UUID descriptorUUID
+        ,byte[] descriptorValue, Type operatorType){
+        this.characteristicUUID = characteristicUUID;
+        this.characteristicValue = characteristicValue;
+        this.descriptorUUID = descriptorUUID;
+        this.descriptorValue = descriptorValue;
+        this.operatorType = operatorType;
+    }
+
+    private BluetoothSubScribeData(UUID characteristicUUID, Type operatorType){
+        this.characteristicUUID = characteristicUUID;
+        this.operatorType = operatorType;
+    }
+
+
+    public UUID getCharacteristicUUID() {
+        return characteristicUUID;
+    }
+
+    public byte[] getCharacteristicValue() {
+        return characteristicValue;
+    }
+
+    public UUID getDescriptorUUID() {
+        return descriptorUUID;
+    }
+
+    public byte[] getDescriptorValue() {
+        return descriptorValue;
+    }
+
+    public Type getOperatorType() {
+        return operatorType;
+    }
+
+    public static final class Builder {
+        private UUID characteristicUUID;
+        private byte[] characteristicValue;
+        private UUID descriptorUUID;
+        private byte[] descriptorValue;
+        //the notification uuid for Characteristic
+        private Type operatorType;
+
+        /**
+         * read Characteristic
+         * @param characteristicUUID
+         * @return
+         */
+        public Builder setCharacteristicRead(UUID characteristicUUID){
+            this.operatorType = Type.CHAR_READ;
+            this.characteristicUUID = characteristicUUID;
+            return this;
+        }
+
+        /**
+         * write Characteristic
+         * @param characteristicUUID
+         * @param characteristicValue
+         * @return
+         */
+        public Builder setCharacteristicWrite(UUID characteristicUUID, byte[] characteristicValue){
+            this.operatorType = Type.CHAR_WIRTE;
+            this.characteristicUUID = characteristicUUID;
+            this.characteristicValue = characteristicValue;
+            return this;
+        }
+
+        /**
+         * read Descriptor
+         * @param characteristicUUID
+         * @param descriptorUUID
+         * @return
+         */
+        public Builder setDescriptorRead(UUID characteristicUUID, UUID descriptorUUID){
+            this.operatorType = Type.DESC_READ;
+            this.characteristicUUID = characteristicUUID;
+            this.descriptorUUID = descriptorUUID;
+            return this;
+        }
+
+        /**
+         * write Descriptor
+         * @param characteristicUUID
+         * @param descriptorUUID
+         * @param descriptorValue
+         * @return
+         */
+        public Builder setDescriptorWrite(UUID characteristicUUID, UUID descriptorUUID, byte[] descriptorValue){
+            this.operatorType = Type.DESC_WRITE;
+            this.characteristicUUID = characteristicUUID;
+            this.descriptorUUID = descriptorUUID;
+            this.descriptorValue = descriptorValue;
+            return this;
+        }
+
+        /**
+         * get notify
+         * @param characteristicNotificationUUID notify characteristic uuid
+         * @return
+         */
+        public Builder setCharacteristicNotify(UUID characteristicNotificationUUID){
+            this.operatorType = Type.NOTIFY;
+            this.characteristicUUID = characteristicNotificationUUID;
+            this.descriptorUUID = UUID.fromString(GattAttributeResolver.CLIENT_CHARACTERISTIC_CONFIG);
+            return this;
+        }
+
+        public BluetoothSubScribeData build(){
+            if (characteristicUUID == null){
+                throw new IllegalArgumentException("invalid characteristic, and characteristic can not be null");
+            }
+            BluetoothSubScribeData data = null;
+            switch (operatorType){
+                case CHAR_READ:
+                    data = new BluetoothSubScribeData(characteristicUUID, operatorType);
+                    break;
+                case CHAR_WIRTE:
+                    if (characteristicValue == null){
+                        throw new IllegalArgumentException("invalid null characteristic value");
+                    }
+                    data = new BluetoothSubScribeData(characteristicUUID, characteristicValue, null,null, operatorType);
+                    break;
+                case DESC_READ:
+                    if (descriptorUUID == null){
+                        throw new IllegalArgumentException("invalid null descriptor UUID");
+                    }
+                    data = new BluetoothSubScribeData(characteristicUUID, null, descriptorUUID, null, operatorType);
+                    break;
+                case DESC_WRITE:
+                    if (descriptorUUID == null || descriptorValue == null){
+                        throw new IllegalArgumentException("invalid null descriptor UUID or value");
+                    }
+                    data = new BluetoothSubScribeData(characteristicUUID, null, descriptorUUID, descriptorValue, operatorType);
+                    break;
+                case NOTIFY:
+                    if (descriptorUUID == null){
+                        throw new IllegalArgumentException("invalid null descriptor UUID");
+                    }
+                    data = new BluetoothSubScribeData(characteristicUUID, null, descriptorUUID, null, operatorType);
+                    break;
+            }
+            return data;
+        }
+    }
+
+    /**
+     * bluetooth subscribe operator type
+     */
+    public static enum Type{
+        CHAR_WIRTE,
+        CHAR_READ,
+        DESC_WRITE,
+        DESC_READ,
+        NOTIFY
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectConfig.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectConfig.java
new file mode 100644
index 0000000..a6cb4d6
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectConfig.java
@@ -0,0 +1,30 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/29 14:04 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+public class ConnectConfig {
+    public static int maxConnectDeviceNum = 5;//涓�娆℃渶澶ц繛鎺ヤ釜鏁�
+
+    /**绾挎�ч棿闅旈噸杩烇紝姣忔鏂紑鍚庨噸杩炴椂闂存槸绾挎�у闀�*/
+    public static final int RECONNECT_LINEAR = 1;
+    /**鎸囨暟闂撮殧閲嶆柊*/
+    public static final int RECONNECT_EXPONENT = 2;
+    /**鍏堢嚎鎬у悗鎸囨暟閲嶆柊*/
+    public static final int RECONNECT_LINE_EXPONENT = 3;
+    /**鍥哄畾鏃堕棿閲嶈繛,姣忔鏂紑鍚庨兘鏄浉鍚屾椂闂翠箣鍚庡彂璧烽噸杩�*/
+    public static final int RECONNECT_FIXED_TIME = 4;
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectState.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectState.java
new file mode 100644
index 0000000..ed18226
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectState.java
@@ -0,0 +1,25 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/19 15:04 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+public enum ConnectState {
+    /**disconnect or not connect*/
+    NORMAL,
+    /**connected*/
+    CONNECTED,
+    CONNECTING
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectStateListener.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectStateListener.java
new file mode 100644
index 0000000..e405a67
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ConnectStateListener.java
@@ -0,0 +1,27 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/23 16:51 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+public interface ConnectStateListener {
+
+    /**
+     * invoke when bluetooth connect state changed
+     * @param address bluetooth device address
+     * @param state current state
+     */
+    void onConnectStateChanged(String address, ConnectState state);
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/GattError.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/GattError.java
new file mode 100644
index 0000000..167d5d7
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/GattError.java
@@ -0,0 +1,142 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+/**
+ * Copyright (C) quhao All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the Plusub License, Version 1.0 (the "License");
+ * 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.
+ *
+ * Parses the error numbers according to the <b>gatt_api.h</b> file from bluedroid stack.
+ * See: https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-5.1.0_r1/stack/include/gatt_api.h (and other versions) for details.
+ * See:https://github.com/NordicSemiconductor/Android-DFU-Library/blob/release/dfu/src/main/java/no/nordicsemi/android/error/GattError.java
+ * <p/>
+ * author  : quhao <blakequ@gmail.com>
+ * date     : 2016/3/29 10:24
+ * last modify author :
+ * version : 1.0
+ * description:
+ */
+public class GattError {
+
+    // Starts at line 106 of gatt_api.h file
+    /**
+     * Converts the connection status given by the {@link android.bluetooth.BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)} to error name.
+     * @param error the status number
+     * @return the error name as stated in the gatt_api.h file
+     */
+    public static String parseConnectionError(final int error) {
+        switch (error) {
+            case 0x01:
+                return "GATT CONN L2C FAILURE";
+            case 0x08:
+                return "GATT CONN TIMEOUT";
+            case 0x13:
+                return "GATT CONN TERMINATE PEER USER";
+            case 0x16:
+                return "GATT CONN TERMINATE LOCAL HOST";
+            case 0x3E:
+                return "GATT CONN FAIL ESTABLISH";
+            case 0x22:
+                return "GATT CONN LMP TIMEOUT";
+            case 0x0100:
+                return "GATT CONN CANCEL ";
+            case 0x0085: //133閿欒
+                return "GATT ERROR"; // Device not reachable
+            default:
+                return parse(error);
+        }
+    }
+
+    // Starts at line 29 of the gatt_api.h file
+    /**
+     * Converts the bluetooth communication status given by other BluetoothGattCallbacks to error name. It also parses the DFU errors.
+     * @param error the status number
+     * @return the error name as stated in the gatt_api.h file
+     */
+    private static String parse(final int error) {
+        switch (error) {
+            case 0:
+                return "GATT SUCCESS";
+            case 0x0001:
+                return "GATT INVALID HANDLE";
+            case 0x0002:
+                return "GATT READ NOT PERMIT";
+            case 0x0003:
+                return "GATT WRITE NOT PERMIT";
+            case 0x0004:
+                return "GATT INVALID PDU";
+            case 0x0005:
+                return "GATT INSUF AUTHENTICATION";
+            case 0x0006:
+                return "GATT REQ NOT SUPPORTED";
+            case 0x0007:
+                return "GATT INVALID OFFSET";
+            case 0x0008:
+                return "GATT INSUF AUTHORIZATION";
+            case 0x0009:
+                return "GATT PREPARE Q FULL";
+            case 0x000a:
+                return "GATT NOT FOUND";
+            case 0x000b:
+                return "GATT NOT LONG";
+            case 0x000c:
+                return "GATT INSUF KEY SIZE";
+            case 0x000d:
+                return "GATT INVALID ATTR LEN";
+            case 0x000e:
+                return "GATT ERR UNLIKELY";
+            case 0x000f:
+                return "GATT INSUF ENCRYPTION";
+            case 0x0010:
+                return "GATT UNSUPPORT GRP TYPE";
+            case 0x0011:
+                return "GATT INSUF RESOURCE";
+            case 0x0087:
+                return "GATT ILLEGAL PARAMETER";
+            case 0x0080:
+                return "GATT NO RESOURCES";
+            case 0x0081:
+                return "GATT INTERNAL ERROR";
+            case 0x0082:
+                return "GATT WRONG STATE";
+            case 0x0083:
+                return "GATT DB FULL";
+            case 0x0084:
+                return "GATT BUSY";
+            case 0x0085:
+                return "GATT ERROR";
+            case 0x0086:
+                return "GATT CMD STARTED";
+            case 0x0088:
+                return "GATT PENDING";
+            case 0x0089:
+                return "GATT AUTH FAIL";
+            case 0x008a:
+                return "GATT MORE";
+            case 0x008b:
+                return "GATT INVALID CFG";
+            case 0x008c:
+                return "GATT SERVICE STARTED";
+            case 0x008d:
+                return "GATT ENCRYPTED NO MITM";
+            case 0x008e:
+                return "GATT NOT ENCRYPTED";
+            case 0x008f:
+                return "GATT CONGESTED";
+            case 0x00FD:
+                return "GATT CCCD CFG ERROR";
+            case 0x00FE:
+                return "GATT PROCEDURE IN PROGRESS";
+            case 0x00FF:
+                return "GATT VALUE OUT OF RANGE";
+            case 0x0101:
+                return "GATT FAILURE, TOO MANY OPEN CONNECTIONS";
+            default:
+                return "UNKNOWN (" + error + ")";
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ReconnectParamsBean.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ReconnectParamsBean.java
new file mode 100644
index 0000000..732594b
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/ReconnectParamsBean.java
@@ -0,0 +1,126 @@
+package com.blakequ.bluetooth_manager_lib.connect;
+
+import android.os.SystemClock;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.BleParamsOptions;
+import com.blankj.utilcode.util.LogUtils;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/19 18:23 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+public class ReconnectParamsBean {
+    private String address;
+    private int number;//reconnect times number
+    private long nextReconnectTime;//next reconnect time
+    private long startDisconnectTime; //the bluetooth disconnected time
+    private boolean isReconnectNow = false;
+
+    public ReconnectParamsBean(String address) {
+        this.address = address;
+        this.startDisconnectTime = SystemClock.elapsedRealtime();
+        this.number = 0;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void updateAddress(String address){
+        this.address = address;
+        this.startDisconnectTime = SystemClock.elapsedRealtime();
+        this.number = 0;
+    }
+
+    /**
+     * get next reconnect time
+     * @return
+     */
+    public long getNextReconnectTime() {
+        BleParamsOptions options = BleManager.getBleParamsOptions();
+        switch (options.getReconnectStrategy()){
+            case ConnectConfig.RECONNECT_EXPONENT:
+                nextReconnectTime = (long) (startDisconnectTime + options.getReconnectBaseSpaceTime() * Math.pow(2, number));
+                break;
+            case ConnectConfig.RECONNECT_LINE_EXPONENT:
+                if (number <= options.getReconnectedLineToExponentTimes()){
+                    nextReconnectTime = startDisconnectTime + options.getReconnectBaseSpaceTime()*number;
+                }else {
+                    nextReconnectTime = (long) (startDisconnectTime + options.getReconnectBaseSpaceTime() * Math.pow(2, number));
+                }
+                break;
+            case ConnectConfig.RECONNECT_LINEAR:
+                nextReconnectTime = startDisconnectTime + options.getReconnectBaseSpaceTime()*number;
+                break;
+            case ConnectConfig.RECONNECT_FIXED_TIME:
+                nextReconnectTime = startDisconnectTime + options.getReconnectBaseSpaceTime();
+                break;
+        }
+
+        if (isReconnectNow){
+            nextReconnectTime = SystemClock.elapsedRealtime();
+        }
+
+        //max reconnect times, not reconnect
+        if (number >= options.getReconnectMaxTimes()){
+            LogUtils.d("reconnect number="+number+" more than max times "+options.getReconnectMaxTimes());
+            //灏嗘椂闂磋缃潪甯稿ぇ
+            nextReconnectTime = SystemClock.elapsedRealtime() + 10*24*60*60*1000;
+        }
+        return nextReconnectTime;
+    }
+
+    public boolean isReconnectNow() {
+        return isReconnectNow;
+    }
+
+    public void setReconnectNow(boolean reconnectNow) {
+        number = 0;
+        startDisconnectTime = SystemClock.elapsedRealtime();
+        isReconnectNow = reconnectNow;
+    }
+
+    public int getNumber() {
+        return number;
+    }
+
+    /**
+     * invoke after bluetooth disconnected
+     */
+    public void addNumber() {
+        isReconnectNow = false;
+        this.startDisconnectTime = SystemClock.elapsedRealtime();
+        this.number++;
+    }
+
+    /**
+     * if you can not want to reconnect by auto, you can set a max value
+     * @param num
+     */
+    public void setNumber(int num){
+        this.number = num;
+    }
+
+    @Override
+    public String toString() {
+        return "ReconnectParamsBean{" +
+                "address='" + address + '\'' +
+                ", number=" + number +
+                ", next reconnect after " + (getNextReconnectTime()-startDisconnectTime)/1000 + "seconds"+
+                ", startDisconnectTime=" + startDisconnectTime +
+                '}';
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/ConnectRequestQueue.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/ConnectRequestQueue.java
new file mode 100644
index 0000000..d298375
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/ConnectRequestQueue.java
@@ -0,0 +1,609 @@
+package com.blakequ.bluetooth_manager_lib.connect.multiple;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothGatt;
+import android.content.Context;
+import android.os.Looper;
+import android.os.SystemClock;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.BleParamsOptions;
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothConnectInterface;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectConfig;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectStateListener;
+import com.blakequ.bluetooth_manager_lib.connect.ReconnectParamsBean;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/19 9:48 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:the queue using for manager connect request
+ */
+public abstract class ConnectRequestQueue extends BluetoothConnectInterface{
+    private static final String TAG = "ConnectRequestQueue";
+    private Map<String, ReconnectParamsBean> reconnectMap; //reconnect device list and reconnect times number
+    private Map<String, ConnectState> macMap;//<mac address, is connected>
+    private Map<String, BluetoothGatt> gattMap;//notice:ArrayMap is not support concurrent, so can not use ArrayMap
+    private Queue<String> deviceQueue;
+    private final BluetoothUtils mBluetoothUtils;
+    private List<ConnectStateListener> connectStateListeners;
+
+    public ConnectRequestQueue(Context context){
+        super(context);
+        macMap = new ConcurrentHashMap<String, ConnectState>();//if not consider concurrent, should use ArrayMap
+        gattMap = new ConcurrentHashMap<String, BluetoothGatt>();
+        reconnectMap = new ConcurrentHashMap<String, ReconnectParamsBean>();
+        deviceQueue = new ConcurrentLinkedQueue<>();
+        mBluetoothUtils = BluetoothUtils.getInstance(context);
+        connectStateListeners = new ArrayList<>();
+    }
+
+    public void addConnectStateListener(ConnectStateListener listener){
+        synchronized (connectStateListeners){
+            connectStateListeners.add(listener);
+        }
+    }
+
+    public void removeConnectStateListener(ConnectStateListener listener){
+        synchronized (connectStateListeners){
+            connectStateListeners.remove(listener);
+        }
+    }
+
+    @Override
+    protected void onDeviceConnected(BluetoothGatt gatt) {
+        if (gatt != null){
+            updateConnectState(gatt.getDevice().getAddress(), ConnectState.CONNECTED);
+        }
+    }
+
+    @Override
+    protected void onDeviceDisconnect(BluetoothGatt gatt, int errorState) {
+        LogUtils.e( "Disconnected from GATT server address:" + gatt.getDevice().getAddress());
+        //鍙互涓嶅叧闂紝浠ヤ究閲嶇敤锛屽洜涓哄湪杩炴帴connect鐨勬椂鍊欏彲浠ュ揩閫熻繛鎺�
+        if (!mBluetoothUtils.isBluetoothIsEnable()){
+            //鍏抽棴鎵�鏈夌殑璁惧
+            closeAll();
+        }else {
+            close(gatt.getDevice().getAddress());//闃叉鍑虹幇status 133
+        }
+    }
+
+    @Override
+    protected void onDiscoverServicesFail(BluetoothGatt gatt) {
+        if (gatt != null){
+            updateConnectState(gatt.getDevice().getAddress(), ConnectState.NORMAL);
+        }
+    }
+
+    @Override
+    protected void onDiscoverServicesSuccess(BluetoothGatt gatt){
+        if (gatt != null){
+            updateConnectState(gatt.getDevice().getAddress(), ConnectState.CONNECTED);
+        }
+    }
+
+    /**
+     * start connect device one by one
+     */
+    public void startConnect(){
+        if (deviceQueue.size() > 0 && mBluetoothUtils.isBluetoothIsEnable()){
+            triggerConnectNextDevice();
+        }else {
+            triggerReconnect("");
+            LogUtils.e( "startConnect--Fail to from connect queue, and start reconnect task. ble state:" + mBluetoothUtils.isBluetoothIsEnable());
+        }
+    }
+
+    /**
+     * start connect device(will trigger reconnect)
+     * @param macAddress
+     */
+    public void startConnect(String macAddress){
+        if (macAddress != null && macAddress.length() > 0){
+            if (macMap.containsKey(macAddress)){
+                ConnectState state = macMap.get(macAddress);
+                //濡傛灉鏄湭杩炴帴鐘舵�侊紝鍒欏紑鍚噸杩烇紝閲嶇疆閲嶈繛娆℃暟锛屽苟绔嬪嵆杩炴帴
+                if (macMap.get(macAddress) == ConnectState.NORMAL){
+                    ReconnectParamsBean bean;
+                    if (!reconnectMap.containsKey(macAddress)){
+                        bean = new ReconnectParamsBean(macAddress);
+                        reconnectMap.put(macAddress, bean);
+                    }else{
+                        bean = reconnectMap.get(macAddress);
+                    }
+                    bean.setReconnectNow(true);
+                    startReconnectTask();
+                }else{
+                    LogUtils.i( "Device is " + state + " state");
+                }
+            }else{
+                LogUtils.e( "Fail to connect device, device can not found in queue, you must invoke addDeviceToQueue(Stirng)");
+            }
+        }else{
+            LogUtils.e( "Fail to connect device, mac address is null");
+        }
+    }
+
+    /**
+     * connect bluetooth device one by one
+     * @return the next connect device
+     */
+    private void triggerConnectNextDevice(){
+        String mac = deviceQueue.peek();
+        if (!isEmpty(mac)){
+            LogUtils.i( "Start trigger connect device "+mac);
+            connect(mac);
+        }
+    }
+
+    private void updateConnectState(String address, ConnectState state) {
+        //bug:Can not remove device from queue, this position just update connect state
+        if (macMap.containsKey(address)) {
+            macMap.put(address, state);
+            updateConnectStateListener(address, state);
+        }
+        switch (state){
+            case NORMAL: //disconnect or close
+                String mac = deviceQueue.peek();
+                if (!isEmpty(mac)){
+                    if (address.equals(mac)){
+                        deviceQueue.poll();
+                    }
+                    triggerConnectNextDevice();
+                }
+                triggerReconnect(address);
+                break;
+            case CONNECTED:
+                reconnectMap.remove(address);
+                String mac1 = deviceQueue.peek();
+                if (!isEmpty(mac1)){
+                    if (address.equals(mac1)){
+                        deviceQueue.poll();
+                    }
+                    triggerConnectNextDevice();
+                }
+                triggerReconnect(address);
+                break;
+            case CONNECTING:
+                //start check time out connect
+                BleParamsOptions options = BleManager.getBleParamsOptions();
+                getMainLooperHandler().postDelayed(timeOutTask, options.getConnectTimeOutTimes());
+                break;
+        }
+    }
+
+    /**
+     * connect time out task
+     */
+    private Runnable timeOutTask = new Runnable() {
+        @Override
+        public void run() {
+            if (!mBluetoothUtils.isBluetoothIsEnable()){
+                LogUtils.w( "Fail to connect device! Bluetooth is not enable!");
+                closeAll();
+            }
+        }
+    };
+
+    /**
+     * release resource
+     */
+    @Override
+    public void release(){
+        macMap.clear();
+        closeAll();
+        gattMap.clear();
+        reconnectMap.clear();
+        deviceQueue.clear();
+        getMainLooperHandler().removeCallbacks(reconnectTask);
+    }
+
+    /**
+     * get the size of current queue
+     * <p>Notice:this len maybe is not equal of maxLen(connect device num<=maxLen), is dynamic length by sensor physical truth</>
+     * @see #getMaxLen()
+     */
+    public int getQueueSize(){
+        return macMap.size();
+    }
+
+    /**
+     * add device to connect queue, if the number out of range will discard.
+     * @param macAddress
+     * @see #startConnect()
+     */
+    public void addDeviceToQueue(String macAddress){
+        if (!macMap.containsKey(macAddress)){
+            if (macMap.size() >= getMaxLen()){
+                String address = deviceQueue.poll();
+                if (isEmpty(address)){
+                    address = getFirstDevice();
+                }
+                removeDeviceFromQueue(address);
+            }
+            deviceQueue.add(macAddress);
+            macMap.put(macAddress, ConnectState.NORMAL);
+        }
+    }
+
+    /**
+     * add device to connect queue
+     * @param devices
+     * @see #startConnect()
+     */
+    public void addDeviceToQueue(String[] devices){
+        if (devices != null && devices.length > 0){
+            for (int i=0; i<devices.length; i++){
+                addDeviceToQueue(devices[i]);
+            }
+        }
+    }
+
+    /**
+     * remove device from queue, disconnected device if in connection state
+     * @param macAddress
+     */
+    public void removeDeviceFromQueue(String macAddress){
+        if (isEmpty(macAddress)) return;
+        macMap.remove(macAddress);
+        deviceQueue.remove(macAddress);
+        reconnectMap.remove(macAddress);
+        if (gattMap.containsKey(macAddress)){
+            close(macAddress);
+        }
+    }
+
+    public List<String> getAllDevice(){
+        if (macMap.size() <= 0) return Collections.EMPTY_LIST;
+        List<String> list = new ArrayList<>();
+        for (String key:macMap.keySet()){
+            list.add(key);
+        }
+        return list;
+    }
+
+    private String getFirstDevice(){
+        if (macMap.size() <= 0) return null;
+        for (String key:macMap.keySet()){
+            return key;
+        }
+        return null;
+    }
+
+    /**
+     * get all connected device
+     * @return
+     */
+    public List<String> getAllConnectedDevice(){
+        if (macMap.size() <= 0) return Collections.EMPTY_LIST;
+        List<String> list = new ArrayList<>();
+        for (String key:macMap.keySet()){
+            if (macMap.get(key) == ConnectState.CONNECTED){
+                list.add(key);
+            }
+        }
+        return list;
+    }
+
+    /**
+     * is contain device
+     * @param address
+     * @return
+     */
+    public boolean containsDevice(String address){
+        return macMap.containsKey(address);
+    }
+
+
+    /**
+     * get bluetooth state of connect
+     * @param address
+     * @return
+     */
+    public ConnectState getDeviceState(String address){
+        return macMap.get(address);
+    }
+
+    public List<String> getAllConnectingDevice(){
+        if (macMap.size() <= 0) return Collections.EMPTY_LIST;
+        List<String> list = new ArrayList<>();
+        for (String key:macMap.keySet()){
+            if (macMap.get(key) == ConnectState.CONNECTING){
+                list.add(key);
+            }
+        }
+        return list;
+    }
+
+    /**
+     * has device is not connected
+     * @return
+     */
+    public boolean isDisconnectDevice(){
+        for (ConnectState value:macMap.values()) {
+            if (value == ConnectState.NORMAL){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * is have device is connecting
+     * @return
+     */
+    public boolean isConnectingDevice(){
+        for (ConnectState value:macMap.values()){
+            if (value == ConnectState.CONNECTING){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * is have device is connected
+     * @return
+     */
+    public boolean isConnectedDevice(){
+        for (ConnectState value:macMap.values()){
+            if (value == ConnectState.CONNECTED){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 鑾峰彇杩炴帴璁惧鐨凚luetoothGatt瀵硅薄锛屽鏋滄病鏈夎繑鍥瀗ull
+     * @param address
+     * @return
+     */
+    public BluetoothGatt getBluetoothGatt(String address){
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            return gattMap.get(address);
+        }
+        return null;
+    }
+
+
+    /**
+     * trigger reconnect task
+     */
+    private void triggerReconnect(String mac){
+        //if deviceQueue is null, start reconnect
+        if (deviceQueue.size() == 0){
+            //灏嗛噸杩炵殑璁惧鍏ㄩ儴鏀惧叆閲嶈繛闃熷垪
+            for (String key:macMap.keySet()){
+                if (macMap.get(key) == ConnectState.NORMAL){
+                    ReconnectParamsBean bean;
+                    if (!reconnectMap.containsKey(key)){
+                        bean = new ReconnectParamsBean(key);
+                        reconnectMap.put(key, bean);
+                    }else if(key.equals(mac)){
+                        bean = reconnectMap.get(key);
+                        bean.addNumber();
+                        LogUtils.d( "trigger reconnect, reconnect after "+(bean.getNextReconnectTime() - SystemClock.elapsedRealtime())/1000+" seconds");
+                    }
+                }
+            }
+
+            startReconnectTask();
+        }
+    }
+
+    /**
+     * can not reconnect all the time
+     */
+    private synchronized void startReconnectTask(){
+        if (reconnectMap.size() <= 0) return;
+        long nextTime = SystemClock.elapsedRealtime()*2;
+        String address = "";
+        //select minimum time of list
+        for (String addr:reconnectMap.keySet()){
+            ReconnectParamsBean bean = reconnectMap.get(addr);
+            if (bean.getNextReconnectTime() < nextTime){
+                nextTime = bean.getNextReconnectTime();
+                address = addr;
+            }
+        }
+
+        //start reconnect task
+        if (!isEmpty(address)){
+            if (nextTime <= SystemClock.elapsedRealtime()){
+                LogUtils.d( "start reconnect device:"+address);
+                reconnectDevice(address);
+            }else{
+                LogUtils.d( "start reconnect device "+address+" after "+(nextTime - SystemClock.elapsedRealtime())/1000+" seconds");
+                getMainLooperHandler().removeCallbacks(reconnectTask);
+                getMainLooperHandler().postDelayed(reconnectTask, nextTime - SystemClock.elapsedRealtime());
+            }
+        }
+    }
+
+    /**
+     * reconnect runnable
+     */
+    private Runnable reconnectTask = new Runnable() {
+        @Override
+        public void run() {
+            LogUtils.d( "Start reconnect task by handler");
+            startReconnectTask();
+        }
+    };
+
+    /**
+     * reconnect device
+     * @param address
+     */
+    private synchronized void reconnectDevice(final String address){
+        if (macMap.containsKey(address)){
+            ReconnectParamsBean bean = reconnectMap.get(address);
+            if (mBluetoothUtils.isBluetoothIsEnable()) {
+                if (bean == null){
+                    reconnectMap.put(address, new ReconnectParamsBean(address));
+                }
+
+                //check is connected or connectting
+                ConnectState state = macMap.get(address);
+                if (state == ConnectState.NORMAL){
+                    LogUtils.d( "Start reconnect device "+address+" reconnect number is "+bean.getNumber());
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            connect(address);
+                        }
+                    });
+                }else{
+                    LogUtils.w( "Fail to reconnect device! "+address+" state is "+state);
+                }
+            }else {
+                closeAll();
+                LogUtils.w( "Fail to reconnect device! Bluetooth is not enable!");
+            }
+        }else{
+            LogUtils.w("Fail to reconnect device! "+address+" is remove from reconnectMap");
+            reconnectMap.remove(address);
+        }
+    }
+
+
+    /**
+     * You should invoke {@link #startConnect()} to begin to connect device. Not recommended for direct use this method
+     * @see #startConnect()
+     * @param address
+     * @return
+     */
+    protected boolean connect(final String address) {
+        BluetoothAdapter mAdapter = mBluetoothUtils.getBluetoothAdapter();
+        if (mAdapter == null || address == null) {
+            LogUtils.e("BluetoothAdapter not initialized or unspecified address "+address);
+            updateConnectStateListener(address, ConnectState.NORMAL);
+            return false;
+        }
+
+        if (!mBluetoothUtils.isBluetoothIsEnable()){
+            LogUtils.e("bluetooth is not enable.");
+            closeAll();
+//            updateConnectStateListener(address, ConnectState.NORMAL);
+            return false;
+        }
+
+        if (isEmpty(getServiceUUID())){
+            LogUtils.w("Service uuid is null");
+        }
+
+        // Previously connected device.  Try to reconnect.
+        if (gattMap.containsKey(address)){
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            LogUtils.i("Trying to use an existing gatt and reconnection device " + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+            if (mBluetoothGatt.connect()) {
+                updateConnectState(address, ConnectState.CONNECTING);
+                return true;
+            } else {
+                close(address);
+                return false;
+            }
+        }
+
+        BluetoothDevice device = mAdapter.getRemoteDevice(address);
+        if (device != null){
+             /*if We want to directly connect to the device, we can setting the autoConnect
+             parameter to false.*/
+            BluetoothGatt mBluetoothGatt = device.connectGatt(context, false, gattCallback);
+            if (mBluetoothGatt != null){
+                LogUtils.i("create a new connection address=" + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+                gattMap.put(address, mBluetoothGatt);
+                updateConnectState(address, ConnectState.CONNECTING);
+                return true;
+            } else {
+                LogUtils.e("Get Gatt fail!, address=" + address + " thread:" + (Thread.currentThread() == Looper.getMainLooper().getThread()));
+            }
+        } else {
+            LogUtils.e("Device not found, address=" + address);
+        }
+        return false;
+    }
+
+    /**
+     * 鍏抽棴钃濈墮杩炴帴,浼氶噴鏀綛luetoothGatt鎸佹湁鐨勬墍鏈夎祫婧�
+     * @param address
+     */
+    public boolean close(String address) {
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            LogUtils.w( "close gatt server " + address);
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            mBluetoothGatt.close();
+            gattMap.remove(address);
+            updateConnectState(address, ConnectState.NORMAL);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 鍏抽棴鎵�鏈夎摑鐗欒澶�
+     */
+    public void closeAll(){
+        for (String address:gattMap.keySet()) {
+            close(address);
+        }
+    }
+
+    /**
+     * 鏂紑钃濈墮杩炴帴锛屼笉浼氶噴鏀綛luetoothGatt鎸佹湁鐨勬墍鏈夎祫婧愶紝鍙互璋冪敤mBluetoothGatt.connect()寰堝揩閲嶆柊杩炴帴涓�
+     * 濡傛灉涓嶅強鏃堕噴鏀捐祫婧愶紝鍙兘鍑虹幇133閿欒锛宧ttp://www.loverobots.cn/android-ble-connection-solution-bluetoothgatt-status-133.html
+     * @param address
+     */
+    public void disconnect(String address){
+        if (!isEmpty(address) && gattMap.containsKey(address)){
+            LogUtils.w("disconnect gatt server " + address);
+            BluetoothGatt mBluetoothGatt = gattMap.get(address);
+            mBluetoothGatt.disconnect();
+            updateConnectState(address, ConnectState.NORMAL);
+        }
+    }
+
+    private void updateConnectStateListener(String address, ConnectState state){
+        synchronized (connectStateListeners){
+            for (ConnectStateListener listener:connectStateListeners){
+                if (listener != null) listener.onConnectStateChanged(address, state);
+            }
+        }
+    }
+
+    /**
+     * max connected number of bluetooth queue
+     * @return
+     */
+    public int getMaxLen(){
+        return ConnectConfig.maxConnectDeviceNum;
+    }
+
+    public boolean isEmpty(String str) {
+        return str == null || str.length() == 0;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/MultiConnectManager.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/MultiConnectManager.java
new file mode 100644
index 0000000..6f73d7b
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/connect/multiple/MultiConnectManager.java
@@ -0,0 +1,147 @@
+package com.blakequ.bluetooth_manager_lib.connect.multiple;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothManager;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.connect.BluetoothSubScribeData;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectConfig;
+import com.blakequ.bluetooth_manager_lib.connect.ConnectState;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/19 9:49 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:manager multiple bluetooth device connect
+ * <p>
+ *     1.must set uuid for subscribe bluetooth device data, {@link #setServiceUUID(String)}, {@link #addBluetoothSubscribeData(BluetoothSubScribeData)}<br>
+ *     2.register callback of bluetooth notify by {@link #setBluetoothGattCallback(BluetoothGattCallback)}<br>
+ *     3.add device to connect queue, {@link #addDeviceToQueue(String)} or {@link #addDeviceToQueue(String[])}, {@link #removeDeviceFromQueue(String)}<br>
+ *     4.start auto connect one by one, {@link #startConnect()}<br>
+ *     5.close all connect, {@link #close(String)}, {@link #closeAll()}<br>
+ *     <p/>
+ */
+@TargetApi(18)
+public final class MultiConnectManager extends ConnectRequestQueue {
+    private static final String TAG = "MultiConnectManager";
+    private static MultiConnectManager INSTANCE;
+    private BluetoothManager bluetoothManager;
+    private static String serviceUUID;
+    private BluetoothGattCallback mBluetoothGattCallback;
+    private final Queue<BluetoothSubScribeData> subscribeQueue;
+    private static Object obj = new Object();
+
+    private MultiConnectManager(Context context){
+        super(context);
+        bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
+        subscribeQueue = new ConcurrentLinkedQueue<BluetoothSubScribeData>();
+        BleManager.getBleParamsOptions();
+    }
+
+    public static MultiConnectManager getInstance(Context context){
+        //鍙岄噸閿�
+        if (INSTANCE == null){
+            synchronized (obj){
+                if (INSTANCE == null){
+                    INSTANCE = new MultiConnectManager(context);
+                }
+            }
+        }
+        return INSTANCE;
+    }
+
+    public List<BluetoothDevice> getConnectedDevice() {
+        List<BluetoothDevice> devices = bluetoothManager.getConnectedDevices(BluetoothProfile.GATT);
+        if (!isEmpty(devices)){
+            List<BluetoothDevice> newDevices = new ArrayList<BluetoothDevice>();
+            for (BluetoothDevice device: devices){
+                if (getDeviceState(device.getAddress()) == ConnectState.CONNECTED) {
+                    newDevices.add(device);
+                }else {
+                    LogUtils.i("Not exist connected device in queue "+device.getAddress());
+                }
+            }
+            return newDevices;
+        }
+        return Collections.EMPTY_LIST;
+    }
+
+    /**
+     * register callback of bluetooth notify
+     * @param callback
+     */
+    public void setBluetoothGattCallback(BluetoothGattCallback callback){
+        this.mBluetoothGattCallback = callback;
+    }
+
+    /**
+     * add subscribe data while read or write characteristic(or descriptor) after discover service.
+     * if each device using different config, you should invoke {@link #cleanSubscribeData()} to clean queue before using {@link #startSubscribe(BluetoothGatt)}
+     * @param data
+     * @see #cleanSubscribeData()
+     * @see #startSubscribe(BluetoothGatt)
+     * @see #setServiceUUID(String)
+     */
+    public void addBluetoothSubscribeData(BluetoothSubScribeData data){
+        subscribeQueue.add(data);
+    }
+
+    /**
+     * clean subscribe list
+     * @see #addBluetoothSubscribeData(BluetoothSubScribeData)
+     */
+    public void cleanSubscribeData(){
+        subscribeQueue.clear();
+    }
+
+    /**
+     * set bluetooth service uuid, can not be null
+     * @see #addBluetoothSubscribeData(BluetoothSubScribeData)
+     * @param serviceUUID
+     */
+    public void setServiceUUID(String serviceUUID){
+        this.serviceUUID = serviceUUID;
+    }
+
+    @Override
+    protected BluetoothGattCallback getBluetoothGattCallback() {
+        return mBluetoothGattCallback;
+    }
+
+    @Override
+    protected String getServiceUUID() {
+        return serviceUUID;
+    }
+
+    @Override
+    protected Queue<BluetoothSubScribeData> getSubscribeDataQueue() {
+        return subscribeQueue;
+    }
+
+    @Deprecated
+    public void setMaxConnectDeviceNum(int number){
+        ConnectConfig.maxConnectDeviceNum = number;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconDevice.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconDevice.java
new file mode 100644
index 0000000..5e1aed3
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconDevice.java
@@ -0,0 +1,8 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+/**
+ *
+ */
+public interface BeaconDevice {
+    BeaconType getBeaconType();
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconManufacturerData.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconManufacturerData.java
new file mode 100644
index 0000000..1962e93
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconManufacturerData.java
@@ -0,0 +1,31 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+import java.util.Arrays;
+
+/**
+ *
+ */
+public abstract class BeaconManufacturerData {
+        private final BeaconType mBeaconType;
+        private final byte[] mData;
+
+    protected BeaconManufacturerData(final BeaconType expectedType, final byte[] data){
+        if (BeaconUtils.getBeaconType(data) != expectedType) {
+            throw new IllegalArgumentException(
+                    "Manufacturer record '"
+                            + Arrays.toString(data)
+                            + "' is not from a " + expectedType);
+        }
+
+        this.mData = data;
+        this.mBeaconType = expectedType;
+    }
+
+    public BeaconType getBeaconType(){
+        return mBeaconType;
+    }
+
+    public byte[] getData(){
+        return mData;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconType.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconType.java
new file mode 100644
index 0000000..f8614f4
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconType.java
@@ -0,0 +1,15 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+/**
+ * ble device type
+ */
+public enum BeaconType {
+    /**
+     * not ibeacon device
+     */
+    NOT_A_BEACON,
+    /**
+     * ibeacon device
+     * */
+    IBEACON,
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconUtils.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconUtils.java
new file mode 100644
index 0000000..b99b5a0
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BeaconUtils.java
@@ -0,0 +1,57 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord;
+import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconConstants;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+
+/**
+ *
+ */
+public final class BeaconUtils {
+
+    private BeaconUtils(){
+        // TO AVOID INSTANTIATION
+    }
+
+    /**
+     * Ascertains whether a Manufacturer Data byte array belongs to a known Beacon type;
+     *
+     * @param manufacturerData a Bluetooth LE device's raw manufacturerData.
+     * @return the {@link BeaconType}
+     */
+    public static BeaconType getBeaconType(final byte[] manufacturerData) {
+        if (manufacturerData == null || manufacturerData.length == 0) {
+            return BeaconType.NOT_A_BEACON;
+        }
+
+        if(isIBeacon(manufacturerData)){
+            return BeaconType.IBEACON;
+        } else {
+            return BeaconType.NOT_A_BEACON;
+        }
+    }
+
+    /**
+     * Ascertains whether a {@link com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice} is an iBeacon;
+     *
+     * @param device a {@link com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice} device.
+     * @return the {@link BeaconType}
+     */
+    public static BeaconType getBeaconType(final BluetoothLeDevice device) {
+        final int key = AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA;
+        return getBeaconType(device.getAdRecordStore().getRecordDataAsString(key).getBytes());
+    }
+
+    private static boolean isIBeacon(final byte[] manufacturerData){
+        // An iBeacon record must be at least 25 chars long
+        if (!(manufacturerData.length >= 25)) {
+            return false;
+        }
+
+        if (ByteUtils.doesArrayBeginWith(manufacturerData, IBeaconConstants.MANUFACTURER_DATA_IBEACON_PREFIX)) {
+            return true;
+        }
+
+        return false;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothLeDevice.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothLeDevice.java
new file mode 100644
index 0000000..b1dabe0
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothLeDevice.java
@@ -0,0 +1,440 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+import android.bluetooth.BluetoothDevice;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordStore;
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecordUtils;
+import com.blakequ.bluetooth_manager_lib.device.resolvers.BluetoothClassResolver;
+import com.blakequ.bluetooth_manager_lib.device.ibeacon.IBeaconDevice;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+import com.blakequ.bluetooth_manager_lib.util.LimitedLinkHashMap;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+
+// TODO: Auto-generated Javadoc
+
+/**
+ * This is a wrapper around the default BluetoothDevice object
+ * As BluetoothDevice is final it cannot be extended, so to get it you
+ * need to call {@link #getDevice()} method.
+ *
+ * @author Alexandros Schillings
+ */
+public class BluetoothLeDevice implements Parcelable ,BeaconDevice{
+    /**
+     * The Constant CREATOR.
+     */
+    public static final Creator<BluetoothLeDevice> CREATOR = new Creator<BluetoothLeDevice>() {
+        public BluetoothLeDevice createFromParcel(final Parcel in) {
+            return new BluetoothLeDevice(in);
+        }
+
+        public BluetoothLeDevice[] newArray(final int size) {
+            return new BluetoothLeDevice[size];
+        }
+    };
+    protected static final int MAX_RSSI_LOG_SIZE = 10;
+    private static final String PARCEL_EXTRA_BLUETOOTH_DEVICE = "bluetooth_device";
+    private static final String PARCEL_EXTRA_CURRENT_RSSI = "current_rssi";
+    private static final String PARCEL_EXTRA_CURRENT_TIMESTAMP = "current_timestamp";
+    private static final String PARCEL_EXTRA_DEVICE_RSSI_LOG = "device_rssi_log";
+    private static final String PARCEL_EXTRA_DEVICE_SCANRECORD = "device_scanrecord";
+    private static final String PARCEL_EXTRA_DEVICE_SCANRECORD_STORE = "device_scanrecord_store";
+    private static final String PARCEL_EXTRA_FIRST_RSSI = "device_first_rssi";
+    private static final String PARCEL_EXTRA_FIRST_TIMESTAMP = "first_timestamp";
+    private static final long LOG_INVALIDATION_THRESHOLD = 10 * 1000;
+    private final AdRecordStore mRecordStore;
+    private final BluetoothDevice mDevice;
+    private final Map<Long, Integer> mRssiLog;
+    private final byte[] mScanRecord;
+    private final int mFirstRssi;
+    private final long mFirstTimestamp;
+    private int mCurrentRssi;
+    private long mCurrentTimestamp;
+    private transient Set<BluetoothService> mServiceSet;
+
+    /**
+     * Instantiates a new Bluetooth LE device.
+     *
+     * @param device     a standard android Bluetooth device
+     * @param rssi       the RSSI value of the Bluetooth device
+     * @param scanRecord the scan record of the device
+     * @param timestamp  the timestamp of the RSSI reading
+     */
+    public BluetoothLeDevice(final BluetoothDevice device, final int rssi, final byte[] scanRecord, final long timestamp) {
+        mDevice = device;
+        mFirstRssi = rssi;
+        mFirstTimestamp = timestamp;
+        mRecordStore = new AdRecordStore(AdRecordUtils.parseScanRecordAsSparseArray(scanRecord));
+        mScanRecord = scanRecord;
+        mRssiLog = new LimitedLinkHashMap<>(MAX_RSSI_LOG_SIZE);
+        updateRssiReading(timestamp, rssi);
+    }
+
+    /**
+     * Instantiates a new Bluetooth LE device.
+     *
+     * @param device the device
+     */
+    public BluetoothLeDevice(final BluetoothLeDevice device) {
+        mCurrentRssi = device.getRssi();
+        mCurrentTimestamp = device.getTimestamp();
+        mDevice = device.getDevice();
+        mFirstRssi = device.getFirstRssi();
+        mFirstTimestamp = device.getFirstTimestamp();
+        mRecordStore = new AdRecordStore(
+                AdRecordUtils.parseScanRecordAsSparseArray(device.getScanRecord()));
+        mRssiLog = device.getRssiLog();
+        mScanRecord = device.getScanRecord();
+    }
+
+    /**
+     * Instantiates a new bluetooth le device.
+     *
+     * @param in the in
+     */
+    @SuppressWarnings("unchecked")
+    protected BluetoothLeDevice(final Parcel in) {
+        final Bundle b = in.readBundle(getClass().getClassLoader());
+
+        mCurrentRssi = b.getInt(PARCEL_EXTRA_CURRENT_RSSI, 0);
+        mCurrentTimestamp = b.getLong(PARCEL_EXTRA_CURRENT_TIMESTAMP, 0);
+        mDevice = b.getParcelable(PARCEL_EXTRA_BLUETOOTH_DEVICE);
+        mFirstRssi = b.getInt(PARCEL_EXTRA_FIRST_RSSI, 0);
+        mFirstTimestamp = b.getLong(PARCEL_EXTRA_FIRST_TIMESTAMP, 0);
+        mRecordStore = b.getParcelable(PARCEL_EXTRA_DEVICE_SCANRECORD_STORE);
+        mRssiLog = (Map<Long, Integer>) b.getSerializable(PARCEL_EXTRA_DEVICE_RSSI_LOG);
+        mScanRecord = b.getByteArray(PARCEL_EXTRA_DEVICE_SCANRECORD);
+    }
+
+    @Override
+    public BeaconType getBeaconType() {
+        return BeaconUtils.getBeaconType(this);
+    }
+
+    /**
+     * if ble device is ibeacon will return Ibeacon device, else return null
+     * @return
+     */
+    public IBeaconDevice getIBeaconDevice(){
+        if (getBeaconType() == BeaconType.IBEACON){
+            return new IBeaconDevice(this);
+        }
+        return null;
+    }
+
+    /**
+     * Adds the to rssi log.
+     *
+     * @param timestamp   the timestamp
+     * @param rssiReading the rssi reading
+     */
+    private void addToRssiLog(final long timestamp, final int rssiReading) {
+        synchronized (mRssiLog) {
+            if (timestamp - mCurrentTimestamp > LOG_INVALIDATION_THRESHOLD) {
+                mRssiLog.clear();
+            }
+
+            mCurrentRssi = rssiReading;
+            mCurrentTimestamp = timestamp;
+            mRssiLog.put(timestamp, rssiReading);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see android.os.Parcelable#describeContents()
+     */
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals(final Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        final BluetoothLeDevice other = (BluetoothLeDevice) obj;
+        if (mCurrentRssi != other.mCurrentRssi)
+            return false;
+        if (mCurrentTimestamp != other.mCurrentTimestamp)
+            return false;
+        if (mDevice == null) {
+            if (other.mDevice != null)
+                return false;
+        } else if (!mDevice.equals(other.mDevice))
+            return false;
+        if (mFirstRssi != other.mFirstRssi)
+            return false;
+        if (mFirstTimestamp != other.mFirstTimestamp)
+            return false;
+        if (mRecordStore == null) {
+            if (other.mRecordStore != null)
+                return false;
+        } else if (!mRecordStore.equals(other.mRecordStore))
+            return false;
+        if (mRssiLog == null) {
+            if (other.mRssiLog != null)
+                return false;
+        } else if (!mRssiLog.equals(other.mRssiLog))
+            return false;
+        if (!Arrays.equals(mScanRecord, other.mScanRecord))
+            return false;
+        return true;
+    }
+
+    /**
+     * Gets the ad record store.
+     *
+     * @return the ad record store
+     */
+    public AdRecordStore getAdRecordStore() {
+        return mRecordStore;
+    }
+
+    /**
+     * Gets the address.
+     *
+     * @return the address
+     */
+    public String getAddress() {
+        return mDevice.getAddress();
+    }
+
+    /**
+     * Gets the bluetooth device bond state.
+     *
+     * @return the bluetooth device bond state
+     */
+    public String getBluetoothDeviceBondState() {
+        return resolveBondingState(mDevice.getBondState());
+    }
+
+    /**
+     * Gets the bluetooth device class name.
+     *
+     * @return the bluetooth device class name
+     */
+    public String getBluetoothDeviceClassName() {
+        return BluetoothClassResolver.resolveDeviceClass(mDevice.getBluetoothClass().getDeviceClass());
+    }
+
+    public Set<BluetoothService> getBluetoothDeviceKnownSupportedServices() {
+        if (mServiceSet == null) {
+            synchronized (this) {
+                if (mServiceSet == null) {
+                    final Set<BluetoothService> serviceSet = new HashSet<>();
+                    for (final BluetoothService service : BluetoothService.values()) {
+
+                        if (mDevice.getBluetoothClass().hasService(service.getAndroidConstant())) {
+                            serviceSet.add(service);
+                        }
+                    }
+                    mServiceSet = Collections.unmodifiableSet(serviceSet);
+                }
+            }
+        }
+
+        return mServiceSet;
+    }
+
+    /**
+     * Gets the bluetooth device major class name.
+     *
+     * @return the bluetooth device major class name
+     */
+    public String getBluetoothDeviceMajorClassName() {
+        return BluetoothClassResolver.resolveMajorDeviceClass(mDevice.getBluetoothClass().getMajorDeviceClass());
+    }
+
+    /**
+     * Gets the device.
+     *
+     * @return the device
+     */
+    public BluetoothDevice getDevice() {
+        return mDevice;
+    }
+
+    /**
+     * Gets the first rssi.
+     *
+     * @return the first rssi
+     */
+    public int getFirstRssi() {
+        return mFirstRssi;
+    }
+
+    /**
+     * Gets the first timestamp.
+     *
+     * @return the first timestamp
+     */
+    public long getFirstTimestamp() {
+        return mFirstTimestamp;
+    }
+
+    /**
+     * Gets the name.
+     *
+     * @return the name
+     */
+    public String getName() {
+        return mDevice.getName();
+    }
+
+    /**
+     * Gets the rssi.
+     *
+     * @return the rssi
+     */
+    public int getRssi() {
+        return mCurrentRssi;
+    }
+
+    /**
+     * Gets the rssi log.
+     *
+     * @return the rssi log
+     */
+    protected Map<Long, Integer> getRssiLog() {
+        synchronized (mRssiLog) {
+            return mRssiLog;
+        }
+    }
+
+    /**
+     * Gets the running average rssi.
+     *
+     * @return the running average rssi
+     */
+    public double getRunningAverageRssi() {
+        int sum = 0;
+        int count = 0;
+
+        synchronized (mRssiLog) {
+
+            for (final Long aLong : mRssiLog.keySet()) {
+                count++;
+                sum += mRssiLog.get(aLong);
+            }
+        }
+
+        if (count > 0) {
+            return sum / count;
+        } else {
+            return 0;
+        }
+
+    }
+
+    /**
+     * Gets the scan record.
+     *
+     * @return the scan record
+     */
+    public byte[] getScanRecord() {
+        return mScanRecord;
+    }
+
+    /**
+     * Gets the timestamp.
+     *
+     * @return the timestamp
+     */
+    public long getTimestamp() {
+        return mCurrentTimestamp;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + mCurrentRssi;
+        result = prime * result + (int) (mCurrentTimestamp ^ (mCurrentTimestamp >>> 32));
+        result = prime * result + ((mDevice == null) ? 0 : mDevice.hashCode());
+        result = prime * result + mFirstRssi;
+        result = prime * result + (int) (mFirstTimestamp ^ (mFirstTimestamp >>> 32));
+        result = prime * result + ((mRecordStore == null) ? 0 : mRecordStore.hashCode());
+        result = prime * result + ((mRssiLog == null) ? 0 : mRssiLog.hashCode());
+        result = prime * result + Arrays.hashCode(mScanRecord);
+        return result;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return "BluetoothLeDevice [mDevice=" + mDevice + ", mRssi=" + mFirstRssi + ", mScanRecord=" + ByteUtils.byteArrayToHexString(mScanRecord) + ", mRecordStore=" + mRecordStore + ", getBluetoothDeviceBondState()=" + getBluetoothDeviceBondState() + ", getBluetoothDeviceClassName()=" + getBluetoothDeviceClassName() + "]";
+    }
+
+    /**
+     * Update rssi reading.
+     *
+     * @param timestamp   the timestamp
+     * @param rssiReading the rssi reading
+     */
+    public void updateRssiReading(final long timestamp, final int rssiReading) {
+        addToRssiLog(timestamp, rssiReading);
+    }
+
+    /* (non-Javadoc)
+     * @see android.os.Parcelable#writeToParcel(android.os.Parcel, int)
+     */
+    @Override
+    public void writeToParcel(final Parcel parcel, final int arg1) {
+        final Bundle b = new Bundle(getClass().getClassLoader());
+
+        b.putByteArray(PARCEL_EXTRA_DEVICE_SCANRECORD, mScanRecord);
+
+        b.putInt(PARCEL_EXTRA_FIRST_RSSI, mFirstRssi);
+        b.putInt(PARCEL_EXTRA_CURRENT_RSSI, mCurrentRssi);
+
+        b.putLong(PARCEL_EXTRA_FIRST_TIMESTAMP, mFirstTimestamp);
+        b.putLong(PARCEL_EXTRA_CURRENT_TIMESTAMP, mCurrentTimestamp);
+
+        b.putParcelable(PARCEL_EXTRA_BLUETOOTH_DEVICE, mDevice);
+        b.putParcelable(PARCEL_EXTRA_DEVICE_SCANRECORD_STORE, mRecordStore);
+        b.putSerializable(PARCEL_EXTRA_DEVICE_RSSI_LOG, (Serializable) mRssiLog);
+
+        parcel.writeBundle(b);
+    }
+
+    /**
+     * Resolve bonding state.
+     *
+     * @param bondState the bond state
+     * @return the string
+     */
+    private static String resolveBondingState(final int bondState) {
+        switch (bondState) {
+            case BluetoothDevice.BOND_BONDED:
+                return "Paired";
+            case BluetoothDevice.BOND_BONDING:
+                return "Pairing";
+            case BluetoothDevice.BOND_NONE:
+                return "Unbonded";
+            default:
+                return "Unknown";
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothService.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothService.java
new file mode 100644
index 0000000..7c4ccf6
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/BluetoothService.java
@@ -0,0 +1,28 @@
+package com.blakequ.bluetooth_manager_lib.device;
+
+import android.bluetooth.BluetoothClass;
+
+/**
+ *
+ */
+public enum BluetoothService {
+    AUDIO(BluetoothClass.Service.AUDIO),
+    CAPTURE(BluetoothClass.Service.CAPTURE),
+    INFORMATION(BluetoothClass.Service.INFORMATION),
+    LIMITED_DISCOVERABILITY(BluetoothClass.Service.LIMITED_DISCOVERABILITY),
+    NETWORKING(BluetoothClass.Service.NETWORKING),
+    OBJECT_TRANSFER(BluetoothClass.Service.OBJECT_TRANSFER),
+    POSITIONING(BluetoothClass.Service.POSITIONING),
+    RENDER(BluetoothClass.Service.RENDER),
+    TELEPHONY(BluetoothClass.Service.TELEPHONY);
+
+    private final int mAndroidConstant;
+
+    BluetoothService(final int androidCode){
+        mAndroidConstant = androidCode;
+    }
+
+    public int getAndroidConstant(){
+        return mAndroidConstant;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecord.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecord.java
new file mode 100644
index 0000000..0ce9db5
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecord.java
@@ -0,0 +1,227 @@
+package com.blakequ.bluetooth_manager_lib.device.adrecord;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.Arrays;
+
+/**
+ * Created by Dave Smith
+ * Double Encore, Inc.
+ * <p>
+ * Expanded by Alexandros Schillings
+ */
+public final class AdRecord implements Parcelable {
+    //	02 # Number of bytes that follow in first AD structure
+    //	01 # Flags AD type
+    //	1A # Flags value 0x1A = 000011010
+    //	   bit 0 (OFF) LE Limited Discoverable Mode
+    //	   bit 1 (ON) LE General Discoverable Mode
+    //	   bit 2 (OFF) BR/EDR Not Supported
+    //	   bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
+    //	   bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
+    //	1A # Number of bytes that follow in second (and last) AD structure
+    //	FF # Manufacturer specific data AD type
+    //	4C 00 # Company identifier code (0x004C == Apple)
+    //	02 # Byte 0 of iBeacon advertisement indicator
+    //	15 # Byte 1 of iBeacon advertisement indicator
+    //	e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon proximity uuid
+    //	00 00 # major
+    //	00 00 # minor
+    //	c5 # The 2's complement of the calibrated Tx Power
+
+
+    /**
+     * General FLAGS
+     * <p>
+     * Description: Flags
+     * <p>
+     * Information:
+     * Bit 0: LE Limited Discoverable Mode
+     * Bit 1: LE General Discoverable Mode
+     * Bit 2: BR/EDR Not Supported (i.e. bit 37 of LMP Extended Feature bits Page 0)
+     * Bit 3: Simultaneous LE and BR/EDR to Same Device Capable (Controller) (i.e. bit 49 of LMP Extended Feature bits Page 0)
+     * Bit 4: Simultaneous LE and BR/EDR to Same Device Capable (Host) (i.e. bit 66 of LMP Extended Feature bits Page 1)
+     * Bits 5-7 Reserved
+     */
+    public static final int TYPE_FLAGS = 0x01;
+    // SERVICE
+    public static final int TYPE_UUID16_INC = 0x02;
+    public static final int TYPE_UUID16 = 0x03;
+    public static final int TYPE_UUID32_INC = 0x04;
+    public static final int TYPE_UUID32 = 0x05;
+    public static final int TYPE_UUID128_INC = 0x06;
+    public static final int TYPE_UUID128 = 0x07;
+    // Local name
+    public static final int TYPE_LOCAL_NAME_SHORT = 0x08;
+    public static final int TYPE_LOCAL_NAME_COMPLETE = 0x09;
+    // TX Power Level
+    public static final int TYPE_TX_POWER_LEVEL = 0x0A;
+    // SIMPLE PAIRING OPTIONAL OOB TAGS
+    public static final int TYPE_DEVICE_CLASS = 0x0D;
+    public static final int TYPE_SIMPLE_PAIRING_HASH_C = 0x0E;
+    public static final int TYPE_SIMPLE_PAIRING_RANDOMIZER_R = 0x0F;
+    // SECURITY MANAGER TK VALUE
+    public static final int TYPE_TK_VALUE = 0x10;
+    /* SECURITY MANAGER OOB FLAGS
+     *
+     * Description: Flag (1 octet)
+     *
+     * Information:
+     * Bit 0: OOB Flags Field: (0 = OOB data not present, 1 = OOB data present)
+     * Bit 1: LE supported (Host) (i.e. bit 65 of LMP Extended Feature bits Page 1
+     * Bit 2: Simultaneous LE and BR/EDR to Same Device Capable (Host) (i.e. bit 66 of LMP Extended Feature bits Page 1)
+     * Bit 3: Address type (0 = Public Address, 1 = Random Address)
+     * Bits 4-7 Reserved
+     */
+    public static final int TYPE_SECURITY_MANAGER_OOB_FLAGS = 0x11;
+    /* SLAVE CONNECTION INTERVAL RANGE
+     *
+     * Description: Slave Connection Interval Range
+     *
+     * Information:
+     * The first 2 octets defines the minimum value for the connection interval in the following manner:
+     *	connInterval min = Conn_Interval_Min * 1.25 ms
+     *	Conn_Interval_Min range: 0x0006 to 0x0C80
+     *	Value of 0xFFFF indicates no specific minimum.
+     *	Values outside the range are reserved. (excluding 0xFFFF)
+     *
+     * The second 2 octets defines the maximum value for the connection interval in the following manner:
+     *  connInterval max = Conn_Interval_Max * 1.25 ms
+     *  Conn_Interval_Max range: 0x0006 to 0x0C80
+     *  Conn_Interval_Max shall be equal to or greater
+     *  than the Conn_Interval_Min.
+     *  Value of 0xFFFF indicates no specific maximum.
+     *  Values outside the range are reserved (excluding 0xFFFF)
+     */
+    public static final int TYPE_CONNECTION_INTERVAL_RANGE = 0x12;
+    // SERVICE SOLICITATION
+    public static final int TYPE_SERVICE_UUIDS_LIST_16BIT = 0x14;
+    public static final int TYPE_SERVICE_UUIDS_LIST_128BIT = 0x15;
+    /* SERVICE DATA
+     *
+     * Description: Service Data (2 or more octets)
+     * Information: The first 2 octets contain the 16 bit Service UUID followed by additional service data
+     */
+    public static final int TYPE_SERVICE_DATA = 0x16;
+    /* MANUFACTURER SPECIFIC DATA
+     *
+     * Description: Manufacturer Specific Data (2 or more octets)
+     * Information: The first 2 octets contain the Company Identifier Code followed by additional manufacturer specific data
+     */
+    public static final int TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF;
+    public static final Creator<AdRecord> CREATOR = new Creator<AdRecord>() {
+        public AdRecord createFromParcel(final Parcel in) {
+            return new AdRecord(in);
+        }
+
+        public AdRecord[] newArray(final int size) {
+            return new AdRecord[size];
+        }
+    };
+    private static final String PARCEL_RECORD_DATA = "record_data";
+    private static final String PARCEL_RECORD_TYPE = "record_type";
+    private static final String PARCEL_RECORD_LENGTH = "record_length";
+    /* Model Object Definition */
+    private final int mLength;
+    private final int mType;
+    private final byte[] mData;
+
+    public AdRecord(final int length, final int type, final byte[] data) {
+        mLength = length;
+        mType = type;
+        mData = data;
+    }
+
+    public AdRecord(final Parcel in) {
+        final Bundle b = in.readBundle(getClass().getClassLoader());
+        mLength = b.getInt(PARCEL_RECORD_LENGTH);
+        mType = b.getInt(PARCEL_RECORD_TYPE);
+        mData = b.getByteArray(PARCEL_RECORD_DATA);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    public byte[] getData() {
+        return mData;
+    }
+
+    public String getHumanReadableType() {
+        return getHumanReadableAdType(mType);
+    }
+
+    public int getLength() {
+        return mLength;
+    }
+
+    public int getType() {
+        return mType;
+    }
+
+    @Override
+    public String toString() {
+        return "AdRecord [mLength=" + mLength + ", mType=" + mType + ", mData=" + Arrays.toString(mData) + ", getHumanReadableType()=" + getHumanReadableType() + "]";
+    }
+
+    @Override
+    public void writeToParcel(final Parcel parcel, final int arg1) {
+        final Bundle b = new Bundle(getClass().getClassLoader());
+
+        b.putInt(PARCEL_RECORD_LENGTH, mLength);
+        b.putInt(PARCEL_RECORD_TYPE, mType);
+        b.putByteArray(PARCEL_RECORD_DATA, mData);
+
+        parcel.writeBundle(b);
+    }
+
+    private static String getHumanReadableAdType(final int type) {
+        switch (type) {
+            case TYPE_CONNECTION_INTERVAL_RANGE:
+                return "Slave Connection Interval Range";
+            case TYPE_DEVICE_CLASS:
+                return "Class of device";
+            case TYPE_FLAGS:
+                return "Flags";
+            case TYPE_MANUFACTURER_SPECIFIC_DATA:
+                return "Manufacturer Specific Data";
+            case TYPE_LOCAL_NAME_COMPLETE:
+                return "Name (Complete)";
+            case TYPE_LOCAL_NAME_SHORT:
+                return "Name (Short)";
+            case TYPE_SECURITY_MANAGER_OOB_FLAGS:
+                return "Security Manager OOB Flags";
+            case TYPE_SERVICE_UUIDS_LIST_128BIT:
+                return "Service UUIDs (128bit)";
+            case TYPE_SERVICE_UUIDS_LIST_16BIT:
+                return "Service UUIDs (16bit)";
+            case TYPE_SERVICE_DATA:
+                return "Service Data";
+            case TYPE_SIMPLE_PAIRING_HASH_C:
+                return "Simple Pairing Hash C";
+            case TYPE_SIMPLE_PAIRING_RANDOMIZER_R:
+                return "Simple Pairing Randomizer R";
+            case TYPE_TK_VALUE:
+                return "TK Value";
+            case TYPE_TX_POWER_LEVEL:
+                return "Transmission Power Level";
+            case TYPE_UUID128:
+                return "Complete list of 128-bit UUIDs available";
+            case TYPE_UUID128_INC:
+                return "More 128-bit UUIDs available";
+            case TYPE_UUID16:
+                return "Complete list of 16-bit UUIDs available";
+            case TYPE_UUID16_INC:
+                return "More 16-bit UUIDs available";
+            case TYPE_UUID32:
+                return "Complete list of 32-bit UUIDs available";
+            case TYPE_UUID32_INC:
+                return "More 32-bit UUIDs available";
+            default:
+                return "Unknown AdRecord Structure: " + type;
+        }
+    }
+}
\ No newline at end of file
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordStore.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordStore.java
new file mode 100644
index 0000000..577a3d7
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordStore.java
@@ -0,0 +1,157 @@
+package com.blakequ.bluetooth_manager_lib.device.adrecord;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.SparseArray;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+
+/**
+ * The Class AdRecordStore.
+ */
+public class AdRecordStore implements Parcelable {
+    public static final Creator<AdRecordStore> CREATOR = new Creator<AdRecordStore>() {
+        public AdRecordStore createFromParcel(final Parcel in) {
+            return new AdRecordStore(in);
+        }
+
+        public AdRecordStore[] newArray(final int size) {
+            return new AdRecordStore[size];
+        }
+    };
+    private final SparseArray<AdRecord> mAdRecords;
+    private final String mLocalNameComplete;
+    private final String mLocalNameShort;
+
+    public AdRecordStore(final Parcel in) {
+        final Bundle b = in.readBundle(getClass().getClassLoader());
+        mAdRecords = b.getSparseParcelableArray("records_array");
+        mLocalNameComplete = b.getString("local_name_complete");
+        mLocalNameShort = b.getString("local_name_short");
+    }
+
+    /**
+     * Instantiates a new Bluetooth LE device Ad Record Store.
+     *
+     * @param adRecords the ad records
+     */
+    public AdRecordStore(final SparseArray<AdRecord> adRecords) {
+        mAdRecords = adRecords;
+
+        mLocalNameComplete = AdRecordUtils.getRecordDataAsString(
+                mAdRecords.get(AdRecord.TYPE_LOCAL_NAME_COMPLETE));
+
+        mLocalNameShort = AdRecordUtils.getRecordDataAsString(
+                mAdRecords.get(AdRecord.TYPE_LOCAL_NAME_SHORT));
+
+    }
+
+    /* (non-Javadoc)
+     * @see android.os.Parcelable#describeContents()
+     */
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    /**
+     * Gets the short local device name.
+     *
+     * @return the local name complete
+     */
+    public String getLocalNameComplete() {
+        return mLocalNameComplete;
+    }
+
+    /**
+     * Gets the complete local device name.
+     *
+     * @return the local name short
+     */
+    public String getLocalNameShort() {
+        return mLocalNameShort;
+    }
+
+    /**
+     * retrieves an individual record.
+     *
+     * @param record the record
+     * @return the record
+     */
+    public AdRecord getRecord(final int record) {
+        return mAdRecords.get(record);
+    }
+
+    /**
+     * Gets the record data as string.
+     *
+     * @param record the record
+     * @return the record data as string
+     */
+    public String getRecordDataAsString(final int record) {
+        return AdRecordUtils.getRecordDataAsString(
+                mAdRecords.get(record));
+    }
+
+    /**
+     * Gets the record as collection.
+     *
+     * @return the records as collection
+     */
+    public Collection<AdRecord> getRecordsAsCollection() {
+        return Collections.unmodifiableCollection(asList(mAdRecords));
+    }
+
+    /**
+     * Checks if is record present.
+     *
+     * @param record the record
+     * @return true, if is record present
+     */
+    public boolean isRecordPresent(final int record) {
+        return mAdRecords.indexOfKey(record) >= 0;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return "AdRecordStore [mLocalNameComplete=" + mLocalNameComplete + ", mLocalNameShort=" + mLocalNameShort + "]";
+    }
+
+    /* (non-Javadoc)
+     * @see android.os.Parcelable#writeToParcel(android.os.Parcel, int)
+     */
+    @Override
+    public void writeToParcel(final Parcel parcel, final int arg1) {
+        final Bundle b = new Bundle();
+        b.putString("local_name_complete", mLocalNameComplete);
+        b.putString("local_name_short", mLocalNameShort);
+        b.putSparseParcelableArray("records_array", mAdRecords);
+
+        parcel.writeBundle(b);
+    }
+
+    /**
+     * As list.
+     *
+     * @param <C>         the generic type
+     * @param sparseArray the sparse array
+     * @return the collection
+     */
+    public static <C> Collection<C> asList(final SparseArray<C> sparseArray) {
+        if (sparseArray == null) return null;
+
+        final Collection<C> arrayList = new ArrayList<>(sparseArray.size());
+        for (int i = 0; i < sparseArray.size(); i++) {
+            arrayList.add(sparseArray.valueAt(i));
+        }
+
+        return arrayList;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordUtils.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordUtils.java
new file mode 100644
index 0000000..59eaff4
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/adrecord/AdRecordUtils.java
@@ -0,0 +1,132 @@
+package com.blakequ.bluetooth_manager_lib.device.adrecord;
+
+import android.annotation.SuppressLint;
+import android.util.SparseArray;
+
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public final class AdRecordUtils {
+
+    private AdRecordUtils(){
+        // TO AVOID INSTANTIATION
+    }
+
+    public static String getRecordDataAsString(final AdRecord nameRecord) {
+        if (nameRecord == null) {
+            return "";
+        }
+        return new String(nameRecord.getData());
+    }
+
+    public static byte[] getServiceData(final AdRecord serviceData) {
+        if (serviceData == null) {
+            return null;
+        }
+        if (serviceData.getType() != AdRecord.TYPE_SERVICE_DATA) return null;
+
+        final byte[] raw = serviceData.getData();
+        //Chop out the uuid
+        return Arrays.copyOfRange(raw, 2, raw.length);
+    }
+
+    public static int getServiceDataUuid(final AdRecord serviceData) {
+        if (serviceData == null) {
+            return -1;
+        }
+        if (serviceData.getType() != AdRecord.TYPE_SERVICE_DATA) return -1;
+
+        final byte[] raw = serviceData.getData();
+        //Find UUID data in byte array
+        int uuid = (raw[1] & 0xFF) << 8;
+        uuid += (raw[0] & 0xFF);
+
+        return uuid;
+    }
+
+    /*
+     * Read out all the AD structures from the raw scan record
+     */
+    public static List<AdRecord> parseScanRecordAsList(final byte[] scanRecord) {
+        final List<AdRecord> records = new ArrayList<>();
+
+        int index = 0;
+        while (index < scanRecord.length) {
+            final int length = scanRecord[index++];
+            //Done once we run out of records
+            if (length == 0) break;
+
+            final int type = ByteUtils.getIntFromByte(scanRecord[index]);
+
+            //Done if our record isn't a valid type
+            if (type == 0) break;
+
+            final byte[] data = Arrays.copyOfRange(scanRecord, index + 1, index + length);
+
+            records.add(new AdRecord(length, type, data));
+
+            //Advance
+            index += length;
+        }
+
+        return Collections.unmodifiableList(records);
+    }
+
+    @SuppressLint("UseSparseArrays")
+    public static Map<Integer, AdRecord> parseScanRecordAsMap(final byte[] scanRecord) {
+        final Map<Integer, AdRecord> records = new HashMap<>();
+
+        int index = 0;
+        while (index < scanRecord.length) {
+            final int length = scanRecord[index++];
+            //Done once we run out of records
+            if (length == 0) break;
+
+            final int type = ByteUtils.getIntFromByte(scanRecord[index]);
+
+            //Done if our record isn't a valid type
+            if (type == 0) break;
+
+            final byte[] data = Arrays.copyOfRange(scanRecord, index + 1, index + length);
+
+            records.put(type, new AdRecord(length, type, data));
+
+            //Advance
+            index += length;
+        }
+
+        return Collections.unmodifiableMap(records);
+    }
+
+    public static SparseArray<AdRecord> parseScanRecordAsSparseArray(final byte[] scanRecord) {
+        final SparseArray<AdRecord> records = new SparseArray<>();
+
+        int index = 0;
+        while (index < scanRecord.length) {
+            final int length = scanRecord[index++];
+            //Done once we run out of records
+            if (length == 0) break;
+
+            final int type = ByteUtils.getIntFromByte(scanRecord[index]);
+
+            //Done if our record isn't a valid type
+            if (type == 0) break;
+
+            final byte[] data = Arrays.copyOfRange(scanRecord, index + 1, index + length);
+
+            records.put(type, new AdRecord(length, type, data));
+
+            //Advance
+            index += length;
+        }
+
+        return records;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconConstants.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconConstants.java
new file mode 100644
index 0000000..d301bbe
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconConstants.java
@@ -0,0 +1,9 @@
+package com.blakequ.bluetooth_manager_lib.device.ibeacon;
+
+/**
+ *
+ */
+public class IBeaconConstants {
+    public static final byte[] MANUFACTURER_DATA_IBEACON_PREFIX = {0x4C, 0x00, 0x02, 0x15};
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDevice.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDevice.java
new file mode 100644
index 0000000..ac90348
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDevice.java
@@ -0,0 +1,144 @@
+package com.blakequ.bluetooth_manager_lib.device.ibeacon;
+
+import android.annotation.SuppressLint;
+import android.bluetooth.BluetoothDevice;
+import android.os.Parcel;
+
+import com.blakequ.bluetooth_manager_lib.device.BeaconDevice;
+import com.blakequ.bluetooth_manager_lib.device.BeaconType;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+
+
+@SuppressLint("ParcelCreator")
+public class IBeaconDevice extends BluetoothLeDevice implements BeaconDevice {
+
+    /**
+     * The m iBeacon data.
+     */
+    private final IBeaconManufacturerData mIBeaconData;
+
+    /**
+     * Instantiates a new iBeacon device.
+     *
+     * @param device     the device
+     * @param rssi       the RSSI value
+     * @param scanRecord the scanRecord
+     * @throws IllegalArgumentException if the passed device is not an iBeacon
+     */
+    public IBeaconDevice(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
+        super(device, rssi, scanRecord, 0);
+        mIBeaconData = new IBeaconManufacturerData(this);
+    }
+
+    /**
+     * Instantiates a new iBeacon device.
+     *
+     * @param device     the device
+     * @param rssi       the RSSI value of the RSSI measurement
+     * @param scanRecord the scan record
+     * @param timestamp  the timestamp of the RSSI measurement
+     * @throws IllegalArgumentException if the passed device is not an iBeacon
+     */
+    public IBeaconDevice(final BluetoothDevice device, final int rssi, final byte[] scanRecord, final long timestamp) {
+        super(device, rssi, scanRecord, timestamp);
+        mIBeaconData = new IBeaconManufacturerData(this);
+    }
+
+    /**
+     * Will try to convert a {@link BluetoothLeDevice} into an
+     * iBeacon Device.
+     *
+     * @param device the device
+     * @throws IllegalArgumentException if the passed device is not an iBeacon
+     */
+    public IBeaconDevice(final BluetoothLeDevice device) {
+        super(device);
+        mIBeaconData = new IBeaconManufacturerData(this);
+    }
+
+    private IBeaconDevice(final Parcel in) {
+        super(in);
+        mIBeaconData = new IBeaconManufacturerData(this);
+    }
+
+    /**
+     * Gets the estimated Accuracy of the reading in meters based on
+     * a simple running average of the last {@link #MAX_RSSI_LOG_SIZE}
+     * samples.
+     *
+     * @return the accuracy in meters
+     */
+    public double getAccuracy() {
+        return IBeaconUtils.calculateAccuracy(
+                getCalibratedTxPower(),
+                getRunningAverageRssi());
+    }
+
+    @Override
+    public BeaconType getBeaconType() {
+        return BeaconType.IBEACON;
+    }
+
+    /**
+     * Gets the calibrated TX power of the iBeacon device as reported.
+     *
+     * @return the calibrated TX power
+     */
+    public int getCalibratedTxPower() {
+        return getIBeaconData().getCalibratedTxPower();
+    }
+
+    /**
+     * Gets the iBeacon company identifier.
+     *
+     * @return the company identifier
+     */
+    public int getCompanyIdentifier() {
+        return getIBeaconData().getCompanyIdentifier();
+    }
+
+    /**
+     * Gets the estimated Distance descriptor.
+     *
+     * @return the distance descriptor
+     */
+    public IBeaconDistanceDescriptor getDistanceDescriptor() {
+        return IBeaconUtils.getDistanceDescriptor(getAccuracy());
+    }
+
+    /**
+     * Gets the iBeacon manufacturing data.
+     *
+     * @return the iBeacon data
+     */
+    public IBeaconManufacturerData getIBeaconData() {
+        return mIBeaconData;
+    }
+
+    /**
+     * Gets the iBeacon Major value.
+     *
+     * @return the Major value
+     */
+    public int getMajor() {
+        return getIBeaconData().getMajor();
+    }
+
+    /**
+     * Gets the iBeacon Minor value.
+     *
+     * @return the Minor value
+     */
+    public int getMinor() {
+        return getIBeaconData().getMinor();
+    }
+
+    /**
+     * Gets the iBeacon UUID.
+     *
+     * @return the UUID
+     */
+    public String getUUID() {
+        return getIBeaconData().getUUID();
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDistanceDescriptor.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDistanceDescriptor.java
new file mode 100644
index 0000000..0b61677
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconDistanceDescriptor.java
@@ -0,0 +1,8 @@
+package com.blakequ.bluetooth_manager_lib.device.ibeacon;
+
+public enum IBeaconDistanceDescriptor {
+    IMMEDIATE,
+    NEAR,
+    FAR,
+    UNKNOWN,
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconManufacturerData.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconManufacturerData.java
new file mode 100644
index 0000000..841f5ee
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconManufacturerData.java
@@ -0,0 +1,134 @@
+package com.blakequ.bluetooth_manager_lib.device.ibeacon;
+
+import com.blakequ.bluetooth_manager_lib.device.BeaconManufacturerData;
+import com.blakequ.bluetooth_manager_lib.device.BeaconType;
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+import com.blakequ.bluetooth_manager_lib.device.adrecord.AdRecord;
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+
+import java.util.Arrays;
+
+
+/**
+ * Parses the Manufactured Data field of an iBeacon
+ * <p>
+ * The parsing is based on the following schema:
+ * <pre>
+ * Byte|Value
+ * -------------------------------------------------
+ * 0	4C - Byte 1 (LSB) of Company identifier code
+ * 1	00 - Byte 0 (MSB) of Company identifier code (0x004C == Apple)
+ * 2	02 - Byte 0 of iBeacon advertisement indicator
+ * 3	15 - Byte 1 of iBeacon advertisement indicator
+ * 4	e2 |\
+ * 5	c5 |\\
+ * 6	6d |#\\
+ * 7	b5 |##\\
+ * 8	df |###\\
+ * 9	fb |####\\
+ * 10	48 |#####\\
+ * 11	d2 |#####|| iBeacon
+ * 12	b0 |#####|| Proximity UUID
+ * 13	60 |#####//
+ * 14	d0 |####//
+ * 15	f5 |###//
+ * 16	a7 |##//
+ * 17	10 |#//
+ * 18	96 |//
+ * 19	e0 |/
+ * 20	00 - major
+ * 21	00
+ * 22	00 - minor
+ * 23	00
+ * 24	c5 - The 2's complement of the calibrated Tx Power
+ * </pre>
+ * @author Alexandros Schillings
+ */
+
+public final class IBeaconManufacturerData extends BeaconManufacturerData {
+    private final int mCalibratedTxPower;
+    private final int mCompanyIdentidier;
+    private final int mIBeaconAdvertisment;
+    private final int mMajor;
+    private final int mMinor;
+    private final String mUUID;
+
+    /**
+     * Instantiates a new iBeacon manufacturer data object.
+     *
+     * @param device a {@link BluetoothLeDevice}
+     * @throws IllegalArgumentException if the data is not from an iBeacon.
+     */
+    public IBeaconManufacturerData(final BluetoothLeDevice device) {
+        this(device.getAdRecordStore().getRecord(AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA).getData());
+    }
+
+    /**
+     * Instantiates a new iBeacon manufacturer data object.
+     *
+     * @param manufacturerData the {@link AdRecord#TYPE_MANUFACTURER_SPECIFIC_DATA} data array
+     * @throws IllegalArgumentException if the data is not from an iBeacon.
+     */
+    public IBeaconManufacturerData(final byte[] manufacturerData) {
+        super(BeaconType.IBEACON, manufacturerData);
+
+        final byte[] intArray = Arrays.copyOfRange(manufacturerData, 0, 2);
+        ByteUtils.invertArray(intArray);
+
+        mCompanyIdentidier = ByteUtils.getIntFrom2ByteArray(intArray);
+        mIBeaconAdvertisment = ByteUtils.getIntFrom2ByteArray(Arrays.copyOfRange(manufacturerData, 2, 4));
+        mUUID = IBeaconUtils.calculateUuidString(Arrays.copyOfRange(manufacturerData, 4, 20));
+        mMajor = ByteUtils.getIntFrom2ByteArray(Arrays.copyOfRange(manufacturerData, 20, 22));
+        mMinor = ByteUtils.getIntFrom2ByteArray(Arrays.copyOfRange(manufacturerData, 22, 24));
+        mCalibratedTxPower = manufacturerData[24];
+    }
+
+    /**
+     * Gets the calibrated TX power of the iBeacon device as reported.
+     *
+     * @return the calibrated TX power
+     */
+    public int getCalibratedTxPower() {
+        return mCalibratedTxPower;
+    }
+
+    /**
+     * Gets the iBeacon company identifier.
+     *
+     * @return the company identifier
+     */
+    public int getCompanyIdentifier() {
+        return mCompanyIdentidier;
+    }
+
+    public int getIBeaconAdvertisement() {
+        return mIBeaconAdvertisment;
+    }
+
+    /**
+     * Gets the iBeacon Major value.
+     *
+     * @return the Major value
+     */
+    public int getMajor() {
+        return mMajor;
+    }
+
+    /**
+     * Gets the iBeacon Minor value.
+     *
+     * @return the Minor value
+     */
+    public int getMinor() {
+        return mMinor;
+    }
+
+    /**
+     * Gets the iBeacon UUID.
+     *
+     * @return the UUID
+     */
+    public String getUUID() {
+        return mUUID;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconUtils.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconUtils.java
new file mode 100644
index 0000000..fbebffb
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/ibeacon/IBeaconUtils.java
@@ -0,0 +1,80 @@
+package com.blakequ.bluetooth_manager_lib.device.ibeacon;
+
+
+import com.blakequ.bluetooth_manager_lib.util.ByteUtils;
+
+final class IBeaconUtils {
+    private static final double DISTANCE_THRESHOLD_WTF = 0.0;
+    private static final double DISTANCE_THRESHOLD_IMMEDIATE = 0.5;
+    private static final double DISTANCE_THRESHOLD_NEAR = 3.0;
+
+    private IBeaconUtils(){
+        // TO AVOID INSTANTIATION
+    }
+
+    /**
+     * Calculates the accuracy of an RSSI reading.
+     * <p/>
+     * The code was taken from <a href="http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing" /a>
+     *
+     * @param txPower the calibrated TX power of an iBeacon
+     * @param rssi    the RSSI value of the iBeacon
+     * @return the calculated Accuracy
+     */
+    public static double calculateAccuracy(final int txPower, final double rssi) {
+        if (rssi == 0) {
+            return -1.0; // if we cannot determine accuracy, return -1.
+        }
+
+        final double ratio = rssi * 1.0 / txPower;
+        if (ratio < 1.0) {
+            return Math.pow(ratio, 10);
+        } else {
+            return (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
+        }
+    }
+
+    public static String calculateUuidString(final byte[] uuid) {
+        final StringBuilder sb = new StringBuilder();
+
+        for (int i = 0; i < uuid.length; i++) {
+            if (i == 4) {
+                sb.append('-');
+            }
+            if (i == 6) {
+                sb.append('-');
+            }
+            if (i == 8) {
+                sb.append('-');
+            }
+            if (i == 10) {
+                sb.append('-');
+            }
+
+            final int intFromByte = ByteUtils.getIntFromByte(uuid[i]);
+            if(intFromByte <= 0xF){
+                sb.append('0');
+            }
+            sb.append(Integer.toHexString(intFromByte));
+        }
+
+
+        return sb.toString();
+    }
+
+    public static IBeaconDistanceDescriptor getDistanceDescriptor(final double accuracy) {
+        if (accuracy < DISTANCE_THRESHOLD_WTF) {
+            return IBeaconDistanceDescriptor.UNKNOWN;
+        }
+
+        if (accuracy < DISTANCE_THRESHOLD_IMMEDIATE) {
+            return IBeaconDistanceDescriptor.IMMEDIATE;
+        }
+
+        if (accuracy < DISTANCE_THRESHOLD_NEAR) {
+            return IBeaconDistanceDescriptor.NEAR;
+        }
+
+        return IBeaconDistanceDescriptor.FAR;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/BluetoothClassResolver.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/BluetoothClassResolver.java
new file mode 100644
index 0000000..37d3204
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/BluetoothClassResolver.java
@@ -0,0 +1,142 @@
+package com.blakequ.bluetooth_manager_lib.device.resolvers;
+
+import android.bluetooth.BluetoothClass;
+
+public class BluetoothClassResolver {
+
+    public static String resolveDeviceClass(final int btClass) {
+        switch (btClass) {
+            case BluetoothClass.Device.AUDIO_VIDEO_CAMCORDER:
+                return "A/V, Camcorder";
+            case BluetoothClass.Device.AUDIO_VIDEO_CAR_AUDIO:
+                return "A/V, Car Audio";
+            case BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE:
+                return "A/V, Handsfree";
+            case BluetoothClass.Device.AUDIO_VIDEO_HEADPHONES:
+                return "A/V, Headphones";
+            case BluetoothClass.Device.AUDIO_VIDEO_HIFI_AUDIO:
+                return "A/V, HiFi Audio";
+            case BluetoothClass.Device.AUDIO_VIDEO_LOUDSPEAKER:
+                return "A/V, Loudspeaker";
+            case BluetoothClass.Device.AUDIO_VIDEO_MICROPHONE:
+                return "A/V, Microphone";
+            case BluetoothClass.Device.AUDIO_VIDEO_PORTABLE_AUDIO:
+                return "A/V, Portable Audio";
+            case BluetoothClass.Device.AUDIO_VIDEO_SET_TOP_BOX:
+                return "A/V, Set Top Box";
+            case BluetoothClass.Device.AUDIO_VIDEO_UNCATEGORIZED:
+                return "A/V, Uncategorized";
+            case BluetoothClass.Device.AUDIO_VIDEO_VCR:
+                return "A/V, VCR";
+            case BluetoothClass.Device.AUDIO_VIDEO_VIDEO_CAMERA:
+                return "A/V, Video Camera";
+            case BluetoothClass.Device.AUDIO_VIDEO_VIDEO_CONFERENCING:
+                return "A/V, Video Conferencing";
+            case BluetoothClass.Device.AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER:
+                return "A/V, Video Display and Loudspeaker";
+            case BluetoothClass.Device.AUDIO_VIDEO_VIDEO_GAMING_TOY:
+                return "A/V, Video Gaming Toy";
+            case BluetoothClass.Device.AUDIO_VIDEO_VIDEO_MONITOR:
+                return "A/V, Video Monitor";
+            case BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET:
+                return "A/V, Video Wearable Headset";
+            case BluetoothClass.Device.COMPUTER_DESKTOP:
+                return "Computer, Desktop";
+            case BluetoothClass.Device.COMPUTER_HANDHELD_PC_PDA:
+                return "Computer, Handheld PC/PDA";
+            case BluetoothClass.Device.COMPUTER_LAPTOP:
+                return "Computer, Laptop";
+            case BluetoothClass.Device.COMPUTER_PALM_SIZE_PC_PDA:
+                return "Computer, Palm Size PC/PDA";
+            case BluetoothClass.Device.COMPUTER_SERVER:
+                return "Computer, Server";
+            case BluetoothClass.Device.COMPUTER_UNCATEGORIZED:
+                return "Computer, Uncategorized";
+            case BluetoothClass.Device.COMPUTER_WEARABLE:
+                return "Computer, Wearable";
+            case BluetoothClass.Device.HEALTH_BLOOD_PRESSURE:
+                return "Health, Blood Pressure";
+            case BluetoothClass.Device.HEALTH_DATA_DISPLAY:
+                return "Health, Data Display";
+            case BluetoothClass.Device.HEALTH_GLUCOSE:
+                return "Health, Glucose";
+            case BluetoothClass.Device.HEALTH_PULSE_OXIMETER:
+                return "Health, Pulse Oximeter";
+            case BluetoothClass.Device.HEALTH_PULSE_RATE:
+                return "Health, Pulse Rate";
+            case BluetoothClass.Device.HEALTH_THERMOMETER:
+                return "Health, Thermometer";
+            case BluetoothClass.Device.HEALTH_UNCATEGORIZED:
+                return "Health, Uncategorized";
+            case BluetoothClass.Device.HEALTH_WEIGHING:
+                return "Health, Weighting";
+            case BluetoothClass.Device.PHONE_CELLULAR:
+                return "Phone, Cellular";
+            case BluetoothClass.Device.PHONE_CORDLESS:
+                return "Phone, Cordless";
+            case BluetoothClass.Device.PHONE_ISDN:
+                return "Phone, ISDN";
+            case BluetoothClass.Device.PHONE_MODEM_OR_GATEWAY:
+                return "Phone, Modem or Gateway";
+            case BluetoothClass.Device.PHONE_SMART:
+                return "Phone, Smart";
+            case BluetoothClass.Device.PHONE_UNCATEGORIZED:
+                return "Phone, Uncategorized";
+            case BluetoothClass.Device.TOY_CONTROLLER:
+                return "Toy, Controller";
+            case BluetoothClass.Device.TOY_DOLL_ACTION_FIGURE:
+                return "Toy, Doll/Action Figure";
+            case BluetoothClass.Device.TOY_GAME:
+                return "Toy, Game";
+            case BluetoothClass.Device.TOY_ROBOT:
+                return "Toy, Robot";
+            case BluetoothClass.Device.TOY_UNCATEGORIZED:
+                return "Toy, Uncategorized";
+            case BluetoothClass.Device.TOY_VEHICLE:
+                return "Toy, Vehicle";
+            case BluetoothClass.Device.WEARABLE_GLASSES:
+                return "Wearable, Glasses";
+            case BluetoothClass.Device.WEARABLE_HELMET:
+                return "Wearable, Helmet";
+            case BluetoothClass.Device.WEARABLE_JACKET:
+                return "Wearable, Jacket";
+            case BluetoothClass.Device.WEARABLE_PAGER:
+                return "Wearable, Pager";
+            case BluetoothClass.Device.WEARABLE_UNCATEGORIZED:
+                return "Wearable, Uncategorized";
+            case BluetoothClass.Device.WEARABLE_WRIST_WATCH:
+                return "Wearable, Wrist Watch";
+            default:
+                return "Unknown, Unknown (class=" + btClass + ")";
+        }
+    }
+
+    public static String resolveMajorDeviceClass(final int majorBtClass) {
+        switch (majorBtClass) {
+            case BluetoothClass.Device.Major.AUDIO_VIDEO:
+                return "Audio/ Video";
+            case BluetoothClass.Device.Major.COMPUTER:
+                return "Computer";
+            case BluetoothClass.Device.Major.HEALTH:
+                return "Health";
+            case BluetoothClass.Device.Major.IMAGING:
+                return "Imaging";
+            case BluetoothClass.Device.Major.MISC:
+                return "Misc";
+            case BluetoothClass.Device.Major.NETWORKING:
+                return "Networking";
+            case BluetoothClass.Device.Major.PERIPHERAL:
+                return "Peripheral";
+            case BluetoothClass.Device.Major.PHONE:
+                return "Phone";
+            case BluetoothClass.Device.Major.TOY:
+                return "Toy";
+            case BluetoothClass.Device.Major.UNCATEGORIZED:
+                return "Uncategorized";
+            case BluetoothClass.Device.Major.WEARABLE:
+                return "Wearable";
+            default:
+                return "Unknown (" +majorBtClass+ ")";
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/CompanyIdentifierResolver.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/CompanyIdentifierResolver.java
new file mode 100644
index 0000000..002d1dc
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/CompanyIdentifierResolver.java
@@ -0,0 +1,646 @@
+package com.blakequ.bluetooth_manager_lib.device.resolvers;
+
+import android.util.SparseArray;
+
+public class CompanyIdentifierResolver {
+    public static final int ERICSSON_TECHNOLOGY_LICENSING = 0x0000;
+    public static final int NOKIA_MOBILE_PHONES = 0x0001;
+    public static final int INTEL_CORP = 0x0002;
+    public static final int IBM_CORP = 0x0003;
+    public static final int TOSHIBA_CORP = 0x0004;
+    public static final int THREE_COM = 0x0005;
+    public static final int MICROSOFT = 0x0006;
+    public static final int LUCENT = 0x0007;
+    public static final int MOTOROLA = 0x0008;
+    public static final int INFINEON_TECHNOLOGIES_AG = 0x0009;
+    public static final int CAMBRIDGE_SILICON_RADIO = 0x000A;
+    public static final int SILICON_WAVE = 0x000B;
+    public static final int DIGIANSWER_A_S = 0x000C;
+    public static final int TEXAS_INSTRUMENTS_INC = 0x000D;
+    public static final int CEVA_INC_FORMERLY_PARTHUS_TECHNOLOGIES_INC = 0x000E;
+    public static final int BROADCOM_CORPORATION = 0x000F;
+    public static final int MITEL_SEMICONDUCTOR = 0x0010;
+    public static final int WIDCOMM_INC = 0x0011;
+    public static final int ZEEVO_INC = 0x0012;
+    public static final int ATMEL_CORPORATION = 0x0013;
+    public static final int MITSUBISHI_ELECTRIC_CORPORATION = 0x0014;
+    public static final int RTX_TELECOM_A_S = 0x0015;
+    public static final int KC_TECHNOLOGY_INC = 0x0016;
+    public static final int NEWLOGIC = 0x0017;
+    public static final int TRANSILICA_INC = 0x0018;
+    public static final int ROHDE_SCHWARZ_GMBH_CO_KG = 0x0019;
+    public static final int TTPCOM_LIMITED = 0x001A;
+    public static final int SIGNIA_TECHNOLOGIES_INC = 0x001B;
+    public static final int CONEXANT_SYSTEMS_INC = 0x001C;
+    public static final int QUALCOMM = 0x001D;
+    public static final int INVENTEL = 0x001E;
+    public static final int AVM_BERLIN = 0x001F;
+    public static final int BANDSPEED_INC = 0x0020;
+    public static final int MANSELLA_LTD = 0x0021;
+    public static final int NEC_CORPORATION = 0x0022;
+    public static final int WAVEPLUS_TECHNOLOGY_CO_LTD = 0x0023;
+    public static final int ALCATEL = 0x0024;
+    public static final int PHILIPS_SEMICONDUCTORS = 0x0025;
+    public static final int C_TECHNOLOGIES = 0x0026;
+    public static final int OPEN_INTERFACE = 0x0027;
+    public static final int R_F_MICRO_DEVICES = 0x0028;
+    public static final int HITACHI_LTD = 0x0029;
+    public static final int SYMBOL_TECHNOLOGIES_INC = 0x002A;
+    public static final int TENOVIS = 0x002B;
+    public static final int MACRONIX_INTERNATIONAL_CO_LTD = 0x002C;
+    public static final int GCT_SEMICONDUCTOR = 0x002D;
+    public static final int NORWOOD_SYSTEMS = 0x002E;
+    public static final int MEWTEL_TECHNOLOGY_INC = 0x002F;
+    public static final int ST_MICROELECTRONICS = 0x0030;
+    public static final int SYNOPSIS = 0x0031;
+    public static final int REDM_COMMUNICATIONS_LTD = 0x0032;
+    public static final int COMMIL_LTD = 0x0033;
+    public static final int COMPUTER_ACCESS_TECHNOLOGY_CORPORATION_CATC = 0x0034;
+    public static final int ECLIPSE_HQ_ESPANA_SL = 0x0035;
+    public static final int RENESAS_TECHNOLOGY_CORP = 0x0036;
+    public static final int MOBILIAN_CORPORATION = 0x0037;
+    public static final int TERAX = 0x0038;
+    public static final int INTEGRATED_SYSTEM_SOLUTION_CORP = 0x0039;
+    public static final int MATSUSHITA_ELECTRIC_INDUSTRIAL_CO_LTD = 0x003A;
+    public static final int GENNUM_CORPORATION = 0x003B;
+    public static final int RESEARCH_IN_MOTION = 0x003C;
+    public static final int IPEXTREME_INC = 0x003D;
+    public static final int SYSTEMS_AND_CHIPS_INC = 0x003E;
+    public static final int BLUETOOTH_SIG_INC = 0x003F;
+    public static final int SEIKO_EPSON_CORPORATION = 0x0040;
+    public static final int INTEGRATED_SILICON_SOLUTION_TAIWAN_INC = 0x0041;
+    public static final int CONWISE_TECHNOLOGY_CORPORATION_LTD = 0x0042;
+    public static final int PARROT_SA = 0x0043;
+    public static final int SOCKET_MOBILE = 0x0044;
+    public static final int ATHEROS_COMMUNICATIONS_INC = 0x0045;
+    public static final int MEDIATEK_INC = 0x0046;
+    public static final int BLUEGIGA = 0x0047;
+    public static final int MARVELL_TECHNOLOGY_GROUP_LTD = 0x0048;
+    public static final int THREE_DSP_CORPORATION = 0x0049;
+    public static final int ACCEL_SEMICONDUCTOR_LTD = 0x004A;
+    public static final int CONTINENTAL_AUTOMOTIVE_SYSTEMS = 0x004B;
+    public static final int APPLE_INC = 0x004C;
+    public static final int STACCATO_COMMUNICATIONS_INC = 0x004D;
+    public static final int AVAGO_TECHNOLOGIES = 0x004E;
+    public static final int APT_LICENSING_LTD = 0x004F;
+    public static final int SIRF_TECHNOLOGY = 0x0050;
+    public static final int TZERO_TECHNOLOGIES_INC = 0x0051;
+    public static final int JM_CORPORATION = 0x0052;
+    public static final int FREE2MOVE_AB = 0x0053;
+    public static final int THREE_DIJOY_CORPORATION = 0x0054;
+    public static final int PLANTRONICS_INC = 0x0055;
+    public static final int SONY_ERICSSON_MOBILE_COMMUNICATIONS = 0x0056;
+    public static final int HARMAN_INTERNATIONAL_INDUSTRIES_INC = 0x0057;
+    public static final int VIZIO_INC = 0x0058;
+    public static final int NORDIC_SEMICONDUCTOR_ASA = 0x0059;
+    public static final int EM_MICROELECTRONICMARIN_SA = 0x005A;
+    public static final int RALINK_TECHNOLOGY_CORPORATION = 0x005B;
+    public static final int BELKIN_INTERNATIONAL_INC = 0x005C;
+    public static final int REALTEK_SEMICONDUCTOR_CORPORATION = 0x005D;
+    public static final int STONESTREET_ONE_LLC = 0x005E;
+    public static final int WICENTRIC_INC = 0x005F;
+    public static final int RIVIERAWAVES_SAS = 0x0060;
+    public static final int RDA_MICROELECTRONICS = 0x0061;
+    public static final int GIBSON_GUITARS = 0x0062;
+    public static final int MICOMMAND_INC = 0x0063;
+    public static final int BAND_XI_INTERNATIONAL_LLC = 0x0064;
+    public static final int HEWLETTPACKARD_COMPANY = 0x0065;
+    public static final int NINE_SOLUTIONS_OY = 0x0066;
+    public static final int GN_NETCOM_A_S = 0x0067;
+    public static final int GENERAL_MOTORS = 0x0068;
+    public static final int AD_ENGINEERING_INC = 0x0069;
+    public static final int MINDTREE_LTD = 0x006A;
+    public static final int POLAR_ELECTRO_OY = 0x006B;
+    public static final int BEAUTIFUL_ENTERPRISE_CO_LTD = 0x006C;
+    public static final int BRIARTEK_INC = 0x006D;
+    public static final int SUMMIT_DATA_COMMUNICATIONS_INC = 0x006E;
+    public static final int SOUND_ID = 0x006F;
+    public static final int MONSTER_LLC = 0x0070;
+    public static final int CONNECTBLUE_AB = 0x0071;
+    public static final int SHANGHAI_SUPER_SMART_ELECTRONICS_CO_LTD = 0x0072;
+    public static final int GROUP_SENSE_LTD = 0x0073;
+    public static final int ZOMM_LLC = 0x0074;
+    public static final int SAMSUNG_ELECTRONICS_CO_LTD = 0x0075;
+    public static final int CREATIVE_TECHNOLOGY_LTD = 0x0076;
+    public static final int LAIRD_TECHNOLOGIES = 0x0077;
+    public static final int NIKE_INC = 0x0078;
+    public static final int LESSWIRE_AG = 0x0079;
+    public static final int MSTAR_SEMICONDUCTOR_INC = 0x007A;
+    public static final int HANLYNN_TECHNOLOGIES = 0x007B;
+    public static final int A_R_CAMBRIDGE = 0x007C;
+    public static final int SEERS_TECHNOLOGY_CO_LTD = 0x007D;
+    public static final int SPORTS_TRACKING_TECHNOLOGIES_LTD = 0x007E;
+    public static final int AUTONET_MOBILE = 0x007F;
+    public static final int DELORME_PUBLISHING_COMPANY_INC = 0x0080;
+    public static final int WUXI_VIMICRO = 0x0081;
+    public static final int SENNHEISER_COMMUNICATIONS_A_S = 0x0082;
+    public static final int TIMEKEEPING_SYSTEMS_INC = 0x0083;
+    public static final int LUDUS_HELSINKI_LTD = 0x0084;
+    public static final int BLUERADIOS_INC = 0x0085;
+    public static final int EQUINOX_AG = 0x0086;
+    public static final int GARMIN_INTERNATIONAL_INC = 0x0087;
+    public static final int ECOTEST = 0x0088;
+    public static final int GN_RESOUND_A_S = 0x0089;
+    public static final int JAWBONE = 0x008A;
+    public static final int TOPCORN_POSITIONING_SYSTEMS_LLC = 0x008B;
+    public static final int QUALCOMM_RETAIL_SOLUTIONS_INC_FORMERLY_QUALCOMM_LABS_INC = 0x008C;
+    public static final int ZSCAN_SOFTWARE = 0x008D;
+    public static final int QUINTIC_CORP = 0x008E;
+    public static final int STOLLMAN_EV_GMBH = 0x008F;
+    public static final int FUNAI_ELECTRIC_CO_LTD = 0x0090;
+    public static final int ADVANCED_PANMOBIL_SYSTEMS_GMBH_CO_KG = 0x0091;
+    public static final int THINKOPTICS_INC = 0x0092;
+    public static final int UNIVERSAL_ELECTRONICS_INC = 0x0093;
+    public static final int AIROHA_TECHNOLOGY_CORP = 0x0094;
+    public static final int NEC_LIGHTING_LTD = 0x0095;
+    public static final int ODM_TECHNOLOGY_INC = 0x0096;
+    public static final int CONNECTEDEVICE_LTD = 0x0097;
+    public static final int ZER01TV_GMBH = 0x0098;
+    public static final int ITECH_DYNAMIC_GLOBAL_DISTRIBUTION_LTD = 0x0099;
+    public static final int ALPWISE = 0x009A;
+    public static final int JIANGSU_TOPPOWER_AUTOMOTIVE_ELECTRONICS_CO_LTD = 0x009B;
+    public static final int COLORFY_INC = 0x009C;
+    public static final int GEOFORCE_INC = 0x009D;
+    public static final int BOSE_CORPORATION = 0x009E;
+    public static final int SUUNTO_OY = 0x009F;
+    public static final int KENSINGTON_COMPUTER_PRODUCTS_GROUP = 0x00A0;
+    public static final int SRMEDIZINELEKTRONIK = 0x00A1;
+    public static final int VERTU_CORPORATION_LIMITED = 0x00A2;
+    public static final int META_WATCH_LTD = 0x00A3;
+    public static final int LINAK_A_S = 0x00A4;
+    public static final int OTL_DYNAMICS_LLC = 0x00A5;
+    public static final int PANDA_OCEAN_INC = 0x00A6;
+    public static final int VISTEON_CORPORATION = 0x00A7;
+    public static final int ARP_DEVICES_LIMITED = 0x00A8;
+    public static final int MAGNETI_MARELLI_SPA = 0x00A9;
+    public static final int CAEN_RFID_SRL = 0x00AA;
+    public static final int INGENIEURSYSTEMGRUPPE_ZAHN_GMBH = 0x00AB;
+    public static final int GREEN_THROTTLE_GAMES = 0x00AC;
+    public static final int PETER_SYSTEMTECHNIK_GMBH = 0x00AD;
+    public static final int OMEGAWAVE_OY = 0x00AE;
+    public static final int CINETIX = 0x00AF;
+    public static final int PASSIF_SEMICONDUCTOR_CORP = 0x00B0;
+    public static final int SARIS_CYCLING_GROUP_INC = 0x00B1;
+    public static final int BEKEY_A_S = 0x00B2;
+    public static final int CLARINOX_TECHNOLOGIES_PTY_LTD = 0x00B3;
+    public static final int BDE_TECHNOLOGY_CO_LTD = 0x00B4;
+    public static final int SWIRL_NETWORKS = 0x00B5;
+    public static final int MESO_INTERNATIONAL = 0x00B6;
+    public static final int TRELAB_LTD = 0x00B7;
+    public static final int QUALCOMM_INNOVATION_CENTER_INC_QUIC = 0x00B8;
+    public static final int JOHNSON_CONTROLS_INC = 0x00B9;
+    public static final int STARKEY_LABORATORIES_INC = 0x00BA;
+    public static final int SPOWER_ELECTRONICS_LIMITED = 0x00BB;
+    public static final int ACE_SENSOR_INC = 0x00BC;
+    public static final int APLIX_CORPORATION = 0x00BD;
+    public static final int AAMP_OF_AMERICA = 0x00BE;
+    public static final int STALMART_TECHNOLOGY_LIMITED = 0x00BF;
+    public static final int AMICCOM_ELECTRONICS_CORPORATION = 0x00C0;
+    public static final int SHENZHEN_EXCELSECU_DATA_TECHNOLOGY_COLTD = 0x00C1;
+    public static final int GENEQ_INC = 0x00C2;
+    public static final int ADIDAS_AG = 0x00C3;
+    public static final int LG_ELECTRONICS = 0x00C4;
+    public static final int ONSET_COMPUTER_CORPORATION = 0x00C5;
+    public static final int SELFLY_BV = 0x00C6;
+    public static final int QUUPPA_OY = 0x00C7;
+    public static final int GELO_INC = 0x00C8;
+    public static final int EVLUMA = 0x00C9;
+    public static final int MC10 = 0x00CA;
+    public static final int BINAURIC_SE = 0x00CB;
+    public static final int BEATS_ELECTRONICS = 0x00CC;
+    public static final int MICROCHIP_TECHNOLOGY_INC = 0x00CD;
+    public static final int ELGATO_SYSTEMS_GMBH = 0x00CE;
+    public static final int ARCHOS_SA = 0x00CF;
+    public static final int DEXCOM_INC = 0x00D0;
+    public static final int POLAR_ELECTRO_EUROPE_BV = 0x00D1;
+    public static final int DIALOG_SEMICONDUCTOR_BV = 0x00D2;
+    public static final int TAIXINGBANG_TECHNOLOGY_HK_CO_LTD = 0x00D3;
+    public static final int KAWANTECH = 0x00D4;
+    public static final int AUSTCO_COMMUNICATION_SYSTEMS = 0x00D5;
+    public static final int TIMEX_GROUP_USA_INC = 0x00D6;
+    public static final int QUALCOMM_TECHNOLOGIES_INC = 0x00D7;
+    public static final int QUALCOMM_CONNECTED_EXPERIENCES_INC = 0x00D8;
+    public static final int VOYETRA_TURTLE_BEACH = 0x00D9;
+    public static final int TXTR_GMBH = 0x00DA;
+    public static final int BIOSENTRONICS = 0x00DB;
+    public static final int PROCTER_GAMBLE = 0x00DC;
+    public static final int HOSIDEN_CORPORATION = 0x00DD;
+    public static final int MUZIK_LLC = 0x00DE;
+    public static final int MISFIT_WEARABLES_CORP = 0x00DF;
+    public static final int GOOGLE = 0x00E0;
+    public static final int DANLERS_LTD = 0x00E1;
+    public static final int SEMILINK_INC = 0x00E2;
+    public static final int INMUSIC_BRANDS_INC = 0x00E3;
+    public static final int LS_RESEARCH_INC = 0x00E4;
+    public static final int EDEN_SOFTWARE_CONSULTANTS_LTD = 0x00E5;
+    public static final int FRESHTEMP = 0x00E6;
+    public static final int KS_TECHNOLOGIES = 0x00E7;
+    public static final int ACTS_TECHNOLOGIES = 0x00E8;
+    public static final int VTRACK_SYSTEMS = 0x00E9;
+    public static final int NIELSENKELLERMAN_COMPANY = 0x00EA;
+    public static final int SERVER_TECHNOLOGY_INC = 0x00EB;
+    public static final int BIORESEARCH_ASSOCIATES = 0x00EC;
+    public static final int JOLLY_LOGIC_LLC = 0x00ED;
+    public static final int ABOVE_AVERAGE_OUTCOMES_INC = 0x00EE;
+    public static final int BITSPLITTERS_GMBH = 0x00EF;
+    public static final int PAYPAL_INC = 0x00F0;
+    public static final int WITRON_TECHNOLOGY_LIMITED = 0x00F1;
+    public static final int MORSE_PROJECT_INC = 0x00F2;
+    public static final int KENT_DISPLAYS_INC = 0x00F3;
+    public static final int NAUTILUS_INC = 0x00F4;
+    public static final int SMARTIFIER_OY = 0x00F5;
+    public static final int ELCOMETER_LIMITED = 0x00F6;
+    public static final int VSN_TECHNOLOGIES_INC = 0x00F7;
+    public static final int ACEUNI_CORP_LTD = 0x00F8;
+    public static final int STICKNFIND = 0x00F9;
+    public static final int CRYSTAL_CODE_AB = 0x00FA;
+    public static final int KOUKAAM_AS = 0x00FB;
+    public static final int DELPHI_CORPORATION = 0x00FC;
+    public static final int VALENCETECH_LIMITED = 0x00FD;
+    public static final int RESERVED = 0x00FE;
+    public static final int TYPO_PRODUCTS_LLC = 0x00FF;
+    public static final int TOMTOM_INTERNATIONAL_BV = 0x0100;
+    public static final int FUGOO_INC = 0x0101;
+    public static final int KEISER_CORPORATION = 0x0102;
+    public static final int BANG_OLUFSEN_A_S = 0x0103;
+    public static final int PLUS_LOCATIONS_SYSTEMS_PTY_LTD = 0x0104;
+    public static final int UBIQUITOUS_COMPUTING_TECHNOLOGY_CORPORATION = 0x0105;
+    public static final int INNOVATIVE_YACHTTER_SOLUTIONS = 0x0106;
+    public static final int WILLIAM_DEMANT_HOLDING_A_S = 0x0107;
+    public static final int CHICONY_ELECTRONICS_CO_LTD = 0x0108;
+    public static final int ATUS_BV = 0x0109;
+    public static final int CODEGATE_LTD = 0x010A;
+    public static final int ERI_INC = 0x010B;
+    public static final int TRANSDUCERS_DIRECT_LLC = 0x010C;
+    public static final int FUJITSU_TEN_LIMITED = 0x010D;
+    public static final int AUDI_AG = 0x010E;
+    public static final int HISILICON_TECHNOLOGIES_CO_LTD = 0x010F;
+    public static final int NIPPON_SEIKI_CO_LTD = 0x0110;
+    public static final int STEELSERIES_APS = 0x0111;
+    public static final int VYZYBL_INC = 0x0112;
+    public static final int OPENBRAIN_TECHNOLOGIES_CO_LTD = 0x0113;
+    public static final int XENSR = 0x0114;
+    public static final int ESOLUTIONS = 0x0115;
+    public static final int ONE_OAK_TECHNOLOGIES = 0x0116;
+    public static final int WIMOTO_TECHNOLOGIES_INC = 0x0117;
+    public static final int RADIUS_NETWORKS_INC = 0x0118;
+    public static final int WIZE_TECHNOLOGY_CO_LTD = 0x0119;
+    public static final int QUALCOMM_LABS_INC = 0x011A;
+    public static final int ARUBA_NETWORKS = 0x011B;
+    public static final int BAIDU = 0x011C;
+    public static final int ARENDI_AG = 0x011D;
+    public static final int SKODA_AUTO_AS = 0x011E;
+    public static final int VOLKSWAGON_AG = 0x011F;
+    public static final int PORSCHE_AG = 0x0120;
+    public static final int SINO_WEALTH_ELECTRONIC_LTD = 0x0121;
+    public static final int AIRTURN_INC = 0x0122;
+    public static final int KINSA_INC = 0x0123;
+    public static final int HID_GLOBAL = 0x0124;
+    public static final int SEAT_ES = 0x0125;
+    public static final int PROMETHEAN_LTD = 0x0126;
+    public static final int SALUTICA_ALLIED_SOLUTIONS = 0x0127;
+    public static final int GPSI_GROUP_PTY_LTD = 0x0128;
+    public static final int NIMBLE_DEVICES_OY = 0x0129;
+    public static final int CHANGZHOU_YONGSE_INFOTECH_CO_LTD = 0x012A;
+    public static final int SPORTIQ = 0x012B;
+    public static final int TEMEC_INSTRUMENTS_BV = 0x012C;
+    public static final int SONY_CORPORATION = 0x012D;
+    public static final int ASSA_ABLOY = 0x012E;
+    public static final int CLARION_CO_LTD = 0x012F;
+    public static final int WAREHOUSE_INNOVATIONS = 0x0130;
+    public static final int CYPRESS_SEMICONDUCTOR_CORPORATION = 0x0131;
+    public static final int MADS_INC = 0x0132;
+    public static final int BLUE_MAESTRO_LIMITED = 0x0133;
+    public static final int RESOLUTION_PRODUCTS_INC = 0x0134;
+    public static final int AIREWEAR_LLC = 0x0135;
+    public static final int ETC_SP_ZOO = 0x0136;
+    public static final int PRESTIGIO_PLAZA_LTD = 0x0137;
+
+    private static final SparseArray<String> COMPANY_NAME_MAP = populateCompanyNameMap();
+
+    public static String getCompanyName(final int companyId, final String fallback) {
+        final String name = COMPANY_NAME_MAP.get(companyId);
+        return name == null ? fallback : name;
+    }
+
+    private static SparseArray<String> populateCompanyNameMap() {
+        final SparseArray<String> map = new SparseArray<>();
+
+        map.put(ERICSSON_TECHNOLOGY_LICENSING, "Ericsson Technology Licensing");
+        map.put(NOKIA_MOBILE_PHONES, "Nokia Mobile Phones");
+        map.put(INTEL_CORP, "Intel Corp.");
+        map.put(IBM_CORP, "IBM Corp.");
+        map.put(TOSHIBA_CORP, "Toshiba Corp.");
+        map.put(THREE_COM, "3Com");
+        map.put(MICROSOFT, "Microsoft");
+        map.put(LUCENT, "Lucent");
+        map.put(MOTOROLA, "Motorola");
+        map.put(INFINEON_TECHNOLOGIES_AG, "Infineon Technologies AG");
+        map.put(CAMBRIDGE_SILICON_RADIO, "Cambridge Silicon Radio");
+        map.put(SILICON_WAVE, "Silicon Wave");
+        map.put(DIGIANSWER_A_S, "Digianswer A/S");
+        map.put(TEXAS_INSTRUMENTS_INC, "Texas Instruments Inc.");
+        map.put(CEVA_INC_FORMERLY_PARTHUS_TECHNOLOGIES_INC, "Ceva, Inc. (formerly Parthus Technologies, Inc.)");
+        map.put(BROADCOM_CORPORATION, "Broadcom Corporation");
+        map.put(MITEL_SEMICONDUCTOR, "Mitel Semiconductor");
+        map.put(WIDCOMM_INC, "Widcomm, Inc");
+        map.put(ZEEVO_INC, "Zeevo, Inc.");
+        map.put(ATMEL_CORPORATION, "Atmel Corporation");
+        map.put(MITSUBISHI_ELECTRIC_CORPORATION, "Mitsubishi Electric Corporation");
+        map.put(RTX_TELECOM_A_S, "RTX Telecom A/S");
+        map.put(KC_TECHNOLOGY_INC, "KC Technology Inc.");
+        map.put(NEWLOGIC, "NewLogic");
+        map.put(TRANSILICA_INC, "Transilica, Inc.");
+        map.put(ROHDE_SCHWARZ_GMBH_CO_KG, "Rohde & Schwarz GmbH & Co. KG");
+        map.put(TTPCOM_LIMITED, "TTPCom Limited");
+        map.put(SIGNIA_TECHNOLOGIES_INC, "Signia Technologies, Inc.");
+        map.put(CONEXANT_SYSTEMS_INC, "Conexant Systems Inc.");
+        map.put(QUALCOMM, "Qualcomm");
+        map.put(INVENTEL, "Inventel");
+        map.put(AVM_BERLIN, "AVM Berlin");
+        map.put(BANDSPEED_INC, "BandSpeed, Inc.");
+        map.put(MANSELLA_LTD, "Mansella Ltd");
+        map.put(NEC_CORPORATION, "NEC Corporation");
+        map.put(WAVEPLUS_TECHNOLOGY_CO_LTD, "WavePlus Technology Co., Ltd.");
+        map.put(ALCATEL, "Alcatel");
+        map.put(PHILIPS_SEMICONDUCTORS, "Philips Semiconductors");
+        map.put(C_TECHNOLOGIES, "C Technologies");
+        map.put(OPEN_INTERFACE, "Open Interface");
+        map.put(R_F_MICRO_DEVICES, "R F Micro Devices");
+        map.put(HITACHI_LTD, "Hitachi Ltd");
+        map.put(SYMBOL_TECHNOLOGIES_INC, "Symbol Technologies, Inc.");
+        map.put(TENOVIS, "Tenovis");
+        map.put(MACRONIX_INTERNATIONAL_CO_LTD, "Macronix International Co. Ltd.");
+        map.put(GCT_SEMICONDUCTOR, "GCT Semiconductor");
+        map.put(NORWOOD_SYSTEMS, "Norwood Systems");
+        map.put(MEWTEL_TECHNOLOGY_INC, "MewTel Technology Inc.");
+        map.put(ST_MICROELECTRONICS, "ST Microelectronics");
+        map.put(SYNOPSIS, "Synopsis");
+        map.put(REDM_COMMUNICATIONS_LTD, "Red-M (Communications) Ltd");
+        map.put(COMMIL_LTD, "Commil Ltd");
+        map.put(COMPUTER_ACCESS_TECHNOLOGY_CORPORATION_CATC, "Computer Access Technology Corporation (CATC)");
+        map.put(ECLIPSE_HQ_ESPANA_SL, "Eclipse (HQ Espana) S.L.");
+        map.put(RENESAS_TECHNOLOGY_CORP, "Renesas Technology Corp.");
+        map.put(MOBILIAN_CORPORATION, "Mobilian Corporation");
+        map.put(TERAX, "Terax");
+        map.put(INTEGRATED_SYSTEM_SOLUTION_CORP, "Integrated System Solution Corp.");
+        map.put(MATSUSHITA_ELECTRIC_INDUSTRIAL_CO_LTD, "Matsushita Electric Industrial Co., Ltd.");
+        map.put(GENNUM_CORPORATION, "Gennum Corporation");
+        map.put(RESEARCH_IN_MOTION, "Research In Motion");
+        map.put(IPEXTREME_INC, "IPextreme, Inc.");
+        map.put(SYSTEMS_AND_CHIPS_INC, "Systems and Chips, Inc.");
+        map.put(BLUETOOTH_SIG_INC, "Bluetooth SIG, Inc.");
+        map.put(SEIKO_EPSON_CORPORATION, "Seiko Epson Corporation");
+        map.put(INTEGRATED_SILICON_SOLUTION_TAIWAN_INC, "Integrated Silicon Solution Taiwan, Inc.");
+        map.put(CONWISE_TECHNOLOGY_CORPORATION_LTD, "CONWISE Technology Corporation Ltd");
+        map.put(PARROT_SA, "PARROT SA");
+        map.put(SOCKET_MOBILE, "Socket Mobile");
+        map.put(ATHEROS_COMMUNICATIONS_INC, "Atheros Communications, Inc.");
+        map.put(MEDIATEK_INC, "MediaTek, Inc.");
+        map.put(BLUEGIGA, "Bluegiga");
+        map.put(MARVELL_TECHNOLOGY_GROUP_LTD, "Marvell Technology Group Ltd.");
+        map.put(THREE_DSP_CORPORATION, "3DSP Corporation");
+        map.put(ACCEL_SEMICONDUCTOR_LTD, "Accel Semiconductor Ltd.");
+        map.put(CONTINENTAL_AUTOMOTIVE_SYSTEMS, "Continental Automotive Systems");
+        map.put(APPLE_INC, "Apple, Inc.");
+        map.put(STACCATO_COMMUNICATIONS_INC, "Staccato Communications, Inc.");
+        map.put(AVAGO_TECHNOLOGIES, "Avago Technologies");
+        map.put(APT_LICENSING_LTD, "APT Licensing Ltd.");
+        map.put(SIRF_TECHNOLOGY, "SiRF Technology");
+        map.put(TZERO_TECHNOLOGIES_INC, "Tzero Technologies, Inc.");
+        map.put(JM_CORPORATION, "J&M Corporation");
+        map.put(FREE2MOVE_AB, "Free2move AB");
+        map.put(THREE_DIJOY_CORPORATION, "3DiJoy Corporation");
+        map.put(PLANTRONICS_INC, "Plantronics, Inc.");
+        map.put(SONY_ERICSSON_MOBILE_COMMUNICATIONS, "Sony Ericsson Mobile Communications");
+        map.put(HARMAN_INTERNATIONAL_INDUSTRIES_INC, "Harman International Industries, Inc.");
+        map.put(VIZIO_INC, "Vizio, Inc.");
+        map.put(NORDIC_SEMICONDUCTOR_ASA, "Nordic Semiconductor ASA");
+        map.put(EM_MICROELECTRONICMARIN_SA, "EM Microelectronic-Marin SA");
+        map.put(RALINK_TECHNOLOGY_CORPORATION, "Ralink Technology Corporation");
+        map.put(BELKIN_INTERNATIONAL_INC, "Belkin International, Inc.");
+        map.put(REALTEK_SEMICONDUCTOR_CORPORATION, "Realtek Semiconductor Corporation");
+        map.put(STONESTREET_ONE_LLC, "Stonestreet One, LLC");
+        map.put(WICENTRIC_INC, "Wicentric, Inc.");
+        map.put(RIVIERAWAVES_SAS, "RivieraWaves S.A.S");
+        map.put(RDA_MICROELECTRONICS, "RDA Microelectronics");
+        map.put(GIBSON_GUITARS, "Gibson Guitars");
+        map.put(MICOMMAND_INC, "MiCommand Inc.");
+        map.put(BAND_XI_INTERNATIONAL_LLC, "Band XI International, LLC");
+        map.put(HEWLETTPACKARD_COMPANY, "Hewlett-Packard Company");
+        map.put(NINE_SOLUTIONS_OY, "9Solutions Oy");
+        map.put(GN_NETCOM_A_S, "GN Netcom A/S");
+        map.put(GENERAL_MOTORS, "General Motors");
+        map.put(AD_ENGINEERING_INC, "A&D Engineering, Inc.");
+        map.put(MINDTREE_LTD, "MindTree Ltd.");
+        map.put(POLAR_ELECTRO_OY, "Polar Electro OY");
+        map.put(BEAUTIFUL_ENTERPRISE_CO_LTD, "Beautiful Enterprise Co., Ltd.");
+        map.put(BRIARTEK_INC, "BriarTek, Inc.");
+        map.put(SUMMIT_DATA_COMMUNICATIONS_INC, "Summit Data Communications, Inc.");
+        map.put(SOUND_ID, "Sound ID");
+        map.put(MONSTER_LLC, "Monster, LLC");
+        map.put(CONNECTBLUE_AB, "connectBlue AB");
+        map.put(SHANGHAI_SUPER_SMART_ELECTRONICS_CO_LTD, "ShangHai Super Smart Electronics Co. Ltd.");
+        map.put(GROUP_SENSE_LTD, "Group Sense Ltd.");
+        map.put(ZOMM_LLC, "Zomm, LLC");
+        map.put(SAMSUNG_ELECTRONICS_CO_LTD, "Samsung Electronics Co. Ltd.");
+        map.put(CREATIVE_TECHNOLOGY_LTD, "Creative Technology Ltd.");
+        map.put(LAIRD_TECHNOLOGIES, "Laird Technologies");
+        map.put(NIKE_INC, "Nike, Inc.");
+        map.put(LESSWIRE_AG, "lesswire AG");
+        map.put(MSTAR_SEMICONDUCTOR_INC, "MStar Semiconductor, Inc.");
+        map.put(HANLYNN_TECHNOLOGIES, "Hanlynn Technologies");
+        map.put(A_R_CAMBRIDGE, "A & R Cambridge");
+        map.put(SEERS_TECHNOLOGY_CO_LTD, "Seers Technology Co. Ltd");
+        map.put(SPORTS_TRACKING_TECHNOLOGIES_LTD, "Sports Tracking Technologies Ltd.");
+        map.put(AUTONET_MOBILE, "Autonet Mobile");
+        map.put(DELORME_PUBLISHING_COMPANY_INC, "DeLorme Publishing Company, Inc.");
+        map.put(WUXI_VIMICRO, "WuXi Vimicro");
+        map.put(SENNHEISER_COMMUNICATIONS_A_S, "Sennheiser Communications A/S");
+        map.put(TIMEKEEPING_SYSTEMS_INC, "TimeKeeping Systems, Inc.");
+        map.put(LUDUS_HELSINKI_LTD, "Ludus Helsinki Ltd.");
+        map.put(BLUERADIOS_INC, "BlueRadios, Inc.");
+        map.put(EQUINOX_AG, "equinox AG");
+        map.put(GARMIN_INTERNATIONAL_INC, "Garmin International, Inc.");
+        map.put(ECOTEST, "Ecotest");
+        map.put(GN_RESOUND_A_S, "GN ReSound A/S");
+        map.put(JAWBONE, "Jawbone");
+        map.put(TOPCORN_POSITIONING_SYSTEMS_LLC, "Topcorn Positioning Systems, LLC");
+        map.put(QUALCOMM_RETAIL_SOLUTIONS_INC_FORMERLY_QUALCOMM_LABS_INC, "Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.)");
+        map.put(ZSCAN_SOFTWARE, "Zscan Software");
+        map.put(QUINTIC_CORP, "Quintic Corp.");
+        map.put(STOLLMAN_EV_GMBH, "Stollman E+V GmbH");
+        map.put(FUNAI_ELECTRIC_CO_LTD, "Funai Electric Co., Ltd.");
+        map.put(ADVANCED_PANMOBIL_SYSTEMS_GMBH_CO_KG, "Advanced PANMOBIL Systems GmbH & Co. KG");
+        map.put(THINKOPTICS_INC, "ThinkOptics, Inc.");
+        map.put(UNIVERSAL_ELECTRONICS_INC, "Universal Electronics, Inc.");
+        map.put(AIROHA_TECHNOLOGY_CORP, "Airoha Technology Corp.");
+        map.put(NEC_LIGHTING_LTD, "NEC Lighting, Ltd.");
+        map.put(ODM_TECHNOLOGY_INC, "ODM Technology, Inc.");
+        map.put(CONNECTEDEVICE_LTD, "ConnecteDevice Ltd.");
+        map.put(ZER01TV_GMBH, "zer01.tv GmbH");
+        map.put(ITECH_DYNAMIC_GLOBAL_DISTRIBUTION_LTD, "i.Tech Dynamic Global Distribution Ltd.");
+        map.put(ALPWISE, "Alpwise");
+        map.put(JIANGSU_TOPPOWER_AUTOMOTIVE_ELECTRONICS_CO_LTD, "Jiangsu Toppower Automotive Electronics Co., Ltd.");
+        map.put(COLORFY_INC, "Colorfy, Inc.");
+        map.put(GEOFORCE_INC, "Geoforce Inc.");
+        map.put(BOSE_CORPORATION, "Bose Corporation");
+        map.put(SUUNTO_OY, "Suunto Oy");
+        map.put(KENSINGTON_COMPUTER_PRODUCTS_GROUP, "Kensington Computer Products Group");
+        map.put(SRMEDIZINELEKTRONIK, "SR-Medizinelektronik");
+        map.put(VERTU_CORPORATION_LIMITED, "Vertu Corporation Limited");
+        map.put(META_WATCH_LTD, "Meta Watch Ltd.");
+        map.put(LINAK_A_S, "LINAK A/S");
+        map.put(OTL_DYNAMICS_LLC, "OTL Dynamics LLC");
+        map.put(PANDA_OCEAN_INC, "Panda Ocean Inc.");
+        map.put(VISTEON_CORPORATION, "Visteon Corporation");
+        map.put(ARP_DEVICES_LIMITED, "ARP Devices Limited");
+        map.put(MAGNETI_MARELLI_SPA, "Magneti Marelli S.p.A");
+        map.put(CAEN_RFID_SRL, "CAEN RFID srl");
+        map.put(INGENIEURSYSTEMGRUPPE_ZAHN_GMBH, "Ingenieur-Systemgruppe Zahn GmbH");
+        map.put(GREEN_THROTTLE_GAMES, "Green Throttle Games");
+        map.put(PETER_SYSTEMTECHNIK_GMBH, "Peter Systemtechnik GmbH");
+        map.put(OMEGAWAVE_OY, "Omegawave Oy");
+        map.put(CINETIX, "Cinetix");
+        map.put(PASSIF_SEMICONDUCTOR_CORP, "Passif Semiconductor Corp");
+        map.put(SARIS_CYCLING_GROUP_INC, "Saris Cycling Group, Inc");
+        map.put(BEKEY_A_S, "Bekey A/S");
+        map.put(CLARINOX_TECHNOLOGIES_PTY_LTD, "Clarinox Technologies Pty. Ltd.");
+        map.put(BDE_TECHNOLOGY_CO_LTD, "BDE Technology Co., Ltd.");
+        map.put(SWIRL_NETWORKS, "Swirl Networks");
+        map.put(MESO_INTERNATIONAL, "Meso international");
+        map.put(TRELAB_LTD, "TreLab Ltd");
+        map.put(QUALCOMM_INNOVATION_CENTER_INC_QUIC, "Qualcomm Innovation Center, Inc. (QuIC)");
+        map.put(JOHNSON_CONTROLS_INC, "Johnson Controls, Inc.");
+        map.put(STARKEY_LABORATORIES_INC, "Starkey Laboratories Inc.");
+        map.put(SPOWER_ELECTRONICS_LIMITED, "S-Power Electronics Limited");
+        map.put(ACE_SENSOR_INC, "Ace Sensor Inc");
+        map.put(APLIX_CORPORATION, "Aplix Corporation");
+        map.put(AAMP_OF_AMERICA, "AAMP of America");
+        map.put(STALMART_TECHNOLOGY_LIMITED, "Stalmart Technology Limited");
+        map.put(AMICCOM_ELECTRONICS_CORPORATION, "AMICCOM Electronics Corporation");
+        map.put(SHENZHEN_EXCELSECU_DATA_TECHNOLOGY_COLTD, "Shenzhen Excelsecu Data Technology Co.,Ltd");
+        map.put(GENEQ_INC, "Geneq Inc.");
+        map.put(ADIDAS_AG, "adidas AG");
+        map.put(LG_ELECTRONICS, "LG Electronics");
+        map.put(ONSET_COMPUTER_CORPORATION, "Onset Computer Corporation");
+        map.put(SELFLY_BV, "Selfly BV");
+        map.put(QUUPPA_OY, "Quuppa Oy.");
+        map.put(GELO_INC, "GeLo Inc");
+        map.put(EVLUMA, "Evluma");
+        map.put(MC10, "MC10");
+        map.put(BINAURIC_SE, "Binauric SE");
+        map.put(BEATS_ELECTRONICS, "Beats Electronics");
+        map.put(MICROCHIP_TECHNOLOGY_INC, "Microchip Technology Inc.");
+        map.put(ELGATO_SYSTEMS_GMBH, "Elgato Systems GmbH");
+        map.put(ARCHOS_SA, "ARCHOS SA");
+        map.put(DEXCOM_INC, "Dexcom, Inc.");
+        map.put(POLAR_ELECTRO_EUROPE_BV, "Polar Electro Europe B.V.");
+        map.put(DIALOG_SEMICONDUCTOR_BV, "Dialog Semiconductor B.V.");
+        map.put(TAIXINGBANG_TECHNOLOGY_HK_CO_LTD, "Taixingbang聽Technology (HK) Co,. LTD.");
+        map.put(KAWANTECH, "Kawantech");
+        map.put(AUSTCO_COMMUNICATION_SYSTEMS, "Austco Communication Systems");
+        map.put(TIMEX_GROUP_USA_INC, "Timex Group USA, Inc.");
+        map.put(QUALCOMM_TECHNOLOGIES_INC, "Qualcomm Technologies, Inc.");
+        map.put(QUALCOMM_CONNECTED_EXPERIENCES_INC, "Qualcomm Connected Experiences, Inc.");
+        map.put(VOYETRA_TURTLE_BEACH, "Voyetra Turtle Beach");
+        map.put(TXTR_GMBH, "txtr GmbH");
+        map.put(BIOSENTRONICS, "Biosentronics");
+        map.put(PROCTER_GAMBLE, "Procter & Gamble");
+        map.put(HOSIDEN_CORPORATION, "Hosiden Corporation");
+        map.put(MUZIK_LLC, "Muzik LLC");
+        map.put(MISFIT_WEARABLES_CORP, "Misfit Wearables Corp");
+        map.put(GOOGLE, "Google");
+        map.put(DANLERS_LTD, "Danlers Ltd");
+        map.put(SEMILINK_INC, "Semilink Inc");
+        map.put(INMUSIC_BRANDS_INC, "inMusic Brands, Inc");
+        map.put(LS_RESEARCH_INC, "L.S. Research Inc.");
+        map.put(EDEN_SOFTWARE_CONSULTANTS_LTD, "Eden Software Consultants Ltd.");
+        map.put(FRESHTEMP, "Freshtemp");
+        map.put(KS_TECHNOLOGIES, "KS Technologies");
+        map.put(ACTS_TECHNOLOGIES, "ACTS Technologies");
+        map.put(VTRACK_SYSTEMS, "Vtrack Systems");
+        map.put(NIELSENKELLERMAN_COMPANY, "Nielsen-Kellerman Company");
+        map.put(SERVER_TECHNOLOGY_INC, "Server Technology, Inc.");
+        map.put(BIORESEARCH_ASSOCIATES, "BioResearch Associates");
+        map.put(JOLLY_LOGIC_LLC, "Jolly Logic, LLC");
+        map.put(ABOVE_AVERAGE_OUTCOMES_INC, "Above Average Outcomes, Inc.");
+        map.put(BITSPLITTERS_GMBH, "Bitsplitters GmbH");
+        map.put(PAYPAL_INC, "PayPal, Inc.");
+        map.put(WITRON_TECHNOLOGY_LIMITED, "Witron Technology Limited");
+        map.put(MORSE_PROJECT_INC, "Morse Project Inc.");
+        map.put(KENT_DISPLAYS_INC, "Kent Displays Inc.");
+        map.put(NAUTILUS_INC, "Nautilus Inc.");
+        map.put(SMARTIFIER_OY, "Smartifier Oy");
+        map.put(ELCOMETER_LIMITED, "Elcometer Limited");
+        map.put(VSN_TECHNOLOGIES_INC, "VSN Technologies Inc.");
+        map.put(ACEUNI_CORP_LTD, "AceUni Corp., Ltd.");
+        map.put(STICKNFIND, "StickNFind");
+        map.put(CRYSTAL_CODE_AB, "Crystal Code AB");
+        map.put(KOUKAAM_AS, "KOUKAAM a.s.");
+        map.put(DELPHI_CORPORATION, "Delphi Corporation");
+        map.put(VALENCETECH_LIMITED, "ValenceTech Limited");
+        map.put(RESERVED, "Reserved");
+        map.put(TYPO_PRODUCTS_LLC, "Typo Products, LLC");
+        map.put(TOMTOM_INTERNATIONAL_BV, "TomTom International BV");
+        map.put(FUGOO_INC, "Fugoo, Inc");
+        map.put(KEISER_CORPORATION, "Keiser Corporation");
+        map.put(BANG_OLUFSEN_A_S, "Bang & Olufsen A/S");
+        map.put(PLUS_LOCATIONS_SYSTEMS_PTY_LTD, "PLUS Locations Systems Pty Ltd");
+        map.put(UBIQUITOUS_COMPUTING_TECHNOLOGY_CORPORATION, "Ubiquitous Computing Technology Corporation");
+        map.put(INNOVATIVE_YACHTTER_SOLUTIONS, "Innovative Yachtter Solutions");
+        map.put(WILLIAM_DEMANT_HOLDING_A_S, "William Demant Holding A/S");
+        map.put(CHICONY_ELECTRONICS_CO_LTD, "Chicony Electronics Co., Ltd.");
+        map.put(ATUS_BV, "Atus BV");
+        map.put(CODEGATE_LTD, "Codegate Ltd.");
+        map.put(ERI_INC, "ERi, Inc.");
+        map.put(TRANSDUCERS_DIRECT_LLC, "Transducers Direct, LLC");
+        map.put(FUJITSU_TEN_LIMITED, "Fujitsu Ten Limited");
+        map.put(AUDI_AG, "Audi AG");
+        map.put(HISILICON_TECHNOLOGIES_CO_LTD, "HiSilicon Technologies Co., Ltd.");
+        map.put(NIPPON_SEIKI_CO_LTD, "Nippon Seiki Co., Ltd.");
+        map.put(STEELSERIES_APS, "Steelseries ApS");
+        map.put(VYZYBL_INC, "vyzybl Inc.");
+        map.put(OPENBRAIN_TECHNOLOGIES_CO_LTD, "Openbrain Technologies, Co., Ltd.");
+        map.put(XENSR, "Xensr");
+        map.put(ESOLUTIONS, "e.solutions");
+        map.put(ONE_OAK_TECHNOLOGIES, "1OAK Technologies");
+        map.put(WIMOTO_TECHNOLOGIES_INC, "Wimoto Technologies Inc");
+        map.put(RADIUS_NETWORKS_INC, "Radius Networks, Inc.");
+        map.put(WIZE_TECHNOLOGY_CO_LTD, "Wize Technology Co., Ltd.");
+        map.put(QUALCOMM_LABS_INC, "Qualcomm Labs, Inc.");
+        map.put(ARUBA_NETWORKS, "Aruba Networks");
+        map.put(BAIDU, "Baidu");
+        map.put(ARENDI_AG, "Arendi AG");
+        map.put(SKODA_AUTO_AS, "Skoda Auto a.s.");
+        map.put(VOLKSWAGON_AG, "Volkswagon AG");
+        map.put(PORSCHE_AG, "Porsche AG");
+        map.put(SINO_WEALTH_ELECTRONIC_LTD, "Sino Wealth Electronic Ltd.");
+        map.put(AIRTURN_INC, "AirTurn, Inc.");
+        map.put(KINSA_INC, "Kinsa, Inc.");
+        map.put(HID_GLOBAL, "HID Global");
+        map.put(SEAT_ES, "SEAT es");
+        map.put(PROMETHEAN_LTD, "Promethean Ltd.");
+        map.put(SALUTICA_ALLIED_SOLUTIONS, "Salutica Allied Solutions");
+        map.put(GPSI_GROUP_PTY_LTD, "GPSI Group Pty Ltd");
+        map.put(NIMBLE_DEVICES_OY, "Nimble Devices Oy");
+        map.put(CHANGZHOU_YONGSE_INFOTECH_CO_LTD, "Changzhou Yongse Infotech Co., Ltd");
+        map.put(SPORTIQ, "SportIQ");
+        map.put(TEMEC_INSTRUMENTS_BV, "TEMEC Instruments B.V.");
+        map.put(SONY_CORPORATION, "Sony Corporation");
+        map.put(ASSA_ABLOY, "ASSA ABLOY");
+        map.put(CLARION_CO_LTD, "Clarion Co., Ltd.");
+        map.put(WAREHOUSE_INNOVATIONS, "Warehouse Innovations");
+        map.put(CYPRESS_SEMICONDUCTOR_CORPORATION, "Cypress Semiconductor Corporation");
+        map.put(MADS_INC, "MADS Inc");
+        map.put(BLUE_MAESTRO_LIMITED, "Blue Maestro Limited");
+        map.put(RESOLUTION_PRODUCTS_INC, "Resolution Products, Inc.");
+        map.put(AIREWEAR_LLC, "Airewear LLC");
+        map.put(ETC_SP_ZOO, "ETC sp. z.o.o.");
+        map.put(PRESTIGIO_PLAZA_LTD, "Prestigio Plaza Ltd.");
+
+        return map;
+    }
+
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/GattAttributeResolver.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/GattAttributeResolver.java
new file mode 100644
index 0000000..a554b87
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/device/resolvers/GattAttributeResolver.java
@@ -0,0 +1,380 @@
+package com.blakequ.bluetooth_manager_lib.device.resolvers;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * The UUIDS have been collected from the following sources:
+ * <p>
+ * - http://developer.nokia.com/community/wiki/Bluetooth_Services_for_Windows_Phone
+ * - The Bluez project
+ *
+ * @author Alexandros Schillings
+ */
+public class GattAttributeResolver {
+    public static final String BASE_GUID = "00000000-0000-1000-8000-00805f9b34fb";
+    public static final String SERVICE_DISCOVERY_PROTOCOL_SDP = "00000001-0000-1000-8000-00805f9b34fb";
+    public static final String USER_DATAGRAM_PROTOCOL_UDP = "00000002-0000-1000-8000-00805f9b34fb";
+    public static final String RADIO_FREQUENCY_COMMUNICATION_PROTOCOL_RFCOMM = "00000003-0000-1000-8000-00805f9b34fb";
+    public static final String TCP = "00000004-0000-1000-8000-00805f9b34fb";
+    public static final String TCSBIN = "00000005-0000-1000-8000-00805f9b34fb";
+    public static final String TCSAT = "00000006-0000-1000-8000-00805f9b34fb";
+    public static final String OBJECT_EXCHANGE_PROTOCOL_OBEX = "00000008-0000-1000-8000-00805f9b34fb";
+    public static final String IP = "00000009-0000-1000-8000-00805f9b34fb";
+    public static final String FTP = "0000000a-0000-1000-8000-00805f9b34fb";
+    public static final String HTTP = "0000000c-0000-1000-8000-00805f9b34fb";
+    public static final String WSP = "0000000e-0000-1000-8000-00805f9b34fb";
+    public static final String BNEP_SVC = "0000000f-0000-1000-8000-00805f9b34fb";
+    public static final String UPNP_PROTOCOL = "00000010-0000-1000-8000-00805f9b34fb";
+    public static final String HIDP = "00000011-0000-1000-8000-00805f9b34fb";
+    public static final String HARDCOPY_CONTROL_CHANNEL_PROTOCOL = "00000012-0000-1000-8000-00805f9b34fb";
+    public static final String HARDCOPY_DATA_CHANNEL_PROTOCOL = "00000014-0000-1000-8000-00805f9b34fb";
+    public static final String HARDCOPY_NOTIFICATION_PROTOCOL = "00000016-0000-1000-8000-00805f9b34fb";
+    public static final String VCTP_PROTOCOL = "00000017-0000-1000-8000-00805f9b34fb";
+    public static final String VDTP_PROTOCOL = "00000019-0000-1000-8000-00805f9b34fb";
+    public static final String CMPT_PROTOCOL = "0000001b-0000-1000-8000-00805f9b34fb";
+    public static final String UDI_C_PLANE_PROTOCOL = "0000001d-0000-1000-8000-00805f9b34fb";
+    public static final String MCAP_CONTROL_CHANNEL = "0000001e-0000-1000-8000-00805f9b34fb";
+    public static final String MCAP_DATA_CHANNEL = "0000001f-0000-1000-8000-00805f9b34fb";
+    public static final String L2CAP = "00000100-0000-1000-8000-00805f9b34fb";
+    public static final String SERVICE_DISCOVERY_SERVER = "00001000-0000-1000-8000-00805f9b34fb";
+    public static final String BROWSE_GROUP_DESCRIPTOR = "00001001-0000-1000-8000-00805f9b34fb";
+    public static final String PUBLIC_BROWSE_GROUP = "00001002-0000-1000-8000-00805f9b34fb";
+    public static final String SPP = "00001101-0000-1000-8000-00805f9b34fb";
+    public static final String LAN_ACCESS_USING_PPP = "00001102-0000-1000-8000-00805f9b34fb";
+    public static final String DUN_GW = "00001103-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_SYNC = "00001104-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_OBJECT_PUSH = "00001105-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_FILE_TRANSFER = "00001106-0000-1000-8000-00805f9b34fb";
+    public static final String IRMC_SYNC_COMMAND = "00001107-0000-1000-8000-00805f9b34fb";
+    public static final String HSP_HS = "00001108-0000-1000-8000-00805f9b34fb";
+    public static final String CORDLESS_TELEPHONY = "00001109-0000-1000-8000-00805f9b34fb";
+    public static final String AUDIO_SOURCE = "0000110a-0000-1000-8000-00805f9b34fb";
+    public static final String AUDIO_SINK = "0000110b-0000-1000-8000-00805f9b34fb";
+    public static final String AV_REMOTE_CONTROL_TARGET = "0000110c-0000-1000-8000-00805f9b34fb";
+    public static final String ADVANCED_AUDIO = "0000110d-0000-1000-8000-00805f9b34fb";
+    public static final String AVRCP_REMOTE = "0000110e-0000-1000-8000-00805f9b34fb";
+    public static final String VIDEO_CONFERENCING = "0000110f-0000-1000-8000-00805f9b34fb";
+    public static final String INTERCOM = "00001110-0000-1000-8000-00805f9b34fb";
+    public static final String FAX = "00001111-0000-1000-8000-00805f9b34fb";
+    public static final String HEADSET_PROFILE_HSP_AUDIO_GATEWAY = "00001112-0000-1000-8000-00805f9b34fb";
+    public static final String WAP = "00001113-0000-1000-8000-00805f9b34fb";
+    public static final String WAP_CLIENT = "00001114-0000-1000-8000-00805f9b34fb";
+    public static final String PANU = "00001115-0000-1000-8000-00805f9b34fb";
+    public static final String NAP = "00001116-0000-1000-8000-00805f9b34fb";
+    public static final String GN = "00001117-0000-1000-8000-00805f9b34fb";
+    public static final String DIRECT_PRINTING = "00001118-0000-1000-8000-00805f9b34fb";
+    public static final String REFERENCE_PRINTING = "00001119-0000-1000-8000-00805f9b34fb";
+    public static final String IMAGING = "0000111a-0000-1000-8000-00805f9b34fb";
+    public static final String IMAGING_RESPONDER = "0000111b-0000-1000-8000-00805f9b34fb";
+    public static final String IMAGING_AUTOMATIC_ARCHIVE = "0000111c-0000-1000-8000-00805f9b34fb";
+    public static final String IMAGING_REFERENCE_OBJECTS = "0000111d-0000-1000-8000-00805f9b34fb";
+    public static final String HANDS_FREE_PROFILE_HFP = "0000111e-0000-1000-8000-00805f9b34fb";
+    public static final String HANDS_FREE_PROFILE_HFP_AUDIO_GATEWAY = "0000111f-0000-1000-8000-00805f9b34fb";
+    public static final String DIRECT_PRINTING_REFERENCE_OBJECTS = "00001120-0000-1000-8000-00805f9b34fb";
+    public static final String REFLECTED_UI = "00001121-0000-1000-8000-00805f9b34fb";
+    public static final String BASIC_PRINTING = "00001122-0000-1000-8000-00805f9b34fb";
+    public static final String PRINTING_STATUS = "00001123-0000-1000-8000-00805f9b34fb";
+    public static final String HID = "00001124-0000-1000-8000-00805f9b34fb";
+    public static final String HARDCOPY_CABLE_REPLACEMENT = "00001125-0000-1000-8000-00805f9b34fb";
+    public static final String HCR_PRINT = "00001126-0000-1000-8000-00805f9b34fb";
+    public static final String HCR_SCAN = "00001127-0000-1000-8000-00805f9b34fb";
+    public static final String COMMON_ISDN_ACCESS = "00001128-0000-1000-8000-00805f9b34fb";
+    public static final String VIDEO_CONFERENCING_GATEWAY = "00001129-0000-1000-8000-00805f9b34fb";
+    public static final String UDIMT = "0000112a-0000-1000-8000-00805f9b34fb";
+    public static final String UDITA = "0000112b-0000-1000-8000-00805f9b34fb";
+    public static final String AUDIO_VIDEO = "0000112c-0000-1000-8000-00805f9b34fb";
+    public static final String SIM_ACCESS = "0000112d-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_PCE = "0000112e-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_PSE = "0000112f-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_PBAP = "00001130-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_MAS = "00001132-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_MNS = "00001133-0000-1000-8000-00805f9b34fb";
+    public static final String OBEX_MAP = "00001134-0000-1000-8000-00805f9b34fb";
+    public static final String PNP = "00001200-0000-1000-8000-00805f9b34fb";
+    public static final String GENERIC_NETWORKING = "00001201-0000-1000-8000-00805f9b34fb";
+    public static final String GENERIC_FILE_TRANSFER = "00001202-0000-1000-8000-00805f9b34fb";
+    public static final String GENERIC_AUDIO = "00001203-0000-1000-8000-00805f9b34fb";
+    public static final String GENERIC_TELEPHONY = "00001204-0000-1000-8000-00805f9b34fb";
+    public static final String UPNP = "00001205-0000-1000-8000-00805f9b34fb";
+    public static final String UPNP_IP = "00001206-0000-1000-8000-00805f9b34fb";
+    public static final String ESDP_UPNP_IP_PAN = "00001300-0000-1000-8000-00805f9b34fb";
+    public static final String ESDP_UPNP_IP_LAP = "00001301-0000-1000-8000-00805f9b34fb";
+    public static final String ESDP_UPNP_L2CAP = "00001302-0000-1000-8000-00805f9b34fb";
+    public static final String VIDEO_DISTRIBUTION_PROFILE_VDP_SOURCE = "00001303-0000-1000-8000-00805f9b34fb";
+    public static final String VIDEO_DISTRIBUTION_PROFILE_VDP_SINK = "00001304-0000-1000-8000-00805f9b34fb";
+    public static final String VIDEO_DISTRIBUTION_PROFILE_VDP = "00001305-0000-1000-8000-00805f9b34fb";
+    public static final String HEALTH_DEVICE_PROFILE_HDP = "00001400-0000-1000-8000-00805f9b34fb";
+    public static final String HEALTH_DEVICE_PROFILE_HDP_SOURCE = "00001401-0000-1000-8000-00805f9b34fb";
+    public static final String HEALTH_DEVICE_PROFILE_HDP_SINK = "00001402-0000-1000-8000-00805f9b34fb";
+    public static final String GAP = "00001800-0000-1000-8000-00805f9b34fb";
+    public static final String GATT = "00001801-0000-1000-8000-00805f9b34fb";
+    public static final String IMMEDIATE_ALERT = "00001802-0000-1000-8000-00805f9b34fb";
+    public static final String LINK_LOSS = "00001803-0000-1000-8000-00805f9b34fb";
+    public static final String TX_POWER = "00001804-0000-1000-8000-00805f9b34fb";
+    public static final String HEALTH_THERMOMETER = "00001809-0000-1000-8000-00805f9b34fb";
+    public static final String DEVICE_INFORMATION = "0000180a-0000-1000-8000-00805f9b34fb";
+    public static final String HEART_RATE = "0000180d-0000-1000-8000-00805f9b34fb";
+    public static final String CYCLING_SC = "00001816-0000-1000-8000-00805f9b34fb";
+    public static final String CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb";
+    public static final String DEVICE_NAME = "00002a00-0000-1000-8000-00805f9b34fb";
+    public static final String APPEARANCE = "00002a01-0000-1000-8000-00805f9b34fb";
+    public static final String PERIPHERAL_PRIVACY_FLAG = "00002a02-0000-1000-8000-00805f9b34fb";
+    public static final String RECONNECTION_ADDRESS = "00002a03-0000-1000-8000-00805f9b34fb";
+    public static final String PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS = "00002a04-0000-1000-8000-00805f9b34fb";
+    public static final String SERVICE_CHANGED = "00002a05-0000-1000-8000-00805f9b34fb";
+    public static final String ALERT_LEVEL = "00002a06-0000-1000-8000-00805f9b34fb";
+    public static final String TX_POWER_LEVEL = "00002a07-0000-1000-8000-00805f9b34fb";
+    public static final String DATE_TIME = "00002a08-0000-1000-8000-00805f9b34fb";
+    public static final String DAY_OF_WEEK = "00002a09-0000-1000-8000-00805f9b34fb";
+    public static final String DAY_DATE_TIME = "00002a0a-0000-1000-8000-00805f9b34fb";
+    public static final String EXACT_TIME_256 = "00002a0c-0000-1000-8000-00805f9b34fb";
+    public static final String DST_OFFSET = "00002a0d-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_ZONE = "00002a0e-0000-1000-8000-00805f9b34fb";
+    public static final String LOCAL_TIME_INFORMATION = "00002a0f-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_WITH_DST = "00002a11-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_ACCURACY = "00002a12-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_SOURCE = "00002a13-0000-1000-8000-00805f9b34fb";
+    public static final String REFERENCE_TIME_INFORMATION = "00002a14-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_UPDATE_CONTROL_POINT = "00002a16-0000-1000-8000-00805f9b34fb";
+    public static final String TIME_UPDATE_STATE = "00002a17-0000-1000-8000-00805f9b34fb";
+    public static final String TEMPERATURE_MEASUREMENT = "00002a1c-0000-1000-8000-00805f9b34fb";
+    public static final String TEMPERATURE_TYPE = "00002a1d-0000-1000-8000-00805f9b34fb";
+    public static final String INTERMEDIATE_TEMPERATURE = "00002a1e-0000-1000-8000-00805f9b34fb";
+    public static final String MEASUREMENT_INTERVAL = "00002a21-0000-1000-8000-00805f9b34fb";
+    public static final String SYSTEM_ID = "00002a23-0000-1000-8000-00805f9b34fb";
+    public static final String MODEL_NUMBER_STRING = "00002a24-0000-1000-8000-00805f9b34fb";
+    public static final String SERIAL_NUMBER_STRING = "00002a25-0000-1000-8000-00805f9b34fb";
+    public static final String FIRMWARE_REVISION_STRING = "00002a26-0000-1000-8000-00805f9b34fb";
+    public static final String HARDWARE_REVISION_STRING = "00002a27-0000-1000-8000-00805f9b34fb";
+    public static final String SOFTWARE_REVISION_STRING = "00002a28-0000-1000-8000-00805f9b34fb";
+    public static final String MANUFACTURER_NAME_STRING = "00002a29-0000-1000-8000-00805f9b34fb";
+    public static final String IEEE_1107320601_REGULATORY = "00002a2a-0000-1000-8000-00805f9b34fb";
+    public static final String CURRENT_TIME = "00002a2b-0000-1000-8000-00805f9b34fb";
+    public static final String BLOOD_PRESSURE_MEASUREMENT = "00002a35-0000-1000-8000-00805f9b34fb";
+    public static final String INTERMEDIATE_CUFF_PRESSURE = "00002a36-0000-1000-8000-00805f9b34fb";
+    public static final String HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb";
+    public static final String BODY_SENSOR_LOCATION = "00002a38-0000-1000-8000-00805f9b34fb";
+    public static final String HEART_RATE_CONTROL_POINT = "00002a39-0000-1000-8000-00805f9b34fb";
+    public static final String ALERT_STATUS = "00002a3f-0000-1000-8000-00805f9b34fb";
+    public static final String RINGER_CONTROL_POINT = "00002a40-0000-1000-8000-00805f9b34fb";
+    public static final String RINGER_SETTING = "00002a41-0000-1000-8000-00805f9b34fb";
+    public static final String ALERT_CATEGORY_ID_BIT_MASK = "00002a42-0000-1000-8000-00805f9b34fb";
+    public static final String ALERT_CATEGORY_ID = "00002a43-0000-1000-8000-00805f9b34fb";
+    public static final String ALERT_NOTIFICATION_CONTROL_POINT = "00002a44-0000-1000-8000-00805f9b34fb";
+    public static final String UNREAD_ALERT_STATUS = "00002a45-0000-1000-8000-00805f9b34fb";
+    public static final String NEW_ALERT = "00002a46-0000-1000-8000-00805f9b34fb";
+    public static final String SUPPORTED_NEW_ALERT_CATEGORY = "00002a47-0000-1000-8000-00805f9b34fb";
+    public static final String SUPPORTED_UNREAD_ALERT_CATEGORY = "00002a48-0000-1000-8000-00805f9b34fb";
+    public static final String BLOOD_PRESSURE_FEATURE = "00002a49-0000-1000-8000-00805f9b34fb";
+    public static final String PNPID = "00002a50-0000-1000-8000-00805f9b34fb";
+    public static final String SC_CONTROL_POINT = "00002a55-0000-1000-8000-00805f9b34fb";
+    public static final String CSC_MEASUREMENT = "00002a5b-0000-1000-8000-00805f9b34fb";
+    public static final String CSC_FEATURE = "00002a5c-0000-1000-8000-00805f9b34fb";
+    public static final String SENSOR_LOCATION = "00002a5d-0000-1000-8000-00805f9b34fb";
+    public static final String ACTIVESYNC = "831c4071-7bc8-4a9c-a01c-15df25a4adbc";
+    public static final String ESTIMOTE_SERVICE = "b9403000-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_UUID = "b9403003-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_MAJOR = "b9403001-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_MINOR = "b9403002-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_BATTERY = "b9403041-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_TEMPERATURE = "b9403021-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_POWER = "b9403011-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_ADVERTISING_INTERVAL = "b9403012-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_VERSION_SERVICE = "b9404000-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_SOFTWARE_VERSION = "b9404001-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_HARDWARE_VERSION = "b9404002-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_AUTHENTICATION_SERVICE = "b9402000-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_ADVERTISING_SEED = "b9402001-f5f8-466e-aff9-25556b57fe6d";
+    public static final String ESTIMOTE_ADVERTISING_VECTOR = "b9402002-f5f8-466e-aff9-25556b57fe6d";
+
+    private final static Map<String, String> sGattAttributesMap = populateGattAttributesMap();
+
+    public static String getAttributeName(final String uuid, final String fallback) {
+        final String name = sGattAttributesMap.get(uuid.toLowerCase(Locale.US));
+        return name == null ? fallback : name;
+    }
+
+    private static Map<String, String> populateGattAttributesMap() {
+        final Map<String, String> map = new HashMap<>();
+
+        map.put(BASE_GUID , "Base GUID");
+        map.put(SERVICE_DISCOVERY_PROTOCOL_SDP , "Service Discovery Protocol (SDP)");
+        map.put(USER_DATAGRAM_PROTOCOL_UDP , "User Datagram Protocol (UDP)");
+        map.put(RADIO_FREQUENCY_COMMUNICATION_PROTOCOL_RFCOMM , "Radio Frequency Communication Protocol (RFCOMM)");
+        map.put(TCP , "TCP");
+        map.put(TCSBIN , "TCSBIN");
+        map.put(TCSAT , "TCSAT");
+        map.put(OBJECT_EXCHANGE_PROTOCOL_OBEX , "Object Exchange Protocol (OBEX)");
+        map.put(IP , "IP");
+        map.put(FTP , "FTP");
+        map.put(HTTP , "HTTP");
+        map.put(WSP , "WSP");
+        map.put(BNEP_SVC , "BNEP_SVC");
+        map.put(UPNP_PROTOCOL , "UPNP Protocol");
+        map.put(HIDP , "HIDP");
+        map.put(HARDCOPY_CONTROL_CHANNEL_PROTOCOL , "Hardcopy Control Channel Protocol");
+        map.put(HARDCOPY_DATA_CHANNEL_PROTOCOL , "Hardcopy Data Channel Protocol");
+        map.put(HARDCOPY_NOTIFICATION_PROTOCOL , "Hardcopy Notification Protocol");
+        map.put(VCTP_PROTOCOL , "VCTP Protocol");
+        map.put(VDTP_PROTOCOL , "VDTP Protocol");
+        map.put(CMPT_PROTOCOL , "CMPT Protocol");
+        map.put(UDI_C_PLANE_PROTOCOL , "UDI C Plane Protocol");
+        map.put(MCAP_CONTROL_CHANNEL , "MCAP Control Channel");
+        map.put(MCAP_DATA_CHANNEL , "MCAP Data Channel");
+        map.put(L2CAP , "L2CAP");
+        map.put(SERVICE_DISCOVERY_SERVER , "Service Discovery Server");
+        map.put(BROWSE_GROUP_DESCRIPTOR , "Browse Group Descriptor");
+        map.put(PUBLIC_BROWSE_GROUP , "Public Browse Group");
+        map.put(SPP , "SPP");
+        map.put(LAN_ACCESS_USING_PPP , "LAN Access Using PPP");
+        map.put(DUN_GW , "DUN_GW");
+        map.put(OBEX_SYNC , "OBEX_SYNC");
+        map.put(OBEX_OBJECT_PUSH , "OBEX Object Push");
+        map.put(OBEX_FILE_TRANSFER , "OBEX File Transfer");
+        map.put(IRMC_SYNC_COMMAND , "IrMC Sync Command");
+        map.put(HSP_HS , "HSP_HS");
+        map.put(CORDLESS_TELEPHONY , "Cordless Telephony");
+        map.put(AUDIO_SOURCE , "Audio Source");
+        map.put(AUDIO_SINK , "Audio Sink");
+        map.put(AV_REMOTE_CONTROL_TARGET , "AV Remote Control Target");
+        map.put(ADVANCED_AUDIO , "ADVANCED_AUDIO");
+        map.put(AVRCP_REMOTE , "AVRCP_REMOTE");
+        map.put(VIDEO_CONFERENCING , "Video Conferencing");
+        map.put(INTERCOM , "Intercom");
+        map.put(FAX , "FAX");
+        map.put(HEADSET_PROFILE_HSP_AUDIO_GATEWAY , "Headset Profile (HSP) - Audio Gateway");
+        map.put(WAP , "WAP");
+        map.put(WAP_CLIENT , "WAP Client");
+        map.put(PANU , "PANU");
+        map.put(NAP , "NAP");
+        map.put(GN , "GN");
+        map.put(DIRECT_PRINTING , "Direct Printing");
+        map.put(REFERENCE_PRINTING , "Reference Printing");
+        map.put(IMAGING , "Imaging");
+        map.put(IMAGING_RESPONDER , "Imaging Responder");
+        map.put(IMAGING_AUTOMATIC_ARCHIVE , "Imaging Automatic Archive");
+        map.put(IMAGING_REFERENCE_OBJECTS , "Imaging Reference Objects");
+        map.put(HANDS_FREE_PROFILE_HFP , "Hands Free Profile (HFP)");
+        map.put(HANDS_FREE_PROFILE_HFP_AUDIO_GATEWAY , "Hands Free Profile (HFP) 鈥� Audio Gateway");
+        map.put(DIRECT_PRINTING_REFERENCE_OBJECTS , "Direct Printing Reference Objects");
+        map.put(REFLECTED_UI , "Reflected UI");
+        map.put(BASIC_PRINTING , "Basic Printing");
+        map.put(PRINTING_STATUS , "Printing Status");
+        map.put(HID , "HID");
+        map.put(HARDCOPY_CABLE_REPLACEMENT , "Hardcopy Cable Replacement");
+        map.put(HCR_PRINT , "HCR Print");
+        map.put(HCR_SCAN , "HCR Scan");
+        map.put(COMMON_ISDN_ACCESS , "Common ISDN Access");
+        map.put(VIDEO_CONFERENCING_GATEWAY , "Video Conferencing Gateway");
+        map.put(UDIMT , "UDIMT");
+        map.put(UDITA , "UDITA");
+        map.put(AUDIO_VIDEO , "Audio Video");
+        map.put(SIM_ACCESS , "SIM Access");
+        map.put(OBEX_PCE , "OBEX PCE");
+        map.put(OBEX_PSE , "OBEX PSE");
+        map.put(OBEX_PBAP , "OBEX PBAP");
+        map.put(OBEX_MAS , "OBEX MAS");
+        map.put(OBEX_MNS , "OBEX MNS");
+        map.put(OBEX_MAP , "OBEX MAP");
+        map.put(PNP , "PNP");
+        map.put(GENERIC_NETWORKING , "Generic Networking");
+        map.put(GENERIC_FILE_TRANSFER , "Generic File Transfer");
+        map.put(GENERIC_AUDIO , "Generic Audio");
+        map.put(GENERIC_TELEPHONY , "Generic Telephony");
+        map.put(UPNP , "UPNP");
+        map.put(UPNP_IP , "UPNP IP");
+        map.put(ESDP_UPNP_IP_PAN , "ESDP UPnP IP PAN");
+        map.put(ESDP_UPNP_IP_LAP , "ESDP UPnP IP LAP");
+        map.put(ESDP_UPNP_L2CAP , "ESDP Upnp L2CAP");
+        map.put(VIDEO_DISTRIBUTION_PROFILE_VDP_SOURCE , "Video Distribution Profile (VDP) - Source");
+        map.put(VIDEO_DISTRIBUTION_PROFILE_VDP_SINK , "Video Distribution Profile (VDP) - Sink");
+        map.put(VIDEO_DISTRIBUTION_PROFILE_VDP , "Video Distribution Profile (VDP)");
+        map.put(HEALTH_DEVICE_PROFILE_HDP , "Health Device Profile (HDP)");
+        map.put(HEALTH_DEVICE_PROFILE_HDP_SOURCE , "Health Device Profile (HDP) - Source");
+        map.put(HEALTH_DEVICE_PROFILE_HDP_SINK , "Health Device Profile (HDP) - Sink");
+        map.put(GAP , "GAP");
+        map.put(GATT , "GATT");
+        map.put(IMMEDIATE_ALERT , "IMMEDIATE_ALERT");
+        map.put(LINK_LOSS , "LINK_LOSS");
+        map.put(TX_POWER , "TX_POWER");
+        map.put(HEALTH_THERMOMETER , "Health Thermometer");
+        map.put(DEVICE_INFORMATION , "Device Information");
+        map.put(HEART_RATE , "HEART_RATE");
+        map.put(CYCLING_SC , "CYCLING_SC");
+        map.put(CLIENT_CHARACTERISTIC_CONFIG , "CLIENT_CHARACTERISTIC_CONFIG");
+        map.put(DEVICE_NAME , "Device Name");
+        map.put(APPEARANCE , "Appearance");
+        map.put(PERIPHERAL_PRIVACY_FLAG , "Peripheral Privacy Flag");
+        map.put(RECONNECTION_ADDRESS , "Reconnection Address");
+        map.put(PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS , "Peripheral Preferred Connection Parameters");
+        map.put(SERVICE_CHANGED , "Service Changed");
+        map.put(ALERT_LEVEL , "Alert Level");
+        map.put(TX_POWER_LEVEL , "Tx Power Level");
+        map.put(DATE_TIME , "Date Time");
+        map.put(DAY_OF_WEEK , "Day of Week");
+        map.put(DAY_DATE_TIME , "Day Date Time");
+        map.put(EXACT_TIME_256 , "Exact Time 256");
+        map.put(DST_OFFSET , "DST Offset");
+        map.put(TIME_ZONE , "Time Zone");
+        map.put(LOCAL_TIME_INFORMATION , "Local Time Information");
+        map.put(TIME_WITH_DST , "Time with DST");
+        map.put(TIME_ACCURACY , "Time Accuracy");
+        map.put(TIME_SOURCE , "Time Source");
+        map.put(REFERENCE_TIME_INFORMATION , "Reference Time Information");
+        map.put(TIME_UPDATE_CONTROL_POINT , "Time Update Control Point");
+        map.put(TIME_UPDATE_STATE , "Time Update State");
+        map.put(TEMPERATURE_MEASUREMENT , "Temperature Measurement");
+        map.put(TEMPERATURE_TYPE , "Temperature Type");
+        map.put(INTERMEDIATE_TEMPERATURE , "Intermediate Temperature");
+        map.put(MEASUREMENT_INTERVAL , "Measurement Interval");
+        map.put(SYSTEM_ID , "System ID");
+        map.put(MODEL_NUMBER_STRING , "Model Number String");
+        map.put(SERIAL_NUMBER_STRING , "Serial Number String");
+        map.put(FIRMWARE_REVISION_STRING , "Firmware Revision String");
+        map.put(HARDWARE_REVISION_STRING , "Hardware Revision String");
+        map.put(SOFTWARE_REVISION_STRING , "Software Revision String");
+        map.put(MANUFACTURER_NAME_STRING , "Manufacturer Name String");
+        map.put(IEEE_1107320601_REGULATORY , "IEEE 11073-20601 Regulatory");
+        map.put(CURRENT_TIME , "Current Time");
+        map.put(BLOOD_PRESSURE_MEASUREMENT , "Blood Pressure Measurement");
+        map.put(INTERMEDIATE_CUFF_PRESSURE , "Intermediate Cuff Pressure");
+        map.put(HEART_RATE_MEASUREMENT , "Heart Rate Measurement");
+        map.put(BODY_SENSOR_LOCATION , "Body Sensor Location");
+        map.put(HEART_RATE_CONTROL_POINT , "Heart Rate Control Point");
+        map.put(ALERT_STATUS , "Alert Status");
+        map.put(RINGER_CONTROL_POINT , "Ringer Control Point");
+        map.put(RINGER_SETTING , "Ringer Setting");
+        map.put(ALERT_CATEGORY_ID_BIT_MASK , "Alert Category ID Bit Mask");
+        map.put(ALERT_CATEGORY_ID , "Alert Category ID");
+        map.put(ALERT_NOTIFICATION_CONTROL_POINT , "Alert Notification Control Point");
+        map.put(UNREAD_ALERT_STATUS , "Unread Alert Status");
+        map.put(NEW_ALERT , "New Alert");
+        map.put(SUPPORTED_NEW_ALERT_CATEGORY , "Supported New Alert Category");
+        map.put(SUPPORTED_UNREAD_ALERT_CATEGORY , "Supported Unread Alert Category");
+        map.put(BLOOD_PRESSURE_FEATURE , "Blood Pressure Feature");
+        map.put(PNPID , "PNPID");
+        map.put(SC_CONTROL_POINT , "SC_CONTROL_POINT");
+        map.put(CSC_MEASUREMENT , "CSC_MEASUREMENT");
+        map.put(CSC_FEATURE , "CSC_FEATURE");
+        map.put(SENSOR_LOCATION , "SENSOR_LOCATION");
+        map.put(ACTIVESYNC , "ActiveSync");
+        map.put(ESTIMOTE_SERVICE , "Estimote Service");
+        map.put(ESTIMOTE_UUID , "Estimote UUID");
+        map.put(ESTIMOTE_MAJOR , "Estimote Major");
+        map.put(ESTIMOTE_MINOR , "Estimote Minor");
+        map.put(ESTIMOTE_BATTERY , "Estimote Battery");
+        map.put(ESTIMOTE_TEMPERATURE , "Estimote Temperature");
+        map.put(ESTIMOTE_POWER , "Estimote Power");
+        map.put(ESTIMOTE_ADVERTISING_INTERVAL , "Estimote Advertising Interval");
+        map.put(ESTIMOTE_VERSION_SERVICE , "Estimote Version Service");
+        map.put(ESTIMOTE_SOFTWARE_VERSION , "Estimote Software Version");
+        map.put(ESTIMOTE_HARDWARE_VERSION , "Estimote Hardware Version");
+        map.put(ESTIMOTE_AUTHENTICATION_SERVICE , "Estimote Authentication Service");
+        map.put(ESTIMOTE_ADVERTISING_SEED , "Estimote Advertising Seed");
+        map.put(ESTIMOTE_ADVERTISING_VECTOR , "Estimote Advertising Vector");
+
+        return map;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BackgroundPowerSaver.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BackgroundPowerSaver.java
new file mode 100644
index 0000000..49f0bae
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BackgroundPowerSaver.java
@@ -0,0 +1,197 @@
+package com.blakequ.bluetooth_manager_lib.scan;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.app.Application;
+import android.content.Context;
+import android.os.Bundle;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.BleParamsOptions;
+import com.blankj.utilcode.util.LogUtils;
+
+
+/**
+ *
+ * Simply creating an instance of this class and holding a reference to it in your Application can
+ * improve battery life by 60% by slowing down scans when your app is in the background.
+ *
+ */
+@TargetApi(18)
+public class BackgroundPowerSaver implements Application.ActivityLifecycleCallbacks {
+    private int activeActivityCount = 0;
+    private Context mContext;
+    /**
+     * The default duration in milliseconds of the Bluetooth scan cycle
+     */
+    public static final long DEFAULT_FOREGROUND_SCAN_PERIOD = 10000;
+    /**
+     * The default duration in milliseconds spent not scanning between each Bluetooth scan cycle
+     */
+    public static final long DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD = 5*1000;
+    /**
+     * The default duration in milliseconds of the Bluetooth scan cycle when no ranging/monitoring clients are in the foreground
+     */
+    public static final long DEFAULT_BACKGROUND_SCAN_PERIOD = 10000;
+    /**
+     * The default duration in milliseconds spent not scanning between each Bluetooth scan cycle when no ranging/monitoring clients are in the foreground
+     */
+    public static final long DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD = 5 * 60 * 1000;
+
+    private long foregroundScanPeriod = DEFAULT_FOREGROUND_SCAN_PERIOD;
+    private long foregroundBetweenScanPeriod = DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD;
+    private long backgroundScanPeriod = DEFAULT_BACKGROUND_SCAN_PERIOD;
+    private long backgroundBetweenScanPeriod = DEFAULT_BACKGROUND_BETWEEN_SCAN_PERIOD;
+
+    /**
+     *
+     * Constructs a new BackgroundPowerSaver
+     *
+     * @param context
+     * @deprecated the countActiveActivityStrategy flag is no longer used.
+     *
+     */
+    public BackgroundPowerSaver(Context context, boolean countActiveActivityStrategy) {
+        this(context);
+    }
+
+    /**
+     *
+     * Constructs a new BackgroundPowerSaver using the default background determination strategy
+     *
+     * @param context
+     */
+    public BackgroundPowerSaver(Context context) {
+        if (android.os.Build.VERSION.SDK_INT < 18) {
+            LogUtils.w("BackgroundPowerSaver requires API 18 or higher.");
+            return;
+        }
+        ((Application)context.getApplicationContext()).registerActivityLifecycleCallbacks(this);
+        this.mContext = context;
+    }
+
+    /**
+     * Sets the duration in milliseconds of each Bluetooth LE scan cycle to look for beacons.
+     * This function is used to setup the period when switching
+     * between background/foreground. To have it effect on an already running scan (when the next
+     * cycle starts), call {@link BluetoothScanManager#setBackgroundMode}
+     *
+     * @param p
+     */
+    @Deprecated
+    public void setForegroundScanPeriod(long p) {
+        foregroundScanPeriod = p;
+    }
+
+    /**
+     * Sets the duration in milliseconds between each Bluetooth LE scan cycle to look for beacons.
+     * This function is used to setup the period when switching
+     * between background/foreground. To have it effect on an already running scan (when the next
+     * cycle starts), call {@link BluetoothScanManager#setBackgroundMode}
+     *
+     * @param p
+     */
+    @Deprecated
+    public void setForegroundBetweenScanPeriod(long p) {
+        foregroundBetweenScanPeriod = p;
+    }
+
+    /**
+     * Sets the duration in milliseconds of each Bluetooth LE scan cycle to look for beacons.
+     * This function is used to setup the period when switching
+     * between background/foreground. To have it effect on an already running scan (when the next
+     * cycle starts), call {@link BluetoothScanManager#setBackgroundMode}
+     *
+     * @param p
+     */
+    @Deprecated
+    public void setBackgroundScanPeriod(long p) {
+        backgroundScanPeriod = p;
+    }
+
+    /**
+     * Sets the duration in milliseconds spent not scanning between each Bluetooth LE scan cycle when no ranging/monitoring clients are in the foreground
+     *
+     * @param p
+     */
+    @Deprecated
+    public void setBackgroundBetweenScanPeriod(long p) {
+        backgroundBetweenScanPeriod = p;
+    }
+
+    public long getScanPeriod() {
+        BleParamsOptions options = BleManager.getBleParamsOptions();
+        if (BluetoothScanManager.getInstance(mContext).isBackgroundMode()) {
+            if (options != null){
+                return options.getBackgroundScanPeriod();
+            }else {
+                return backgroundScanPeriod;
+            }
+        } else {
+            if (options != null){
+                return options.getForegroundScanPeriod();
+            }else {
+                return foregroundScanPeriod;
+            }
+        }
+    }
+
+    public long getBetweenScanPeriod() {
+        BleParamsOptions options = BleManager.getBleParamsOptions();
+        if (BluetoothScanManager.getInstance(mContext).isBackgroundMode()) {
+            if (options != null){
+                return options.getBackgroundBetweenScanPeriod();
+            }else {
+                return backgroundBetweenScanPeriod;
+            }
+        } else {
+            if (options != null){
+                return options.getForegroundBetweenScanPeriod();
+            }else {
+                return foregroundBetweenScanPeriod;
+            }
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Activity activity, Bundle bundle) {
+    }
+
+    @Override
+    public void onActivityStarted(Activity activity) {
+    }
+
+    @Override
+    public void onActivityResumed(Activity activity) {
+        activeActivityCount++;
+        if (activeActivityCount < 1) {
+            LogUtils.d("reset active activity count on resume.  It was " + activeActivityCount);
+            activeActivityCount = 1;
+        }
+        BluetoothScanManager.getInstance(mContext).setBackgroundMode(false);
+        LogUtils.d("activity resumed: "+activity+" active activities: "+activeActivityCount);
+    }
+
+    @Override
+    public void onActivityPaused(Activity activity) {
+        activeActivityCount--;
+        LogUtils.d("activity paused: "+activity+" active activities: "+activeActivityCount);
+        if (activeActivityCount < 1) {
+            LogUtils.d("setting background mode");
+            BluetoothScanManager.getInstance(mContext).setBackgroundMode(true);
+        }
+    }
+
+    @Override
+    public void onActivityStopped(Activity activity) {
+    }
+
+    @Override
+    public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
+
+    }
+
+    @Override
+    public void onActivityDestroyed(Activity activity) {
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BluetoothScanManager.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BluetoothScanManager.java
new file mode 100644
index 0000000..f034f05
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/BluetoothScanManager.java
@@ -0,0 +1,243 @@
+package com.blakequ.bluetooth_manager_lib.scan;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+
+import com.blakequ.bluetooth_manager_lib.BleManager;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanResultCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.List;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/17 11:30 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description: 鎵弿绠$悊鍣紝瑕佸疄鐜扮殑鍔熻兘
+ * <ol>
+ * <li>鎵弿灏佽</li>
+ * <li>鎵弿绠$悊</li>
+ * <li>鏀寔ibeacon鎵弿瑙f瀽</li>
+ * <li>鎸佺画鎵弿鐪佺數绠$悊锛圔ackgroundPowerSaver)</li>
+ * <li>寰幆鎵弿鏆傚仠涓庡紑濮嬶紙褰撹繛鎺ユ椂鍙互璁╂壂鎻忔殏鍋滐紝涓�鏃︽柇寮�灏遍噸鍚壂鎻忥級</li>
+ * <li>褰撳墠鎵弿鐘舵��</li>
+ * </ol>
+ * 娉ㄦ剰锛氬洖璋冧笉鍦ㄤ富绾跨▼涓墽琛岋紝闇�瑕佽嚜宸卞湪涓荤嚎绋嬩腑澶勭悊鍥炶皟锛坽@link com.blakequ.bluetooth_manager_lib.scan.ScanOverListener} and {@link com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat}锛�,
+ * 灏ゅ叾鏄兂鍦ㄦ壂鎻忕粨鏉熶箣鍚庣洿鎺ユ墽琛岃繛鎺ヨ摑鐗欐垨鏂紑钃濈墮璁惧锛岄兘闇�瑕佸湪涓荤嚎绋嬫墽琛岋紝鍚﹀垯鍦ㄦ煇浜涙満鍨嬪涓夋槦浼氬嚭鐜板紓甯搞��
+ */
+@TargetApi(18)
+public final class BluetoothScanManager {
+    private static BluetoothScanManager INSTANCE = null;
+
+    //is background mode or not
+    private boolean backgroundMode = false;
+    private BackgroundPowerSaver mPowerSaver;
+    private CycledLeScanner cycledLeScanner;
+    private ScanCallbackCompat scanCallbackCompat;
+    private final Handler mHandler;
+    private static Object obj = new Object();
+
+    private BluetoothScanManager(Context context){
+        mPowerSaver = new BackgroundPowerSaver(context);
+        mHandler = new Handler(Looper.getMainLooper());
+        cycledLeScanner = new CycledLeScanner(context,
+                BackgroundPowerSaver.DEFAULT_FOREGROUND_SCAN_PERIOD,
+                BackgroundPowerSaver.DEFAULT_FOREGROUND_BETWEEN_SCAN_PERIOD,
+                backgroundMode,
+                getScanCallback());
+        BleManager.getBleParamsOptions();
+    }
+
+    public static BluetoothScanManager getInstance(Context context){
+        if (INSTANCE == null){
+            synchronized (obj){
+                if (INSTANCE == null){
+                    LogUtils.d("BluetoothScanManager instance creation");
+                    INSTANCE = new BluetoothScanManager(context);
+                }
+            }
+        }
+        return INSTANCE;
+    }
+
+    /**
+     * Runs the specified action on the UI thread. If the current thread is the UI
+     * thread, then the action is executed immediately. If the current thread is
+     * not the UI thread, the action is posted to the event queue of the UI thread.
+     *
+     * @param action the action to run on the UI thread
+     */
+    public final void runOnUiThread(Runnable action) {
+        if (Thread.currentThread() != Looper.getMainLooper().getThread()) {
+            mHandler.post(action);
+        } else {
+            action.run();
+        }
+    }
+
+    /**
+     * @return
+     */
+    public BackgroundPowerSaver getPowerSaver(){
+        return mPowerSaver;
+    }
+
+    /**
+     * set scan device invoke
+     * @param scanCallbackCompat
+     */
+    public void setScanCallbackCompat(ScanCallbackCompat scanCallbackCompat) {
+        this.scanCallbackCompat = scanCallbackCompat;
+    }
+
+    public void setScanOverListener(ScanOverListener scanOverListener) {
+        cycledLeScanner.setScanOverListener(scanOverListener);
+    }
+
+    /**
+     * is scanning
+     * @return
+     */
+    public boolean isScanning(){
+      return cycledLeScanner.isScanning();
+    }
+
+    public boolean isPauseScanning(){
+        return cycledLeScanner.isPauseScan();
+    }
+
+    /**
+     * stop cycle scan and will restart when invoke {@link #startCycleScan()}
+     */
+    public void stopCycleScan(){
+        cycledLeScanner.setPauseScan(true);
+    }
+
+    /**
+     * start scan device and will stop until invoke {@link #stopCycleScan()}
+     * notice: maybe is not scan right now
+     * @see #startScanNow()
+     * @see #stopCycleScan()
+     */
+    public void startCycleScan(){
+        cycledLeScanner.startScan();
+    }
+
+    /**
+     * Immediately start a scan(only one times)
+     */
+    public void startScanOnce(){
+        cycledLeScanner.startOnceScan();
+    }
+
+    /**
+     * start scan right now, is different {@link #startCycleScan()}
+     * @see #startCycleScan()
+     */
+    public void startScanNow(){
+        // FIXME: 2017/6/22 modify config not enable first time
+        cycledLeScanner.setBackgroundMode(mPowerSaver.getScanPeriod(), mPowerSaver.getBetweenScanPeriod(), backgroundMode);
+        cycledLeScanner.startScanNow();
+    }
+
+    /**
+     * add scan filter
+     * @param scanFilter
+     */
+    public void addScanFilterCompats(ScanFilterCompat scanFilter){
+        cycledLeScanner.addScanFilterCompats(scanFilter);
+    }
+
+    public void setScanSettings(ScanSettingsCompat scanSettings) {
+        cycledLeScanner.setScanSettings(scanSettings);
+    }
+
+    /**
+     * default using new scan method if API >= 21
+     * @return
+     */
+    @Deprecated
+    public static boolean isAPI21ScanningDisabled(){
+        return false;
+    }
+
+    /**
+     * This method notifies the beacon service that the application is either moving to background
+     * mode or foreground mode.  When in background mode, BluetoothLE scans to look for beacons are
+     * executed less frequently in order to save battery life. The specific scan rates for
+     * background and foreground operation are set by the defaults below, but may be customized.
+     * When ranging in the background, the time between updates will be much less frequent than in
+     * the foreground.  Updates will come every time interval equal to the sum total of the
+     * BackgroundScanPeriod and the BackgroundBetweenScanPeriod.
+     *
+     * @param backgroundMode true indicates the app is in the background
+     */
+    public void setBackgroundMode(boolean backgroundMode) {
+        if (android.os.Build.VERSION.SDK_INT < 18) {
+            LogUtils.w("Not supported prior to API 18.  Method invocation will be ignored");
+        }
+        if (backgroundMode != this.backgroundMode) {
+            this.backgroundMode = backgroundMode;
+            cycledLeScanner.setBackgroundMode(mPowerSaver.getScanPeriod(), mPowerSaver.getBetweenScanPeriod(), backgroundMode);
+        }
+    }
+
+    public boolean isBackgroundMode() {
+        return backgroundMode;
+    }
+
+    private ScanCallbackCompat getScanCallback(){
+        return new ScanCallbackCompat() {
+            @Override
+            public void onBatchScanResults(final List<ScanResultCompat> results) {
+                if (scanCallbackCompat != null){
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            scanCallbackCompat.onBatchScanResults(results);
+                        }
+                    });
+                }
+            }
+
+            @Override
+            public void onScanFailed(final int errorCode) {
+                if (scanCallbackCompat != null){
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            scanCallbackCompat.onScanFailed(errorCode);
+                        }
+                    });
+                }
+            }
+
+            @Override
+            public void onScanResult(final int callbackType, final ScanResultCompat result) {
+                if (scanCallbackCompat != null){
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            scanCallbackCompat.onScanResult(callbackType, result);
+                        }
+                    });
+                }
+            }
+        };
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/CycledLeScanner.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/CycledLeScanner.java
new file mode 100644
index 0000000..7cbfd13
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/CycledLeScanner.java
@@ -0,0 +1,363 @@
+package com.blakequ.bluetooth_manager_lib.scan;
+
+import android.Manifest;
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.location.LocationManager;
+import android.os.Handler;
+import android.os.SystemClock;
+import androidx.core.content.ContextCompat;
+
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.BluetoothLeScannerCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanCallbackCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanFilterCompat;
+import com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat.ScanSettingsCompat;
+import com.blakequ.bluetooth_manager_lib.util.BluetoothUtils;
+import com.blankj.utilcode.util.LogUtils;
+
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/18 11:54 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:
+ */
+@TargetApi(18)
+public class CycledLeScanner {
+    private boolean isPrintCycleTime = true;
+    private final Context mContext;
+    private long scanPeriod;
+    private long betweenScanPeriod;
+    private boolean mBackgroundFlag = false;
+    private ScanCallbackCompat scanCallbackCompat;
+    private final BluetoothUtils mBluetoothUtils;
+    private ScanOverListener scanOverListener;
+    private long nextScanStartTime = 0;
+    private long scanStopTime = 0;
+    private long lastScanEndTime = 0;
+    private boolean mScanning = false;
+    private boolean isPauseScan = false; //pause scan or restart
+    private boolean isOnceScan = false; //scan only once
+    private boolean isStartNow = false;
+    private final Handler mHandler = new Handler();
+    private boolean isSetScanSetting = false;
+    private ScanSettingsCompat scanSettings;
+    private final List<ScanFilterCompat> scanFilterCompats = new CopyOnWriteArrayList<>();
+
+    public CycledLeScanner(Context context, long scanPeriod, long betweenScanPeriod, boolean backgroundFlag, ScanCallbackCompat callbackCompat){
+        this.mContext = context;
+        this.scanPeriod = scanPeriod;
+        this.betweenScanPeriod = betweenScanPeriod;
+        this.scanCallbackCompat = callbackCompat;
+        this.mBackgroundFlag = backgroundFlag;
+        this.mBluetoothUtils = BluetoothUtils.getInstance(context);
+    }
+
+    /**
+     * invoke at the end of scan(every scan cycle over)
+     * @param scanOverListener
+     */
+    public void setScanOverListener(ScanOverListener scanOverListener) {
+        this.scanOverListener = scanOverListener;
+    }
+
+    /**
+     * add scan filter
+     * @param scanFilter
+     */
+    public void addScanFilterCompats(ScanFilterCompat scanFilter){
+        scanFilterCompats.add(scanFilter);
+    }
+
+    public void setScanSettings(ScanSettingsCompat scanSettings) {
+        isSetScanSetting = true;
+        this.scanSettings = scanSettings;
+    }
+
+    public void startOnceScan() {
+        isOnceScan = true;
+        scanLeDevice(true);
+    }
+
+    /**
+     * pause or restart scan device cycle
+     * @param isPauseScan
+     */
+    public void setPauseScan(boolean isPauseScan) {
+        this.isPauseScan = isPauseScan;
+        if (!isPauseScan){
+            scanLeDevice(true);
+        }else {
+            scanLeDevice(false);
+        }
+    }
+
+    /**
+     * start scan device
+     */
+    public void startScan(){
+        isPauseScan = false;
+        scanLeDevice(true);
+    }
+
+    /**
+     * start scan device right now
+     */
+    public void startScanNow(){
+        isStartNow = true;
+        isPauseScan = false;
+        scanLeDevice(true);
+    }
+
+    /**
+     * Tells the cycler the scan rate and whether it is in operating in background mode.
+     * Background mode flag  is used only with the Android 5.0 scanning implementations to switch
+     * between LOW_POWER_MODE vs. LOW_LATENCY_MODE
+     * @param backgroundFlag is running background
+     */
+    public void setBackgroundMode(long scanPeriod, long betweenScanPeriod, boolean backgroundFlag) {
+        if (android.os.Build.VERSION.SDK_INT < 18) {
+            LogUtils.w("Not supported prior to API 18.  Method invocation will be ignored");
+            return;
+        }
+
+        this.scanPeriod = scanPeriod;
+        this.betweenScanPeriod = betweenScanPeriod;
+        if (backgroundFlag != mBackgroundFlag) {
+            LogUtils.d("restart polling task scanPeriod:" + scanPeriod + " betweenScanPeriod:" + betweenScanPeriod + " backgroundFlag:" + backgroundFlag + " mode:" + mBackgroundFlag);
+            mBackgroundFlag = backgroundFlag;
+            long now = SystemClock.elapsedRealtime();
+
+            //update next scan start time锛堝湪绛夊緟寮�濮嬫壂鎻忔椂淇涓嬩竴娆″紑濮嬫椂闂�,鎻愬墠寮�濮嬶級
+            if (nextScanStartTime > now){
+                long proposedNextScanStartTime = lastScanEndTime + betweenScanPeriod;
+                if (proposedNextScanStartTime < nextScanStartTime){
+                    LogUtils.d("Waiting...Adjusted nextScanStartTime to be" + (proposedNextScanStartTime - now) + " old:" + (nextScanStartTime - now));
+                    nextScanStartTime = proposedNextScanStartTime;
+                }
+            }
+
+            //update current scan stop time(濡傛灉鍦ㄦ壂鎻忎腑鍒欎慨姝f湰娆$殑缁撴潫鏃堕棿,鎻愬墠缁撴潫)
+            if (scanStopTime > now){
+                long proposedStopTime = nextScanStartTime + scanPeriod;
+                if (proposedStopTime < scanStopTime){
+                    LogUtils.d("Scanning...Adjusted scanStopTime to be " + (proposedStopTime - now) + " old:" + (scanStopTime - now));
+                    scanStopTime = proposedStopTime;
+                }
+            }
+
+            //set scan setting params
+            if (!isSetScanSetting || scanSettings == null){
+                if (mBackgroundFlag) {
+                    LogUtils.d("starting filtered scan in SCAN_MODE_LOW_POWER");
+                    scanSettings = (new ScanSettingsCompat.Builder().setScanMode(ScanSettingsCompat.SCAN_MODE_LOW_POWER)).build();
+                } else {
+                    LogUtils.d("starting non-filtered scan in SCAN_MODE_LOW_LATENCY");
+                    scanSettings = (new ScanSettingsCompat.Builder().setScanMode(ScanSettingsCompat.SCAN_MODE_LOW_LATENCY)).build();
+                }
+            }
+        }
+    }
+
+    public boolean isScanning() {
+        return mScanning;
+    }
+
+    public boolean isPauseScan() {
+        return isPauseScan;
+    }
+
+    /**
+     * start or stop scan
+     * @param enable true-start scan right now锛宖alse-stop scan
+     */
+    private void scanLeDevice(boolean enable) {
+        BluetoothAdapter mAdapter = mBluetoothUtils.getBluetoothAdapter();
+        if (mBluetoothUtils == null || !mBluetoothUtils.isBluetoothIsEnable()){
+            LogUtils.e("ScanDevice: Scanning fail! BluetoothAdapter is null");
+            return;
+        }
+
+
+        if (enable) {
+            //is delay scan
+            if (deferScanIfNeeded()){
+                if (!isStartNow){
+                    return;
+                }else{
+                    LogUtils.i("ScanDevice: Scan right now!");
+                    isStartNow = false;
+                }
+            }
+
+            if (mScanning) {
+                LogUtils.d("ScanDevice: Scanning is running now !");
+                return;
+            }
+            LogUtils.d("ScanDevice: Starting Scanning scanPeriod:"+scanPeriod+", between:"+betweenScanPeriod);
+            mScanning = true;
+            if (!isPauseScan || isOnceScan){
+                try {
+                    if (android.os.Build.VERSION.SDK_INT < 23 || checkLocationPermission()) {
+                        if (android.os.Build.VERSION.SDK_INT >= 23 && !isGpsProviderEnabled(mContext)){
+                            LogUtils.e("If SDK>=23, current SDK=" + android.os.Build.VERSION.SDK_INT+", Location info not open and can not scan any device!");
+                            scanCallbackCompat.onScanFailed(ScanCallbackCompat.SCAN_FAILED_LOCATION_CLOSE);
+                        }else {
+                            LogUtils.i("ScanDevice: Start scan...");
+                            BluetoothLeScannerCompat.startScan(mAdapter, scanFilterCompats, getScanSettings(), scanCallbackCompat);
+                        }
+                    }else{
+                        scanCallbackCompat.onScanFailed(ScanCallbackCompat.SCAN_FAILED_LOCATION_PERMISSION_FORBID);
+                        LogUtils.e("If SDK>=23, current SDK="+android.os.Build.VERSION.SDK_INT+", Please check the location permission is enabled(ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION)");
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    LogUtils.e("Internal Android exception scanning for beacons "+e.toString());
+                }
+
+                if (isOnceScan){
+                    LogUtils.d("ScanDevice: Scanning once");
+                    isOnceScan = false;
+                }
+            }else{
+                LogUtils.d("ScanDevice: Pause Scanning");
+            }
+            scanStopTime = SystemClock.elapsedRealtime() + scanPeriod;
+            nextScanStartTime = scanStopTime + betweenScanPeriod;
+            scheduleScanStop();
+        } else {
+            LogUtils.d("ScanDevice: Stopping Scan");
+            stopScan();
+        }
+    }
+
+    private void scheduleScanStop(){
+        // Stops scanning after a pre-defined scan period.
+        long millisecondsUntilStop = scanStopTime - SystemClock.elapsedRealtime();
+        if (millisecondsUntilStop > 0) {
+            if (isPrintCycleTime){
+                LogUtils.d("Waiting to stop scan cycle for another " + millisecondsUntilStop + " milliseconds");
+            }
+
+            if (!isPauseScan) {
+                mHandler.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        scheduleScanStop();
+                    }
+                }, millisecondsUntilStop > 1000 ? 1000 : millisecondsUntilStop);
+            }
+        } else {
+            LogUtils.d("Stop cycle scan");
+            stopScan();
+        }
+    }
+
+    private void stopScan(){
+        if (mScanning) {
+            BluetoothAdapter mAdapter = mBluetoothUtils.getBluetoothAdapter();
+            if (mAdapter != null && mBluetoothUtils.isBluetoothIsEnable()) {
+                try {
+                    BluetoothLeScannerCompat.stopScan(mAdapter, scanCallbackCompat);
+                    lastScanEndTime = SystemClock.elapsedRealtime();
+                    LogUtils.d("stopping bluetooth le scan "+lastScanEndTime);
+                } catch (Exception e) {
+                    LogUtils.w("Internal Android exception scanning for beacons "+e.toString());
+                }
+            } else {
+                LogUtils.d("Bluetooth is disabled.  Cannot scan for beacons.");
+            }
+            nextScanStartTime = SystemClock.elapsedRealtime() + betweenScanPeriod;
+            //start next scan cycle
+            if (!isPauseScan){
+                scanLeDevice(true);
+            }
+        }
+        mScanning = false;
+        //// FIXME: 2017/6/22 灏嗗叾璋冩暣鍒癿Scanning鍚庨潰
+        if (scanOverListener != null){
+            scanOverListener.onScanOver();
+        }
+    }
+
+    /**
+     * check is defter scan
+     * @return
+     */
+    private boolean deferScanIfNeeded(){
+        long millisecondsUntilStart = nextScanStartTime - SystemClock.elapsedRealtime();
+        if (millisecondsUntilStart > 0) {
+            if (isPrintCycleTime){
+                LogUtils.d("Waiting to start next Bluetooth scan for another "+millisecondsUntilStart+" milliseconds");
+            }
+            // Don't actually wait until the next scan time -- only wait up to 1 second.  This
+            // allows us to start scanning sooner if a consumer enters the foreground and expects
+            // results more quickly.
+            mHandler.postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    if (!isPauseScan) {
+                        scanLeDevice(true);
+                    }
+                }
+            }, millisecondsUntilStart > 1000 ? 1000 : millisecondsUntilStart);
+            return true;
+        }
+        LogUtils.d("Start cycle scan");
+        return false;
+    }
+
+
+    /**
+     * get scan settings
+     * @return
+     */
+    private ScanSettingsCompat getScanSettings() {
+        if (scanSettings == null){
+            if (mBackgroundFlag) {
+                LogUtils.d("starting filtered scan in SCAN_MODE_LOW_POWER");
+                scanSettings = (new ScanSettingsCompat.Builder().setScanMode(ScanSettingsCompat.SCAN_MODE_LOW_POWER)).build();
+            } else {
+                LogUtils.d("starting non-filtered scan in SCAN_MODE_LOW_LATENCY");
+                scanSettings = (new ScanSettingsCompat.Builder().setScanMode(ScanSettingsCompat.SCAN_MODE_LOW_LATENCY)).build();
+            }
+        }
+        return scanSettings;
+    }
+
+    /**
+     * is open GPS
+     * @param context
+     * @return
+     */
+    public static boolean isGpsProviderEnabled(Context context){
+        LocationManager service = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
+        return service.isProviderEnabled(LocationManager.GPS_PROVIDER);
+    }
+
+    /**
+     * when API>=23, if the location disabled, can not scan any devices
+     * @return
+     */
+    private boolean checkLocationPermission() {
+        return checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION) || checkPermission(Manifest.permission.ACCESS_FINE_LOCATION);
+    }
+
+    private boolean checkPermission(final String permission) {
+        return ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_GRANTED;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/ScanOverListener.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/ScanOverListener.java
new file mode 100644
index 0000000..74e97a7
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/ScanOverListener.java
@@ -0,0 +1,21 @@
+package com.blakequ.bluetooth_manager_lib.scan;
+
+/**
+ * Copyright (C) BlakeQu All Rights Reserved <blakequ@gmail.com>
+ * <p/>
+ * Licensed under the blakequ.com License, Version 1.0 (the "License");
+ * 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.
+ * <p/>
+ * author  : quhao <blakequ@gmail.com> <br>
+ * date     : 2016/8/18 15:35 <br>
+ * last modify author : <br>
+ * version : 1.0 <br>
+ * description:when once scan at the cycle end
+ */
+public interface ScanOverListener {
+    void onScanOver();
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothLeScannerCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothLeScannerCompat.java
new file mode 100644
index 0000000..4b7571e
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothLeScannerCompat.java
@@ -0,0 +1,261 @@
+/*
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.le.ScanCallback;
+import android.bluetooth.le.ScanFilter;
+import android.bluetooth.le.ScanResult;
+import android.bluetooth.le.ScanSettings;
+import android.os.Build;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresPermission;
+import androidx.collection.SimpleArrayMap;
+
+import com.blakequ.bluetooth_manager_lib.scan.BluetoothScanManager;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class BluetoothLeScannerCompat {
+
+    private static final String TAG = "BLeScannerCompat";
+
+    @RequiresPermission("android.permission.BLUETOOTH_ADMIN")
+    public static void flushPendingScanResults(@NonNull BluetoothAdapter adapter, @NonNull ScanCallbackCompat callbackCompat) {
+        IMPL.flushPendingScanResults(adapter, callbackCompat);
+    }
+
+    @RequiresPermission("android.permission.BLUETOOTH_ADMIN")
+    public static void startScan(@NonNull BluetoothAdapter adapter, @Nullable List<ScanFilterCompat> filters, @NonNull ScanSettingsCompat settings, @NonNull ScanCallbackCompat callbackCompat) {
+        IMPL.startScan(adapter, filters, settings, callbackCompat);
+    }
+
+    @RequiresPermission("android.permission.BLUETOOTH_ADMIN")
+    public static void startScan(@NonNull BluetoothAdapter adapter, @NonNull ScanCallbackCompat callbackCompat) {
+        IMPL.startScan(adapter, callbackCompat);
+    }
+
+    @RequiresPermission("android.permission.BLUETOOTH_ADMIN")
+    public static void stopScan(@NonNull BluetoothAdapter adapter, @NonNull ScanCallbackCompat callbackCompat) {
+        IMPL.stopScan(adapter, callbackCompat);
+    }
+
+    static final BluetoothLeScannerCompatImpl IMPL;
+
+    static {
+        final int version = Build.VERSION.SDK_INT;
+        if (BluetoothScanManager.isAPI21ScanningDisabled()){
+            IMPL = new API18BluetoothLeScannerCompatImpl();
+        }else{
+            if (version >= Build.VERSION_CODES.LOLLIPOP) {
+                IMPL = new API21BluetoothLeScannerCompatImpl();
+            }else {
+                IMPL = new API18BluetoothLeScannerCompatImpl();
+            }
+        }
+    }
+
+    interface BluetoothLeScannerCompatImpl {
+        void flushPendingScanResults(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat);
+
+        void startScan(BluetoothAdapter adapter, List<ScanFilterCompat> filters, ScanSettingsCompat settings, ScanCallbackCompat callbackCompat);
+
+        void startScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat);
+
+        void stopScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat);
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    static class API21BluetoothLeScannerCompatImpl implements BluetoothLeScannerCompatImpl {
+        static final SimpleArrayMap<ScanCallbackCompat, API21ScanCallback> callbackMap = new SimpleArrayMap<>();
+
+        @Override
+        public void flushPendingScanResults(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            API21ScanCallback result = callbackMap.get(callbackCompat);
+            if (result == null) {
+                return;
+            }
+            adapter.getBluetoothLeScanner().flushPendingScanResults(result);
+        }
+
+        @Override
+        public void startScan(BluetoothAdapter adapter, List<ScanFilterCompat> filters, ScanSettingsCompat settings, ScanCallbackCompat callbackCompat) {
+
+            List<ScanFilter> scanFilters = null;
+            if (filters != null) {
+                scanFilters = new ArrayList<>(filters.size());
+
+                for (ScanFilterCompat filter : filters) {
+                    scanFilters.add(filter.toApi21());
+                }
+            }
+            if (settings == null) {
+                throw new IllegalStateException("Scan settings are null");
+            }
+            ScanSettings scanSettings = settings.toApi21();
+            adapter.getBluetoothLeScanner().startScan(scanFilters, scanSettings, registerCallback(callbackCompat));
+        }
+
+        @Override
+        public void startScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            adapter.getBluetoothLeScanner().startScan(registerCallback(callbackCompat));
+        }
+
+        @Override
+        public void stopScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            API21ScanCallback result = callbackMap.remove(callbackCompat);
+            if (result == null) {
+                return;
+            }
+            adapter.getBluetoothLeScanner().stopScan(result);
+        }
+
+        private API21ScanCallback registerCallback(ScanCallbackCompat callbackCompat) {
+            API21ScanCallback result = callbackMap.get(callbackCompat);
+            // Attempting to rescan, just let it fail deeper down.
+            if (result != null) {
+                return result;
+            }
+            result = new API21ScanCallback(callbackCompat);
+            callbackMap.put(callbackCompat, result);
+            return result;
+        }
+    }
+
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
+    static class API18BluetoothLeScannerCompatImpl implements BluetoothLeScannerCompatImpl {
+        static final SimpleArrayMap<ScanCallbackCompat, API18ScanCallback> callbackMap = new SimpleArrayMap<>();
+
+        @Override
+        public void flushPendingScanResults(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            // no matching api
+            new IllegalArgumentException("this method can not found");
+        }
+
+
+        @SuppressWarnings("deprecation")
+        @Override
+        public void startScan(BluetoothAdapter adapter, List<ScanFilterCompat> filters, ScanSettingsCompat settings, ScanCallbackCompat callbackCompat) {
+            adapter.startLeScan(registerCallback(filters, callbackCompat));
+        }
+
+        @SuppressWarnings("deprecation")
+        @Override
+        public void startScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            adapter.startLeScan(registerCallback(null, callbackCompat));
+        }
+
+        @SuppressWarnings("deprecation")
+        @Override
+        public void stopScan(BluetoothAdapter adapter, ScanCallbackCompat callbackCompat) {
+            API18ScanCallback callback = callbackMap.remove(callbackCompat);
+            if (callback == null) {
+                return;
+            }
+            adapter.stopLeScan(callback);
+        }
+
+        private API18ScanCallback registerCallback(List<ScanFilterCompat> filters, ScanCallbackCompat callbackCompat) {
+            API18ScanCallback result = callbackMap.get(callbackCompat);
+            // Attempting to rescan, just let it fail deeper down.
+            if (result != null) {
+                return result;
+            }
+            result = new API18ScanCallback(filters, callbackCompat);
+            callbackMap.put(callbackCompat, result);
+            return result;
+        }
+    }
+
+    static class API18ScanCallback implements BluetoothAdapter.LeScanCallback {
+
+        private final List<ScanFilterCompat> filters;
+        private final WeakReference<ScanCallbackCompat> callbackCompatRef;
+
+        API18ScanCallback(List<ScanFilterCompat> filters, ScanCallbackCompat callbackCompat) {
+            this.filters = filters;
+            this.callbackCompatRef = new WeakReference<>(callbackCompat);
+        }
+
+        @Override
+        public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
+            ScanCallbackCompat callbackCompat = callbackCompatRef.get();
+            if (callbackCompat == null) return;
+
+            ScanResultCompat result = new ScanResultCompat(
+                    device,
+                    ScanRecordCompat.parseFromBytes(scanRecord),
+                    rssi, System.currentTimeMillis());
+
+            // No filters so return any result
+            if (filters == null) {
+                callbackCompat.onScanResult(ScanSettingsCompat.CALLBACK_TYPE_ALL_MATCHES, result);
+                return;
+            }
+
+            // Filters specified, so see if there is a match.
+            for (ScanFilterCompat filter : filters) {
+                if (filter.matches(result)) {
+                    callbackCompat.onScanResult(ScanSettingsCompat.CALLBACK_TYPE_ALL_MATCHES, result);
+                    return;
+                }
+            }
+        }
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    static class API21ScanCallback extends ScanCallback {
+
+        private final WeakReference<ScanCallbackCompat> callbackCompatRef;
+
+        API21ScanCallback(ScanCallbackCompat callbackCompat) {
+            this.callbackCompatRef = new WeakReference<>(callbackCompat);
+        }
+
+        @Override
+        public void onScanResult(int callbackType, ScanResult result) {
+            ScanCallbackCompat callbackCompat = callbackCompatRef.get();
+            if (callbackCompat != null) {
+                callbackCompat.onScanResult(callbackType, new ScanResultCompat(result));
+            }
+        }
+
+        @Override
+        public void onBatchScanResults(List<ScanResult> results) {
+            ScanCallbackCompat callbackCompat = callbackCompatRef.get();
+            if (callbackCompat == null) return;
+            List<ScanResultCompat> compatResults = new ArrayList<>(results.size());
+            for (ScanResult result : results) {
+                compatResults.add(new ScanResultCompat(result));
+            }
+            callbackCompat.onBatchScanResults(compatResults);
+        }
+
+        @Override
+        public void onScanFailed(int errorCode) {
+            ScanCallbackCompat callbackCompat = callbackCompatRef.get();
+            if (callbackCompat != null) {
+                callbackCompat.onScanFailed(errorCode);
+            }
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothUuidCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothUuidCompat.java
new file mode 100644
index 0000000..a21feb0
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/BluetoothUuidCompat.java
@@ -0,0 +1,310 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.os.ParcelUuid;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.UUID;
+
+/**
+ * Compat version of BluetoothUuid
+ */
+/* package */ class BluetoothUuidCompat {
+
+    /* See Bluetooth Assigned Numbers document - SDP section, to get the values of UUIDs
+     * for the various services.
+     *
+     * The following 128 bit values are calculated as:
+     *  uuid * 2^96 + BASE_UUID
+     */
+    public static final ParcelUuid AudioSink =
+            ParcelUuid.fromString("0000110B-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid AudioSource =
+            ParcelUuid.fromString("0000110A-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid AdvAudioDist =
+            ParcelUuid.fromString("0000110D-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid HSP =
+            ParcelUuid.fromString("00001108-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid HSP_AG =
+            ParcelUuid.fromString("00001112-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid Handsfree =
+            ParcelUuid.fromString("0000111E-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid Handsfree_AG =
+            ParcelUuid.fromString("0000111F-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid AvrcpController =
+            ParcelUuid.fromString("0000110E-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid AvrcpTarget =
+            ParcelUuid.fromString("0000110C-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid ObexObjectPush =
+            ParcelUuid.fromString("00001105-0000-1000-8000-00805f9b34fb");
+    public static final ParcelUuid Hid =
+            ParcelUuid.fromString("00001124-0000-1000-8000-00805f9b34fb");
+    public static final ParcelUuid Hogp =
+            ParcelUuid.fromString("00001812-0000-1000-8000-00805f9b34fb");
+    public static final ParcelUuid PANU =
+            ParcelUuid.fromString("00001115-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid NAP =
+            ParcelUuid.fromString("00001116-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid BNEP =
+            ParcelUuid.fromString("0000000f-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid PBAP_PSE =
+            ParcelUuid.fromString("0000112f-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid MAP =
+            ParcelUuid.fromString("00001134-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid MNS =
+            ParcelUuid.fromString("00001133-0000-1000-8000-00805F9B34FB");
+    public static final ParcelUuid MAS =
+            ParcelUuid.fromString("00001132-0000-1000-8000-00805F9B34FB");
+
+    public static final ParcelUuid BASE_UUID =
+            ParcelUuid.fromString("00000000-0000-1000-8000-00805F9B34FB");
+
+    /**
+     * Length of bytes for 16 bit UUID
+     */
+    public static final int UUID_BYTES_16_BIT = 2;
+    /**
+     * Length of bytes for 32 bit UUID
+     */
+    public static final int UUID_BYTES_32_BIT = 4;
+    /**
+     * Length of bytes for 128 bit UUID
+     */
+    public static final int UUID_BYTES_128_BIT = 16;
+
+    public static final ParcelUuid[] RESERVED_UUIDS = {
+            AudioSink, AudioSource, AdvAudioDist, HSP, Handsfree, AvrcpController, AvrcpTarget,
+            ObexObjectPush, PANU, NAP, MAP, MNS, MAS};
+
+    public static boolean isAudioSource(ParcelUuid uuid) {
+        return uuid.equals(AudioSource);
+    }
+
+    public static boolean isAudioSink(ParcelUuid uuid) {
+        return uuid.equals(AudioSink);
+    }
+
+    public static boolean isAdvAudioDist(ParcelUuid uuid) {
+        return uuid.equals(AdvAudioDist);
+    }
+
+    public static boolean isHandsfree(ParcelUuid uuid) {
+        return uuid.equals(Handsfree);
+    }
+
+    public static boolean isHeadset(ParcelUuid uuid) {
+        return uuid.equals(HSP);
+    }
+
+    public static boolean isAvrcpController(ParcelUuid uuid) {
+        return uuid.equals(AvrcpController);
+    }
+
+    public static boolean isAvrcpTarget(ParcelUuid uuid) {
+        return uuid.equals(AvrcpTarget);
+    }
+
+    public static boolean isInputDevice(ParcelUuid uuid) {
+        return uuid.equals(Hid);
+    }
+
+    public static boolean isPanu(ParcelUuid uuid) {
+        return uuid.equals(PANU);
+    }
+
+    public static boolean isNap(ParcelUuid uuid) {
+        return uuid.equals(NAP);
+    }
+
+    public static boolean isBnep(ParcelUuid uuid) {
+        return uuid.equals(BNEP);
+    }
+
+    public static boolean isMap(ParcelUuid uuid) {
+        return uuid.equals(MAP);
+    }
+
+    public static boolean isMns(ParcelUuid uuid) {
+        return uuid.equals(MNS);
+    }
+
+    public static boolean isMas(ParcelUuid uuid) {
+        return uuid.equals(MAS);
+    }
+
+    /**
+     * Returns true if ParcelUuid is present in uuidArray
+     *
+     * @param uuidArray - Array of ParcelUuids
+     * @param uuid
+     */
+    public static boolean isUuidPresent(ParcelUuid[] uuidArray, ParcelUuid uuid) {
+        if ((uuidArray == null || uuidArray.length == 0) && uuid == null)
+            return true;
+
+        if (uuidArray == null)
+            return false;
+
+        for (ParcelUuid element : uuidArray) {
+            if (element.equals(uuid)) return true;
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if there any common ParcelUuids in uuidA and uuidB.
+     *
+     * @param uuidA - List of ParcelUuids
+     * @param uuidB - List of ParcelUuids
+     */
+    public static boolean containsAnyUuid(ParcelUuid[] uuidA, ParcelUuid[] uuidB) {
+        if (uuidA == null && uuidB == null) return true;
+
+        if (uuidA == null) {
+            return uuidB.length == 0;
+        }
+
+        if (uuidB == null) {
+            return uuidA.length == 0;
+        }
+
+        HashSet<ParcelUuid> uuidSet = new HashSet<>(Arrays.asList(uuidA));
+        for (ParcelUuid uuid : uuidB) {
+            if (uuidSet.contains(uuid)) return true;
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if all the ParcelUuids in ParcelUuidB are present in
+     * ParcelUuidA
+     *
+     * @param uuidA - Array of ParcelUuidsA
+     * @param uuidB - Array of ParcelUuidsB
+     */
+    public static boolean containsAllUuids(ParcelUuid[] uuidA, ParcelUuid[] uuidB) {
+        if (uuidA == null && uuidB == null) return true;
+
+        if (uuidA == null) {
+            return uuidB.length == 0;
+        }
+
+        if (uuidB == null) return true;
+
+        HashSet<ParcelUuid> uuidSet = new HashSet<>(Arrays.asList(uuidA));
+        for (ParcelUuid uuid : uuidB) {
+            if (!uuidSet.contains(uuid)) return false;
+        }
+        return true;
+    }
+
+    /**
+     * Extract the Service Identifier or the actual uuid from the Parcel Uuid.
+     * For example, if 0000110B-0000-1000-8000-00805F9B34FB is the parcel Uuid,
+     * this function will return 110B
+     *
+     * @param parcelUuid
+     * @return the service identifier.
+     */
+    public static int getServiceIdentifierFromParcelUuid(ParcelUuid parcelUuid) {
+        UUID uuid = parcelUuid.getUuid();
+        long value = (uuid.getMostSignificantBits() & 0x0000FFFF00000000L) >>> 32;
+        return (int) value;
+    }
+
+    /**
+     * Parse UUID from bytes. The {@code uuidBytes} can represent a 16-bit, 32-bit or 128-bit UUID,
+     * but the returned UUID is always in 128-bit format.
+     * Note UUID is little endian in Bluetooth.
+     *
+     * @param uuidBytes Byte representation of uuid.
+     * @return {@link ParcelUuid} parsed from bytes.
+     * @throws IllegalArgumentException If the {@code uuidBytes} cannot be parsed.
+     */
+    public static ParcelUuid parseUuidFrom(byte[] uuidBytes) {
+        if (uuidBytes == null) {
+            throw new IllegalArgumentException("uuidBytes cannot be null");
+        }
+        int length = uuidBytes.length;
+        if (length != UUID_BYTES_16_BIT && length != UUID_BYTES_32_BIT &&
+                length != UUID_BYTES_128_BIT) {
+            throw new IllegalArgumentException("uuidBytes length invalid - " + length);
+        }
+
+        // Construct a 128 bit UUID.
+        if (length == UUID_BYTES_128_BIT) {
+            ByteBuffer buf = ByteBuffer.wrap(uuidBytes).order(ByteOrder.LITTLE_ENDIAN);
+            long msb = buf.getLong(8);
+            long lsb = buf.getLong(0);
+            return new ParcelUuid(new UUID(msb, lsb));
+        }
+
+        // For 16 bit and 32 bit UUID we need to convert them to 128 bit value.
+        // 128_bit_value = uuid * 2^96 + BASE_UUID
+        long shortUuid;
+        if (length == UUID_BYTES_16_BIT) {
+            shortUuid = uuidBytes[0] & 0xFF;
+            shortUuid += (uuidBytes[1] & 0xFF) << 8;
+        }
+        else {
+            shortUuid = uuidBytes[0] & 0xFF;
+            shortUuid += (uuidBytes[1] & 0xFF) << 8;
+            shortUuid += (uuidBytes[2] & 0xFF) << 16;
+            shortUuid += (uuidBytes[3] & 0xFF) << 24;
+        }
+        long msb = BASE_UUID.getUuid().getMostSignificantBits() + (shortUuid << 32);
+        long lsb = BASE_UUID.getUuid().getLeastSignificantBits();
+        return new ParcelUuid(new UUID(msb, lsb));
+    }
+
+    /**
+     * Check whether the given parcelUuid can be converted to 16 bit bluetooth uuid.
+     *
+     * @param parcelUuid
+     * @return true if the parcelUuid can be converted to 16 bit uuid, false otherwise.
+     */
+    public static boolean is16BitUuid(ParcelUuid parcelUuid) {
+        UUID uuid = parcelUuid.getUuid();
+        if (uuid.getLeastSignificantBits() != BASE_UUID.getUuid().getLeastSignificantBits()) {
+            return false;
+        }
+        return ((uuid.getMostSignificantBits() & 0xFFFF0000FFFFFFFFL) == 0x1000L);
+    }
+
+
+    /**
+     * Check whether the given parcelUuid can be converted to 32 bit bluetooth uuid.
+     *
+     * @param parcelUuid
+     * @return true if the parcelUuid can be converted to 32 bit uuid, false otherwise.
+     */
+    public static boolean is32BitUuid(ParcelUuid parcelUuid) {
+        UUID uuid = parcelUuid.getUuid();
+        if (uuid.getLeastSignificantBits() != BASE_UUID.getUuid().getLeastSignificantBits()) {
+            return false;
+        }
+        if (is16BitUuid(parcelUuid)) {
+            return false;
+        }
+        return ((uuid.getMostSignificantBits() & 0xFFFFFFFFL) == 0x1000L);
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ObjectsCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ObjectsCompat.java
new file mode 100644
index 0000000..2baa5da
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ObjectsCompat.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import java.util.Arrays;
+
+/**
+ * Subset of utility methods for objects, used by the existing bluetooth framework
+ */
+/* package */ class ObjectsCompat {
+
+    /* package */ static String toString(Object o) {
+        return (o == null) ? "null" : o.toString();
+    }
+
+    /* package */ static int hash(Object... values) {
+        return Arrays.hashCode(values);
+    }
+
+    /* package */ static boolean equals(Object a, Object b) {
+        return (a == null) ? (b == null) : a.equals(b);
+    }
+
+    /* package */ static boolean deepEquals(Object a, Object b) {
+        if (a == null || b == null) {
+            return a == b;
+        }
+        else if (a instanceof Object[] && b instanceof Object[]) {
+            return Arrays.deepEquals((Object[]) a, (Object[]) b);
+        }
+        else if (a instanceof boolean[] && b instanceof boolean[]) {
+            return Arrays.equals((boolean[]) a, (boolean[]) b);
+        }
+        else if (a instanceof byte[] && b instanceof byte[]) {
+            return Arrays.equals((byte[]) a, (byte[]) b);
+        }
+        else if (a instanceof char[] && b instanceof char[]) {
+            return Arrays.equals((char[]) a, (char[]) b);
+        }
+        else if (a instanceof double[] && b instanceof double[]) {
+            return Arrays.equals((double[]) a, (double[]) b);
+        }
+        else if (a instanceof float[] && b instanceof float[]) {
+            return Arrays.equals((float[]) a, (float[]) b);
+        }
+        else if (a instanceof int[] && b instanceof int[]) {
+            return Arrays.equals((int[]) a, (int[]) b);
+        }
+        else if (a instanceof long[] && b instanceof long[]) {
+            return Arrays.equals((long[]) a, (long[]) b);
+        }
+        else if (a instanceof short[] && b instanceof short[]) {
+            return Arrays.equals((short[]) a, (short[]) b);
+        }
+        return a.equals(b);
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanCallbackCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanCallbackCompat.java
new file mode 100644
index 0000000..acd7c74
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanCallbackCompat.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import java.util.List;
+
+/**
+ * Bluetooth LE scan callbacks. Scan results are reported using these callbacks.
+ *
+ * @see BluetoothLeScannerCompat#startScan
+ */
+
+public abstract class ScanCallbackCompat {
+    /**
+     * Fails to start scan as BLE scan with the same settings is already started by the app.
+     */
+    public static final int SCAN_FAILED_ALREADY_STARTED = 1;
+
+    /**
+     * Fails to start scan as app cannot be registered.
+     */
+    public static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 2;
+
+    /**
+     * Fails to start scan due an internal error
+     */
+    public static final int SCAN_FAILED_INTERNAL_ERROR = 3;
+
+    /**
+     * Fails to start power optimized scan as this feature is not supported.
+     */
+    public static final int SCAN_FAILED_FEATURE_UNSUPPORTED = 4;
+
+    /**
+     * new error code, Fails to scan as location permission is forbid()
+     */
+    public static final int SCAN_FAILED_LOCATION_PERMISSION_FORBID = 5;
+
+    /**
+     * use SDK>=23, The location is not open(if sdk>=23, will not scan any device)
+     * http://stackoverflow.com/questions/33043582/bluetooth-low-energy-startscan-on-android-6-0-does-not-find-devices/33045489#33045489
+     */
+    public static final int SCAN_FAILED_LOCATION_CLOSE = 6;
+
+    /**
+     * Callback when a BLE advertisement has been found.
+     *
+     * @param callbackType Determines how this callback was triggered. Currently could only be
+     *                     {@link android.bluetooth.le.ScanSettings#CALLBACK_TYPE_ALL_MATCHES}.
+     * @param result       A Bluetooth LE scan result.
+     */
+    @SuppressWarnings("EmptyMethod")
+    public void onScanResult(int callbackType, ScanResultCompat result) {
+        // no implementation
+    }
+
+    /**
+     * Callback when batch results are delivered.
+     *
+     * @param results List of scan results that are previously scanned.
+     */
+    @SuppressWarnings("EmptyMethod")
+    public void onBatchScanResults(List<ScanResultCompat> results) {
+    }
+
+    /**
+     * Callback when scan could not be started.
+     *
+     * @param errorCode Error code (one of SCAN_FAILED_*) for scan failure.
+     */
+    @SuppressWarnings("EmptyMethod")
+    public void onScanFailed(int errorCode) {
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanFilterCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanFilterCompat.java
new file mode 100644
index 0000000..c6df460
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanFilterCompat.java
@@ -0,0 +1,627 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.le.ScanFilter;
+import android.bluetooth.le.ScanResult;
+import android.os.Build;
+import android.os.Parcel;
+import android.os.ParcelUuid;
+import android.os.Parcelable;
+import androidx.annotation.Nullable;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * Criteria for filtering result from Bluetooth LE scans. A {@link ScanFilterCompat} allows clients to
+ * restrict scan results to only those that are of interest to them.
+ * <p/>
+ * Current filtering on the following fields are supported:
+ * <li>Service UUIDs which identify the bluetooth gatt services running on the device.
+ * <li>Name of remote Bluetooth LE device.
+ * <li>Mac address of the remote device.
+ * <li>Service data which is the data associated with a service.
+ * <li>Manufacturer specific data which is the data associated with a particular manufacturer.
+ *
+ * @see ScanResult
+ * @see android.bluetooth.le.BluetoothLeScanner
+ */
+public class ScanFilterCompat implements Parcelable {
+    @Nullable
+    private final String mDeviceName;
+
+    @Nullable
+    private final String mDeviceAddress;
+
+    @Nullable
+    private final ParcelUuid mServiceUuid;
+    @Nullable
+    private final ParcelUuid mServiceUuidMask;
+
+    @Nullable
+    private final ParcelUuid mServiceDataUuid;
+    @Nullable
+    private final byte[] mServiceData;
+    @Nullable
+    private final byte[] mServiceDataMask;
+
+    private final int mManufacturerId;
+    @Nullable
+    private final byte[] mManufacturerData;
+    @Nullable
+    private final byte[] mManufacturerDataMask;
+    private static final ScanFilterCompat EMPTY = new ScanFilterCompat.Builder().build() ;
+
+    private ScanFilterCompat(@Nullable String name, @Nullable String deviceAddress, @Nullable ParcelUuid uuid,
+                             @Nullable ParcelUuid uuidMask, @Nullable ParcelUuid serviceDataUuid,
+                             @Nullable byte[] serviceData, @Nullable byte[] serviceDataMask,
+                             int manufacturerId, @Nullable byte[] manufacturerData, @Nullable byte[] manufacturerDataMask) {
+        mDeviceName = name;
+        mServiceUuid = uuid;
+        mServiceUuidMask = uuidMask;
+        mDeviceAddress = deviceAddress;
+        mServiceDataUuid = serviceDataUuid;
+        mServiceData = serviceData;
+        mServiceDataMask = serviceDataMask;
+        mManufacturerId = manufacturerId;
+        mManufacturerData = manufacturerData;
+        mManufacturerDataMask = manufacturerDataMask;
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    public ScanFilter toApi21() {
+        ScanFilter.Builder builder = new ScanFilter.Builder();
+        if (mDeviceName != null) {
+            builder.setDeviceName(mDeviceName);
+        }
+        if (mServiceUuid != null) {
+            builder.setServiceUuid(mServiceUuid, mServiceUuidMask);
+        }
+        if (mDeviceAddress != null) {
+            builder.setDeviceAddress(mDeviceAddress);
+        }
+        if (mServiceDataUuid != null) {
+            builder.setServiceData(mServiceDataUuid, mServiceData, mServiceDataMask);
+        }
+        if (mManufacturerId < 0) {
+            builder.setManufacturerData(mManufacturerId, mManufacturerData, mManufacturerDataMask);
+        }
+        return builder.build();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mDeviceName == null ? 0 : 1);
+        if (mDeviceName != null) {
+            dest.writeString(mDeviceName);
+        }
+        dest.writeInt(mDeviceAddress == null ? 0 : 1);
+        if (mDeviceAddress != null) {
+            dest.writeString(mDeviceAddress);
+        }
+        dest.writeInt(mServiceUuid == null ? 0 : 1);
+        if (mServiceUuid != null) {
+            dest.writeParcelable(mServiceUuid, flags);
+            dest.writeInt(mServiceUuidMask == null ? 0 : 1);
+            if (mServiceUuidMask != null) {
+                dest.writeParcelable(mServiceUuidMask, flags);
+            }
+        }
+        dest.writeInt(mServiceDataUuid == null ? 0 : 1);
+        if (mServiceDataUuid != null) {
+            dest.writeParcelable(mServiceDataUuid, flags);
+            dest.writeInt(mServiceData == null ? 0 : 1);
+            if (mServiceData != null) {
+                dest.writeInt(mServiceData.length);
+                dest.writeByteArray(mServiceData);
+
+                dest.writeInt(mServiceDataMask == null ? 0 : 1);
+                if (mServiceDataMask != null) {
+                    dest.writeInt(mServiceDataMask.length);
+                    dest.writeByteArray(mServiceDataMask);
+                }
+            }
+        }
+        dest.writeInt(mManufacturerId);
+        dest.writeInt(mManufacturerData == null ? 0 : 1);
+        if (mManufacturerData != null) {
+            dest.writeInt(mManufacturerData.length);
+            dest.writeByteArray(mManufacturerData);
+
+            dest.writeInt(mManufacturerDataMask == null ? 0 : 1);
+            if (mManufacturerDataMask != null) {
+                dest.writeInt(mManufacturerDataMask.length);
+                dest.writeByteArray(mManufacturerDataMask);
+            }
+        }
+    }
+
+    /**
+     * A {@link Creator} to create {@link ScanFilterCompat} from parcel.
+     */
+    public static final Creator<ScanFilterCompat>
+            CREATOR = new Creator<ScanFilterCompat>() {
+
+        @Override
+        public ScanFilterCompat[] newArray(int size) {
+            return new ScanFilterCompat[size];
+        }
+
+        @Override
+        public ScanFilterCompat createFromParcel(Parcel in) {
+            Builder builder = new Builder();
+            if (in.readInt() == 1) {
+                builder.setDeviceName(in.readString());
+            }
+            if (in.readInt() == 1) {
+                builder.setDeviceAddress(in.readString());
+            }
+            if (in.readInt() == 1) {
+                ParcelUuid uuid = in.readParcelable(ParcelUuid.class.getClassLoader());
+                builder.setServiceUuid(uuid);
+                if (in.readInt() == 1) {
+                    ParcelUuid uuidMask = in.readParcelable(
+                            ParcelUuid.class.getClassLoader());
+                    builder.setServiceUuid(uuid, uuidMask);
+                }
+            }
+            if (in.readInt() == 1) {
+                ParcelUuid servcieDataUuid =
+                        in.readParcelable(ParcelUuid.class.getClassLoader());
+                if (in.readInt() == 1) {
+                    int serviceDataLength = in.readInt();
+                    byte[] serviceData = new byte[serviceDataLength];
+                    in.readByteArray(serviceData);
+                    if (in.readInt() == 0) {
+                        builder.setServiceData(servcieDataUuid, serviceData);
+                    }
+                    else {
+                        int serviceDataMaskLength = in.readInt();
+                        byte[] serviceDataMask = new byte[serviceDataMaskLength];
+                        in.readByteArray(serviceDataMask);
+                        builder.setServiceData(
+                                servcieDataUuid, serviceData, serviceDataMask);
+                    }
+                }
+            }
+
+            int manufacturerId = in.readInt();
+            if (in.readInt() == 1) {
+                int manufacturerDataLength = in.readInt();
+                byte[] manufacturerData = new byte[manufacturerDataLength];
+                in.readByteArray(manufacturerData);
+                if (in.readInt() == 0) {
+                    builder.setManufacturerData(manufacturerId, manufacturerData);
+                }
+                else {
+                    int manufacturerDataMaskLength = in.readInt();
+                    byte[] manufacturerDataMask = new byte[manufacturerDataMaskLength];
+                    in.readByteArray(manufacturerDataMask);
+                    builder.setManufacturerData(manufacturerId, manufacturerData,
+                            manufacturerDataMask);
+                }
+            }
+
+            return builder.build();
+        }
+    };
+
+    /**
+     * Returns the filter set the device name field of Bluetooth advertisement data.
+     */
+    @Nullable
+    public String getDeviceName() {
+        return mDeviceName;
+    }
+
+    /**
+     * Returns the filter set on the service uuid.
+     */
+    @Nullable
+    public ParcelUuid getServiceUuid() {
+        return mServiceUuid;
+    }
+
+    @Nullable
+    public ParcelUuid getServiceUuidMask() {
+        return mServiceUuidMask;
+    }
+
+    @Nullable
+    public String getDeviceAddress() {
+        return mDeviceAddress;
+    }
+
+    @Nullable
+    public byte[] getServiceData() {
+        return mServiceData;
+    }
+
+    @Nullable
+    public byte[] getServiceDataMask() {
+        return mServiceDataMask;
+    }
+
+    @Nullable
+    public ParcelUuid getServiceDataUuid() {
+        return mServiceDataUuid;
+    }
+
+    /**
+     * Returns the manufacturer id. -1 if the manufacturer filter is not set.
+     */
+    public int getManufacturerId() {
+        return mManufacturerId;
+    }
+
+    @Nullable
+    public byte[] getManufacturerData() {
+        return mManufacturerData;
+    }
+
+    @Nullable
+    public byte[] getManufacturerDataMask() {
+        return mManufacturerDataMask;
+    }
+
+    /**
+     * Check if the scan filter matches a {@code scanResultCompat}. A scan result is considered as a match
+     * if it matches all the field filters.
+     */
+    public boolean matches(ScanResultCompat scanResult) {
+        if (scanResult == null) {
+            return false;
+        }
+        BluetoothDevice device = scanResult.getDevice();
+        // Device match.
+        if (mDeviceAddress != null
+                && (device == null || !mDeviceAddress.equals(device.getAddress()))) {
+            return false;
+        }
+
+        ScanRecordCompat scanRecord = scanResult.getScanRecord();
+
+        // Scan record is null but there exist filters on it.
+        if (scanRecord == null
+                && (mDeviceName != null || mServiceUuid != null || mManufacturerData != null
+                || mServiceData != null || mServiceDataUuid != null || mManufacturerId >= 0)) {
+            return false;
+        }
+
+        // Local name match.
+        if (mDeviceName != null && !mDeviceName.equals(scanRecord.getDeviceName())) {
+            return false;
+        }
+
+        // UUID match.
+        if (mServiceUuid != null && !matchesServiceUuids(mServiceUuid, mServiceUuidMask,
+                scanRecord.getServiceUuids())) {
+            return false;
+        }
+
+        // Service data match
+        if (mServiceDataUuid != null) {
+            if (!matchesPartialData(mServiceData, mServiceDataMask,
+                    scanRecord.getServiceData(mServiceDataUuid))) {
+                return false;
+            }
+        }
+
+        // Manufacturer data match.
+        if (mManufacturerId >= 0 && scanRecord != null) {
+            if (!matchesPartialData(mManufacturerData, mManufacturerDataMask,
+                    scanRecord.getManufacturerSpecificData(mManufacturerId))) {
+                return false;
+            }
+        }
+        // All filters match.
+        return true;
+    }
+
+    // Check if the uuid pattern is contained in a list of parcel uuids.
+    private boolean matchesServiceUuids(ParcelUuid uuid, ParcelUuid parcelUuidMask,
+                                        List<ParcelUuid> uuids) {
+        if (uuid == null) {
+            return true;
+        }
+        if (uuids == null) {
+            return false;
+        }
+
+        for (ParcelUuid parcelUuid : uuids) {
+            UUID uuidMask = parcelUuidMask == null ? null : parcelUuidMask.getUuid();
+            if (matchesServiceUuid(uuid.getUuid(), uuidMask, parcelUuid.getUuid())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    // Check if the uuid pattern matches the particular service uuid.
+    private boolean matchesServiceUuid(UUID uuid, UUID mask, UUID data) {
+        if (mask == null) {
+            return uuid.equals(data);
+        }
+        if ((uuid.getLeastSignificantBits() & mask.getLeastSignificantBits()) !=
+                (data.getLeastSignificantBits() & mask.getLeastSignificantBits())) {
+            return false;
+        }
+        return ((uuid.getMostSignificantBits() & mask.getMostSignificantBits()) ==
+                (data.getMostSignificantBits() & mask.getMostSignificantBits()));
+    }
+
+    // Check whether the data pattern matches the parsed data.
+    private boolean matchesPartialData(byte[] data, byte[] dataMask, byte[] parsedData) {
+        if (parsedData == null || parsedData.length < data.length) {
+            return false;
+        }
+        if (dataMask == null) {
+            for (int i = 0; i < data.length; ++i) {
+                if (parsedData[i] != data[i]) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        for (int i = 0; i < data.length; ++i) {
+            if ((dataMask[i] & parsedData[i]) != (dataMask[i] & data[i])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        return "BluetoothLeScanFilter [mDeviceName=" + mDeviceName + ", mDeviceAddress="
+                + mDeviceAddress
+                + ", mUuid=" + mServiceUuid + ", mUuidMask=" + mServiceUuidMask
+                + ", mServiceDataUuid=" + ObjectsCompat.toString(mServiceDataUuid) + ", mServiceData="
+                + Arrays.toString(mServiceData) + ", mServiceDataMask="
+                + Arrays.toString(mServiceDataMask) + ", mManufacturerId=" + mManufacturerId
+                + ", mManufacturerData=" + Arrays.toString(mManufacturerData)
+                + ", mManufacturerDataMask=" + Arrays.toString(mManufacturerDataMask) + "]";
+    }
+
+    @Override
+    public int hashCode() {
+        return ObjectsCompat.hash(mDeviceName, mDeviceAddress, mManufacturerId, mManufacturerData,
+                mManufacturerDataMask, mServiceDataUuid, mServiceData, mServiceDataMask,
+                mServiceUuid, mServiceUuidMask);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null || getClass() != obj.getClass()) {
+            return false;
+        }
+        ScanFilterCompat other = (ScanFilterCompat) obj;
+        return (ObjectsCompat.equals(mDeviceName, other.mDeviceName) &&
+                ObjectsCompat.equals(mDeviceAddress, other.mDeviceAddress) &&
+                mManufacturerId == other.mManufacturerId &&
+                ObjectsCompat.deepEquals(mManufacturerData, other.mManufacturerData) &&
+                ObjectsCompat.deepEquals(mManufacturerDataMask, other.mManufacturerDataMask) &&
+                ObjectsCompat.deepEquals(mServiceDataUuid, other.mServiceDataUuid) &&
+                ObjectsCompat.deepEquals(mServiceData, other.mServiceData) &&
+                ObjectsCompat.deepEquals(mServiceDataMask, other.mServiceDataMask) &&
+                ObjectsCompat.equals(mServiceUuid, other.mServiceUuid) &&
+                ObjectsCompat.equals(mServiceUuidMask, other.mServiceUuidMask));
+    }
+
+    /**
+     * Checks if the scanfilter is empty
+     * @hide
+     */
+    public boolean isAllFieldsEmpty() {
+        return EMPTY.equals(this);
+    }
+
+    /**
+     * Builder class for {@link ScanFilterCompat}.
+     */
+    public static final class Builder {
+
+        private String mDeviceName;
+        private String mDeviceAddress;
+
+        private ParcelUuid mServiceUuid;
+        private ParcelUuid mUuidMask;
+
+        private ParcelUuid mServiceDataUuid;
+        private byte[] mServiceData;
+        private byte[] mServiceDataMask;
+
+        private int mManufacturerId = -1;
+        private byte[] mManufacturerData;
+        private byte[] mManufacturerDataMask;
+
+        /**
+         * Set filter on device name.
+         */
+        public Builder setDeviceName(String deviceName) {
+            mDeviceName = deviceName;
+            return this;
+        }
+
+        /**
+         * Set filter on device address.
+         *
+         * @param deviceAddress The device Bluetooth address for the filter. It needs to be in the
+         *                      format of "01:02:03:AB:CD:EF". The device address can be validated using
+         *                      {@link BluetoothAdapter#checkBluetoothAddress}.
+         * @throws IllegalArgumentException If the {@code deviceAddress} is invalid.
+         */
+        public Builder setDeviceAddress(String deviceAddress) {
+            if (deviceAddress != null && !BluetoothAdapter.checkBluetoothAddress(deviceAddress)) {
+                throw new IllegalArgumentException("invalid device address " + deviceAddress);
+            }
+            mDeviceAddress = deviceAddress;
+            return this;
+        }
+
+        /**
+         * Set filter on service uuid.
+         */
+        public Builder setServiceUuid(ParcelUuid serviceUuid) {
+            mServiceUuid = serviceUuid;
+            mUuidMask = null; // clear uuid mask
+            return this;
+        }
+
+        /**
+         * Set filter on partial service uuid. The {@code uuidMask} is the bit mask for the
+         * {@code serviceUuid}. Set any bit in the mask to 1 to indicate a match is needed for the
+         * bit in {@code serviceUuid}, and 0 to ignore that bit.
+         *
+         * @throws IllegalArgumentException If {@code serviceUuid} is {@code null} but
+         *                                  {@code uuidMask} is not {@code null}.
+         */
+        public Builder setServiceUuid(ParcelUuid serviceUuid, ParcelUuid uuidMask) {
+            if (mUuidMask != null && mServiceUuid == null) {
+                throw new IllegalArgumentException("uuid is null while uuidMask is not null!");
+            }
+            mServiceUuid = serviceUuid;
+            mUuidMask = uuidMask;
+            return this;
+        }
+
+        /**
+         * Set filtering on service data.
+         *
+         * @throws IllegalArgumentException If {@code serviceDataUuid} is null.
+         */
+        public Builder setServiceData(ParcelUuid serviceDataUuid, byte[] serviceData) {
+            if (serviceDataUuid == null) {
+                throw new IllegalArgumentException("serviceDataUuid is null");
+            }
+            mServiceDataUuid = serviceDataUuid;
+            mServiceData = serviceData;
+            mServiceDataMask = null; // clear service data mask
+            return this;
+        }
+
+        /**
+         * Set partial filter on service data. For any bit in the mask, set it to 1 if it needs to
+         * match the one in service data, otherwise set it to 0 to ignore that bit.
+         * <p/>
+         * The {@code serviceDataMask} must have the same length of the {@code serviceData}.
+         *
+         * @throws IllegalArgumentException If {@code serviceDataUuid} is null or
+         *                                  {@code serviceDataMask} is {@code null} while {@code serviceData} is not or
+         *                                  {@code serviceDataMask} and {@code serviceData} has different length.
+         */
+        public Builder setServiceData(ParcelUuid serviceDataUuid,
+                                      byte[] serviceData, byte[] serviceDataMask) {
+            if (serviceDataUuid == null) {
+                throw new IllegalArgumentException("serviceDataUuid is null");
+            }
+            if (mServiceDataMask != null) {
+                if (mServiceData == null) {
+                    throw new IllegalArgumentException(
+                            "serviceData is null while serviceDataMask is not null");
+                }
+                // Since the mServiceDataMask is a bit mask for mServiceData, the lengths of the two
+                // byte array need to be the same.
+                if (mServiceData.length != mServiceDataMask.length) {
+                    throw new IllegalArgumentException(
+                            "size mismatch for service data and service data mask");
+                }
+            }
+            mServiceDataUuid = serviceDataUuid;
+            mServiceData = serviceData;
+            mServiceDataMask = serviceDataMask;
+            return this;
+        }
+
+        /**
+         * Set filter on on manufacturerData. A negative manufacturerId is considered as invalid id.
+         * <p/>
+         * Note the first two bytes of the {@code manufacturerData} is the manufacturerId.
+         *
+         * @throws IllegalArgumentException If the {@code manufacturerId} is invalid.
+         */
+        public Builder setManufacturerData(int manufacturerId, byte[] manufacturerData) {
+            if (manufacturerData != null && manufacturerId < 0) {
+                throw new IllegalArgumentException("invalid manufacture id");
+            }
+            mManufacturerId = manufacturerId;
+            mManufacturerData = manufacturerData;
+            mManufacturerDataMask = null; // clear manufacturer data mask
+            return this;
+        }
+
+        /**
+         * Set filter on partial manufacture data. For any bit in the mask, set it the 1 if it needs
+         * to match the one in manufacturer data, otherwise set it to 0.
+         * <p/>
+         * The {@code manufacturerDataMask} must have the same length of {@code manufacturerData}.
+         *
+         * @throws IllegalArgumentException If the {@code manufacturerId} is invalid, or
+         *                                  {@code manufacturerData} is null while {@code manufacturerDataMask} is not,
+         *                                  or {@code manufacturerData} and {@code manufacturerDataMask} have different
+         *                                  length.
+         */
+        public Builder setManufacturerData(int manufacturerId, byte[] manufacturerData,
+                                           byte[] manufacturerDataMask) {
+            if (manufacturerData != null && manufacturerId < 0) {
+                throw new IllegalArgumentException("invalid manufacture id");
+            }
+            if (mManufacturerDataMask != null) {
+                if (mManufacturerData == null) {
+                    throw new IllegalArgumentException(
+                            "manufacturerData is null while manufacturerDataMask is not null");
+                }
+                // Since the mManufacturerDataMask is a bit mask for mManufacturerData, the lengths
+                // of the two byte array need to be the same.
+                if (mManufacturerData.length != mManufacturerDataMask.length) {
+                    throw new IllegalArgumentException(
+                            "size mismatch for manufacturerData and manufacturerDataMask");
+                }
+            }
+            mManufacturerId = manufacturerId;
+            mManufacturerData = manufacturerData;
+            mManufacturerDataMask = manufacturerDataMask;
+            return this;
+        }
+
+        /**
+         * Build {@link ScanFilterCompat}.
+         *
+         * @throws IllegalArgumentException If the filter cannot be built.
+         */
+        public ScanFilterCompat build() {
+            return new ScanFilterCompat(mDeviceName, mDeviceAddress,
+                    mServiceUuid, mUuidMask,
+                    mServiceDataUuid, mServiceData, mServiceDataMask,
+                    mManufacturerId, mManufacturerData, mManufacturerDataMask);
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanRecordCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanRecordCompat.java
new file mode 100644
index 0000000..3f232c2
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanRecordCompat.java
@@ -0,0 +1,353 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.annotation.TargetApi;
+import android.bluetooth.le.ScanRecord;
+import android.os.Build;
+import android.os.ParcelUuid;
+import androidx.annotation.Nullable;
+import androidx.collection.ArrayMap;
+import android.util.Log;
+import android.util.SparseArray;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Compatible version so the ScanRecord
+ */
+public class ScanRecordCompat {
+    private static final String TAG = "ScanRecordCompat";
+
+    // The following data type values are assigned by Bluetooth SIG.
+    // For more details refer to Bluetooth 4.1 specification, Volume 3, Part C, Section 18.
+    //https://devzone.nordicsemi.com/documentation/nrf51/4.2.0/html/group___b_l_e___g_a_p___a_d___t_y_p_e___d_e_f_i_n_i_t_i_o_n_s.html
+    private static final int DATA_TYPE_FLAGS = 0x01;
+    private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL = 0x02;
+    private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE = 0x03;
+    private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL = 0x04;
+    private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE = 0x05;
+    private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL = 0x06;
+    private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE = 0x07;
+    private static final int DATA_TYPE_LOCAL_NAME_SHORT = 0x08;
+    private static final int DATA_TYPE_LOCAL_NAME_COMPLETE = 0x09;
+    private static final int DATA_TYPE_TX_POWER_LEVEL = 0x0A;
+    private static final int DATA_TYPE_SERVICE_DATA = 0x16;
+    private static final int DATA_TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF;
+
+    // Flags of the advertising data.
+    private final int mAdvertiseFlags;
+
+    @Nullable
+    private final List<ParcelUuid> mServiceUuids;
+
+    private final SparseArray<byte[]> mManufacturerSpecificData;
+
+    private final Map<ParcelUuid, byte[]> mServiceData;
+
+    // Transmission power level(in dB).
+    private final int mTxPowerLevel;
+
+    // Local name of the Bluetooth LE device.
+    private final String mDeviceName;
+
+    // Raw bytes of scan record.
+    private final byte[] mBytes;
+
+    /**
+     * Returns the advertising flags indicating the discoverable mode and capability of the device.
+     * Returns -1 if the flag field is not set.
+     */
+    public int getAdvertiseFlags() {
+        return mAdvertiseFlags;
+    }
+
+    /**
+     * Returns a list of service UUIDs within the advertisement that are used to identify the
+     * bluetooth GATT services.
+     */
+    public List<ParcelUuid> getServiceUuids() {
+        return mServiceUuids;
+    }
+
+    /**
+     * Returns a sparse array of manufacturer identifier and its corresponding manufacturer specific
+     * data.
+     */
+    public SparseArray<byte[]> getManufacturerSpecificData() {
+        return mManufacturerSpecificData;
+    }
+
+    /**
+     * Returns the manufacturer specific data associated with the manufacturer id. Returns
+     * {@code null} if the {@code manufacturerId} is not found.
+     */
+    @Nullable
+    public byte[] getManufacturerSpecificData(int manufacturerId) {
+        return mManufacturerSpecificData.get(manufacturerId);
+    }
+
+    /**
+     * Returns a map of service UUID and its corresponding service data.
+     */
+    public Map<ParcelUuid, byte[]> getServiceData() {
+        return mServiceData;
+    }
+
+    /**
+     * Returns the service data byte array associated with the {@code serviceUuid}. Returns
+     * {@code null} if the {@code serviceDataUuid} is not found.
+     */
+    @Nullable
+    public byte[] getServiceData(ParcelUuid serviceDataUuid) {
+        if (serviceDataUuid == null) {
+            return null;
+        }
+        return mServiceData.get(serviceDataUuid);
+    }
+
+    /**
+     * Returns the transmission power level of the packet in dBm. Returns {@link Integer#MIN_VALUE}
+     * if the field is not set. This value can be used to calculate the path loss of a received
+     * packet using the following equation:
+     * <p>
+     * <code>pathloss = txPowerLevel - rssi</code>
+     */
+    public int getTxPowerLevel() {
+        return mTxPowerLevel;
+    }
+
+    /**
+     * Returns the local name of the BLE device. The is a UTF-8 encoded string.
+     */
+    @Nullable
+    public String getDeviceName() {
+        return mDeviceName;
+    }
+
+    /**
+     * Returns raw bytes of scan record.
+     */
+    public byte[] getBytes() {
+        return mBytes;
+    }
+
+    private ScanRecordCompat(@Nullable List<ParcelUuid> serviceUuids,
+                       SparseArray<byte[]> manufacturerData,
+                       Map<ParcelUuid, byte[]> serviceData,
+                       int advertiseFlags, int txPowerLevel,
+                       String localName, byte[] bytes) {
+        mServiceUuids = serviceUuids;
+        mManufacturerSpecificData = manufacturerData;
+        mServiceData = serviceData;
+        mDeviceName = localName;
+        mAdvertiseFlags = advertiseFlags;
+        mTxPowerLevel = txPowerLevel;
+        mBytes = bytes;
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    ScanRecordCompat(ScanRecord record) {
+        mServiceUuids = record.getServiceUuids();
+        mManufacturerSpecificData = record.getManufacturerSpecificData();
+        mServiceData = record.getServiceData();
+        mDeviceName = record.getDeviceName();
+        mAdvertiseFlags = record.getAdvertiseFlags();
+        mTxPowerLevel = record.getTxPowerLevel();
+        mBytes = record.getBytes();
+    }
+
+    /**
+     * Parse scan record bytes to {@link ScanRecordCompat}.
+     * <p>
+     * The format is defined in Bluetooth 4.1 specification, Volume 3, Part C, Section 11 and 18.
+     * <p>
+     * All numerical multi-byte entities and values shall use little-endian <strong>byte</strong>
+     * order.
+     *
+     * @param scanRecord The scan record of Bluetooth LE advertisement and/or scan response.
+     */
+    public static ScanRecordCompat parseFromBytes(byte[] scanRecord) {
+        if (scanRecord == null) {
+            return null;
+        }
+
+        int currentPos = 0;
+        int advertiseFlag = -1;
+        List<ParcelUuid> serviceUuids = new ArrayList<>();
+        String localName = null;
+        int txPowerLevel = Integer.MIN_VALUE;
+
+        SparseArray<byte[]> manufacturerData = new SparseArray<>();
+        Map<ParcelUuid, byte[]> serviceData = new ArrayMap<>();
+
+        try {
+            while (currentPos < scanRecord.length) {
+                // length is unsigned int.
+                int length = scanRecord[currentPos++] & 0xFF;
+                if (length == 0) {
+                    break;
+                }
+                // Note the length includes the length of the field type itself.
+                int dataLength = length - 1;
+                // fieldType is unsigned int.
+                int fieldType = scanRecord[currentPos++] & 0xFF;
+                switch (fieldType) {
+                    case DATA_TYPE_FLAGS:
+                        advertiseFlag = scanRecord[currentPos] & 0xFF;
+                        break;
+                    case DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL:
+                    case DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE:
+                        parseServiceUuid(scanRecord, currentPos,
+                                dataLength, BluetoothUuidCompat.UUID_BYTES_16_BIT, serviceUuids);
+                        break;
+                    case DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL:
+                    case DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE:
+                        parseServiceUuid(scanRecord, currentPos, dataLength,
+                                BluetoothUuidCompat.UUID_BYTES_32_BIT, serviceUuids);
+                        break;
+                    case DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL:
+                    case DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE:
+                        parseServiceUuid(scanRecord, currentPos, dataLength,
+                                BluetoothUuidCompat.UUID_BYTES_128_BIT, serviceUuids);
+                        break;
+                    case DATA_TYPE_LOCAL_NAME_SHORT:
+                    case DATA_TYPE_LOCAL_NAME_COMPLETE:
+                        localName = new String(
+                                extractBytes(scanRecord, currentPos, dataLength));
+                        break;
+                    case DATA_TYPE_TX_POWER_LEVEL:
+                        txPowerLevel = scanRecord[currentPos];
+                        break;
+                    case DATA_TYPE_SERVICE_DATA:
+                        // The first two bytes of the service data are service data UUID in little
+                        // endian. The rest bytes are service data.
+                        int serviceUuidLength = BluetoothUuidCompat.UUID_BYTES_16_BIT;
+                        byte[] serviceDataUuidBytes = extractBytes(scanRecord, currentPos,
+                                serviceUuidLength);
+                        ParcelUuid serviceDataUuid = BluetoothUuidCompat.parseUuidFrom(
+                                serviceDataUuidBytes);
+                        byte[] serviceDataArray = extractBytes(scanRecord,
+                                currentPos + serviceUuidLength, dataLength - serviceUuidLength);
+                        serviceData.put(serviceDataUuid, serviceDataArray);
+                        break;
+                    case DATA_TYPE_MANUFACTURER_SPECIFIC_DATA:
+                        // The first two bytes of the manufacturer specific data are
+                        // manufacturer ids in little endian.
+                        int manufacturerId = ((scanRecord[currentPos + 1] & 0xFF) << 8) +
+                                (scanRecord[currentPos] & 0xFF);
+                        byte[] manufacturerDataBytes = extractBytes(scanRecord, currentPos + 2,
+                                dataLength - 2);
+                        manufacturerData.put(manufacturerId, manufacturerDataBytes);
+                        break;
+                    default:
+                        // Just ignore, we don't handle such data type.
+                        break;
+                }
+                currentPos += dataLength;
+            }
+
+            if (serviceUuids.isEmpty()) {
+                serviceUuids = null;
+            }
+            return new ScanRecordCompat(serviceUuids, manufacturerData, serviceData,
+                    advertiseFlag, txPowerLevel, localName, scanRecord);
+        } catch (Exception e) {
+            Log.e(TAG, "unable to parse scan record: " + Arrays.toString(scanRecord));
+            // As the record is invalid, ignore all the parsed results for this packet
+            // and return an empty record with raw scanRecord bytes in results
+            return new ScanRecordCompat(null, null, null, -1, Integer.MIN_VALUE, null, scanRecord);
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "ScanRecord [mAdvertiseFlags=" + mAdvertiseFlags + ", mServiceUuids=" + mServiceUuids
+                + ", mManufacturerSpecificData=" + toString(mManufacturerSpecificData)
+                + ", mServiceData=" + toString(mServiceData)
+                + ", mTxPowerLevel=" + mTxPowerLevel + ", mDeviceName=" + mDeviceName + "]";
+    }
+
+    // Parse service UUIDs.
+    private static int parseServiceUuid(byte[] scanRecord, int currentPos, int dataLength,
+                                        int uuidLength, List<ParcelUuid> serviceUuids) {
+        while (dataLength > 0) {
+            byte[] uuidBytes = extractBytes(scanRecord, currentPos,
+                    uuidLength);
+            serviceUuids.add(BluetoothUuidCompat.parseUuidFrom(uuidBytes));
+            dataLength -= uuidLength;
+            currentPos += uuidLength;
+        }
+        return currentPos;
+    }
+
+    // Helper method to extract bytes from byte array.
+    private static byte[] extractBytes(byte[] scanRecord, int start, int length) {
+        byte[] bytes = new byte[length];
+        System.arraycopy(scanRecord, start, bytes, 0, length);
+        return bytes;
+    }
+
+    /**
+     * Returns a string composed from a {@link SparseArray}.
+     */
+    static String toString(SparseArray<byte[]> array) {
+        if (array == null) {
+            return "null";
+        }
+        if (array.size() == 0) {
+            return "{}";
+        }
+        StringBuilder buffer = new StringBuilder();
+        buffer.append('{');
+        for (int i = 0; i < array.size(); ++i) {
+            buffer.append(array.keyAt(i)).append("=").append(Arrays.toString(array.valueAt(i)));
+        }
+        buffer.append('}');
+        return buffer.toString();
+    }
+
+    /**
+     * Returns a string composed from a {@link Map}.
+     */
+    static <T> String toString(Map<T, byte[]> map) {
+        if (map == null) {
+            return "null";
+        }
+        if (map.isEmpty()) {
+            return "{}";
+        }
+        StringBuilder buffer = new StringBuilder();
+        buffer.append('{');
+        Iterator<Map.Entry<T, byte[]>> it = map.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry<T, byte[]> entry = it.next();
+            T key = entry.getKey();
+            buffer.append(key).append("=").append(Arrays.toString(map.get(key)));
+            if (it.hasNext()) {
+                buffer.append(", ");
+            }
+        }
+        buffer.append('}');
+        return buffer.toString();
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanResultCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanResultCompat.java
new file mode 100644
index 0000000..09b92a3
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanResultCompat.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.annotation.TargetApi;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.le.ScanResult;
+import android.os.Build;
+import android.os.Parcel;
+import android.os.Parcelable;
+import androidx.annotation.Nullable;
+
+import com.blakequ.bluetooth_manager_lib.device.BluetoothLeDevice;
+
+/**
+ * Backwards compatible version of a ScanResult
+ */
+public class ScanResultCompat implements Parcelable {
+    // Remote bluetooth device.
+    private BluetoothLeDevice mDevice;
+
+    // Scan record, including advertising data and scan response data.
+    @Nullable
+    private ScanRecordCompat mScanRecord;
+
+    // Received signal strength.
+    private int mRssi;
+
+    // Device timestamp when the result was last seen.
+    private long mTimestampNanos;
+
+    /**
+     * Constructor of scan result.
+     *
+     * @param device         Remote bluetooth device that is found.
+     * @param scanRecord     Scan record including both advertising data and scan response data.
+     * @param rssi           Received signal strength.
+     * @param timestampNanos Device timestamp when the scan result was observed.
+     */
+    public ScanResultCompat(BluetoothDevice device, @Nullable ScanRecordCompat scanRecord, int rssi,
+                            long timestampNanos) {
+        mDevice = new BluetoothLeDevice(device, rssi, scanRecord.getBytes(), timestampNanos);
+        mScanRecord = scanRecord;
+        mRssi = rssi;
+        mTimestampNanos = timestampNanos;
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    ScanResultCompat(ScanResult result) {
+        mDevice = new BluetoothLeDevice(result.getDevice(), result.getRssi(), result.getScanRecord().getBytes(), System.currentTimeMillis());//result.getTimestampNanos()
+        mScanRecord = new ScanRecordCompat(result.getScanRecord());
+        mRssi = result.getRssi();
+        mTimestampNanos = System.currentTimeMillis();//result.getTimestampNanos();
+    }
+
+    private ScanResultCompat(Parcel in) {
+        readFromParcel(in);
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        if (mDevice != null) {
+            dest.writeInt(1);
+            mDevice.writeToParcel(dest, flags);
+        }
+        else {
+            dest.writeInt(0);
+        }
+        if (mScanRecord != null) {
+            dest.writeInt(1);
+            dest.writeByteArray(mScanRecord.getBytes());
+        }
+        else {
+            dest.writeInt(0);
+        }
+        dest.writeInt(mRssi);
+        dest.writeLong(mTimestampNanos);
+    }
+
+    private void readFromParcel(Parcel in) {
+        if (in.readInt() == 1) {
+            mDevice = BluetoothLeDevice.CREATOR.createFromParcel(in);
+        }
+        if (in.readInt() == 1) {
+            mScanRecord = ScanRecordCompat.parseFromBytes(in.createByteArray());
+        }
+        mRssi = in.readInt();
+        mTimestampNanos = in.readLong();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    /**
+     * Returns the remote bluetooth device identified by the bluetooth device address.
+     */
+    public BluetoothLeDevice getLeDevice() {
+        return mDevice;
+    }
+
+    /**
+     * Returns the remote bluetooth device identified by the bluetooth device address.
+     * @return
+     */
+    public BluetoothDevice getDevice() {
+        if (mDevice != null){
+            return mDevice.getDevice();
+        }
+        return null;
+    }
+
+    /**
+     * Returns the scan record, which is a combination of advertisement and scan response.
+     */
+    @Nullable
+    public ScanRecordCompat getScanRecord() {
+        return mScanRecord;
+    }
+
+    /**
+     * Returns the received signal strength in dBm. The valid range is [-127, 127].
+     */
+    public int getRssi() {
+        return mRssi;
+    }
+
+    /**
+     * Returns timestamp since boot when the scan record was observed.
+     */
+    public long getTimestampNanos() {
+        return mTimestampNanos;
+    }
+
+    @Override
+    public int hashCode() {
+        return ObjectsCompat.hash(mDevice, mRssi, mScanRecord, mTimestampNanos);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null || getClass() != obj.getClass()) {
+            return false;
+        }
+        ScanResultCompat other = (ScanResultCompat) obj;
+        return ObjectsCompat.equals(mDevice, other.mDevice) && (mRssi == other.mRssi) &&
+                ObjectsCompat.equals(mScanRecord, other.mScanRecord)
+                && (mTimestampNanos == other.mTimestampNanos);
+    }
+
+    @Override
+    public String toString() {
+        return "ScanResult{" + "mDevice=" + mDevice + ", mScanRecord="
+                + ObjectsCompat.toString(mScanRecord) + ", mRssi=" + mRssi + ", mTimestampNanos="
+                + mTimestampNanos + '}';
+    }
+
+    public static final Creator<ScanResultCompat> CREATOR = new Creator<ScanResultCompat>() {
+        @Override
+        public ScanResultCompat createFromParcel(Parcel source) {
+            return new ScanResultCompat(source);
+        }
+
+        @Override
+        public ScanResultCompat[] newArray(int size) {
+            return new ScanResultCompat[size];
+        }
+    };
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanSettingsCompat.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanSettingsCompat.java
new file mode 100644
index 0000000..055dfa5
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/scan/bluetoothcompat/ScanSettingsCompat.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2015 Joe Rogers
+ *
+ * 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.
+ */
+
+package com.blakequ.bluetooth_manager_lib.scan.bluetoothcompat;
+
+import android.annotation.TargetApi;
+import android.bluetooth.le.ScanSettings;
+import android.os.Build;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Compatible version of ScanSettings
+ */
+public class ScanSettingsCompat implements Parcelable {
+    /**
+     * Perform Bluetooth LE scan in low power mode. This is the default scan mode as it consumes the
+     * least power.
+     */
+    public static final int SCAN_MODE_LOW_POWER = 0;
+
+    /**
+     * Perform Bluetooth LE scan in balanced power mode. Scan results are returned at a rate that
+     * provides a good trade-off between scan frequency and power consumption.
+     */
+    public static final int SCAN_MODE_BALANCED = 1;
+
+    /**
+     * Scan using highest duty cycle. It's recommended to only use this mode when the application is
+     * running in the foreground.
+     */
+    public static final int SCAN_MODE_LOW_LATENCY = 2;
+
+    /**
+     * Trigger a callback for every Bluetooth advertisement found that matches the filter criteria.
+     * If no filter is active, all advertisement packets are reported.
+     */
+    public static final int CALLBACK_TYPE_ALL_MATCHES = 1;
+
+    // Bluetooth LE scan mode.
+    private final int mScanMode;
+
+    // Bluetooth LE scan callback type
+    private final int mCallbackType;
+
+    // Time of delay for reporting the scan result
+    private final long mReportDelayMillis;
+
+    public int getScanMode() {
+        return mScanMode;
+    }
+
+    public int getCallbackType() {
+        return mCallbackType;
+    }
+
+    /**
+     * Returns report delay timestamp based on the device clock.
+     */
+    public long getReportDelayMillis() {
+        return mReportDelayMillis;
+    }
+
+    private ScanSettingsCompat(int scanMode, int callbackType,
+                         long reportDelayMillis) {
+        mScanMode = scanMode;
+        mCallbackType = callbackType;
+        mReportDelayMillis = reportDelayMillis;
+    }
+
+    private ScanSettingsCompat(Parcel in) {
+        mScanMode = in.readInt();
+        mCallbackType = in.readInt();
+        mReportDelayMillis = in.readLong();
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    ScanSettings toApi21() {
+        return new ScanSettings.Builder()
+                .setReportDelay(getReportDelayMillis())
+                .setScanMode(getScanMode())
+                .build();
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mScanMode);
+        dest.writeInt(mCallbackType);
+        dest.writeLong(mReportDelayMillis);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    public static final Creator<ScanSettingsCompat>
+            CREATOR = new Creator<ScanSettingsCompat>() {
+        @Override
+        public ScanSettingsCompat[] newArray(int size) {
+            return new ScanSettingsCompat[size];
+        }
+
+        @Override
+        public ScanSettingsCompat createFromParcel(Parcel in) {
+            return new ScanSettingsCompat(in);
+        }
+    };
+
+    /**
+     * Builder for {@link ScanSettingsCompat}.
+     */
+    public static final class Builder {
+        private int mScanMode = SCAN_MODE_LOW_POWER;
+        private final int mCallbackType = CALLBACK_TYPE_ALL_MATCHES;
+        private long mReportDelayMillis = 0;
+
+        /**
+         * Set scan mode for Bluetooth LE scan.
+         *
+         * @param scanMode The scan mode can be one of {@link ScanSettingsCompat#SCAN_MODE_LOW_POWER},
+         *            {@link ScanSettingsCompat#SCAN_MODE_BALANCED} or
+         *            {@link ScanSettingsCompat#SCAN_MODE_LOW_LATENCY}.
+         * @throws IllegalArgumentException If the {@code scanMode} is invalid.
+         */
+        public Builder setScanMode(int scanMode) {
+            if (scanMode < SCAN_MODE_LOW_POWER || scanMode > SCAN_MODE_LOW_LATENCY) {
+                throw new IllegalArgumentException("invalid scan mode " + scanMode);
+            }
+            mScanMode = scanMode;
+            return this;
+        }
+
+        // Returns true if the callbackType is valid.
+        private boolean isValidCallbackType(int callbackType) {
+            return callbackType == CALLBACK_TYPE_ALL_MATCHES;
+        }
+
+        /**
+         * Set report delay timestamp for Bluetooth LE scan.
+         *
+         * @param reportDelayMillis Delay of report in milliseconds. Set to 0 to be notified of
+         *            results immediately. Values &gt; 0 causes the scan results to be queued up and
+         *            delivered after the requested delay or when the internal buffers fill up.
+         * @throws IllegalArgumentException If {@code reportDelayMillis} &lt; 0.
+         */
+        public Builder setReportDelay(long reportDelayMillis) {
+            if (reportDelayMillis < 0) {
+                throw new IllegalArgumentException("reportDelay must be > 0");
+            }
+            mReportDelayMillis = reportDelayMillis;
+            return this;
+        }
+
+        /**
+         * Build {@link ScanSettingsCompat}.
+         */
+        public ScanSettingsCompat build() {
+            return new ScanSettingsCompat(mScanMode, mCallbackType, mReportDelayMillis);
+        }
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/BluetoothUtils.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/BluetoothUtils.java
new file mode 100644
index 0000000..e08936e
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/BluetoothUtils.java
@@ -0,0 +1,137 @@
+package com.blakequ.bluetooth_manager_lib.util;
+
+import android.app.Activity;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothGattCharacteristic;
+import android.bluetooth.BluetoothManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.util.Log;
+
+/**
+ * the utils of bluetooth
+ *
+ * <li>
+ * <li>1.check phone is supports BLE features{@link #isBluetoothLeSupported(Context)}
+ * <li>2.the bluetooth is open or enable{@link #isBluetoothIsEnable()}
+ * <li>3.if the bluetooth is closed you can using this method open system setting to open bluetooth{@link #askUserToEnableBluetoothIfNeeded(Activity)}??{@link #openBlueToothSetting(Activity)}
+ */
+public final class BluetoothUtils {
+    private static String TAG = "BluetoothUtils";
+    public final static int REQUEST_ENABLE_BT = 2001;
+    private BluetoothAdapter mBluetoothAdapter = null;
+    private BluetoothManager mBluetoothManager = null;
+    private static BluetoothUtils mBluetoothUtils;
+    private Context mContext;
+
+    public static synchronized BluetoothUtils getInstance(Context mContext){
+        if (mBluetoothUtils == null){
+            mBluetoothUtils = new BluetoothUtils(mContext);
+        }
+        return mBluetoothUtils;
+    }
+
+    private BluetoothUtils(Context mContext) {
+        this.mContext = mContext;
+    }
+
+    /**
+     * get adapter
+     * @return
+     */
+    public BluetoothAdapter getBluetoothAdapter() {
+        if (mBluetoothAdapter == null) {
+            // Initializes Bluetooth adapter.
+            if (mBluetoothManager == null){
+                mBluetoothManager = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE);
+            }
+            mBluetoothAdapter = mBluetoothManager.getAdapter();
+            if (mBluetoothAdapter == null) {
+                Log.e(TAG, "Failed to construct a BluetoothAdapter");
+            }
+        }
+        return mBluetoothAdapter;
+    }
+
+    /**
+     * bluetooth is enable
+     */
+    public boolean isBluetoothIsEnable(){
+        if (getBluetoothAdapter() == null || !isBluetoothLeSupported(mContext)) {
+            return false;
+        }
+
+        return getBluetoothAdapter().isEnabled();
+    }
+
+    /**
+     * open system setting to open bluetooth
+     * <p>Notification of the result of this activity is posted using the
+     * {@link android.app.Activity#onActivityResult} callback. The
+     * <code>resultCode</code>
+     * will be {@link android.app.Activity#RESULT_OK} if Bluetooth has been
+     * turned on or {@link android.app.Activity#RESULT_CANCELED} if the user
+     * has rejected the request or an error has occurred.
+     */
+    public void askUserToEnableBluetoothIfNeeded(Activity activity) {
+        if (isBluetoothLeSupported(activity) && (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled())) {
+            final Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+            activity.startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
+        }
+    }
+
+    /**
+     * you phone is support bluetooth feature
+     * @return
+     */
+    public static boolean isBluetoothLeSupported(Context context) {
+        return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);
+    }
+
+    /**
+     * open system setting to open bluetooth
+     * <p>Notification of the result of this activity is posted using the
+     * {@link android.app.Activity#onActivityResult} callback. The
+     * <code>resultCode</code>
+     * will be {@link android.app.Activity#RESULT_OK} if Bluetooth has been
+     * turned on or {@link android.app.Activity#RESULT_CANCELED} if the user
+     * has rejected the request or an error has occurred.
+     * @param mActivity
+     */
+    public static void openBlueToothSetting(Activity mActivity){
+        final Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+        mActivity.startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
+    }
+
+    public static boolean isCharacteristicRead(int property){
+        if ((property & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean isCharacteristicWrite(int property){
+        if ((property & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0
+                || (property & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean isCharacteristicNotify(int property){
+        if ((property & BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0
+                || (property & BluetoothGattCharacteristic.PROPERTY_INDICATE) > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean isCharacteristicBroadcast(int property){
+        if ((property & BluetoothGattCharacteristic.PROPERTY_BROADCAST) > 0){
+            return true;
+        }
+        return false;
+    }
+
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/ByteUtils.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/ByteUtils.java
new file mode 100644
index 0000000..fcbc253
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/ByteUtils.java
@@ -0,0 +1,178 @@
+package com.blakequ.bluetooth_manager_lib.util;
+
+import android.util.SparseArray;
+
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Map;
+
+public class ByteUtils {
+
+    /**
+     * The Constant HEXES.
+     */
+    private static final String HEXES = "0123456789ABCDEF";
+
+    private ByteUtils(){
+        // TO AVOID INSTANTIATION
+    }
+
+    /**
+     * Gets a pretty representation of a Byte Array as a HEX String.
+     * <p>
+     * Sample output: [01, 30, FF, AA]
+     *
+     * @param array the array
+     * @return the string
+     */
+    public static String byteArrayToHexString(final byte[] array) {
+        final StringBuilder sb = new StringBuilder();
+        boolean firstEntry = true;
+        sb.append('[');
+
+        for (final byte b : array) {
+            if (!firstEntry) {
+                sb.append(", ");
+            }
+            sb.append(HEXES.charAt((b & 0xF0) >> 4));
+            sb.append(HEXES.charAt((b & 0x0F)));
+            firstEntry = false;
+        }
+
+        sb.append(']');
+        return sb.toString();
+    }
+
+    /**
+     * Checks to see if a byte array starts with another byte array.
+     *
+     * @param array  the array
+     * @param prefix the prefix
+     * @return true, if successful
+     */
+    public static boolean doesArrayBeginWith(final byte[] array, final byte[] prefix) {
+        if (array.length < prefix.length) {
+            return false;
+        }
+
+        for (int i = 0; i < prefix.length; i++) {
+            if (array[i] != prefix[i]) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Converts a byte array with a length of 2 into an int
+     *
+     * @param input the input
+     * @return the int from the array
+     */
+    public static int getIntFrom2ByteArray(final byte[] input) {
+        final byte[] result = new byte[4];
+
+        result[0] = 0;
+        result[1] = 0;
+        result[2] = input[0];
+        result[3] = input[1];
+
+        return ByteUtils.getIntFromByteArray(result);
+    }
+
+    /**
+     * Converts a byte to an int, preserving the sign.
+     * <p>
+     * For example, FF will be converted to 255 and not -1.
+     *
+     * @param bite the byte
+     * @return the int from byte
+     */
+    public static int getIntFromByte(final byte bite) {
+        return bite & 0xFF;
+    }
+
+    /**
+     * Converts a byte array to an int.
+     *
+     * @param bytes the bytes
+     * @return the int from byte array
+     */
+    public static int getIntFromByteArray(final byte[] bytes) {
+        return ByteBuffer.wrap(bytes).getInt();
+    }
+
+    /**
+     * Converts a byte array to a long.
+     *
+     * @param bytes the bytes
+     * @return the long from byte array
+     */
+    public static long getLongFromByteArray(final byte[] bytes) {
+        return ByteBuffer.wrap(bytes).getLong();
+    }
+
+
+    /**
+     * Inverts an byte array in place.
+     *
+     * @param array the array
+     */
+    public static void invertArray(final byte[] array) {
+        final int size = array.length;
+        byte temp;
+
+        for (int i = 0; i < size / 2; i++) {
+            temp = array[i];
+            array[i] = array[size - 1 - i];
+            array[size - 1 - i] = temp;
+        }
+    }
+
+    /**
+     * Returns a string composed from a {@link SparseArray}.
+     */
+    public static String toString(SparseArray<byte[]> array) {
+        if (array == null) {
+            return "null";
+        }
+        if (array.size() == 0) {
+            return "{}";
+        }
+        StringBuilder buffer = new StringBuilder();
+        buffer.append('{');
+        for (int i = 0; i < array.size(); ++i) {
+            buffer.append(array.keyAt(i)).append("=").append(array.valueAt(i));
+        }
+        buffer.append('}');
+        return buffer.toString();
+    }
+
+
+    /**
+     * Returns a string composed from a {@link Map}.
+     */
+    public static <T> String toString(Map<T, byte[]> map) {
+        if (map == null) {
+            return "null";
+        }
+        if (map.isEmpty()) {
+            return "{}";
+        }
+        StringBuilder buffer = new StringBuilder();
+        buffer.append('{');
+        Iterator<Map.Entry<T, byte[]>> it = map.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry<T, byte[]> entry = it.next();
+            Object key = entry.getKey();
+            buffer.append(key).append("=").append(Arrays.toString(map.get(key)));
+            if (it.hasNext()) {
+                buffer.append(", ");
+            }
+        }
+        buffer.append('}');
+        return buffer.toString();
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/LimitedLinkHashMap.java b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/LimitedLinkHashMap.java
new file mode 100644
index 0000000..b0dc7f1
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/java/com/blakequ/bluetooth_manager_lib/util/LimitedLinkHashMap.java
@@ -0,0 +1,19 @@
+package com.blakequ.bluetooth_manager_lib.util;
+
+import java.util.LinkedHashMap;
+
+public class LimitedLinkHashMap<K, V> extends LinkedHashMap<K, V> {
+    private static final long serialVersionUID = -5375660288461724925L;
+
+    private final int mMaxSize;
+
+    public LimitedLinkHashMap(final int maxSize) {
+        super(maxSize + 1, 1, false);
+        mMaxSize = maxSize;
+    }
+
+    @Override
+    protected boolean removeEldestEntry(final Entry<K, V> eldest) {
+        return this.size() > mMaxSize;
+    }
+}
diff --git a/bluetooth-manager-lib/src/main/res/values/strings.xml b/bluetooth-manager-lib/src/main/res/values/strings.xml
new file mode 100644
index 0000000..273544b
--- /dev/null
+++ b/bluetooth-manager-lib/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+    <string name="app_name">bluetooth-manager-lib</string>
+</resources>
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..e47b6b9
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,15 @@
+buildscript {
+    ext {
+        agp_version = '8.6.0'
+    }
+}// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+
+plugins {
+    id 'com.android.application' version '8.6.0' apply false
+    id 'com.android.library' version '7.2.1' apply false
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
\ No newline at end of file
diff --git a/comb.jks b/comb.jks
new file mode 100644
index 0000000..e71eaa8
--- /dev/null
+++ b/comb.jks
Binary files differ
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..dab7c28
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..e40670f
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,19 @@
+pluginManagement {
+    repositories {
+        gradlePluginPortal()
+        google()
+        mavenCentral()
+    }
+}
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        google()
+        mavenCentral()
+        maven { url 'https://jitpack.io' }
+    }
+}
+rootProject.name = "comb-android"
+include ':app'
+include ':bluetooth-manager-lib'
+

--
Gitblit v1.9.3