AndroLyze¶
Release: | 1.0 |
---|---|
Date: | October 17, 2016 |
About¶
AndroLyze is a distributed framework for android app analysis with unified logging and reporting functionality to perform security checks on large numbers of applications in an efficient manner.
It provides optimized scheduling algorithms for distributing static code analysis tasks across several machines. Moreover, it can handle several versions of a single mobile application to generate a security track record over many versions.
The code and documentation is related to the following paper (link will follow):

Features¶
- Static android code analysis based on Androguard
- Unified logging and reporting framework backed by mongoDB
- Efficient Android app analysis on a single machine | local cluster | cloud
- APK distribution via mongoDB, Amazon S3 or serialization of the local .apk files
- Code-Size Scheduling: Schedule long running tasks first based on the size of the classes.dex file
- Download APKs from Google play with the help of Google Play Crawler
- Update your APK collection by downloading the newest APK version to create a security track record over several versions
Try it out!¶
Still interested? Try it out! We provide an easy way to install AndroLyze using Docker containers.
Documentation¶
The documentation is hosted at readthedocs.org and opensource available at github. Feel free to contribute! Edit the docs on github, commit it and it will be automatically built by readthedocs!
Installation¶
Docker¶
For ease of use, we enable the deployment with Docker.
AndroLyze comes with a few docker images which ship the distributed system, consisting of a message queue ( RabbitMQ ), a NoSQL database ( mongoDB ) and the actual worker node.
Before you can start playing with Docker you need to clone the repository:
$ git clone --recursive https://github.com/nachtmaar/androlyze.git
$ cd androlyze
Config¶
AndroLyze has one important config file which lets you customize the distributed system. The credentials defined there are used by the rabbitmq and mongodb container. At startup, they grab the relevant information from the config file and set up the appropriate user/access.
The IPs and Ports specified in the config don’t have to be set when using Docker due to the Docker linking system.
If you plan to use AndroLyze on Amazon EC2, you should consider using S3 for APK storage. For this purpose you have to set the Amazon access id and key!
Docker installation¶
The installation with Docker requires Linux. On Mac have a look at boot2docker which uses a linux virtual machine to enable the usage of Docker.
Linux:
$ sudo apt-get install docker.io
Mac:
$ brew install boot2docker
$ boot2docker init
$ boot2docker up
Now set the environment variables as instructed by the output of the up command.
Note
The following docker commands require sudo on Linux but not OS X!
Data container¶
The config file, APKs and import databases are shared with all containers through a data container.
Note
For OS X be aware that folders mounted with the “-v” switch have to live in your home folder as a restriction of boot2docker!
Create and adopt your AndroLyze config file to your needs:
$ cp androlyze/settings/defaults/config.conf data_container/
$ vim data_container/config.conf
The default config is suitable for a local run using Docker. Nothing has to be changed, but can of course.
Start the data container (and supply a custom directory for the APKs and import databases which shall be mounted into the container and lives inside the host os):
$ docker create -v $PWD/data_container:/etc/androlyze -v <Full Path to APK Directory>:/home/worker/androlyze/apks -v <Full Path to Import Databases>:/home/worker/androlyze/dbs --name data nachtmaar/androlyze_worker:latest /bin/true
fc0abfe19883fd48657275a16c988195a49a94fac8aaf52e1d07a8b67a371507
Create X.509 certificates¶
AndroLyze can be secured with X.509 certificates. The following container creates the necessary CA, server and client certificates and stores them in conf/distributed/ssl of the AndroLyze source folder.
Note
By default AndroLyze is setup with randomly created self-signed certificates!
If you want to use your own PKI, just place androlyze_ca.pem, androlyze_server.crt, androlyze_server.key, androlyze_client.key and androlyze_client.crt into the data_container folder.
Moreover you should pin the AndroLyze Certificate Authority! On Mac OS just double click the androlyze_ca.pem file.
Start a container which sets up the whole Public Key Infrastructure:
$ docker run --rm -it -v $PWD/data_container:/usr/share/easy-rsa/keys_androlyze nachtmaar/androlyze_x_509:latest
$ ls data_container
01.pem androlyze_client.key ca.crt index.txt serial
02.pem androlyze_server.crt ca.key index.txt.attr serial.old
androlyze_client.crt androlyze_server.csr config.conf index.txt.attr.old
androlyze_client.csr androlyze_server.key dh2048.pem index.txt.old
Other containers¶
For the first try, we run the containers interactively so that we can follow the stdout/stderr of each container. For each of the 4 shell commands spawn a new shell and execute the command. If you stop a container with CTLR-C the image of the container gets deleted (removing the “–rm” switch keeps the images)
Run the NoSQL database (mongoDB):
# The command exposes port 27017 so that mongoDB can be accessed from the containers host system
$ docker run -it --rm --name mongodb -p 27017:27017 --volumes-from data nachtmaar/androlyze_mongodb:latest
Run the message queue (RabbitMQ):
# The command exposes port 15672 so that the rabbitmq management webui can be accessed from the containers host system
$ docker run -it --rm --name rabbitmq -p 15672:15672 --volumes-from data nachtmaar/androlyze_rabbitmq:latest
Run celery flower, a monitoring tool for the distributed system.
# The command exposes port 5555 so the webui of celery flower can be accessed from the containers host system
$ docker run -it --rm --name flower -p 5555:5555 --volumes-from data --link rabbitmq:rabbitmq --link mongodb:mongodb nachtmaar/androlyze_flower:latest
Run the worker and link the database as well as the message queue so that they know from each other
$ docker run -it --rm --name worker --volumes-from data --link rabbitmq:rabbitmq --link mongodb:mongodb nachtmaar/androlyze_worker:latest
That’s it¶
All containers need some time to initialize themselves. Especially the worker and flower container need to pull code from git (secured with https or ssh key verification for private repos).
In the status section you can check how the logs of the containers should look like if you encounter any error.
If everything went right, you can connect to the frontend container:
$ docker exec -it worker bash
export TERM=xterm
Moreover, you should be able to visit the RabbitMQ management service on port 15672 and the flower monitoring service on port 5555 (see the Monitoring / Management section)
Status¶
Afterwards the following containers should run:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3f1673b2c9d nachtmaar/androlyze_worker:latest "/bin/sh -c ./start. 5 seconds ago Up 3 seconds worker
31ac00f6fc35 nachtmaar/androlyze_flower:latest "/bin/sh -c ./start. 9 seconds ago Up 7 seconds 0.0.0.0:5555->5555/tcp flower
3ec8edb7ce56 nachtmaar/androlyze_rabbitmq:latest "/sbin/my_init" 13 seconds ago Up 11 seconds 5672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq
e91abaa7d1da nachtmaar/androlyze_mongodb:latest "/sbin/my_init" 18 seconds ago Up 16 seconds 0.0.0.0:27017->27017/tcp mongodb
The output of the containers look like this:
MongoDB¶
configuring mongodb [done]
configuring ssl ...
configuring ssl [done]
starting mongodb ...
Sat Jun 20 11:38:35.385 [initandlisten] MongoDB starting : pid=14 port=27017 dbpath=/data/db/ 64-bit host=55d3e0780db4
Sat Jun 20 11:38:35.385 [initandlisten] db version v2.4.9
Sat Jun 20 11:38:35.386 [initandlisten] git version: nogitversion
Sat Jun 20 11:38:35.386 [initandlisten] build info: Linux orlo 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 BOOST_LIB_VERSION=1_54
Sat Jun 20 11:38:35.386 [initandlisten] allocator: tcmalloc
Sat Jun 20 11:38:35.386 [initandlisten] options: { dbpath: "/data/db/", smallfiles: true, sslCAFile: "/etc/androlyze/androlyze_ca.pem", sslOnNormalPorts: true, sslPEMKeyFile: "/etc/ssl/private/mongodb.pem", sslWeakCertificateValidation: true }
Sat Jun 20 11:38:35.388 [initandlisten] journal dir=/data/db/journal
Sat Jun 20 11:38:35.388 [initandlisten] recover : no journal files present, no recovery needed
Sat Jun 20 11:38:35.457 [initandlisten] waiting for connections on port 27017 ssl
Sat Jun 20 11:38:35.459 [websvr] admin web console waiting for connections on port 28017 ssl
RabbitMQ¶
Server startup complete; 6 plugins started.
* amqp_client
* mochiweb
* rabbitmq_management
* rabbitmq_management_agent
* rabbitmq_web_dispatch
* webmachine
completed with 6 plugins.
=INFO REPORT==== 20-Jun-2015::14:25:31 ===
accepting AMQP connection <0.331.0> (172.17.0.229:59456 -> 172.17.0.228:5671)
=INFO REPORT==== 20-Jun-2015::14:25:31 ===
accepting AMQP connection <0.337.0> (172.17.0.229:59457 -> 172.17.0.228:5671)
Flower¶
[I 150617 17:29:49 command:114] Visit me at http://0.0.0.0:5555
[I 150617 17:29:49 command:116] Broker: amqp://androlyze:**@172.17.0.177:5672/androlyze_vhost
[I 150617 17:29:49 command:119] Registered tasks:
['androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask',
'celery.backend_cleanup',
'celery.chain',
'celery.chord',
'celery.chord_unlock',
'celery.chunks',
'celery.group',
'celery.map',
'celery.starmap']
[I 150617 17:29:49 mixins:225] Connected to amqp://androlyze:**@172.17.0.177:5672/androlyze_vhost
Worker¶
-------------- celery@31fb65be6c49 v3.1.18 (Cipater)
---- **** -----
--- * *** * -- Linux-3.18.11-tinycore64-x86_64-with-Ubuntu-14.04-trusty
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: AndroLyze:0x7f57d457b3d0
- ** ---------- .> transport: amqp://androlyze:**@172.17.1.111:5671/androlyze_vhost
- ** ---------- .> results: rpc
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ----
--- ***** ----- [queues]
-------------- .> analyze_apk exchange=celery(direct) key=analyze_apk
.> celery exchange=celery(direct) key=celery
[2015-06-18 21:20:54,523: WARNING/MainProcess] celery@31fb65be6c49 ready.
Starting/stopping¶
All containers can be simply stopped and start after they have been created the first time. But for this you need to create all the containers without the “–rm” switch!
Stop them:
docker stop flower worker rabbitmq mongodb data
Start them:
# be sure to start the services before flower and the worker (they need the correct ip and port of the services)
docker start data mongodb rabbitmq flower worker
Development¶
Docker can also be used to ease development. For this purpose, it is necessary to have a local clone of AndroLyze so that the development code can be mounted into /home/worker/anrolyze of the container. If a repository is already existing in the container, it won’t clone the code from git again as it normally does if no source code is mounted into the container.
Changes in the source code (done outside the container) affect the source in the container. Otherwise one would need to push changes to git and check it out then. Or develop in the container itself.
docker run -it --rm --name worker -v /Users/nils/Desktop/androlyze/:/home/worker/androlyze --volumes-from data --link rabbitmq:rabbitmq --link mongodb:mongodb nachtmaar/androlyze_worker:latest
Manually¶
Install AndroLyze¶
# clone recursive to fetch submodules
git clone --recursive https://github.com/nachtmaar/androlyze.git
cd androlyze
# copy the sample config file
cp androlyze/settings/defaults/config.conf conf/
cp androlyze/settings/defaults/script_settings.json conf/
# copy config for google-play-crawler (needed for playstore.py)
cp google-play-crawler/googleplay/crawler.conf conf/
# revoke not needed permissions for config files (contains credentials)
chmod 600 -R conf/
Install other requirements¶
# install pip
sudo apt-get install python-pip
# install python requirements
pip install --user -r docker/worker/requirements.txt
Distributed Environment¶
# only for task server
sudo apt-get install rabbitmq-server
# only for result database
sudo apt-get install mongodb
MongoDB¶
Also see MongoDB installation
Note
The user creation shown below is for MongoDB version 2.4, 2.2 is a different API ! For version 3 one has to use db.createUser instead of db.addUser but with the same arguments!
First we need to add an account. One for user administration, second for database r/w access.
# start the mongo shell
mongo <host>
use admin
# add useradmin
db.addUser( { user: "useradmin",
pwd: "pwd",
roles: [ "userAdminAnyDatabase"] } )
# add androlyze user (needs full access to create user supplied databases via config file)
db.addUser( { user: "androlyze",
pwd: "pwd",
roles: [ "readWriteAnyDatabase"] } )
Enable authentication in config file (/etc/mongodb.conf)
# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
port = 27017
# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true
auth = true
For X509 certificate creation have a look at RabbitMQ website. For SSL add these values too:
# SSL options
sslMode = requireSSL
# SSL Key file and certificate
sslPEMKeyFile = /etc/ssl/private/mongodb/mongodb.pem
sslOnNormalPorts = true
# ca certificate
sslCAFile = /etc/ssl/certs/androlyze_ca.pem
# client don't need a certificate
sslWeakCertificateValidation = true
Restart server
sudo /etc/init.d/mongodb restart
Warning
If you are encountering any troubles with starting the mongodb server, try to start it manually with mongod –config /etc/mongodb.conf and have a look at the log file.
or test with sudo -u mongodb mongod –config /etc/mongodb.conf
RabbitMQ¶
RabbitMQ configuration (see this for more details):
sudo rabbitmqctl add_user androlyze <pw>
sudo rabbitmqctl add_vhost androlyze_vhost
sudo rabbitmqctl set_permissions -p androlyze_vhost androlyze ".*" ".*" ".*"
We need a big task storage, so if your root disk is not big enough use some different path. Default is /var/lib/rabbitmq.
Set in file “/etc/rabbitmq/rabbitmq-env.conf”
RABBITMQ_MNESIA_BASE=/custompath/lib/rabbitmq/
For X509 certificate creation have a look at RabbitMQ website.
File: /etc/rabbitmq/rabbitmq.config
[
{rabbit, [
{tcp_listeners, []},
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/etc/ssl/certs/androlyze_ca.pem"},
{certfile,"/etc/ssl/certs/androlyze_server.pem"},
{keyfile,"/etc/ssl/private/rabbitmq/androlyze_server.key"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}]}
]}
].
Warning
For errors have a look at the log file:
tail -n 50 /var/log/rabbitmq/rabbit....log
Deployment and Management¶
AndroLyze follows a classical cluster design. Therefore our deployment and manegement is automized with the help of Fabric which uses ssh to connect to the workers and executes the tasks locally on them.
Therefore you need to do set a few values in the Deployment section of the distributed config file.
Available fabric commands:
cnt_processes Cnt "celery worker" processes
deploy_project If `user` and/or `passwd` given, use them to authenticate when cloning via http.
deploy_scripts Deploy the scripts on the workers. `scripts_src` is the script folder what shall be synced
deploy_testing Deploy the testing code on the workers. Intended for usage where changes have not been comitted (or not to master)
initial_worker_setup Initial worker setup. Needs root access.
install_dependencies Set up the workers
kill_processes Kill the workers by sending the kill signal.
list_processes List "celery worker" processes
restart_workers Restart workers on registered hosts with specified concurrency.
start_workers Start workers on registered hosts with specified concurrency.
stop_workers Stop all workers.
# uses the username specified in config file or your username
fab start_workers
# don't try public-key auth
fab start_workers -k
# use worker as username
# otherwise
fab start_workers -u worker
# you can also use hosts other than in the config file
fab start_workers -H user@worker
# restart workers with default concurrency=#number of cores
fab restart_workers
# custom conurrency
fab restart_workers:concurrency=16
# use autoscaling, min: #number of cores, max: min * multiplicator
fab restart_workers:autoscale=True,autoscale_mult=2
# kill workers
fab kill_processes
# deploy scripts on workers
fab deploy_scripts:scripts_user/nils/
Warning
# don't use! it will wipe the scripts from other users!
fab deploy_scripts:scripts_user
AndroLyze can be installed either using Docker or manually.
Usage¶
Import¶
At first, we create an import database so that we can easily manage our APKs. Importing is not necessary, but enables an improved scheduling which is based on the size of the dex code.
# Import APKs and copy them to the distributed APK storage (mongoDB or Amazon S3 atm.)
# This enables us to send only the id of APK and fetch if from the storage via network
./androimport -cdb apks/
# Copy the APKs to the result dir defined in the config sorted by package name, hash and version name
./androimport -cd apks/
# Do both
./androimport -cd -cdb apks/
# Use a custom import database
./androimport -idb dbs/foo.db -cdb apks/
Manual¶
worker@cf0c3ee3e7ca:/home/worker/androlyze$ ./androimport --help
INFO: appending "androguard/" to sys.path
usage: androimport [-h] [-idb IMPORT_DATABASE] [-rdb RESULT_DATABASE_NAME]
[-c CONFIG] [-q] [-v] [-vl VLOG] [-V] [--yes] [-cd] [-cdb]
[-t TAG] [-u] [--concurrency CONCURRENCY]
apks [apks ...]
positional arguments:
apks The apk files or directories (with .apk files). Apk
files and directories can also be mixed.
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
Load a custom config file [default: conf/config.conf].
-V, --version show program's version number and exit
--yes, -y Autoconfirm question(s) on the command-line interface.
-t TAG, --tag TAG Tag the apks
-u, --update Update already imported apks
--concurrency CONCURRENCY
Number of processes
database:
-idb IMPORT_DATABASE, --import-database IMPORT_DATABASE
You can supply a custom import database [default:
conf/config.conf]
-rdb RESULT_DATABASE_NAME, --result-database-name RESULT_DATABASE_NAME
You can supply a custom result database name.
[default: conf/config.conf]
logging:
-q, --quiet Be quiet and do not log anything to stdout
-v, --verbose Set verbosity [default: 3], 1 -> CRITICAL, 2 -> ERROR,
3 -> WARN, 4 -> INFO, 5 -> DEBUG
-vl VLOG, --verbose-log VLOG
Log stdout and stderr to file
apk copying:
-cd, --copy-disk Import the .apk file(s) to the storage dir defined in
the config file.
-cdb, --copy-db Import the .apk file(s) into the database. Optional
for the distributed analysis!
Querying¶
Now that we imported the APKs we can query the import database:
worker@cf0c3ee3e7ca:/home/worker/androlyze$ ./androquery import infos-all
INFO: appending "androguard/" to sys.path
air.de.fahren_lernen.app 3.2.19
sha256: 913d779289eae02c6712515ce42f89b353f4f2faf645d398ccbe484f662439da
import date: 2015-06-20 20:07:33
path: /home/worker/androlyze/apks/02.03.2015_top_free_4/apps_topselling_free/EDUCATION/air.de.fahren_lernen.app.apk
code size: 435352
build date: 2015-01-19 12:19:18
air.nn.mobile.app.main 1.4.20
sha256: 52c7c1974fc4d87821e88a28a36a66f4e78aa23ca0693d88a7bb00ffa1869fb7
import date: 2015-06-20 20:07:35
path: /home/worker/androlyze/apks/02.03.2015_top_free_4/apps_topselling_free/EDUCATION/air.nn.mobile.app.main.apk
code size: 2852236
build date: 2014-12-05 17:50:42
...
Manual¶
worker@cf0c3ee3e7ca:/home/worker/androlyze$ ./androquery import --help
INFO: appending "androguard/" to sys.path
usage: androquery import [-h] [--all]
{infos,infos-all,versions,paths,package-names,hashes}
...
positional arguments:
{infos,infos-all,versions,paths,package-names,hashes}
Available query commands for import db
infos List apks (short description)
infos-all List apks (detailed description)
versions List versions
paths List paths
package-names List package names
hashes List hashes of apks
optional arguments:
-h, --help show this help message and exit
--all Select whole database.
Analysis¶
The following section shows by example how to trigger the analysis process and how to view the results. All built-in scripts are located in the scripts_builtin folder. User written scripts can be placed in scripts_user.
Decompile¶
We start by decompiling the APKs (which we previously imported) with androguard’s DAD decompiler. A batch job analyzes one APK after another parallel on all available cores.
./androanalyze scripts_builtin/DecompileClassesText.py -pm parallel
INFO: appending "androguard/" to sys.path
Welcome to AndroLyze!
Using Code Size Scheduling for faster analysis!
Loaded scripts:
DecompileClassesText 0.1
=> [2/101 (1.98 %) | 0:09:30 | com.infraware.office.link 6.0.9]
Because the DecompileClassesText may exceed 16MB - the maximum size of mongoDB documents - the source code is stored binary. This is signaled by the “-nd” switch
$ ./androquery result -sn DecompileClassesText -nd
{
"chunkSize": 261120,
"filename": "com.ebay.mobile_2.8.2.1_DecompileClassesText.java",
"length": 25931939,
"uploadDate": "2015-06-20T20:46:43.703000",
"md5": "521bbd5e9ec78a263ddabbd60f921e45",
"metadata": {
"decompiled_classes": null,
"apk meta": {
"build_date": "2014-11-12T09:57:38",
"version name": "2.8.2.1",
"package name": "com.ebay.mobile",
"tag": null,
"path": "/home/worker/androlyze/apks/02.03.2015_top_free_4/apps_topselling_free/SHOPPING/com.ebay.mobile.apk",
"import date": "2015-06-17T17:43:16.024000",
"sha256": "9e6bf1cb31f5cff3a3d8e39a16ca8c34590ad68ae840b4bb7995f185af0f0994"
},
"script meta": {
"version": "0.1",
"sha256": "c52a19607c2db12034d409bf3e15546d10199d724a939a63a9699ad0daa14f3f",
"name": "DecompileClassesText",
"analysis date": "2015-06-20T20:38:54.705000"
}
}
}
MongoDB stores binary files in two collections. One contains the meta information, the other the binary chunks. The last command only showed the meta data. To view the actual content, one has to append the “-r” or “–raw” switch. The following command stores the disassembly of the ebay application in a text file called “com.ebay.mobile.java”.
./androquery result -sn DecompileClassesText -nd -r -pn com.ebay.mobile > com.ebay.mobile.java
Code Permissions¶
The CodePermissions scripts checks where the app uses which permissions and lists the locations in the code as well as the decompiled code using them. This time we don’t perform the analysis local. Instead we use the distributed system of AndroLyze signaled with the “-pm distributed switch. The default parallelization mode can be customized in the config file.
If the APKs have been imported to MongoDB or Amazon S3 one should use the “-si” switch so that only the hashes of the APKs are send.
The following command insteads serializes the APKs and includes them in the message, stored in the distributed task queue:
worker@06f5e795c279:/home/worker/androlyze$ ./androanalyze scripts_builtin/CodePermissions.py -pm distributed
INFO: appending "androguard/" to sys.path
Welcome to AndroLyze!
Using Code Size Scheduling for faster analysis!
Loaded scripts:
CodePermissions 0.1
Will serialize .apk data!
Registered workers: celery@06f5e795c279
Number of apks to analyze: 101
Task publishing progress:
Send tasks: 101, current task id: 5c9f66e7-678d-4d7e-a252-79f44938a303, queue: analyze_apk
Analysis progress:
Successful: 100, Failed: 0, Total: 100/101 (99.01 %) -- Time elapsed: 0:49:08
analysis done ...
Successful: 101, Failed: 0, Total: 101/101 (100.00 %) -- Time elapsed: 0:49:09
WARNING: Analyzed 101 apks
done
WARNING: Took 0:49:10 (h/m/s)
The result can be queried like this:
{
"apk meta": {
"package name": "com.ebay.mobile",
"version name": "2.8.2.1",
"sha256": "9e6bf1cb31f5cff3a3d8e39a16ca8c34590ad68ae840b4bb7995f185af0f0994",
"import date": "2015-06-20T20:08:07.745000",
"build_date": "2014-11-12T09:57:38",
"path": "/home/worker/androlyze/apks/02.03.2015_top_free_4/apps_topselling_free/SHOPPING/com.ebay.mobile.apk",
"tag": null
},
"script meta": {
"name": "CodePermissions",
"sha256": "9fae70af3c3ec7693a1f454d67633442da7d5173aab304b25f04be49f6459e47",
"analysis date": "2015-06-21T15:59:23.837000",
"version": "0.1"
},
"code permissions": {
"listing": {
"ACCESS_NETWORK_STATE": [
"Lcom.ebay.mobile.notifications.PushService$LogNotificationRequest.buildXmlRequest",
"Lcom.ebay.common.net.api.cal.LogMessage$LogMessageClientDetails.createLogMessageClientDetail",
"Lcom.google.android.gms.internal.ec.<init>",
"LRLSDK.a.a",
"Lcom.ebay.nautilus.kernel.net.Connector.getConnectedNetworkInfo",
"Lcom.ebay.mobile.analytics.mts.MtsAnalyticsAdapter.getNetworkType",
"Lcom.paypal.android.lib.riskcomponent.RiskComponent.getRefreshedRiskBlob",
"Lcom.google.android.gms.internal.ec.a"
],
"NFC": [
"Lcom.ebay.mobile.NfcCompat.isBeamPushEnabled"
],
},
...
"code": {
"ACCESS_NETWORK_STATE": [
{
"Lcom_ebay_mobile_analytics_mts_MtsAnalyticsAdapter_getNetworkType": [
" public static String getNetworkType(android.content.Context p3)",
" {",
" String v1;",
" android.net.NetworkInfo v0 = com.ebay.nautilus.kernel.net.Connector.getConnectedNetworkInfo(p3);",
" if (v0 != null) {",
" switch (v0.getType()) {",
" case 0:",
" v1 = \"cell\";",
" break;",
" case 1:",
" v1 = \"wifi\";",
" break;",
" case 9:",
" v1 = \"ethernet\";",
" break;",
" default:",
" v1 = \"Unknown\";",
" }",
" } else {",
" v1 = \"Unknown\";",
" }",
" return v1;",
" }"
]
},
...
}
}
Manual¶
worker@cf0c3ee3e7ca:/home/worker/androlyze$ ./androanalyze -h
INFO: appending "androguard/" to sys.path
usage: androanalyze [-h] [-idb IMPORT_DATABASE] [-rdb RESULT_DATABASE_NAME]
[-c CONFIG] [-q] [-v] [-vl VLOG] [-V] [--yes]
[--apks APKS [APKS ...] | --hashes HASHES [HASHES ...] |
--package-names PACKAGE_NAMES [PACKAGE_NAMES ...] | --tags
TAGS [TAGS ...]] [-pm {parallel,distributed,non-parallel}]
[--no-sort-code-size] [--concurrency CONCURRENCY] [-si]
[scripts [scripts ...]]
positional arguments:
scripts The scripts to use for the security audit. If nothing
given, use defaults read from
conf/script_settings.json
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
Load a custom config file [default: conf/config.conf].
-V, --version show program's version number and exit
--yes, -y Autoconfirm question(s) on the command-line interface.
database:
-idb IMPORT_DATABASE, --import-database IMPORT_DATABASE
You can supply a custom import database [default:
conf/config.conf]
-rdb RESULT_DATABASE_NAME, --result-database-name RESULT_DATABASE_NAME
You can supply a custom result database name.
[default: conf/config.conf]
logging:
-q, --quiet Be quiet and do not log anything to stdout
-v, --verbose Set verbosity [default: 3], 1 -> CRITICAL, 2 -> ERROR,
3 -> WARN, 4 -> INFO, 5 -> DEBUG
-vl VLOG, --verbose-log VLOG
Log stdout and stderr to file
filter:
--apks APKS [APKS ...]
The apk files or directories (with .apk files). Apk
files and directories can also be mixed. If non given,
use the imported apks. Will not import the apks into
the import database!
--hashes HASHES [HASHES ...]
The hash of the apk from which you want to retrieve
information. If hash(es) are supplied, given package
names will be ignored !
--package-names PACKAGE_NAMES [PACKAGE_NAMES ...]
The package names of the apks from which you want to
retrieve information.
--tags TAGS [TAGS ...]
Only show infos for apks with specified tag(s)
Parallelization parameters:
-pm {parallel,distributed,non-parallel}, --parallelization-mode {parallel,distributed,non-parallel}
Choose the parallelization mode. If none supplied,
default value from config file will be used!
--no-sort-code-size, -nscs
By default sort apks by code size (descending) ->
Analyze bigger code first. Use this switch to disable
this behavior
--concurrency CONCURRENCY
Number of workers to spawn. Only for parallel mode
-si, --send-id Send id of apk file rather than actual file. Needs
import with -cdb first!
Result evaluation¶
In the same way you can write a script you can also define how to perform queries against the result database. Have a look at the Eval class of the script template.
The class enables a direct way to the API of the MongoDB driver as well as the simplified query API from AndroLyze.
But be sure you have ran it before:
worker@ee6ff2ae704e:/home/worker/androlyze$ ./androanalyze androlyze/model/script/ScriptTemplate.py --apks apks/
INFO: appending "androguard/" to sys.path
Welcome to AndroLyze!
Loaded scripts:
ScriptTemplate 0.1
WARNING: Analyzed 1 apks
done
WARNING: Took 0:00:01 (h/m/s)
The script can be evaluated by running:
worker@ee6ff2ae704e:/home/worker/androlyze$ ./androeval androlyze/model/script/ScriptTemplate.py
INFO: appending "androguard/" to sys.path
evaluating 'ScriptTemplate' version: 0.1
{u'_id': u'5d3e57fdbea31b2f0f1fa0e30b6df866d7b25b60bda3a6ccfd77f0490fa36c12',
u'apk meta': OrderedDict([(u'package name', u'de.uni_marburg.ipcinetcallee'), (u'version name', u'1.0'), (u'sha256', u'2289f4ec4d4c753e920f7841a5f329ecc6abec3d2865b85bb9a55467cb056877'), (u'import date', None), (u'build_date', datetime.datetime(2015, 4, 21, 19, 35, 56)), (u'path', None), (u'tag', None)])}
WARNING: Took 0:00:00 (h/m/s)
The result shows the query performed in ScriptTemplate._evaluate()
directly using the mongodb driver and shows an equivalent query using AndroLyze.
Manual¶
worker@06f5e795c279:/home/worker/androlyze$ ./androeval -h
INFO: appending "androguard/" to sys.path
usage: androeval [-h] [-idb IMPORT_DATABASE] [-rdb RESULT_DATABASE_NAME]
[-c CONFIG] [-q] [-v] [-vl VLOG] [-V] [--yes]
[scripts [scripts ...]]
positional arguments:
scripts Scripts for the db analysis
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
Load a custom config file [default: conf/config.conf].
-V, --version show program's version number and exit
--yes, -y Autoconfirm question(s) on the command-line interface.
database:
-idb IMPORT_DATABASE, --import-database IMPORT_DATABASE
You can supply a custom import database [default:
conf/config.conf]
-rdb RESULT_DATABASE_NAME, --result-database-name RESULT_DATABASE_NAME
You can supply a custom result database name.
[default: conf/config.conf]
logging:
-q, --quiet Be quiet and do not log anything to stdout
-v, --verbose Set verbosity [default: 3], 1 -> CRITICAL, 2 -> ERROR,
3 -> WARN, 4 -> INFO, 5 -> DEBUG
-vl VLOG, --verbose-log VLOG
Log stdout and stderr to file
Writing A Script¶
Script requirements¶
For performance issues, you need to define which features your script needs.
The Analyzer
checks the minimum requirements to run all supplied scripts.
You can see it at the beginning of the analysis if you set the logging level to info (via the -vvvv switch).
The more features a script requires, the longer it will take.
Currently, there are 5 possible ones:
AndroScript.needs_dalvik_vm_format()
AndroScript.needs_vmanalysis()
AndroScript.needs_gvmanalysis()
AndroScript.needs_xref()
AndroScript.needs_dref()
Have a look at the links to get further information or simply test wether you need them (AndroScript.test()
).
Logging¶
AndroLyzeLab comes with a built-in logging object which is directly connected to MongoDB.
Internally the logging object is represented as an collections.OrderedDict
.
Before you can use it, you have to register the basic structure. This is intended for better comparison of the results afterwards.
If you try to log to some key that hasn’t been registered, an exception will be raised. Therefore you should test your script locally before you run it on a cluster!
During the script development you should use the the static function AndroScript.test()
to test if your script runs correctly.
There are three different keys that you can register and/or log to:
- bool: Registers a boolean key. Will be set to False by default.
- enum: Register an enumeration key. Will create a list internally which can be used to append iterative.
- normal: Will register None as default. You can log any JSON Serializable data.
Demo¶
The logging is pretty self-explenatory. So we don’t have to spend much time here. Just have a look at the logging of this very simple script and the produced output:
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
#categories
CAT_CLASS_DETAILS = "class details"
CAT_METHODS = "methods"
CAT_FIELDS = "fields"
class ShowLoggingFuncs(AndroScript):
''' Example for demonstrating available logging options and to do some query checks '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
CAT_UNLOGGED = "category1", "category2", "unlogged"
CAT_LOGGED = "category1", "category2", "logged"
res.register_keys(["normal"], *CAT_LOGGED)
res.register_keys(["normal"], *CAT_UNLOGGED)
res.register_bool_keys(["bool"], *CAT_LOGGED)
res.register_bool_keys(["bool"], *CAT_UNLOGGED)
res.register_enum_keys(["enum"], *CAT_LOGGED)
res.register_enum_keys(["enum"], *CAT_UNLOGGED)
res.log("normal", "some value", *CAT_LOGGED)
res.log_true("bool", *CAT_LOGGED)
res.log_append_to_enum("enum", "list element", *CAT_LOGGED)
There are a few things to notice. First there is a static and a dynamic part of the result. The categories “apk meta” and “script meta” are part of every result. The dynamic part is the data you log. Second it shows the result layout before and after logging values to it. The layout after registering the basic layout can be seen at (“category1”, “category2”, “unlogged”). The final result after logging some values to it can be seen at (“category1”, “category2”, “logged”).
{
"apk meta": {
"package name": "com.myfitnesspal.android",
"version name": "3.7.3",
"sha256": "4d2afc03880795a561e8eb762314d135d7a777d50daa72fafbcb64b1cbb7ae4d",
"import date": "2015-06-20T20:07:49.775000",
"build_date": "2015-02-09T07:47:10",
"path": "/home/worker/androlyze/apks/02.03.2015_top_free_4/apps_topselling_free/HEALTH_AND_FITNESS/com.myfitnesspal.android.apk",
"tag": null
},
"script meta": {
"name": "ShowLoggingFuncs",
"sha256": "2331b99382b960948d38c7ba85789ca903c02d0e42ddda7603138d413c78e889",
"analysis date": "2015-06-21T19:26:40.158000",
"version": "0.1"
},
"category1": {
"category2": {
"logged": {
"normal": "some value",
"bool": true,
"enum": [
"list element"
]
},
"unlogged": {
"normal": null,
"bool": false,
"enum": []
}
}
}
}
Note
The fact that you need to register a structure doesn’t mean you can’t log to dynamic keys. It just means you have to register the key before you try to log to it!
Using different output formats¶
You don’t have to use the built-in ResultObject
for logging.
You can also supply your custom log object and specify a custom file name extension.
Just have a look at the following example which creates a control flow graph and store’s it as .gexf file:
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
class GVMAnalysisExample(AndroScript):
''' Example that uses the `GVMAnalysis` object from `androguard` to create a graph '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
self.cres = gvm_analysis.export_to_gexf()
def custom_result_object(self):
'''
Overwrite this method, if you want to use your own result logging framework/object,
You can supply it here and access it via `self.cres`.
E.g. you could return ("", "txt") for simply logging with a string to a .txt file.
Returns
-------
tuple<object, str>
First argument is the result object you want to use,
the second is the file name extension used for storage (without a leading point)
'''
# Simply use str for logging
# The first parameter isn't needed at all,
# because we only set the result at the end of the _analyze method
return ("", "gexf")
def needs_gvmanalysis(self):
return True
Common mistakes¶
Forgetting to unpack tuple for category usage!
res.log("key", "value", ("foo", "bar"))
instead of
res.log("key", "value", *("foo", "bar"))
Script Template¶
Use the following as a template to write your custom script.
The basics steps for writing a custom scripts are:
- rename the script class (has to be the same name as the module!)
- change the
AndroScript._analyze()
method to reflect your custom analysis - define the script requirements needed (by default everything is disabled allowing only to access the basic
Apk
class)
Optional:
- use a custom logging object (e.g. to store the data to a file)
- save the results in MongoDBs gridFS if they may exceed 16MB
Note
There is a utility class for disassembling, decompiling, accessing the abstract syntrax tree etc.
Have a look at AnaUtil
This is the template:
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
# TODO: RENAME THE SCRIPT AND MODULE NAME!!
from androlyze.model.script.dblyze.DBLyze import DBLyze
from pprint import pprint
class ScriptTemplate(AndroScript):
''' Template for writing a custom `AndroScript` '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
'''
Overwrite this function in apk subclass to build your own script!
Use the `ResultObject` for logging.
Parameters
----------
apk: EAndroApk
dalvik_vm_format: DalvikVMFormat
Parsed .dex file.
Only available if `needs_dalvik_vm_format` returns True.
vm_analysis: VMAnalysis
Dex analyzer.
Only available if `needs_vmanalysis` returns True.
gvm_analysis : GVMAnalysis
'''
# TODO: CUSTOMIZE
#categories
CAT_FILES = "files"
res = self.res
res.register_keys([CAT_FILES])
# files
res.log(CAT_FILES, apk.get_files())
def custom_result_object(self):
'''
Overwrite this method, if you want to use your own result logging framework/object,
You can supply it here and access it via `self.cres`.
E.g. you could return ("", "txt") for simply logging with a string to a .txt file.
The str representation of it will be stored!
The `ResultObject` in `self.res` is still existing and internally used to log some meta information.
Returns
-------
tuple<object, str>
First argument is the result object you want to use,
the second is the file name extension used for storage (without a leading point)
'''
raise NotImplementedError
def reset(self):
'''
Reset the `AndroScript` so that it can be used for a new analysis.
If you do a custom initialization in your script,
you probably want do put the init code inside this method.
Don't forget to call the super `reset` !
'''
super(ScriptTemplate, self).reset()
############################################################
#---Script requirements
############################################################
def needs_dalvik_vm_format(self):
''' Gives access to the `DalvikVMFormat` object which is a parser for the classes.dex file '''
return False
def needs_vmanalysis(self):
''' Gives access to the `VMAnalysis` object which is a analyzer for the `DalvikVMFormat` object '''
return False
def needs_gvmanalysis(self):
''' Gives access to the `GVMAnalysis` object.
Creates a graph which you can use for export (gexf etc) or do your custom stuff
'''
return False
def needs_xref(self):
''' Create cross references '''
return False
def needs_dref(self):
''' Create data references '''
return False
############################################################
#---Options
############################################################
def create_script_stats(self):
''' If true, create some script statistics and
write them into the `ResultObject` '''
return False
def is_big_res(self):
''' Return true, if your result may exceed 16mb.
This will store your data (str() of `self.cres`) in mongodb's gridfs.
You don't need to return true, if you're using a different result object! (see :py:meth:`.custom_result_object`)
This will be done automatically.
'''
return False
class Eval(DBLyze):
# Evaluate ScripTemplate
ON_SCRIPT = ScriptTemplate
def _evaluate(self, storage):
'''
Evaluate the script results.
Parameters
----------
storage : RedundantStorage
'''
# Use either the AndroLyze query API:
# iterate over the results (one result per APK = iteration)
for ordered_dict in self.action_query_result_db():
# do something else than just printing the dictionary
#pprint(dict(ordered_dict))
pass
# Or perform a direct query on the mongodb API:
# get the mongodb singleton
mongodb = storage.result_db_storage
for ordered_dict in mongodb.get_res_coll().find({"script meta.name" : "ScriptTemplate"}, {"apk meta" : 1}):
pprint(dict(ordered_dict))
# testing code
if __name__ == '__main__':
for res in AndroScript.test(ScriptTemplate, ["../../../../testenv/apks/a2dp.Vol.apk"]):
print res
print res.write_to_json()
Script Chaining¶
Use the ChainedScript
to chain multiple AndroScript
Either derive from it, or use the chained_script()
function to generate a ChainedScript
Have a look at this example of a ChainedScript
which chains scripts like Activities
, Services
, Permissions
etc:
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script import ScriptUtil
from androlyze.model.script.ChainedScript import ChainedScript
from androlyze.model.script.impl.manifest.Files import Files
from androlyze.model.script.impl.manifest.Libs import Libs
from androlyze.model.script.impl.manifest.Permissions import Permissions
from androlyze.model.script.impl.manifest.components.Activities import Activities
from androlyze.model.script.impl.manifest.components.BroadcastReceivers import BroadcastReceivers
from androlyze.model.script.impl.manifest.components.ContentProviders import ContentProviders
from androlyze.model.script.impl.manifest.components.Intents import Intents
from androlyze.model.script.impl.manifest.components.Services import Services
from androlyze.model.script.impl.manifest.Manifest import Manifest
from androlyze.model.script.impl.manifest.components.PublicContentProviders import PublicContentProviders
class ChainedApkInfos(ChainedScript):
''' The same as the `ApkInfo` script, but build using modular scripts chained together '''
VERSION = "0.1"
def chain_scripts(self):
# use the chained_script function to do further grouping
components = ScriptUtil.chained_script([Activities(), Services(), BroadcastReceivers(),
ContentProviders(), PublicContentProviders(),
Intents()], ("components", ), name = "components")
return [components, Permissions(), Libs(), Files(), Manifest()]
def root_categories(self):
return ('apkinfo', )
def log_chained_script_meta_infos(self):
''' By default some information will be logged.
Like e.g. the scripts used, which ran successful and which failed.
'''
return False
There are 5 interesting methods you should see:
ChainedScript.log_chained_script_meta_infos()
."ChainedScript": { "scripts": [ "ChainedApkInfos", "dvm" ], "successful": [ "ChainedApkInfos" ], "failures": [ "dvm" ] } ] }
ChainedScript.log_script_failure_exception()
. Example:"ChainedScript": { "scripts": [ "ChainedApkInfos", "dvm" ], "successful": [ "ChainedApkInfos" ], "failures": [ { "dvm": [ "Traceback (most recent call last):\n", " File \"/home/nils/Dropbox/androlyze/androlyze/model/script/ChainedScript.py\", line 71, in _analyze\n script_result = ascript.analyze(apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/model/script/AndroScript.py\", line 120, in analyze\n time_s = timeit(self._analyze, *((apk, dalvik_vm_format, vm_analysis, gvm_analysis) + args), **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/util/Util.py\", line 165, in timeit\n res = func(*args, **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/model/script/ChainedScript.py\", line 71, in _analyze\n script_result = ascript.analyze(apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/model/script/AndroScript.py\", line 120, in analyze\n time_s = timeit(self._analyze, *((apk, dalvik_vm_format, vm_analysis, gvm_analysis) + args), **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/util/Util.py\", line 165, in timeit\n res = func(*args, **kwargs)\n", " File \"/home/nils/Dropbox/androlyze/androlyze/model/script/impl/Disassembly.py\", line 42, in _analyze\n ms.process()\n", " File \"/home/nils/Dropbox/androlyze/androguard/androguard/decompiler/dad/decompile.py\", line 105, in process\n register_propagation(graph, uses, defs)\n", " File \"/home/nils/Dropbox/androlyze/androguard/androguard/decompiler/dad/dataflow.py\", line 241, in register_propagation\n logger.debug(' Used vars: %s', ins.get_used_vars())\n", " File \"/home/nils/Dropbox/androlyze/androguard/androguard/decompiler/dad/instruction.py\", line 392, in get_used_vars\n lused_vars.extend(v_m[self.rhs].get_used_vars())\n", "KeyError: 0\n" ] } ] }
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
import sys
from androlyze.log.Log import log
from androlyze.model.script.AndroScript import AndroScript
from androlyze.util import Util
from androlyze.analyze.exception import AndroScriptError
CAT_ROOT = "ChainedScript"
CAT_SCRIPTS = "scripts"
CAT_SUCCESSFUL = "successful"
CAT_FAILURES = "failures"
class ChainedScript(AndroScript):
''' This script can be used to chain multiple `AndroScript`s together.
This means that all scripts will run but you only get one result file.
This allows you to split your scripts into smaller modules and combine them as you need.
This works by supplying the `AndroScript`s
which shall be chained via the `chain_scripts` method.
See Also
--------
SampleChainScript : An example how to chain several scripts
'''
def __init__(self, androscripts = None, root_categories = (), name = None,
log_chained_script_meta_infos = True, continue_on_script_failure = True,
log_script_failure_exception = False, **kwargs):
'''
Parameters
----------
androscripts : list<type<AndroScript>>, optional (default is [])
List of references to the classes of the scripts to use (uninstantiated classes)
root_categories : tuple<str>, optional (default is ())
Categories under which you want to store the results of the scripts.
Empty tuple means no category at all
name : str, optional (default is class name)
If given set the name of the created class.
log_chained_script_meta_infos : bool, optional (default is False)
Will be passed to the `ChainedScript` subclass.
Meaning no meta information will be created from it (related to the chained scripts)
continue_on_script_failure : bool, optional (default is True)
log_script_failure_exception : bool, optional (default is False)
Raises
------
AndroScriptError
If an error happened while setting the scripts.
'''
if androscripts is None:
androscripts = []
self.__androscripts = androscripts
self.__root_categories = root_categories
self.__log_chained_script_meta_infos = log_chained_script_meta_infos
self.__continue_on_script_failure = continue_on_script_failure
self.__log_script_failure_exception = log_script_failure_exception
# call after instance variables have been set up because super also calls reset()
super(ChainedScript, self).__init__()
self.name = name or self.__class__.__name__
# set scripts
self.set_androscripts(self.__androscripts)
# call after scripts have been initialized!
self.reset()
def __str__(self):
return repr(self)
def __repr__(self):
return '%s(%s)' % (self.name, self.chain_scripts())
def get_androscripts(self):
return self.__androscripts
def set_androscripts(self, value):
'''
Raises
------
AndroScriptError
If an error happened while setting the scripts.
'''
for script in value:
# script not initialized
if isinstance(script, type):
raise AndroScriptError(script, caused_by = None, additional_text = "The scripts needs to be initialized!")
self.__androscripts = value
def del_androscripts(self):
del self.__androscripts
androscripts = property(get_androscripts, set_androscripts, del_androscripts, "list<AndroScript> : List of scripts that will run")
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
''' Analyze by running all `AndroScript`s '''
# log script meta ?
log_script_meta = kwargs.get("log_script_meta", True)
# may be disabled! check!
if not self.log_chained_script_meta_infos():
log_script_meta = False
# don't log script meta infos in chained scripts inside this `ChainedScript`
kwargs["log_script_meta"] = False
if log_script_meta:
# log meta infos
self._log_chained_script_meta()
# collect results from scripts
collected_results = self.res
# run over scripts
for ascript in self.chain_scripts():
script_result = None
chained_script_name = self.try_get_chained_script_name(ascript)
try:
# analyze with script
script_result = ascript.analyze(apk, dalvik_vm_format, vm_analysis, gvm_analysis,
*args, **kwargs)
# store results under given categories
categories = self.root_categories()
if len(categories) > 0:
# run over dict and log items
for key, val in script_result.results.items():
collected_results.register_keys([key], *categories)
collected_results.log(key, val, *categories)
else:
# simply update dict
collected_results.results.update(script_result.results)
if log_script_meta:
# log successful run
collected_results.log_append_to_enum(CAT_SUCCESSFUL, chained_script_name, CAT_ROOT)
except Exception as e:
if log_script_meta:
# the value that will be logged for the script failure
failure_log_val = chained_script_name
# if exception shall be logged, create dict with name as key and exception as value
if self.log_script_failure_exception():
# exception message
exc_msg = Util.format_exception(sys.exc_info(), as_string = False)
failure_log_val = {failure_log_val : exc_msg}
# log that script encountered an error
collected_results.log_append_to_enum(CAT_FAILURES, failure_log_val, CAT_ROOT)
if not self.continue_on_script_failure():
# reraise exception if the analysis shall be stopped
# after a script encountered an error
raise
else:
log.warn('''%s: The script "%s" on apk: %s caused an error! But the other scripts will still run! Have a look at the options of `ChainedScript` for exception traceback writing!
\tError: %s''' % (self.__class__.__name__, ascript, apk.short_description(), e))
def _log_chained_script_meta(self):
''' Log all scripts that are chained through this class
and register the structure to log successful and unsuccessful scripts
'''
res = self.res
# register and log all chained scripts
res.register_keys([CAT_SCRIPTS], CAT_ROOT)
res.log(CAT_SCRIPTS, [self.try_get_chained_script_name(s) for s in self.chain_scripts()], CAT_ROOT)
# register structure for successful and failed scripts
res.register_enum_keys([CAT_SUCCESSFUL, CAT_FAILURES], CAT_ROOT)
@staticmethod
def __remove_unnecessary_values(_dict):
''' Removes chained script meta information from the dictionary `_dict` '''
try:
del _dict[CAT_ROOT]
except KeyError:
pass
@staticmethod
def is_chained_script(script):
''' Check if the `script` is a `ChainedScript` '''
return isinstance(script, ChainedScript)
@staticmethod
def try_get_chained_script_name(script):
''' If `script` is a `ChainedScript`, use the repression instead of the script name '''
return repr(script) if ChainedScript.is_chained_script(script) else script.name
def reset(self):
super(ChainedScript, self).reset()
for ascript in self.chain_scripts():
ascript.reset()
############################################################
#---ChainedScript options
# Specify the options in your subclass as needed
############################################################
def root_categories(self):
''' Return a tuple<str> under which you want to store the results of the scripts.
Empty tuple means no category at all'''
if self.__root_categories is not None:
return self.__root_categories
return ()
def chain_scripts(self):
'''
Use this method to specify which scripts shall be chained together.
Be careful to only return a reference to the class (`type`).
So do not instantiate them!
Returns
-------
androscripts : list<AndroScript>
List of scripts to use (instantiated classes)
'''
if self.__androscripts:
return self.__androscripts
raise NotImplementedError
def log_chained_script_meta_infos(self):
''' By default some information will be logged.
Like e.g. the scripts used, which ran successful and which failed.
'''
return self.__log_chained_script_meta_infos
def continue_on_script_failure(self):
''' Specify if the analysis shall continue if a script encounters an error '''
return self.__continue_on_script_failure
def log_script_failure_exception(self):
''' If true, write the exception into the result file.
Only usable if `log_chained_script_meta_infos` returns True.
'''
return self.__log_script_failure_exception
############################################################
#---Options
# Determine needed options by querying
# which options the scripts need
############################################################
def needs_dalvik_vm_format(self):
return any([s.needs_dalvik_vm_format() for s in self.chain_scripts()])
def needs_vmanalysis(self):
return any([s.needs_vmanalysis() for s in self.chain_scripts()])
def needs_gvmanalysis(self):
return any([s.needs_gvmanalysis() for s in self.chain_scripts()])
def needs_xref(self):
return any([s.needs_xref() for s in self.chain_scripts()])
def needs_dref(self):
return any([s.needs_dref() for s in self.chain_scripts()])
The heart of AndroLyze are the scripts which provide the analysis functionality based on androguard. Analysis results can be stored easily with the logging framework which is directly connected to the result database.
Scripts can be written in a very modular way and chained together to provide the final result. We call this Script Chaining.
During the script development one can test it locally to ensure it is correct before running it the first time on a cluster or in the cloud.
The following sites provide a more depth understanding how scripts work and how a new script can be written.
Scripts Demonstration¶
The following list shows the usage and functionality of each of the built-in scripts of AndroLyze.
ASTifyMethodsText¶
This is an autogenerated documentation file for the script: ASTifyMethodsText
Run it¶
$ ./androanalyze scripts_builtin/ASTifyMethodsText.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music -nd
{
"chunkSize": 261120,
"filename": "com.spotify.music_2.2.0.636_ASTifyMethodsText.json",
"length": 108420752,
"uploadDate": "2015-06-22T20:29:52.796000",
"md5": "022fd074f370ef3b088a83e48b925079",
"metadata": {
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ASTifyMethodsText",
"sha256": "81fbe5fbb8c13435bc760d67b482defc467675f05214bba3b335a6b392f2dbaa",
"analysis date": "2015-06-22T20:13:39.343000",
"version": "0.3"
}
}
}
View the raw data:
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music -nd -r
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/Window$Callback', 0)],
['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'<init>',
'(Landroid/view/Window$Callback;)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchGenericMotionEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchGenericMotionEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchGenericMotionEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchKeyEvent',
'(Landroid/view/KeyEvent;)Z'),
'dispatchKeyEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/KeyEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchKeyEvent',
'(Landroid/view/KeyEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchKeyShortcutEvent',
'(Landroid/view/KeyEvent;)Z'),
'dispatchKeyShortcutEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/KeyEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchKeyShortcutEvent',
'(Landroid/view/KeyEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchPopulateAccessibilityEvent',
'(Landroid/view/accessibility/AccessibilityEvent;)Z'),
'dispatchPopulateAccessibilityEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName',
('android/view/accessibility/AccessibilityEvent', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchPopulateAccessibilityEvent',
'(Landroid/view/accessibility/AccessibilityEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchTouchEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchTouchEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchTouchEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchTrackballEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchTrackballEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchTrackballEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onActionModeFinished',
'(Landroid/view/ActionMode;)V'),
'onActionModeFinished',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onActionModeFinished',
'(Landroid/view/ActionMode;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onActionModeStarted',
'(Landroid/view/ActionMode;)V'),
'onActionModeStarted',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onActionModeStarted',
'(Landroid/view/ActionMode;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onAttachedToWindow', '()V'),
'onAttachedToWindow',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onAttachedToWindow',
'()V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onContentChanged', '()V'),
'onContentChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d', 'onContentChanged', '()V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onCreatePanelMenu',
'(ILandroid/view/Menu;)Z'),
'onCreatePanelMenu',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onCreatePanelMenu',
'(ILandroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onCreatePanelView',
'(I)Landroid/view/View;'),
'onCreatePanelView',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('android/view/View', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onCreatePanelView',
'(I)Landroid/view/View;')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onDetachedFromWindow',
'()V'),
'onDetachedFromWindow',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onDetachedFromWindow',
'()V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onMenuItemSelected',
'(ILandroid/view/MenuItem;)Z'),
'onMenuItemSelected',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/MenuItem', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onMenuItemSelected',
'(ILandroid/view/MenuItem;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onMenuOpened',
'(ILandroid/view/Menu;)Z'),
'onMenuOpened',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onMenuOpened',
'(ILandroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onPanelClosed',
'(ILandroid/view/Menu;)V'),
'onPanelClosed',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onPanelClosed',
'(ILandroid/view/Menu;)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onPreparePanel',
'(ILandroid/view/View;Landroid/view/Menu;)Z'),
'onPreparePanel',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3'],
['Local', 'p4']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/View', 0)], ['Local', 'p3']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p4']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onPreparePanel',
'(ILandroid/view/View;Landroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onSearchRequested', '()Z'),
'onSearchRequested',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onSearchRequested',
'()Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowAttributesChanged',
'(Landroid/view/WindowManager$LayoutParams;)V'),
'onWindowAttributesChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/WindowManager$LayoutParams', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowAttributesChanged',
'(Landroid/view/WindowManager$LayoutParams;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowFocusChanged',
'(Z)V'),
'onWindowFocusChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.boolean', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowFocusChanged',
'(Z)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowStartingActionMode',
'(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;'),
'onWindowStartingActionMode',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode$Callback', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('android/view/ActionMode', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowStartingActionMode',
'(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('com/a/a/a/a', 0)], ['Local', 'v0_3']]],
['IfStatement',
None,
['BinaryInfix',
'!=',
['Local', 'p2'],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/IBinder',
'queryLocalInterface',
'(Ljava/lang/String;)Landroid/os/IInterface;'),
'queryLocalInterface',
True,
[['Local', 'p2'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]],
[['TypeName', ('com/a/a/a/a', 0)], ['Local', 'v0_1']]],
['IfStatement',
None,
['BinaryInfix',
'||',
['Parenthesis',
[['BinaryInfix',
'==',
['Local', 'v0_1'],
['Literal', 'null', ('.null', 0)]]]],
['Parenthesis',
[['UnaryPrefix',
'!',
['Parenthesis',
[['BinaryInfix',
'instanceof',
['Local', 'v0_1'],
['TypeName', ('com/a/a/a/a', 0)]]]]]]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['ClassInstanceCreation',
[['Local', 'p2']],
['TypeName', ('com/a/a/a/c', 0)]]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('com/a/a/a/a', 0)],
['Local', 'v0_1']]]]]]]]]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'static'],
'params': [[['TypeName', ('android/os/IBinder', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('com/a/a/a/a', 0)],
'triple': ('com/a/a/a/b', 'a', '(Landroid/os/IBinder;)Lcom/a/a/a/a;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_1']]],
['SwitchStatement',
None,
['Local', 'p9'],
[([1],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;)I'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_19']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'], ['Local', 'v0_19']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([2],
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_13']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v1_3']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v2_3']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v3_2']]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_13'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_13'],
['Parenthesis',
[['Cast',
[['TypeName',
('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'p10']]]]]]]]]]]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['Local', 'v1_3'],
['Local', 'v2_3'],
['Local', 'v3_2'],
['Local', 'v0_13']]],
[['TypeName', ('.int', 0)], ['Local', 'v0_16']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_16'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_16'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([3],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_10']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_10'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_10'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([4],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_7']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_7'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_7'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([5],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'b',
'(ILjava/lang/String;Ljava/lang/String;)I'),
'b',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_4']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'], ['Local', 'v0_4']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([1598968902],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'p11'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([None],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'],
['MethodInvocation',
('android/os/Binder',
'onTransact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'onTransact',
True,
[['Local', 'super'],
['Local', 'p9'],
['Local', 'p10'],
['Local', 'p11'],
['Local', 'p12']]]]]]]])]],
['ReturnStatement', ['Local', 'v0_1']]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p9']],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'p10']],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'p11']],
[['TypeName', ('.int', 0)], ['Local', 'p12']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/a/a/a/b',
'onTransact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [[['TypeName', ('android/os/IBinder', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/a/a/a/c', '<init>', '(Landroid/os/IBinder;)V')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '1', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
[['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_2']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_2']]]],
[([['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_3']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_3']]]])]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']]],
'ret': ['TypeName', ('.int', 0)],
'triple': ('com/a/a/a/c', 'a', '(ILjava/lang/String;Ljava/lang/String;)I')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_9']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_9']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'p9'],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'p9'],
['Local', 'v1'],
['Literal', '0', ('.int', 0)]]]]]]]],
['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_6']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '2', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_6'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_6'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_6']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('android/os/Bundle', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_3']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p9']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '4', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_6']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_6']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_3']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p9']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p10']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '3', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_6']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_6']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p9']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p10']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [],
'ret': ['TypeName', ('android/os/IBinder', 0)],
'triple': ('com/a/a/a/c', 'asBinder', '()Landroid/os/IBinder;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '5', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
[['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_2']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_2']]]],
[([['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_3']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_3']]]])]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']]],
'ret': ['TypeName', ('.int', 0)],
'triple': ('com/a/a/a/c', 'b', '(ILjava/lang/String;Ljava/lang/String;)I')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$1', '<init>', '(Lcom/b/a/a;)V')}
{'body': ['BlockStatement',
None,
[['TryStatement',
None,
['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'!=',
['MethodInvocation',
('com/b/a/a', 'a', '(Lcom/b/a/a;)Ljava/io/Writer;'),
'a',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'b', '(Lcom/b/a/a;)V'),
'b',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]],
['IfStatement',
None,
['MethodInvocation',
('com/b/a/a', 'c', '(Lcom/b/a/a;)Z'),
'c',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'd', '(Lcom/b/a/a;)V'),
'd',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]],
['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'e', '(Lcom/b/a/a;)I'),
'e',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]]]]]]]],
['BlockStatement', None, []]]]]],
[([['TypeName', ('com/b/a/a', 0)], ['Local', 'v0_7']],
['BlockStatement',
None,
[['ThrowStatement', ['Local', 'v0_7']]]])]],
['ReturnStatement', ['Literal', '0', ('.int', 0)]]]],
'comments': [],
'flags': ['private'],
'params': [],
'ret': ['TypeName', ('java/lang/Void', 0)],
'triple': ('com/b/a/a$1', 'a', '()Ljava/lang/Void;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('com/b/a/a$1', 'a', '()Ljava/lang/Void;'),
'a',
True,
[['Local', 'this']]]]]],
'comments': [],
'flags': ['public', 'final', 'synthetic'],
'params': [],
'ret': ['TypeName', ('java/lang/Object', 0)],
'triple': ('com/b/a/a$1', 'call', '()Ljava/lang/Object;')}
{'body': ['BlockStatement', None, [['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$2', '<init>', '()V')}
{'body': ['BlockStatement', None, [['ReturnStatement', None]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$2', 'write', '(I)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'a', 'Ljava/util/regex/Pattern;'),
['TypeName', ('com/b/a/a', 0)]],
['MethodInvocation',
('java/util/regex/Pattern',
'compile',
'(Ljava/lang/String;)Ljava/util/regex/Pattern;'),
'compile',
True,
[['TypeName', ('java/util/regex/Pattern', 0)],
['Literal',
u'"[a-z0-9_-]{1,64}"',
('java/lang/String', 0)]]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'p', 'Ljava/io/OutputStream;'),
['TypeName', ('com/b/a/a', 0)]],
['ClassInstanceCreation',
[],
['TypeName', ('com/b/a/a$2', 0)]]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['static'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', '<clinit>', '()V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'j', 'J'), ['Local', 'this']],
['Literal', '0L', ('.long', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'l', 'Ljava/util/LinkedHashMap;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Literal', '0', ('.int', 0)],
['Literal', '1061158912', ('.int', 0)],
['Literal', '1', ('.int', 0)]],
['TypeName', ('java/util/LinkedHashMap', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'n', 'J'), ['Local', 'this']],
['Literal', '0L', ('.long', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'b',
'Ljava/util/concurrent/ThreadPoolExecutor;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Literal', '0', ('.int', 0)],
['Literal', '1', ('.int', 0)],
['Literal', '60L', ('.long', 0)],
['FieldAccess',
('java/util/concurrent/TimeUnit',
'SECONDS',
'Ljava/util/concurrent/TimeUnit;'),
['TypeName', ('java/util/concurrent/TimeUnit', 0)]],
['ClassInstanceCreation',
[],
['TypeName',
('java/util/concurrent/LinkedBlockingQueue', 0)]]],
['TypeName',
('java/util/concurrent/ThreadPoolExecutor', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'o', 'Ljava/util/concurrent/Callable;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'this']],
['TypeName', ('com/b/a/a$1', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'c', 'Ljava/io/File;'),
['Local', 'this']],
['Local', 'p9']]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'g', 'I'), ['Local', 'this']],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'd', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'e', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal.tmp"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'f', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal.bkp"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'i', 'I'), ['Local', 'this']],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'h', 'J'), ['Local', 'this']],
['Literal', '10485760L', ('.long', 0)]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['private'],
'params': [[['TypeName', ('java/io/File', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', '<init>', '(Ljava/io/File;)V')}
{'body': ['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'>',
['Literal', '10485760L', ('.long', 0)],
['Literal', '0L', ('.long', 0)]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6'],
['Literal',
u'"journal.bkp"',
('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]],
[['TypeName', ('.void', 0)], ['Local', 'v0_3']]],
['IfStatement',
None,
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['Local', 'v0_3']]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6'],
['Literal',
u'"journal"',
('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v1_3']]],
['IfStatement',
None,
['UnaryPrefix',
'!',
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['Local', 'v1_3']]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a',
'a',
'(Ljava/io/File;Ljava/io/File;Z)V'),
'a',
True,
[['TypeName', ('com/b/a/a', 0)],
['Local', 'v0_3'],
['Local', 'v1_3'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/File', 'delete', '()Z'),
'delete',
True,
[['Local', 'v0_3']]]]]]]]]]]],
['LocalDeclarationStatement',
None,
[['TypeName', ('.void', 0)], ['Local', 'v0_7']]],
['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6']],
['TypeName', ('com/b/a/a', 0)]],
[['TypeName', ('.void', 0)], ['Local', 'v0_5']]],
['IfStatement',
None,
['UnaryPrefix',
'!',
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['FieldAccess',
('com/b/a/a', 'd', 'Ljava/io/File;'),
['Local', 'v0_5']]]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/File', 'mkdirs', '()Z'),
'mkdirs',
True,
[['Local', 'p6']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_7'],
['MethodInvocation',
('com/b/a/a', 'e', '()V'),
'e',
True,
[['ClassInstanceCreation',
[['Local', 'p6']],
['TypeName', ('com/b/a/a', 0)]]]]]]]]],
['BlockStatement',
None,
[['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_7'],
['MethodInvocation',
('com/b/a/a', 'd', '()V'),
'd',
True,
[['MethodInvocation',
('com/b/a/a', 'c', '()V'),
'c',
True,
[['Local', 'v0_5']]]]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'k',
'Ljava/io/Writer;'),
['Local', 'v0_7']],
['ClassInstanceCreation',
[['ClassInstanceCreation',
[['ClassInstanceCreation',
[['FieldAccess',
('com/b/a/a',
'd',
'Ljava/io/File;'),
['Local', 'v0_7']],
['Literal',
'1',
('.int', 0)]],
['TypeName',
('java/io/FileOutputStream',
0)]],
['FieldAccess',
('com/b/a/g',
'a',
'Ljava/nio/charset/Charset;'),
['TypeName',
('com/b/a/g', 0)]]],
['TypeName',
('java/io/OutputStreamWriter',
0)]]],
['TypeName',
('java/io/BufferedWriter', 0)]]]]]]],
[([['TypeName', ('java/lang/String', 0)],
['Local', 'v1_8']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/PrintStream',
'println',
'(Ljava/lang/String;)V'),
'println',
True,
[['FieldAccess',
('java/lang/System',
'out',
'Ljava/io/PrintStream;'),
['TypeName',
('java/lang/System', 0)]],
['MethodInvocation',
('java/lang/StringBuilder',
'toString',
'()Ljava/lang/String;'),
'toString',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/Object;)Ljava/lang/StringBuilder;'),
'append',
True,
[['ClassInstanceCreation',
[['Literal',
u'"DiskLruCache "',
('java/lang/String',
0)]],
['TypeName',
('java/lang/StringBuilder',
0)]],
['Local',
'p6']]],
['Literal',
u'" is corrupt: "',
('java/lang/String',
0)]]],
['MethodInvocation',
('java/io/IOException',
'getMessage',
'()Ljava/lang/String;'),
'getMessage',
True,
[['Local', 'v1_8']]]]],
['Literal',
u'", removing"',
('java/lang/String', 0)]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'i', '()V'),
'i',
True,
[['Local', 'v0_7']]]]]])]]]]]],
['ReturnStatement', ['Local', 'v0_7']]]],
['BlockStatement',
None,
[['ThrowStatement',
['ClassInstanceCreation',
[['Literal',
u'"maxSize <= 0"',
('java/lang/String', 0)]],
['TypeName',
('java/lang/IllegalArgumentException', 0)]]]]]]]]],
'comments': [],
'flags': ['public', 'static'],
'params': [[['TypeName', ('java/io/File', 0)], ['Local', 'p6']]],
'ret': ['TypeName', ('com/b/a/a', 0)],
'triple': ('com/b/a/a', 'a', '(Ljava/io/File;)Lcom/b/a/a;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['FieldAccess',
('com/b/a/a', 'k', 'Ljava/io/Writer;'),
['Local', 'p1']]]]],
'comments': [],
'flags': ['static', 'synthetic'],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('java/io/Writer', 0)],
'triple': ('com/b/a/a', 'a', '(Lcom/b/a/a;)Ljava/io/Writer;')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'a', '(Lcom/b/a/b;Z)V'),
'a',
True,
[['Local', 'p0'], ['Local', 'p1'], ['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['static', 'synthetic'],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p0']],
[['TypeName', ('com/b/a/b', 0)], ['Local', 'p1']],
[['TypeName', ('.boolean', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', 'a', '(Lcom/b/a/a;Lcom/b/a/b;Z)V')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['Literal', '0', ('.int', 0)],
[['TypeName', ('java/util/concurrent/ThreadPoolExecutor', 0)],
['Local', 'v0_0']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
['FieldAccess',
('com/b/a/b', 'a', 'Lcom/b/a/d;'),
['Local', 'p11']],
[['TypeName', ('java/lang/StringBuilder', 0)],
['Local', 'v2_0']]]]],
[([['TypeName',
('java/util/concurrent/ThreadPoolExecutor', 0)],
['Local', 'v0_20']],
['BlockStatement',
None,
[['ThrowStatement', ['Local', 'v0_20']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['FieldAccess',
('com/b/a/d', 'd', 'Lcom/b/a/b;'),
['Local', 'v2_0']],
['Local', 'p11']],
[['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'||',
['Parenthesis',
[['UnaryPrefix', '!', ['Local', 'p12']]]],
['Parenthesis',
[['FieldAccess',
('com/b/a/d', 'c', 'Z'),
['Local', 'v2_0']]]]],
[['BlockStatement',
None,
[['WhileStatement',
None,
['BinaryInfix',
'<',
['Local', 'v0_0'],
['FieldAccess',
('com/b/a/a', 'i', 'I'),
['Local', 'this']]],
['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('com/b/a/d', 'b', '(I)Ljava/io/File;'),
'b',
True,
[['Local', 'v2_0'], ['Local', 'v0_0']]],
[['TypeName', ('.int', 0)],
['Local', 'v1_17']]],
['IfStatement',
None,
['UnaryPrefix', '!', ['Local', 'p12']],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a',
'b',
'(Ljava/io/File;)V'),
'b',
True,
[['TypeName',
('com/b/a/a', 0)],
['Local', 'v1_17']]]]]],
['BlockStatement',
None,
[['IfStatement',
None,
['MethodInvocation',
('java/io/File',
'exists',
'()Z'),
'exists',
True,
[['Local', 'v1_17']]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('com/b/a/d',
'a',
'(I)Ljava/io/File;'),
'a',
True,
[['Local', 'v2_0'],
['Local', 'v0_0']]],
[['TypeName',
('.boolean', 0)],
['Local', 'v3_7']]],
['ExpressionStatement',
['MethodInvocation',
('java/io/File',
'renameTo',
'(Ljava/io/File;)Z'),
'renameTo',
True,
[['Local', 'v1_17'],
['Local', 'v3_7']]]],
['LocalDeclarationStatement',
['ArrayAccess',
[['FieldAccess',
('com/b/a/d',
'b',
'[J'),
['Local', 'v2_0']],
['Local', 'v0_0']]],
[['TypeName',
('.long', 0)],
['Local', 'v4_2']]],
['LocalDeclarationStatement',
['MethodInvocation',
('java/io/File',
'length',
'()J'),
'length',
True,
[['Local', 'v3_7']]],
[['TypeName',
('.long', 0)],
['Local', 'v6']]],
['ExpressionStatement',
['Assignment',
[['ArrayAccess',
[['FieldAccess',
('com/b/a/d',
'b',
'[J'),
['Local',
'v2_0']],
['Local', 'v0_0']]],
['Local', 'v6']]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'j',
'J'),
['Local', 'this']],
['Parenthesis',
[['BinaryInfix',
'+',
['Parenthesis',
[['BinaryInfix',
'-',
['FieldAccess',
('com/b/a/a',
'j',
'J'),
['Local',
'this']],
['Local',
'v4_2']]]],
['Local', 'v6']]]]]]]]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_0'],
['Parenthesis',
[['BinaryInfix',
'+',
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from pprint import pformat
from androlyze.log.Log import log
from androlyze.model.script.AndroScript import AndroScript
from androlyze.model.script.util import AnaUtil
class ASTifyMethodsText(AndroScript):
''' Get the AST (abstract syntax tree) for each method. '''
VERSION = "0.3"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
# CFG
for encoded_method in dalvik_vm_format.get_methods():
try:
method_analysis = vm_analysis.get_method(encoded_method)
if encoded_method.get_code() == None:
continue
classname = encoded_method.get_class_name()
# skip android classes due to mongo db document limit
if classname.find("Landroid") != -1:
continue
ast = None
if method_analysis is not None:
ast = AnaUtil.ast_for_method_analysis(method_analysis)
if ast is not None:
self.cres += '%s\n\n' % pformat(ast)
except Exception as e:
log.exception(e)
def custom_result_object(self):
return ("", "json")
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
Activities¶
This is an autogenerated documentation file for the script: Activities
Run it¶
$ ./androanalyze scripts_builtin/Activities.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Activities -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Activities",
"sha256": "a9afd17bdb69d1d426c80e2734072625028c4a246e3b7f087fd1c751c453a50d",
"analysis date": "2015-06-22T20:22:51.226000",
"version": "0.1"
},
"activities": {
"all": [
"android.support.v7.widget.TestActivity",
"com.facebook.LoginActivity",
"com.google.android.gms.ads.AdActivity",
"com.mixpanel.android.surveys.SurveyActivity",
"com.sony.snei.np.android.account.oauth.BrowserRedirectReceiverActivity",
"com.spotify.mobile.android.arsenal.ArsenalSSOBrowserActivity",
"com.spotify.mobile.android.service.LoginActivity",
"com.spotify.mobile.android.service.ResetPasswordActivity",
"com.spotify.mobile.android.service.TermsOfServiceChangedActivity",
"com.spotify.mobile.android.spotlets.ads.BannerAdActivity",
"com.spotify.mobile.android.spotlets.openaccess.OpenAccessActivity",
"com.spotify.mobile.android.spotlets.share.ConnectFacebookActivity",
"com.spotify.mobile.android.spotlets.share.PostActivity",
"com.spotify.mobile.android.spotlets.suggestedtweet.SuggestedTweetActivity",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoPlayerActivity",
"com.spotify.mobile.android.ui.activity.AddToPlaylistActivity",
"com.spotify.mobile.android.ui.activity.AnnotateDiscardChangesActivity",
"com.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity",
"com.spotify.mobile.android.ui.activity.AppRaterActivity",
"com.spotify.mobile.android.ui.activity.ConfirmDeletionActivity",
"com.spotify.mobile.android.ui.activity.ConnectOnboardingActivity",
"com.spotify.mobile.android.ui.activity.CoverImageActivity",
"com.spotify.mobile.android.ui.activity.CreateRenamePlaylistActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsConfirmationActivity",
"com.spotify.mobile.android.ui.activity.DeletingCacheDialogActivity",
"com.spotify.mobile.android.ui.activity.DeviceActivity",
"com.spotify.mobile.android.ui.activity.DisableOfflineModeActivity",
"com.spotify.mobile.android.ui.activity.DiskAlmostFullActivity",
"com.spotify.mobile.android.ui.activity.FacebookPlaceholderActivity",
"com.spotify.mobile.android.ui.activity.FacebookWebPermissionsActivity",
"com.spotify.mobile.android.ui.activity.LastFmLoginDialog",
"com.spotify.mobile.android.ui.activity.LockScreenActivity",
"com.spotify.mobile.android.ui.activity.NotificationWebViewActivity",
"com.spotify.mobile.android.ui.activity.OfflineSyncErrorActivity",
"com.spotify.mobile.android.ui.activity.PermissionsActivity",
"com.spotify.mobile.android.ui.activity.PlayHistoryActivity",
"com.spotify.mobile.android.ui.activity.PlayQueueActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiMftGroup3NoMoreTimeActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiOnlyActivity",
"com.spotify.mobile.android.ui.activity.PlayerActivity",
"com.spotify.mobile.android.ui.activity.RemotePlaybackActivity",
"com.spotify.mobile.android.ui.activity.ShareActivity",
"com.spotify.mobile.android.ui.activity.ShareToSpotifyActivity",
"com.spotify.mobile.android.ui.activity.ShowcaseActivity",
"com.spotify.mobile.android.ui.activity.SoundEffectsWarningActivity",
"com.spotify.mobile.android.ui.activity.TosTextActivity",
"com.spotify.mobile.android.ui.activity.UninstallOldAppActivity",
"com.spotify.mobile.android.ui.activity.UpdateActivity",
"com.spotify.mobile.android.ui.activity.VolumeWidgetActivity",
"com.spotify.mobile.android.ui.activity.dialog.HolidayOfferUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.PremiumUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialReminderActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialStartedActivity",
"com.spotify.mobile.android.ui.activity.upsell.MarketingOptInActivity",
"com.spotify.mobile.android.ui.activity.upsell.PremiumSignupActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellDialogActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellPremiumOnlyActivity",
"com.spotify.mobile.android.util.FragmentTesterActivity",
"com.spotify.mobile.android.util.ViewTesterActivity",
"com.spotify.music.MainActivity",
"com.spotify.music.spotlets.networkoperatorpremiumactivation.PremiumActivationOptInDialog"
],
"main activity": "com.spotify.music.MainActivity"
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Activities -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Activities -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
#categories
CAT_ACTIVITIES = "activities"
CAT_ACTIVITIES_MAIN = "main activity"
CAT_ACTIVITIES_LISTING = "all"
class Activities(AndroScript):
''' List activities '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
# register basic structure
res.register_keys([CAT_ACTIVITIES_LISTING, CAT_ACTIVITIES_MAIN], CAT_ACTIVITIES)
# activities
res.log(CAT_ACTIVITIES_LISTING, sorted(apk.get_activities()), CAT_ACTIVITIES)
res.log(CAT_ACTIVITIES_MAIN, apk.get_main_activity(), CAT_ACTIVITIES)
ApkInfo¶
This is an autogenerated documentation file for the script: ApkInfo
Run it¶
$ ./androanalyze scripts_builtin/ApkInfo.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ApkInfo -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ApkInfo",
"sha256": "0f37eeab432719d25a974868ac3a6b10272e036b26ab2170630c32cf1175b89e",
"analysis date": "2015-06-22T20:22:51.227000",
"version": "0.1"
},
"apkinfo": {
"components": {
"activities": {
"all": [
"android.support.v7.widget.TestActivity",
"com.facebook.LoginActivity",
"com.google.android.gms.ads.AdActivity",
"com.mixpanel.android.surveys.SurveyActivity",
"com.sony.snei.np.android.account.oauth.BrowserRedirectReceiverActivity",
"com.spotify.mobile.android.arsenal.ArsenalSSOBrowserActivity",
"com.spotify.mobile.android.service.LoginActivity",
"com.spotify.mobile.android.service.ResetPasswordActivity",
"com.spotify.mobile.android.service.TermsOfServiceChangedActivity",
"com.spotify.mobile.android.spotlets.ads.BannerAdActivity",
"com.spotify.mobile.android.spotlets.openaccess.OpenAccessActivity",
"com.spotify.mobile.android.spotlets.share.ConnectFacebookActivity",
"com.spotify.mobile.android.spotlets.share.PostActivity",
"com.spotify.mobile.android.spotlets.suggestedtweet.SuggestedTweetActivity",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoPlayerActivity",
"com.spotify.mobile.android.ui.activity.AddToPlaylistActivity",
"com.spotify.mobile.android.ui.activity.AnnotateDiscardChangesActivity",
"com.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity",
"com.spotify.mobile.android.ui.activity.AppRaterActivity",
"com.spotify.mobile.android.ui.activity.ConfirmDeletionActivity",
"com.spotify.mobile.android.ui.activity.ConnectOnboardingActivity",
"com.spotify.mobile.android.ui.activity.CoverImageActivity",
"com.spotify.mobile.android.ui.activity.CreateRenamePlaylistActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsConfirmationActivity",
"com.spotify.mobile.android.ui.activity.DeletingCacheDialogActivity",
"com.spotify.mobile.android.ui.activity.DeviceActivity",
"com.spotify.mobile.android.ui.activity.DisableOfflineModeActivity",
"com.spotify.mobile.android.ui.activity.DiskAlmostFullActivity",
"com.spotify.mobile.android.ui.activity.FacebookPlaceholderActivity",
"com.spotify.mobile.android.ui.activity.FacebookWebPermissionsActivity",
"com.spotify.mobile.android.ui.activity.LastFmLoginDialog",
"com.spotify.mobile.android.ui.activity.LockScreenActivity",
"com.spotify.mobile.android.ui.activity.NotificationWebViewActivity",
"com.spotify.mobile.android.ui.activity.OfflineSyncErrorActivity",
"com.spotify.mobile.android.ui.activity.PermissionsActivity",
"com.spotify.mobile.android.ui.activity.PlayHistoryActivity",
"com.spotify.mobile.android.ui.activity.PlayQueueActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiMftGroup3NoMoreTimeActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiOnlyActivity",
"com.spotify.mobile.android.ui.activity.PlayerActivity",
"com.spotify.mobile.android.ui.activity.RemotePlaybackActivity",
"com.spotify.mobile.android.ui.activity.ShareActivity",
"com.spotify.mobile.android.ui.activity.ShareToSpotifyActivity",
"com.spotify.mobile.android.ui.activity.ShowcaseActivity",
"com.spotify.mobile.android.ui.activity.SoundEffectsWarningActivity",
"com.spotify.mobile.android.ui.activity.TosTextActivity",
"com.spotify.mobile.android.ui.activity.UninstallOldAppActivity",
"com.spotify.mobile.android.ui.activity.UpdateActivity",
"com.spotify.mobile.android.ui.activity.VolumeWidgetActivity",
"com.spotify.mobile.android.ui.activity.dialog.HolidayOfferUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.PremiumUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialReminderActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialStartedActivity",
"com.spotify.mobile.android.ui.activity.upsell.MarketingOptInActivity",
"com.spotify.mobile.android.ui.activity.upsell.PremiumSignupActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellDialogActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellPremiumOnlyActivity",
"com.spotify.mobile.android.util.FragmentTesterActivity",
"com.spotify.mobile.android.util.ViewTesterActivity",
"com.spotify.music.MainActivity",
"com.spotify.music.spotlets.networkoperatorpremiumactivation.PremiumActivationOptInDialog"
],
"main activity": "com.spotify.music.MainActivity"
},
"services": [
"com.spotify.mobile.android.service.SpotifyService",
"com.spotify.mobile.android.video.VideoService",
"com.spotify.mobile.android.service.MetadataManagerProxy",
"com.spotify.mobile.android.service.ConnectManagerProxy",
"com.spotify.mobile.android.service.SessionManagerProxy",
"com.spotify.mobile.android.service.RemoteNativeRouterProxy",
"com.spotify.mobile.android.service.MonitorService",
"com.spotify.mobile.android.util.tracking.TrackingService",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerIntentService",
"com.spotify.mobile.android.service.DeviceIdentifierLoggerIntentService",
"com.spotify.music.internal.service.DeleteCacheService",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoService",
"com.spotify.music.internal.service.DeleteOldCacheLocationsService",
"com.spotify.mobile.android.spotlets.collection.service.AnnotateService",
"com.spotify.mobile.android.spotlets.collection.service.RecentlyPlayedService",
"com.spotify.mobile.android.spotlets.collection.cosmos.service.CollectionService",
"com.spotify.mobile.android.spotlets.offline.service.OfflineService",
"com.spotify.mobile.android.spotlets.podcast.service.PlayedStateService",
"com.spotify.mobile.android.spotlets.ads.VideoAdService",
"com.spotify.mobile.android.service.VideoPlayerManagerProxy",
"com.spotify.music.spotlets.situationalcontent.loggers.activityrecognition.ActivityRecognitionIntentService",
"com.spotify.music.spotlets.radio.service.RadioActionsService",
"com.spotify.mobile.android.service.player.PlayerStateService",
"com.spotify.mobile.android.service.session.SessionStateService",
"com.spotify.mobile.android.service.media.MediaService",
"com.spotify.mobile.android.applink.service.AppLinkService",
"com.spotify.mobile.android.service.feature.FeatureService",
"com.spotify.mobile.android.androidauto.SpotifyMediaBrowserService"
],
"broadcast receivers": [
"com.spotify.music.internal.receiver.MediaButtonReceiver",
"com.spotify.music.spotlets.optintrial.TrialAlarmBroadcastReceiver",
"com.spotify.music.spotlets.widget.SpotifyWidget",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerReceiver",
"com.spotify.music.spotlets.gcm.GcmBroadcastReceiver",
"com.spotify.mobile.android.applink.AppLinkBluetoothManager",
"com.spotify.music.internal.receiver.LoggerReceiver",
"com.spotify.mobile.android.spotlets.collection.receiver.ConnectionStateChangedReceiver",
"com.mixpanel.android.mpmetrics.InstallReferrerReceiver"
],
"content providers": [
"com.spotify.music.internal.provider.SpotifyProvider",
"com.spotify.music.internal.provider.LoggerProvider",
"com.spotify.mobile.android.util.prefs.PrefsProvider",
"com.spotify.mobile.android.service.media.provider.MediaProvider"
],
"intents": {
"services": {
"com_spotify_mobile_android_androidauto_SpotifyMediaBrowserService": {
"action": [
"android.media.browse.MediaBrowserService"
]
},
"com_spotify_mobile_android_service_RemoteNativeRouterProxy": {
"action": [
"com.spotify.mobile.service.action.COSMOS_PROXY"
]
}
},
"activities": {
"com_spotify_mobile_android_ui_activity_TosTextActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_sony_snei_np_android_account_oauth_BrowserRedirectReceiverActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_music_MainActivity": {
"action": [
"android.intent.action.MAIN",
"android.intent.action.MUSIC_PLAYER",
"android.nfc.action.NDEF_DISCOVERED",
"android.intent.action.SEARCH",
"android.intent.action.VIEW",
"com.facebook.application.174829003346",
"android.media.action.MEDIA_PLAY_FROM_SEARCH",
"com.sonymobile.media.dashboard.ACTION_VIEW_MUSIC_TILE"
],
"category": [
"android.intent.category.LAUNCHER",
"android.intent.category.DEFAULT",
"android.intent.category.APP_MUSIC",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_mobile_android_service_LoginActivity": {
"action": [
"com.spotify.mobile.android.service.action.session.LOGIN"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_arsenal_ArsenalSSOBrowserActivity": {
"action": [
"com.spotify.music.NPAM_ACTION_BROWSER"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.LAUNCHER"
]
}
},
"content providers": {},
"broadcast receivers": {
"com_mixpanel_android_mpmetrics_InstallReferrerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
},
"com_spotify_music_spotlets_optintrial_TrialAlarmBroadcastReceiver": {
"action": [
"com.spotify.music.spotlets.optintrial.action.TRIAL_REMINDER"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_spotlets_collection_receiver_ConnectionStateChangedReceiver": {
"action": [
"com.spotify.mobile.android.service.broadcast.session.CONNECTION_STATE_CHANGED"
]
},
"com_spotify_music_spotlets_widget_SpotifyWidget": {
"action": [
"android.appwidget.action.APPWIDGET_UPDATE",
"com.spotify.mobile.android.ui.widget.PREVIOUS",
"com.spotify.mobile.android.ui.widget.PLAY",
"com.spotify.mobile.android.ui.widget.NEXT"
]
},
"com_spotify_music_internal_receiver_LoggerReceiver": {
"action": [
"com.spotify.music.internal.receiver.CACHE_LOG"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_music_internal_receiver_MediaButtonReceiver": {
"action": [
"android.intent.action.MEDIA_BUTTON"
]
},
"com_spotify_mobile_android_applink_AppLinkBluetoothManager": {
"action": [
"android.bluetooth.adapter.action.STATE_CHANGED",
"android.bluetooth.device.action.ACL_CONNECTED",
"android.bluetooth.device.action.ACL_DISCONNECTED"
]
},
"com_spotify_music_spotlets_gcm_GcmBroadcastReceiver": {
"action": [
"com.google.android.c2dm.intent.RECEIVE"
],
"category": [
"com.spotify.music"
]
},
"com_spotify_music_spotlets_mobileapptracker_MobileAppTrackerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
}
}
}
},
"permissions": [
"android.permission.ACCESS_NETWORK_STATE",
"android.permission.ACCESS_WIFI_STATE",
"android.permission.BLUETOOTH",
"android.permission.BLUETOOTH_ADMIN",
"android.permission.BROADCAST_STICKY",
"android.permission.GET_ACCOUNTS",
"android.permission.INTERNET",
"android.permission.MANAGE_ACCOUNTS",
"android.permission.MODIFY_AUDIO_SETTINGS",
"android.permission.NFC",
"android.permission.READ_PHONE_STATE",
"android.permission.USE_CREDENTIALS",
"android.permission.WAKE_LOCK",
"android.permission.WRITE_EXTERNAL_STORAGE",
"com.android.vending.BILLING",
"com.google.android.c2dm.permission.RECEIVE",
"com.sony.snei.np.android.account.provider.permission.DUID_READ_PROVIDER",
"com.spotify.music.permission.C2D_MESSAGE"
],
"libraries": [],
"files": [
"META-INF/MANIFEST.MF",
"META-INF/RELEASE.SF",
"META-INF/RELEASE.RSA",
"META-INF/services/com.fasterxml.jackson.core.ObjectCodec",
"AndroidManifest.xml",
"assets/ProximaNova-Regular.otf",
"assets/ProximaNova-RegularT100.otf",
"assets/ProximaNova-RegularT50.otf",
"assets/ProximaNova-SemiBold.otf",
"assets/ProximaNova-SemiBoldT100.otf",
"assets/ProximaNova-SemiBoldT50.otf",
"assets/crashlytics-build.properties",
"assets/licenses.xhtml",
"assets/spoticon.ttf",
"assets/transfer.png",
"assets/unplaylable-local-file.xhtml",
"assets/unplaylable-local-file_es.xhtml",
"assets/unplaylable-local-file_fr.xhtml",
"res/anim/abc_fade_in.xml",
"res/anim/abc_fade_out.xml",
"res/anim/abc_slide_in_bottom.xml",
"res/anim/abc_slide_in_top.xml",
"res/anim/abc_slide_out_bottom.xml",
"res/anim/abc_slide_out_top.xml",
"res/anim/anim_in_left.xml",
"res/anim/anim_in_right.xml",
"res/anim/anim_out_left.xml",
"res/anim/anim_out_right.xml",
"res/anim/anim_scale_down_play_button.xml",
"res/anim/anim_scale_up_play_button.xml",
"res/anim/button_transition_in.xml",
"res/anim/button_transition_out.xml",
"res/color/abc_background_cache_hint_selector_material_dark.xml",
"res/color/abc_background_cache_hint_selector_material_light.xml",
"res/color/abc_primary_text_disable_only_material_dark.xml",
"res/color/abc_primary_text_disable_only_material_light.xml",
"res/color/abc_primary_text_material_dark.xml",
"res/color/abc_primary_text_material_light.xml",
"res/color/abc_search_url_text.xml",
"res/color/abc_secondary_text_material_dark.xml",
"res/color/abc_secondary_text_material_light.xml",
"res/color/btn_now_playing_gray.xml",
"res/color/btn_now_playing_gray_checkable.xml",
"res/color/btn_now_playing_gray_disabled.xml",
"res/color/btn_now_playing_thumb_down.xml",
"res/color/btn_now_playing_thumb_up.xml",
"res/color/btn_now_playing_white.xml",
"res/color/btn_share_connect_icon.xml",
"res/color/cat_accessory.xml",
"res/color/cat_button_border.xml",
"res/color/cat_button_info_dialog_text.xml",
"res/color/cat_button_info_text.xml",
"res/color/cat_button_primary_text.xml",
"res/color/cat_button_text.xml",
"res/color/cat_dialog_button_negative_text.xml",
"res/color/cat_dialog_button_positive_text.xml",
"res/color/cat_navigationitem_icon.xml",
"res/color/cat_navigationitem_text.xml",
"res/color/cat_profile_panel.xml",
"res/color/cat_signup_panel.xml",
"res/color/cat_tab_text.xml",
"res/color/cat_text_primary.xml",
"res/color/cat_text_primary_muted.xml",
"res/color/cat_text_secondary.xml",
"res/color/cat_text_secondary_muted.xml",
"res/color/common_signin_btn_text_dark.xml",
"res/color/common_signin_btn_text_light.xml",
"res/color/txt_btn_facebook.xml",
"res/color/txt_button_light.xml",
"res/color/txt_cell_cover_subtitle.xml",
"res/color/txt_cell_cover_title.xml",
"res/color/txt_cell_navigation.xml",
"res/color/txt_cell_queue_subtitle.xml",
"res/color/txt_cell_queue_title.xml",
"res/color/txt_cell_subtitle.xml",
"res/color/txt_cell_title.xml",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/album_covers_splash.png",
"res/drawable-hdpi-v4/background_icon.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_focused.9.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_pressed.9.png",
"res/drawable-hdpi-v4/bg_bubble.9.png",
"res/drawable-hdpi-v4/bg_dark_albums.jpg",
"res/drawable-hdpi-v4/bg_header_placeholder.png",
"res/drawable-hdpi-v4/bg_holiday_offer_upsell_interstitial_top.png",
"res/drawable-hdpi-v4/bg_premium_upsell_interstitial_top.jpg",
"res/drawable-hdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-hdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_primary.9.png",
"res/drawable-hdpi-v4/btn_big_primary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_big_primary_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_secondary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-hdpi-v4/btn_facebook_normal.9.png",
"res/drawable-hdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-hdpi-v4/btn_g_icon.png",
"res/drawable-hdpi-v4/btn_overlay_pause.png",
"res/drawable-hdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-hdpi-v4/btn_overlay_play.png",
"res/drawable-hdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-hdpi-v4/btn_player_in_collection_checked.png",
"res/drawable-hdpi-v4/cat_navigation_background.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-hdpi-v4/com_facebook_close.png",
"res/drawable-hdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-hdpi-v4/com_facebook_logo.png",
"res/drawable-hdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-hdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-hdpi-v4/common_full_open_on_phone.png",
"res/drawable-hdpi-v4/common_ic_googleplayservices.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-hdpi-v4/connect_device_type_computer.png",
"res/drawable-hdpi-v4/connect_device_type_receiver.png",
"res/drawable-hdpi-v4/connect_device_type_smartphone.png",
"res/drawable-hdpi-v4/connect_device_type_speaker.png",
"res/drawable-hdpi-v4/connect_device_type_tablet.png",
"res/drawable-hdpi-v4/connect_device_type_tv.png",
"res/drawable-hdpi-v4/connect_header_img.png",
"res/drawable-hdpi-v4/connect_showcase.png",
"res/drawable-hdpi-v4/fastscroll_default.png",
"res/drawable-hdpi-v4/fastscroll_pressed.png",
"res/drawable-hdpi-v4/genesis_new_releases.png",
"res/drawable-hdpi-v4/genesis_recommended_for_you.png",
"res/drawable-hdpi-v4/genesis_toplists.png",
"res/drawable-hdpi-v4/highlights.png",
"res/drawable-hdpi-v4/hlv_overscroll_edge.png",
"res/drawable-hdpi-v4/hlv_overscroll_glow.png",
"res/drawable-hdpi-v4/ic_action_navigation_menu.png",
"res/drawable-hdpi-v4/ic_menu_info_details.png",
"res/drawable-hdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-hdpi-v4/icn_add_to_collection.png",
"res/drawable-hdpi-v4/icn_add_to_playlist.png",
"res/drawable-hdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-hdpi-v4/icn_download_header_waiting.png",
"res/drawable-hdpi-v4/icn_download_waiting.png",
"res/drawable-hdpi-v4/icn_facebook.png",
"res/drawable-hdpi-v4/icn_mft_home_back.png",
"res/drawable-hdpi-v4/icn_mft_home_logo.png",
"res/drawable-hdpi-v4/icn_notification.png",
"res/drawable-hdpi-v4/icn_notification_add_to.png",
"res/drawable-hdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-hdpi-v4/icn_notification_dismiss.png",
"res/drawable-hdpi-v4/icn_notification_next_disabled.png",
"res/drawable-hdpi-v4/icn_notification_next_normal.png",
"res/drawable-hdpi-v4/icn_notification_pause_normal.png",
"res/drawable-hdpi-v4/icn_notification_play_normal.png",
"res/drawable-hdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-hdpi-v4/icn_notification_prev_normal.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-hdpi-v4/icn_playlist.png",
"res/drawable-hdpi-v4/icn_playlist_collaborative.png",
"res/drawable-hdpi-v4/icn_quickact_album.png",
"res/drawable-hdpi-v4/icn_quickact_artist.png",
"res/drawable-hdpi-v4/icn_quickact_delete.png",
"res/drawable-hdpi-v4/icn_quickact_queue.png",
"res/drawable-hdpi-v4/icn_quickact_radio.png",
"res/drawable-hdpi-v4/icn_quickact_share.png",
"res/drawable-hdpi-v4/icn_quickact_star.png",
"res/drawable-hdpi-v4/icn_radio.png",
"res/drawable-hdpi-v4/icn_radio_added_to_liked.png",
"res/drawable-hdpi-v4/icn_radio_checkmark.png",
"res/drawable-hdpi-v4/icn_radio_offline.png",
"res/drawable-hdpi-v4/icn_remove_from_collection.png",
"res/drawable-hdpi-v4/icn_share.png",
"res/drawable-hdpi-v4/icn_sort.png",
"res/drawable-hdpi-v4/icn_spotify_login.png",
"res/drawable-hdpi-v4/icon.png",
"res/drawable-hdpi-v4/img_spotify_logo_text.png",
"res/drawable-hdpi-v4/img_trial_started.png",
"res/drawable-hdpi-v4/logo_smaller.png",
"res/drawable-hdpi-v4/mft_home_background1.jpg",
"res/drawable-hdpi-v4/mft_home_background2.jpg",
"res/drawable-hdpi-v4/mft_home_background3.jpg",
"res/drawable-hdpi-v4/mobile_artist_concert_header.png",
"res/drawable-hdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-hdpi-v4/nav_icon.png",
"res/drawable-hdpi-v4/nav_icon_gray.png",
"res/drawable-hdpi-v4/notification_feature_announcement.jpg",
"res/drawable-hdpi-v4/powered_by_google_dark.png",
"res/drawable-hdpi-v4/powered_by_google_light.png",
"res/drawable-hdpi-v4/profile_panel_invitation_codes_panel.9.png",
"res/drawable-hdpi-v4/psn_icon.png",
"res/drawable-hdpi-v4/small_icon.png",
"res/drawable-hdpi-v4/socialchart_showcase.png",
"res/drawable-hdpi-v4/sp_logo.png",
"res/drawable-hdpi-v4/spinner_white.png",
"res/drawable-hdpi-v4/widget_bg.9.png",
"res/drawable-hdpi-v4/widget_next_disabled.png",
"res/drawable-hdpi-v4/widget_next_normal.png",
"res/drawable-hdpi-v4/widget_pause_disabled.png",
"res/drawable-hdpi-v4/widget_pause_normal.png",
"res/drawable-hdpi-v4/widget_play_disabled.png",
"res/drawable-hdpi-v4/widget_play_normal.png",
"res/drawable-hdpi-v4/widget_prev_disabled.png",
"res/drawable-hdpi-v4/widget_prev_normal.png",
"res/drawable-hdpi-v4/widget_preview.png",
"res/drawable-land-hdpi-v4/mft_home_background1.jpg",
"res/drawable-land-hdpi-v4/mft_home_background2.jpg",
"res/drawable-land-hdpi-v4/mft_home_background3.jpg",
"res/drawable-land-mdpi-v4/mft_home_background1.jpg",
"res/drawable-land-mdpi-v4/mft_home_background2.jpg",
"res/drawable-land-mdpi-v4/mft_home_background3.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-ldpi-v4/bg_header_placeholder.png",
"res/drawable-ldpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-ldpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-ldpi-v4/btn_facebook_disabled.9.png",
"res/drawable-ldpi-v4/btn_facebook_normal.9.png",
"res/drawable-ldpi-v4/btn_facebook_pressed.9.png",
"res/drawable-ldpi-v4/btn_g_icon.png",
"res/drawable-ldpi-v4/btn_overlay_pause.png",
"res/drawable-ldpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-ldpi-v4/btn_overlay_play.png",
"res/drawable-ldpi-v4/btn_overlay_play_pressed.png",
"res/drawable-ldpi-v4/com_facebook_close.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-ldpi-v4/com_mixpanel_android_logo.png",
"res/drawable-ldpi-v4/connect_header_img.png",
"res/drawable-ldpi-v4/connect_showcase.png",
"res/drawable-ldpi-v4/hlv_overscroll_edge.png",
"res/drawable-ldpi-v4/hlv_overscroll_glow.png",
"res/drawable-ldpi-v4/icn_facebook.png",
"res/drawable-ldpi-v4/icn_notification.png",
"res/drawable-ldpi-v4/icon.png",
"res/drawable-ldpi-v4/socialchart_showcase.png",
"res/drawable-ldpi-v4/spinner_white.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/bg_header_placeholder.png",
"res/drawable-mdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-mdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-mdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-mdpi-v4/btn_facebook_normal.9.png",
"res/drawable-mdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-mdpi-v4/btn_g_icon.png",
"res/drawable-mdpi-v4/btn_overlay_pause.png",
"res/drawable-mdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-mdpi-v4/btn_overlay_play.png",
"res/drawable-mdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-mdpi-v4/cat_navigation_background.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-mdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-mdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-mdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-mdpi-v4/connect_header_img.png",
"res/drawable-mdpi-v4/connect_showcase.png",
"res/drawable-mdpi-v4/fastscroll_default.png",
"res/drawable-mdpi-v4/fastscroll_pressed.png",
"res/drawable-mdpi-v4/hlv_overscroll_edge.png",
"res/drawable-mdpi-v4/hlv_overscroll_glow.png",
"res/drawable-mdpi-v4/ic_action_navigation_menu.png",
"res/drawable-mdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-mdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-mdpi-v4/icn_facebook.png",
"res/drawable-mdpi-v4/icn_ford_logo.png",
"res/drawable-mdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-mdpi-v4/icn_mft_home_back.png",
"res/drawable-mdpi-v4/icn_mft_home_logo.png",
"res/drawable-mdpi-v4/icn_notification.png",
"res/drawable-mdpi-v4/icon.png",
"res/drawable-mdpi-v4/img_spotify_logo_text.png",
"res/drawable-mdpi-v4/logo_smaller.png",
"res/drawable-mdpi-v4/mft_home_background1.jpg",
"res/drawable-mdpi-v4/mft_home_background2.jpg",
"res/drawable-mdpi-v4/mft_home_background3.jpg",
"res/drawable-mdpi-v4/mobile_artist_concert_header.png",
"res/drawable-mdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-mdpi-v4/nav_icon.png",
"res/drawable-mdpi-v4/nav_icon_gray.png",
"res/drawable-mdpi-v4/powered_by_google_dark.png",
"res/drawable-mdpi-v4/powered_by_google_light.png",
"res/drawable-mdpi-v4/psn_icon.png",
"res/drawable-mdpi-v4/socialchart_showcase.png",
"res/drawable-mdpi-v4/sp_logo.png",
"res/drawable-mdpi-v4/spinner_white.png",
"res/drawable-nodpi-v4/cat_placeholder_album.png",
"res/drawable-nodpi-v4/cat_placeholder_artist.png",
"res/drawable-nodpi-v4/cat_placeholder_flag.png",
"res/drawable-nodpi-v4/cat_placeholder_genre.png",
"res/drawable-nodpi-v4/cat_placeholder_inbox.png",
"res/drawable-nodpi-v4/cat_placeholder_offline.png",
"res/drawable-nodpi-v4/cat_placeholder_playlist.png",
"res/drawable-nodpi-v4/cat_placeholder_podcast.png",
"res/drawable-nodpi-v4/cat_placeholder_search.png",
"res/drawable-nodpi-v4/cat_placeholder_star.png",
"res/drawable-nodpi-v4/cat_placeholder_toplist.png",
"res/drawable-nodpi-v4/cat_placeholder_track.png",
"res/drawable-nodpi-v4/cat_placeholder_user.png",
"res/drawable-nodpi-v4/cat_placeholder_warning.png",
"res/drawable-nodpi-v4/placeholder_annotate.png",
"res/drawable-nodpi-v4/placeholder_artist.png",
"res/drawable-nodpi-v4/placeholder_genre.png",
"res/drawable-nodpi-v4/placeholder_playlist.png",
"res/drawable-nodpi-v4/placeholder_user.png",
"res/drawable-small-ldpi-v4/icn_radio_offline.png",
"res/drawable-tvdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-v11/cat_dialog_button_left.xml",
"res/drawable-v11/cat_dialog_button_right.xml",
"res/drawable-v11/cat_listitem_background.xml",
"res/drawable-v11/cat_listitem_background_activated.xml",
"res/drawable-v21/abc_cab_background_top_material.xml",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_menu_dropdown_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/background_icon.png",
"res/drawable-xhdpi-v4/bg_header_placeholder.png",
"res/drawable-xhdpi-v4/bg_login_browse.jpg",
"res/drawable-xhdpi-v4/bg_login_landing.jpg",
"res/drawable-xhdpi-v4/bg_login_radio.jpg",
"res/drawable-xhdpi-v4/bg_login_search.jpg",
"res/drawable-xhdpi-v4/bg_login_yourmusic.jpg",
"res/drawable-xhdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-xhdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-xhdpi-v4/bg_upsell_carousel.jpg",
"res/drawable-xhdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-xhdpi-v4/btn_facebook_normal.9.png",
"res/drawable-xhdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-xhdpi-v4/btn_g_icon.png",
"res/drawable-xhdpi-v4/btn_overlay_pause.png",
"res/drawable-xhdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-xhdpi-v4/btn_overlay_play.png",
"res/drawable-xhdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-xhdpi-v4/cat_edit_background_activated.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_dialog_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled_focused.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_feedback_image.png",
"res/drawable-xhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xhdpi-v4/cat_navigationitem_background_active.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_default.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xhdpi-v4/com_facebook_close.png",
"res/drawable-xhdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-xhdpi-v4/com_facebook_logo.png",
"res/drawable-xhdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xhdpi-v4/connect_header_img.png",
"res/drawable-xhdpi-v4/connect_showcase.png",
"res/drawable-xhdpi-v4/contextmenu_placeholder.png",
"res/drawable-xhdpi-v4/fastscroll_default.png",
"res/drawable-xhdpi-v4/fastscroll_pressed.png",
"res/drawable-xhdpi-v4/find_friends.jpg",
"res/drawable-xhdpi-v4/globe_telecom_flair_1.png",
"res/drawable-xhdpi-v4/globe_telecom_flair_2.png",
"res/drawable-xhdpi-v4/globe_telecom_logo.png",
"res/drawable-xhdpi-v4/hlv_overscroll_edge.png",
"res/drawable-xhdpi-v4/hlv_overscroll_glow.png",
"res/drawable-xhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xhdpi-v4/icn_ads.png",
"res/drawable-xhdpi-v4/icn_ads_large.png",
"res/drawable-xhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xhdpi-v4/icn_device_picker_volume.png",
"res/drawable-xhdpi-v4/icn_facebook.png",
"res/drawable-xhdpi-v4/icn_ford_logo.png",
"res/drawable-xhdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-xhdpi-v4/icn_mft_home_back.png",
"res/drawable-xhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xhdpi-v4/icn_notification.png",
"res/drawable-xhdpi-v4/icn_notification_add_to.png",
"res/drawable-xhdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_dismiss.png",
"res/drawable-xhdpi-v4/icn_notification_next_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_next_normal.png",
"res/drawable-xhdpi-v4/icn_notification_pause_normal.png",
"res/drawable-xhdpi-v4/icn_notification_play_normal.png",
"res/drawable-xhdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_prev_normal.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-xhdpi-v4/icn_right_point_caret.png",
"res/drawable-xhdpi-v4/icon.png",
"res/drawable-xhdpi-v4/img_spotify_logo_text.png",
"res/drawable-xhdpi-v4/logo_smaller.png",
"res/drawable-xhdpi-v4/mediaservice_pause.png",
"res/drawable-xhdpi-v4/mediaservice_play.png",
"res/drawable-xhdpi-v4/mediaservice_save.png",
"res/drawable-xhdpi-v4/mediaservice_save_enabled.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle_checked.png",
"res/drawable-xhdpi-v4/mediaservice_skip_next.png",
"res/drawable-xhdpi-v4/mediaservice_skip_previous.png",
"res/drawable-xhdpi-v4/mediaservice_start_radio_black.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_down.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up_selected.png",
"res/drawable-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-xhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xhdpi-v4/nav_icon.png",
"res/drawable-xhdpi-v4/nav_icon_gray.png",
"res/drawable-xhdpi-v4/powered_by_google_dark.png",
"res/drawable-xhdpi-v4/powered_by_google_light.png",
"res/drawable-xhdpi-v4/premium_upsell_icon.png",
"res/drawable-xhdpi-v4/psn_icon.png",
"res/drawable-xhdpi-v4/small_icon.png",
"res/drawable-xhdpi-v4/socialchart_showcase.png",
"res/drawable-xhdpi-v4/sp_logo.png",
"res/drawable-xhdpi-v4/spinner_16_inner_holo.png",
"res/drawable-xhdpi-v4/spinner_16_outer_holo.png",
"res/drawable-xhdpi-v4/spinner_white.png",
"res/drawable-xhdpi-v4/widget_next_disabled.png",
"res/drawable-xhdpi-v4/widget_next_normal.png",
"res/drawable-xhdpi-v4/widget_pause_disabled.png",
"res/drawable-xhdpi-v4/widget_pause_normal.png",
"res/drawable-xhdpi-v4/widget_play_disabled.png",
"res/drawable-xhdpi-v4/widget_play_normal.png",
"res/drawable-xhdpi-v4/widget_prev_disabled.png",
"res/drawable-xhdpi-v4/widget_prev_normal.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/background_icon.png",
"res/drawable-xxhdpi-v4/btn_g_icon.png",
"res/drawable-xxhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xxhdpi-v4/cat_overflow_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xxhdpi-v4/connect_header_img.png",
"res/drawable-xxhdpi-v4/fastscroll_default.png",
"res/drawable-xxhdpi-v4/fastscroll_pressed.png",
"res/drawable-xxhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xxhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxhdpi-v4/icn_facebook.png",
"res/drawable-xxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxhdpi-v4/icon.png",
"res/drawable-xxhdpi-v4/logo_smaller.png",
"res/drawable-xxhdpi-v4/mediaservice_albums.png",
"res/drawable-xxhdpi-v4/mediaservice_artists.png",
"res/drawable-xxhdpi-v4/mediaservice_browse.png",
"res/drawable-xxhdpi-v4/mediaservice_newreleases.png",
"res/drawable-xxhdpi-v4/mediaservice_playlists.png",
"res/drawable-xxhdpi-v4/mediaservice_radio.png",
"res/drawable-xxhdpi-v4/mediaservice_starred.png",
"res/drawable-xxhdpi-v4/mediaservice_yourmusic.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xxhdpi-v4/nav_icon.png",
"res/drawable-xxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxhdpi-v4/powered_by_google_dark.png",
"res/drawable-xxhdpi-v4/powered_by_google_light.png",
"res/drawable-xxhdpi-v4/psn_icon.png",
"res/drawable-xxhdpi-v4/small_icon.png",
"res/drawable-xxhdpi-v4/sp_logo.png",
"res/drawable-xxhdpi-v4/widget_next_disabled.png",
"res/drawable-xxhdpi-v4/widget_next_normal.png",
"res/drawable-xxhdpi-v4/widget_pause_disabled.png",
"res/drawable-xxhdpi-v4/widget_pause_normal.png",
"res/drawable-xxhdpi-v4/widget_placeholder.png",
"res/drawable-xxhdpi-v4/widget_play_disabled.png",
"res/drawable-xxhdpi-v4/widget_play_normal.png",
"res/drawable-xxhdpi-v4/widget_prev_disabled.png",
"res/drawable-xxhdpi-v4/widget_prev_normal.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/connect_header_img.png",
"res/drawable-xxxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxxhdpi-v4/icon.png",
"res/drawable-xxxhdpi-v4/logo_smaller.png",
"res/drawable-xxxhdpi-v4/nav_icon.png",
"res/drawable-xxxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxxhdpi-v4/psn_icon.png",
"res/drawable-xxxhdpi-v4/sp_logo.png",
"res/drawable/abc_btn_check_material.xml",
"res/drawable/abc_btn_radio_material.xml",
"res/drawable/abc_cab_background_internal_bg.xml",
"res/drawable/abc_cab_background_top_material.xml",
"res/drawable/abc_edit_text_material.xml",
"res/drawable/abc_item_background_holo_dark.xml",
"res/drawable/abc_item_background_holo_light.xml",
"res/drawable/abc_list_selector_background_transition_holo_dark.xml",
"res/drawable/abc_list_selector_background_transition_holo_light.xml",
"res/drawable/abc_list_selector_holo_dark.xml",
"res/drawable/abc_list_selector_holo_light.xml",
"res/drawable/abc_switch_thumb_material.xml",
"res/drawable/abc_tab_indicator_material.xml",
"res/drawable/abc_textfield_search_material.xml",
"res/drawable/bg_actionbar_item.xml",
"res/drawable/bg_actionbar_tab.xml",
"res/drawable/bg_activity_card.xml",
"res/drawable/bg_browse_header.xml",
"res/drawable/bg_browse_start_fragment_header.xml",
"res/drawable/bg_button_dialog_bottom_left_light.xml",
"res/drawable/bg_button_dialog_bottom_light.xml",
"res/drawable/bg_button_dialog_bottom_right_light.xml",
"res/drawable/bg_button_light.xml",
"res/drawable/bg_button_queue.xml",
"res/drawable/bg_cat_login_field.xml",
"res/drawable/bg_cell.xml",
"res/drawable/bg_connect_playing_from_bar_cat.xml",
"res/drawable/bg_dialog_button_divider.xml",
"res/drawable/bg_discover.xml",
"res/drawable/bg_globe_telecom_premium_activation.xml",
"res/drawable/bg_header.xml",
"res/drawable/bg_notification_button.xml",
"res/drawable/bg_placeholder_album.xml",
"res/drawable/bg_placeholder_annotate_image.xml",
"res/drawable/bg_placeholder_artist.xml",
"res/drawable/bg_placeholder_artist_black.xml",
"res/drawable/bg_placeholder_playlist.xml",
"res/drawable/bg_placeholder_user.xml",
"res/drawable/bg_popup.xml",
"res/drawable/bg_popup_outside.xml",
"res/drawable/bg_premium_upsell_interstitial_reason.xml",
"res/drawable/bg_settings_bubble.xml",
"res/drawable/bg_share_connect_icon_facebook.xml",
"res/drawable/bg_share_connect_icon_tumblr.xml",
"res/drawable/bg_share_connect_icon_twitter.xml",
"res/drawable/bg_toast.xml",
"res/drawable/bg_upsell_banner.xml",
"res/drawable/bg_widget_button.xml",
"res/drawable/btn_cat_login_button_facebook.xml",
"res/drawable/btn_cat_login_button_google.xml",
"res/drawable/btn_cat_login_button_later.xml",
"res/drawable/btn_cat_login_button_primary.xml",
"res/drawable/btn_cat_login_button_secondary.xml",
"res/drawable/btn_cat_nav_upsell_button.xml",
"res/drawable/btn_facebook.xml",
"res/drawable/btn_header_overlay_pause.xml",
"res/drawable/btn_header_overlay_play.xml",
"res/drawable/btn_intro_primary.xml",
"res/drawable/btn_twitter.xml",
"res/drawable/button_download.xml",
"res/drawable/cat_actionbar_background.xml",
"res/drawable/cat_actionbar_background_split.xml",
"res/drawable/cat_back_dummy.xml",
"res/drawable/cat_button.xml",
"res/drawable/cat_button_danger.xml",
"res/drawable/cat_button_info.xml",
"res/drawable/cat_button_info_small.xml",
"res/drawable/cat_button_info_small_state_default.xml",
"res/drawable/cat_button_info_small_state_disabled.xml",
"res/drawable/cat_button_info_small_state_focused.xml",
"res/drawable/cat_button_info_small_state_pressed.xml",
"res/drawable/cat_button_info_state_default.xml",
"res/drawable/cat_button_info_state_disabled.xml",
"res/drawable/cat_button_info_state_focused.xml",
"res/drawable/cat_button_info_state_pressed.xml",
"res/drawable/cat_button_primary.xml",
"res/drawable/cat_button_primary_small.xml",
"res/drawable/cat_button_primary_small_state_default.xml",
"res/drawable/cat_button_primary_small_state_disabled.xml",
"res/drawable/cat_button_primary_small_state_focused.xml",
"res/drawable/cat_button_primary_small_state_pressed.xml",
"res/drawable/cat_button_primary_state_default.xml",
"res/drawable/cat_button_primary_state_disabled.xml",
"res/drawable/cat_button_primary_state_focused.xml",
"res/drawable/cat_button_primary_state_pressed.xml",
"res/drawable/cat_button_small.xml",
"res/drawable/cat_button_small_state_checked.xml",
"res/drawable/cat_button_small_state_default.xml",
"res/drawable/cat_button_small_state_disabled.xml",
"res/drawable/cat_button_small_state_focused.xml",
"res/drawable/cat_button_small_state_pressed.xml",
"res/drawable/cat_button_state_checked.xml",
"res/drawable/cat_button_state_default.xml",
"res/drawable/cat_button_state_disabled.xml",
"res/drawable/cat_button_state_focused.xml",
"res/drawable/cat_button_state_pressed.xml",
"res/drawable/cat_card_background.xml",
"res/drawable/cat_card_foreground.xml",
"res/drawable/cat_checkbox.xml",
"res/drawable/cat_dialog_background.xml",
"res/drawable/cat_dialog_button_bar_background.xml",
"res/drawable/cat_dialog_button_left.xml",
"res/drawable/cat_dialog_button_right.xml",
"res/drawable/cat_dialog_button_single_negative.xml",
"res/drawable/cat_dialog_button_single_positive.xml",
"res/drawable/cat_dropdown_list_divider.xml",
"res/drawable/cat_edit_background.xml",
"res/drawable/cat_edit_background_dialog.xml",
"res/drawable/cat_filter_list_background.xml",
"res/drawable/cat_filter_list_divider.xml",
"res/drawable/cat_list_divider.xml",
"res/drawable/cat_list_divider_light.xml",
"res/drawable/cat_list_divider_vertical.xml",
"res/drawable/cat_list_popup_filter_selector.xml",
"res/drawable/cat_list_selector.xml",
"res/drawable/cat_list_selector_default.xml",
"res/drawable/cat_list_selector_focused.xml",
"res/drawable/cat_list_selector_focused_no_margin.xml",
"res/drawable/cat_list_selector_light.xml",
"res/drawable/cat_list_selector_light_focused.xml",
"res/drawable/cat_list_selector_light_pressed.xml",
"res/drawable/cat_list_selector_no_margin.xml",
"res/drawable/cat_list_selector_pressed.xml",
"res/drawable/cat_list_selector_pressed_no_margin.xml",
"res/drawable/cat_listitem_background.xml",
"res/drawable/cat_listitem_background_default.xml",
"res/drawable/cat_navigation_list_divider.xml",
"res/drawable/cat_navigationitem_background.xml",
"res/drawable/cat_notificationbadge_background.xml",
"res/drawable/cat_progress.xml",
"res/drawable/cat_seekbar_thumb.xml",
"res/drawable/cat_seekbar_thumb_default.xml",
"res/drawable/cat_spinner_background.xml",
"res/drawable/cat_switch.xml",
"res/drawable/cat_switch_default.xml",
"res/drawable/cat_switch_disabled.xml",
"res/drawable/cat_switch_focused.xml",
"res/drawable/cat_switch_thumb.xml",
"res/drawable/cat_switch_thumb_default.xml",
"res/drawable/cat_switch_thumb_disabled.xml",
"res/drawable/cat_text_background_explicit.xml",
"res/drawable/com_facebook_button_blue.xml",
"res/drawable/com_facebook_button_blue_focused.9.png",
"res/drawable/com_facebook_button_blue_normal.9.png",
"res/drawable/com_facebook_button_blue_pressed.9.png",
"res/drawable/com_facebook_button_check.xml",
"res/drawable/com_facebook_button_check_off.png",
"res/drawable/com_facebook_button_check_on.png",
"res/drawable/com_facebook_button_grey_focused.9.png",
"res/drawable/com_facebook_button_grey_normal.9.png",
"res/drawable/com_facebook_button_grey_pressed.9.png",
"res/drawable/com_facebook_button_like.xml",
"res/drawable/com_facebook_button_like_background.png",
"res/drawable/com_facebook_button_like_background_selected.png",
"res/drawable/com_facebook_button_like_icon.png",
"res/drawable/com_facebook_button_like_icon_selected.png",
"res/drawable/com_facebook_button_like_pressed.png",
"res/drawable/com_facebook_button_like_selected.xml",
"res/drawable/com_facebook_close.png",
"res/drawable/com_facebook_inverse_icon.png",
"res/drawable/com_facebook_list_divider.9.png",
"res/drawable/com_facebook_list_section_header_background.9.png",
"res/drawable/com_facebook_loginbutton_silver.xml",
"res/drawable/com_facebook_logo.png",
"res/drawable/com_facebook_picker_item_background.xml",
"res/drawable/com_facebook_picker_list_focused.9.png",
"res/drawable/com_facebook_picker_list_longpressed.9.png",
"res/drawable/com_facebook_picker_list_pressed.9.png",
"res/drawable/com_facebook_picker_list_selector.xml",
"res/drawable/com_facebook_picker_list_selector_background_transition.xml",
"res/drawable/com_facebook_picker_list_selector_disabled.9.png",
"res/drawable/com_facebook_picker_top_button.xml",
"res/drawable/com_facebook_place_default_icon.png",
"res/drawable/com_facebook_profile_default_icon.png",
"res/drawable/com_facebook_profile_picture_blank_portrait.png",
"res/drawable/com_facebook_profile_picture_blank_square.png",
"res/drawable/com_facebook_top_background.xml",
"res/drawable/com_facebook_top_button.xml",
"res/drawable/com_facebook_usersettingsfragment_background_gradient.xml",
"res/drawable/com_mixpanel_android_arrowleft_insets.xml",
"res/drawable/com_mixpanel_android_arrowleft_states.xml",
"res/drawable/com_mixpanel_android_arrowright_insets.xml",
"res/drawable/com_mixpanel_android_arrowright_states.xml",
"res/drawable/com_mixpanel_android_checkmark_states.xml",
"res/drawable/com_mixpanel_android_choice_first_states.xml",
"res/drawable/com_mixpanel_android_choice_last_states.xml",
"res/drawable/com_mixpanel_android_choice_middle_states.xml",
"res/drawable/com_mixpanel_android_nocolor_list.xml",
"res/drawable/com_mixpanel_android_rounded_bottom.9.png",
"res/drawable/com_mixpanel_android_rounded_bottom_selected.9.png",
"res/drawable/com_mixpanel_android_rounded_top.9.png",
"res/drawable/com_mixpanel_android_rounded_top_selected.9.png",
"res/drawable/com_mixpanel_android_square.9.png",
"res/drawable/com_mixpanel_android_square_selected.9.png",
"res/drawable/com_mixpanel_android_text_answer_border.xml",
"res/drawable/common_signin_btn_icon_dark.xml",
"res/drawable/common_signin_btn_icon_light.xml",
"res/drawable/common_signin_btn_text_dark.xml",
"res/drawable/common_signin_btn_text_light.xml",
"res/drawable/fastscroll_selector.xml",
"res/drawable/icn_loading_indicator.xml",
"res/drawable/img_end_of_trial.xml",
"res/drawable/indicator_bar.xml",
"res/drawable/mft_home_cell_border.xml",
"res/drawable/player_progress_thumb.xml",
"res/drawable/profile_panel_badge_background.xml",
"res/drawable/progress_small.xml",
"res/drawable/progress_small_holo.xml",
"res/drawable/socialchart_list_divider.xml",
"res/drawable/socialchart_remaining_shape.xml",
"res/drawable/transparent.xml",
"res/layout-land/fragment_mft2_home.xml",
"res/layout-land/list.xml",
"res/layout-land/list_with_overlay.xml",
"res/layout-land/mobile_artist_bio.xml",
"res/layout-land/player.xml",
"res/layout-land/player_content_view.xml",
"res/layout-land/player_controls.xml",
"res/layout-v11/abc_screen_content_include.xml",
"res/layout-v21/abc_screen_toolbar.xml",
"res/layout/abc_action_bar_title_item.xml",
"res/layout/abc_action_bar_up_container.xml",
"res/layout/abc_action_bar_view_list_nav_layout.xml",
"res/layout/abc_action_menu_item_layout.xml",
"res/layout/abc_action_menu_layout.xml",
"res/layout/abc_action_mode_bar.xml",
"res/layout/abc_action_mode_close_item_material.xml",
"res/layout/abc_activity_chooser_view.xml",
"res/layout/abc_activity_chooser_view_include.xml",
"res/layout/abc_activity_chooser_view_list_item.xml",
"res/layout/abc_expanded_menu_layout.xml",
"res/layout/abc_list_menu_item_checkbox.xml",
"res/layout/abc_list_menu_item_icon.xml",
"res/layout/abc_list_menu_item_layout.xml",
"res/layout/abc_list_menu_item_radio.xml",
"res/layout/abc_popup_menu_item_layout.xml",
"res/layout/abc_screen_content_include.xml",
"res/layout/abc_screen_simple.xml",
"res/layout/abc_screen_simple_overlay_action_mode.xml",
"res/layout/abc_screen_toolbar.xml",
"res/layout/abc_search_dropdown_item_icons_2line.xml",
"res/layout/abc_search_view.xml",
"res/layout/abc_simple_dropdown_hint.xml",
"res/layout/actionbar_search.xml",
"res/layout/activity_annotate_playlist.xml",
"res/layout/activity_cover_image.xml",
"res/layout/activity_default.xml",
"res/layout/activity_device.xml",
"res/layout/activity_disable_offline_mode.xml",
"res/layout/activity_facebook_webview.xml",
"res/layout/activity_general_message_radio_and_premium.xml",
"res/layout/activity_globe_premium_activation.xml",
"res/layout/activity_holiday_offer_upsell_interstitial.xml",
"res/layout/activity_lockscreen.xml",
"res/layout/activity_marketing_opt_in_body.xml",
"res/layout/activity_notification_webview.xml",
"res/layout/activity_open.xml",
"res/layout/activity_player.xml",
"res/layout/activity_premium_signup.xml",
"res/layout/activity_premium_upsell_interstitial.xml",
"res/layout/activity_reset_password.xml",
"res/layout/activity_showcase.xml",
"res/layout/activity_tos_text.xml",
"res/layout/activity_two_buttons_dialog.xml",
"res/layout/activity_uninstall_old_app.xml",
"res/layout/activity_upsell_dialog.xml",
"res/layout/activity_video_player.xml",
"res/layout/additional_info_bar.xml",
"res/layout/biography_image_view.xml",
"res/layout/browse_cover_card.xml",
"res/layout/browse_new_releases_header.xml",
"res/layout/cardview.xml",
"res/layout/cat_listtile_1.xml",
"res/layout/cat_listtile_1_image.xml",
"res/layout/cat_listtile_1_image_small.xml",
"res/layout/cat_listtile_1_small.xml",
"res/layout/cat_listtile_2.xml",
"res/layout/cat_listtile_2_image.xml",
"res/layout/cat_listtile_2_image_muted.xml",
"res/layout/cat_listtile_2_muted.xml",
"res/layout/cat_listtile_2_number.xml",
"res/layout/cat_listtile_2_number_muted.xml",
"res/layout/cat_listtile_multiline.xml",
"res/layout/cell_activity_story.xml",
"res/layout/cell_artist_portrait.xml",
"res/layout/cell_browse_genre.xml",
"res/layout/cell_browse_playlist.xml",
"res/layout/cell_browse_playlist_horizontal_list.xml",
"res/layout/cell_browse_trending_artist.xml",
"res/layout/cell_copyright.xml",
"res/layout/cell_mft_home.xml",
"res/layout/cell_navigation.xml",
"res/layout/cell_square_image.xml",
"res/layout/cell_track_cover.xml",
"res/layout/cell_tracks_sample.xml",
"res/layout/collection_show_all.xml",
"res/layout/com_facebook_friendpickerfragment.xml",
"res/layout/com_facebook_login_activity_layout.xml",
"res/layout/com_facebook_picker_activity_circle_row.xml",
"res/layout/com_facebook_picker_checkbox.xml",
"res/layout/com_facebook_picker_image.xml",
"res/layout/com_facebook_picker_list_row.xml",
"res/layout/com_facebook_picker_list_section_header.xml",
"res/layout/com_facebook_picker_search_box.xml",
"res/layout/com_facebook_picker_title_bar.xml",
"res/layout/com_facebook_picker_title_bar_stub.xml",
"res/layout/com_facebook_placepickerfragment.xml",
"res/layout/com_facebook_placepickerfragment_list_row.xml",
"res/layout/com_facebook_search_bar_layout.xml",
"res/layout/com_facebook_tooltip_bubble.xml",
"res/layout/com_facebook_usersettingsfragment.xml",
"res/layout/com_mixpanel_android_activity_survey.xml",
"res/layout/com_mixpanel_android_first_choice_answer.xml",
"res/layout/com_mixpanel_android_last_choice_answer.xml",
"res/layout/com_mixpanel_android_middle_choice_answer.xml",
"res/layout/com_mixpanel_android_question_card.xml",
"res/layout/connect_playing_from_bar.xml",
"res/layout/context_menu.xml",
"res/layout/cosmos_search_cell_mft_appears_on.xml",
"res/layout/cosmos_search_footer_loading.xml",
"res/layout/cosmos_search_playlist_row.xml",
"res/layout/discover_grouped_card.xml",
"res/layout/discover_story.xml",
"res/layout/display_banner_ad.xml",
"res/layout/findfriends_header.xml",
"res/layout/footer_loading.xml",
"res/layout/fragment_activity_list_view.xml",
"res/layout/fragment_add_to_playlist.xml",
"res/layout/fragment_arsenal_ask_login.xml",
"res/layout/fragment_arsenal_dywla.xml",
"res/layout/fragment_arsenal_feedback.xml",
"res/layout/fragment_arsenal_linking.xml",
"res/layout/fragment_arsenal_sso.xml",
"res/layout/fragment_browse_default_list_view.xml",
"res/layout/fragment_browse_default_list_view_cat.xml",
"res/layout/fragment_browse_header_background.xml",
"res/layout/fragment_browse_header_text.xml",
"res/layout/fragment_collection.xml",
"res/layout/fragment_context_recognition.xml",
"res/layout/fragment_cosmos_test.xml",
"res/layout/fragment_device.xml",
"res/layout/fragment_discover.xml",
"res/layout/fragment_inbox.xml",
"res/layout/fragment_login_new.xml",
"res/layout/fragment_login_splash.xml",
"res/layout/fragment_login_welcome.xml",
"res/layout/fragment_mft2_home.xml",
"res/layout/fragment_not_available.xml",
"res/layout/fragment_offline_bar.xml",
"res/layout/fragment_open_access.xml",
"res/layout/fragment_profile_panel.xml",
"res/layout/fragment_push_notification_settings.xml",
"res/layout/fragment_radio.xml",
"res/layout/fragment_relatedartists_cat.xml",
"res/layout/fragment_settings.xml",
"res/layout/fragment_share_dialog_connect_facebook.xml",
"res/layout/fragment_share_post.xml",
"res/layout/fragment_show_licenses.xml",
"res/layout/fragment_showcase.xml",
"res/layout/fragment_signup_new.xml",
"res/layout/fragment_sso_login.xml",
"res/layout/fragment_start.xml",
"res/layout/fragment_webview.xml",
"res/layout/fragment_with_recycler_view.xml",
"res/layout/fragment_x_promo_welcome.xml",
"res/layout/generic_dialog_header.xml",
"res/layout/generic_dialog_two_buttons.xml",
"res/layout/header_devices.xml",
"res/layout/header_download.xml",
"res/layout/header_filter.xml",
"res/layout/header_info_2_lines_page.xml",
"res/layout/header_info_page.xml",
"res/layout/header_pretty_subtitle.xml",
"res/layout/include_start_login_buttons_anonymous.xml",
"res/layout/include_start_login_buttons_normal.xml",
"res/layout/list.xml",
"res/layout/list_discovery.xml",
"res/layout/list_frame.xml",
"res/layout/list_popup.xml",
"res/layout/list_with_emptyview.xml",
"res/layout/list_with_overlay.xml",
"res/layout/loading_view.xml",
"res/layout/login_content.xml",
"res/layout/main.xml",
"res/layout/main_debug_overlay.xml",
"res/layout/material_listtile_1.xml",
"res/layout/material_listtile_1_image.xml",
"res/layout/material_listtile_1_image_small.xml",
"res/layout/material_listtile_1_small.xml",
"res/layout/material_listtile_2.xml",
"res/layout/material_listtile_2_image.xml",
"res/layout/material_listtile_2_image_muted.xml",
"res/layout/material_listtile_2_muted.xml",
"res/layout/material_listtile_2_number.xml",
"res/layout/material_listtile_2_number_muted.xml",
"res/layout/material_listtile_multiline.xml",
"res/layout/media_controller.xml",
"res/layout/mobile_artist_bio.xml",
"res/layout/mobile_artist_calendar_sheet_cat.xml",
"res/layout/mobile_artist_concert_cat.xml",
"res/layout/mobile_artist_fragment_base.xml",
"res/layout/mobile_artist_header.xml",
"res/layout/mobile_artist_header_single_image.xml",
"res/layout/mobile_artist_page_indicator.xml",
"res/layout/mobile_artist_portrait.xml",
"res/layout/navigation.xml",
"res/layout/notification_big_player.xml",
"res/layout/notification_big_player_radio.xml",
"res/layout/notification_coverart_and_text.xml",
"res/layout/notification_next.xml",
"res/layout/notification_play_pause.xml",
"res/layout/notification_small_player.xml",
"res/layout/page_debug_single_button.xml",
"res/layout/page_player_done.xml",
"res/layout/page_player_improving.xml",
"res/layout/page_player_liked_list.xml",
"res/layout/page_player_progress.xml",
"res/layout/page_player_skips_left.xml",
"res/layout/page_player_suggested_song.xml",
"res/layout/page_player_text.xml",
"res/layout/page_upsell_item.xml",
"res/layout/paste_dialog.xml",
"res/layout/paste_divider_wrapper.xml",
"res/layout/paste_empty.xml",
"res/layout/paste_header.xml",
"res/layout/paste_listitem.xml",
"res/layout/paste_match_parent_width.xml",
"res/layout/paste_navigationitem.xml",
"res/layout/paste_sectionheader.xml",
"res/layout/paste_wrap_content.xml",
"res/layout/placeholder_title.xml",
"res/layout/play_button_view.xml",
"res/layout/play_history.xml",
"res/layout/player.xml",
"res/layout/player_content_view.xml",
"res/layout/player_controls.xml",
"res/layout/player_new.xml",
"res/layout/player_preview.xml",
"res/layout/player_preview_item.xml",
"res/layout/playlist_annotate_overlay.xml",
"res/layout/popup_gender_select.xml",
"res/layout/preview_progress_button.xml",
"res/layout/profile_counts_subheader.xml",
"res/layout/queue.xml",
"res/layout/radio_cover_card.xml",
"res/layout/search.xml",
"res/layout/section_link_cat.xml",
"res/layout/settings_basic_row.xml",
"res/layout/settings_crossfade_row.xml",
"res/layout/settings_facebook_row.xml",
"res/layout/settings_spinner_row.xml",
"res/layout/settings_toggle_button_row.xml",
"res/layout/share_header.xml",
"res/layout/simple_text_view.xml",
"res/layout/socialchart_header2.xml",
"res/layout/socialchart_smallfriendicon.xml",
"res/layout/socialchart_trackrow.xml",
"res/layout/sticky_header_shuffle_play.xml",
"res/layout/support_simple_spinner_dropdown_item.xml",
"res/layout/tinkerbel
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ApkInfo -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ApkInfo -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
from androlyze.model.script.impl.manifest.components import get_components_cache,\
component_key_2_intent_key
#categories
CAT_APK_INFO = "apkinfo"
CAT_FILES = "files"
CAT_PERMISSIONS = "permissions"
CAT_LIBS = "libraries"
CAT_ACTIVITIES = "activities"
CAT_ACTIVITIES_MAIN = "main activity"
CAT_ACTIVITIES_LISTING = "all"
CAT_COMPONENTS = "components"
CAT_SERVICES = "services"
CAT_RECEIVERS = "broadcast receivers"
CAT_PROVIDERS = "content providers"
CAT_INTENTS = "intents"
class ApkInfo(AndroScript):
''' Shows basic information about the .apk like e.g. permissions, files, libraries,
components (activities, broadcast receivers, content providers, services) as wall as their intents.
'''
VERSION = "0.1"
def _register_static_structure(self):
''' Register the static structure '''
res = self.res
# register basic structure
res.register_keys([CAT_ACTIVITIES_LISTING, CAT_ACTIVITIES_MAIN], CAT_APK_INFO, CAT_COMPONENTS, CAT_ACTIVITIES)
# register components
for k in (CAT_SERVICES, CAT_RECEIVERS, CAT_PROVIDERS, CAT_INTENTS):
res.register_keys([k], CAT_APK_INFO, CAT_COMPONENTS)
# register other
for k in (CAT_PERMISSIONS, CAT_LIBS, CAT_FILES):
res.register_keys([k], CAT_APK_INFO)
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
# register static structure
self._register_static_structure()
# libs
res.log(CAT_LIBS, apk.get_libraries(), CAT_APK_INFO)
# files
res.log(CAT_FILES, apk.get_files(), CAT_APK_INFO)
# permissions
res.log(CAT_PERMISSIONS, sorted(apk.get_permissions()), CAT_APK_INFO)
components_cache = get_components_cache(apk)
# activities
res.log(CAT_ACTIVITIES_LISTING, sorted(components_cache[CAT_ACTIVITIES]), CAT_APK_INFO, CAT_COMPONENTS, CAT_ACTIVITIES)
res.log(CAT_ACTIVITIES_MAIN, apk.get_main_activity(), CAT_APK_INFO, CAT_COMPONENTS, CAT_ACTIVITIES)
# services
res.log(CAT_SERVICES, components_cache[CAT_SERVICES], CAT_APK_INFO, CAT_COMPONENTS)
# receivers
res.log(CAT_RECEIVERS, components_cache[CAT_RECEIVERS], CAT_APK_INFO, CAT_COMPONENTS)
# content providers
res.log(CAT_PROVIDERS, components_cache[CAT_PROVIDERS], CAT_APK_INFO, CAT_COMPONENTS)
# intents
for k, package_names in components_cache.items():
intents = {}
for package_name in package_names:
# get intent filter for activity, service or receiver
intent_key = component_key_2_intent_key(k)
package_intents = apk.get_intent_filters(intent_key, package_name)
if package_intents:
intents[package_name] = package_intents
# we can also register the keys later for dynamic structures
CAT = (CAT_APK_INFO, CAT_COMPONENTS, CAT_INTENTS)
res.register_keys([k], *CAT)
res.log(k, intents, *CAT)
BroadcastReceivers¶
This is an autogenerated documentation file for the script: BroadcastReceivers
Run it¶
$ ./androanalyze scripts_builtin/BroadcastReceivers.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn BroadcastReceivers -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "BroadcastReceivers",
"sha256": "d81cf9102bed9a86f232f40b2d47174db166963f380145b838de098fcb816559",
"analysis date": "2015-06-22T20:22:51.255000",
"version": "0.1"
},
"broadcast receivers": [
"com.spotify.music.internal.receiver.MediaButtonReceiver",
"com.spotify.music.spotlets.optintrial.TrialAlarmBroadcastReceiver",
"com.spotify.music.spotlets.widget.SpotifyWidget",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerReceiver",
"com.spotify.music.spotlets.gcm.GcmBroadcastReceiver",
"com.spotify.mobile.android.applink.AppLinkBluetoothManager",
"com.spotify.music.internal.receiver.LoggerReceiver",
"com.spotify.mobile.android.spotlets.collection.receiver.ConnectionStateChangedReceiver",
"com.mixpanel.android.mpmetrics.InstallReferrerReceiver"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn BroadcastReceivers -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn BroadcastReceivers -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
CAT_RECEIVERS = "broadcast receivers"
class BroadcastReceivers(AndroScript):
''' List broadcast receivers '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
res.register_keys([CAT_RECEIVERS])
# receivers
res.log(CAT_RECEIVERS, apk.get_receivers())
ChainedApkInfos¶
This is an autogenerated documentation file for the script: ChainedApkInfos
Run it¶
$ ./androanalyze scripts_builtin/ChainedApkInfos.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ChainedApkInfos -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ChainedApkInfos",
"sha256": "c7e1fb34b7d0cb34b806a61571bb447ad39d512611f4ae7a0b85fd4fc63e6e97",
"analysis date": "2015-06-22T20:22:51.255000",
"version": "0.1"
},
"apkinfo": {
"components": {
"activities": {
"all": [
"android.support.v7.widget.TestActivity",
"com.facebook.LoginActivity",
"com.google.android.gms.ads.AdActivity",
"com.mixpanel.android.surveys.SurveyActivity",
"com.sony.snei.np.android.account.oauth.BrowserRedirectReceiverActivity",
"com.spotify.mobile.android.arsenal.ArsenalSSOBrowserActivity",
"com.spotify.mobile.android.service.LoginActivity",
"com.spotify.mobile.android.service.ResetPasswordActivity",
"com.spotify.mobile.android.service.TermsOfServiceChangedActivity",
"com.spotify.mobile.android.spotlets.ads.BannerAdActivity",
"com.spotify.mobile.android.spotlets.openaccess.OpenAccessActivity",
"com.spotify.mobile.android.spotlets.share.ConnectFacebookActivity",
"com.spotify.mobile.android.spotlets.share.PostActivity",
"com.spotify.mobile.android.spotlets.suggestedtweet.SuggestedTweetActivity",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoPlayerActivity",
"com.spotify.mobile.android.ui.activity.AddToPlaylistActivity",
"com.spotify.mobile.android.ui.activity.AnnotateDiscardChangesActivity",
"com.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity",
"com.spotify.mobile.android.ui.activity.AppRaterActivity",
"com.spotify.mobile.android.ui.activity.ConfirmDeletionActivity",
"com.spotify.mobile.android.ui.activity.ConnectOnboardingActivity",
"com.spotify.mobile.android.ui.activity.CoverImageActivity",
"com.spotify.mobile.android.ui.activity.CreateRenamePlaylistActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsActivity",
"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsConfirmationActivity",
"com.spotify.mobile.android.ui.activity.DeletingCacheDialogActivity",
"com.spotify.mobile.android.ui.activity.DeviceActivity",
"com.spotify.mobile.android.ui.activity.DisableOfflineModeActivity",
"com.spotify.mobile.android.ui.activity.DiskAlmostFullActivity",
"com.spotify.mobile.android.ui.activity.FacebookPlaceholderActivity",
"com.spotify.mobile.android.ui.activity.FacebookWebPermissionsActivity",
"com.spotify.mobile.android.ui.activity.LastFmLoginDialog",
"com.spotify.mobile.android.ui.activity.LockScreenActivity",
"com.spotify.mobile.android.ui.activity.NotificationWebViewActivity",
"com.spotify.mobile.android.ui.activity.OfflineSyncErrorActivity",
"com.spotify.mobile.android.ui.activity.PermissionsActivity",
"com.spotify.mobile.android.ui.activity.PlayHistoryActivity",
"com.spotify.mobile.android.ui.activity.PlayQueueActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiMftGroup3NoMoreTimeActivity",
"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiOnlyActivity",
"com.spotify.mobile.android.ui.activity.PlayerActivity",
"com.spotify.mobile.android.ui.activity.RemotePlaybackActivity",
"com.spotify.mobile.android.ui.activity.ShareActivity",
"com.spotify.mobile.android.ui.activity.ShareToSpotifyActivity",
"com.spotify.mobile.android.ui.activity.ShowcaseActivity",
"com.spotify.mobile.android.ui.activity.SoundEffectsWarningActivity",
"com.spotify.mobile.android.ui.activity.TosTextActivity",
"com.spotify.mobile.android.ui.activity.UninstallOldAppActivity",
"com.spotify.mobile.android.ui.activity.UpdateActivity",
"com.spotify.mobile.android.ui.activity.VolumeWidgetActivity",
"com.spotify.mobile.android.ui.activity.dialog.HolidayOfferUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.PremiumUpsellInterstitialActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialReminderActivity",
"com.spotify.mobile.android.ui.activity.dialog.TrialStartedActivity",
"com.spotify.mobile.android.ui.activity.upsell.MarketingOptInActivity",
"com.spotify.mobile.android.ui.activity.upsell.PremiumSignupActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellDialogActivity",
"com.spotify.mobile.android.ui.activity.upsell.UpsellPremiumOnlyActivity",
"com.spotify.mobile.android.util.FragmentTesterActivity",
"com.spotify.mobile.android.util.ViewTesterActivity",
"com.spotify.music.MainActivity",
"com.spotify.music.spotlets.networkoperatorpremiumactivation.PremiumActivationOptInDialog"
],
"main activity": "com.spotify.music.MainActivity"
},
"services": [
"com.spotify.mobile.android.service.SpotifyService",
"com.spotify.mobile.android.video.VideoService",
"com.spotify.mobile.android.service.MetadataManagerProxy",
"com.spotify.mobile.android.service.ConnectManagerProxy",
"com.spotify.mobile.android.service.SessionManagerProxy",
"com.spotify.mobile.android.service.RemoteNativeRouterProxy",
"com.spotify.mobile.android.service.MonitorService",
"com.spotify.mobile.android.util.tracking.TrackingService",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerIntentService",
"com.spotify.mobile.android.service.DeviceIdentifierLoggerIntentService",
"com.spotify.music.internal.service.DeleteCacheService",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoService",
"com.spotify.music.internal.service.DeleteOldCacheLocationsService",
"com.spotify.mobile.android.spotlets.collection.service.AnnotateService",
"com.spotify.mobile.android.spotlets.collection.service.RecentlyPlayedService",
"com.spotify.mobile.android.spotlets.collection.cosmos.service.CollectionService",
"com.spotify.mobile.android.spotlets.offline.service.OfflineService",
"com.spotify.mobile.android.spotlets.podcast.service.PlayedStateService",
"com.spotify.mobile.android.spotlets.ads.VideoAdService",
"com.spotify.mobile.android.service.VideoPlayerManagerProxy",
"com.spotify.music.spotlets.situationalcontent.loggers.activityrecognition.ActivityRecognitionIntentService",
"com.spotify.music.spotlets.radio.service.RadioActionsService",
"com.spotify.mobile.android.service.player.PlayerStateService",
"com.spotify.mobile.android.service.session.SessionStateService",
"com.spotify.mobile.android.service.media.MediaService",
"com.spotify.mobile.android.applink.service.AppLinkService",
"com.spotify.mobile.android.service.feature.FeatureService",
"com.spotify.mobile.android.androidauto.SpotifyMediaBrowserService"
],
"broadcast receivers": [
"com.spotify.music.internal.receiver.MediaButtonReceiver",
"com.spotify.music.spotlets.optintrial.TrialAlarmBroadcastReceiver",
"com.spotify.music.spotlets.widget.SpotifyWidget",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerReceiver",
"com.spotify.music.spotlets.gcm.GcmBroadcastReceiver",
"com.spotify.mobile.android.applink.AppLinkBluetoothManager",
"com.spotify.music.internal.receiver.LoggerReceiver",
"com.spotify.mobile.android.spotlets.collection.receiver.ConnectionStateChangedReceiver",
"com.mixpanel.android.mpmetrics.InstallReferrerReceiver"
],
"content providers": [
"com.spotify.music.internal.provider.SpotifyProvider",
"com.spotify.music.internal.provider.LoggerProvider",
"com.spotify.mobile.android.util.prefs.PrefsProvider",
"com.spotify.mobile.android.service.media.provider.MediaProvider"
],
"public_content_providers": [
"com.spotify.mobile.android.service.media.provider.MediaProvider"
],
"intents": {
"services": {
"com_spotify_mobile_android_androidauto_SpotifyMediaBrowserService": {
"action": [
"android.media.browse.MediaBrowserService"
]
},
"com_spotify_mobile_android_service_RemoteNativeRouterProxy": {
"action": [
"com.spotify.mobile.service.action.COSMOS_PROXY"
]
}
},
"activities": {
"com_spotify_mobile_android_ui_activity_TosTextActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_sony_snei_np_android_account_oauth_BrowserRedirectReceiverActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_music_MainActivity": {
"action": [
"android.intent.action.MAIN",
"android.intent.action.MUSIC_PLAYER",
"android.nfc.action.NDEF_DISCOVERED",
"android.intent.action.SEARCH",
"android.intent.action.VIEW",
"com.facebook.application.174829003346",
"android.media.action.MEDIA_PLAY_FROM_SEARCH",
"com.sonymobile.media.dashboard.ACTION_VIEW_MUSIC_TILE"
],
"category": [
"android.intent.category.LAUNCHER",
"android.intent.category.DEFAULT",
"android.intent.category.APP_MUSIC",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_mobile_android_service_LoginActivity": {
"action": [
"com.spotify.mobile.android.service.action.session.LOGIN"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_arsenal_ArsenalSSOBrowserActivity": {
"action": [
"com.spotify.music.NPAM_ACTION_BROWSER"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.LAUNCHER"
]
}
},
"content providers": {},
"broadcast receivers": {
"com_mixpanel_android_mpmetrics_InstallReferrerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
},
"com_spotify_music_spotlets_optintrial_TrialAlarmBroadcastReceiver": {
"action": [
"com.spotify.music.spotlets.optintrial.action.TRIAL_REMINDER"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_spotlets_collection_receiver_ConnectionStateChangedReceiver": {
"action": [
"com.spotify.mobile.android.service.broadcast.session.CONNECTION_STATE_CHANGED"
]
},
"com_spotify_music_spotlets_widget_SpotifyWidget": {
"action": [
"android.appwidget.action.APPWIDGET_UPDATE",
"com.spotify.mobile.android.ui.widget.PREVIOUS",
"com.spotify.mobile.android.ui.widget.PLAY",
"com.spotify.mobile.android.ui.widget.NEXT"
]
},
"com_spotify_music_internal_receiver_LoggerReceiver": {
"action": [
"com.spotify.music.internal.receiver.CACHE_LOG"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_music_internal_receiver_MediaButtonReceiver": {
"action": [
"android.intent.action.MEDIA_BUTTON"
]
},
"com_spotify_mobile_android_applink_AppLinkBluetoothManager": {
"action": [
"android.bluetooth.adapter.action.STATE_CHANGED",
"android.bluetooth.device.action.ACL_CONNECTED",
"android.bluetooth.device.action.ACL_DISCONNECTED"
]
},
"com_spotify_music_spotlets_gcm_GcmBroadcastReceiver": {
"action": [
"com.google.android.c2dm.intent.RECEIVE"
],
"category": [
"com.spotify.music"
]
},
"com_spotify_music_spotlets_mobileapptracker_MobileAppTrackerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
}
}
}
},
"permissions": [
"android.permission.ACCESS_NETWORK_STATE",
"android.permission.ACCESS_WIFI_STATE",
"android.permission.BLUETOOTH",
"android.permission.BLUETOOTH_ADMIN",
"android.permission.BROADCAST_STICKY",
"android.permission.GET_ACCOUNTS",
"android.permission.INTERNET",
"android.permission.MANAGE_ACCOUNTS",
"android.permission.MODIFY_AUDIO_SETTINGS",
"android.permission.NFC",
"android.permission.READ_PHONE_STATE",
"android.permission.USE_CREDENTIALS",
"android.permission.WAKE_LOCK",
"android.permission.WRITE_EXTERNAL_STORAGE",
"com.android.vending.BILLING",
"com.google.android.c2dm.permission.RECEIVE",
"com.sony.snei.np.android.account.provider.permission.DUID_READ_PROVIDER",
"com.spotify.music.permission.C2D_MESSAGE"
],
"libraries": [],
"files": [
"META-INF/MANIFEST.MF",
"META-INF/RELEASE.SF",
"META-INF/RELEASE.RSA",
"META-INF/services/com.fasterxml.jackson.core.ObjectCodec",
"AndroidManifest.xml",
"assets/ProximaNova-Regular.otf",
"assets/ProximaNova-RegularT100.otf",
"assets/ProximaNova-RegularT50.otf",
"assets/ProximaNova-SemiBold.otf",
"assets/ProximaNova-SemiBoldT100.otf",
"assets/ProximaNova-SemiBoldT50.otf",
"assets/crashlytics-build.properties",
"assets/licenses.xhtml",
"assets/spoticon.ttf",
"assets/transfer.png",
"assets/unplaylable-local-file.xhtml",
"assets/unplaylable-local-file_es.xhtml",
"assets/unplaylable-local-file_fr.xhtml",
"res/anim/abc_fade_in.xml",
"res/anim/abc_fade_out.xml",
"res/anim/abc_slide_in_bottom.xml",
"res/anim/abc_slide_in_top.xml",
"res/anim/abc_slide_out_bottom.xml",
"res/anim/abc_slide_out_top.xml",
"res/anim/anim_in_left.xml",
"res/anim/anim_in_right.xml",
"res/anim/anim_out_left.xml",
"res/anim/anim_out_right.xml",
"res/anim/anim_scale_down_play_button.xml",
"res/anim/anim_scale_up_play_button.xml",
"res/anim/button_transition_in.xml",
"res/anim/button_transition_out.xml",
"res/color/abc_background_cache_hint_selector_material_dark.xml",
"res/color/abc_background_cache_hint_selector_material_light.xml",
"res/color/abc_primary_text_disable_only_material_dark.xml",
"res/color/abc_primary_text_disable_only_material_light.xml",
"res/color/abc_primary_text_material_dark.xml",
"res/color/abc_primary_text_material_light.xml",
"res/color/abc_search_url_text.xml",
"res/color/abc_secondary_text_material_dark.xml",
"res/color/abc_secondary_text_material_light.xml",
"res/color/btn_now_playing_gray.xml",
"res/color/btn_now_playing_gray_checkable.xml",
"res/color/btn_now_playing_gray_disabled.xml",
"res/color/btn_now_playing_thumb_down.xml",
"res/color/btn_now_playing_thumb_up.xml",
"res/color/btn_now_playing_white.xml",
"res/color/btn_share_connect_icon.xml",
"res/color/cat_accessory.xml",
"res/color/cat_button_border.xml",
"res/color/cat_button_info_dialog_text.xml",
"res/color/cat_button_info_text.xml",
"res/color/cat_button_primary_text.xml",
"res/color/cat_button_text.xml",
"res/color/cat_dialog_button_negative_text.xml",
"res/color/cat_dialog_button_positive_text.xml",
"res/color/cat_navigationitem_icon.xml",
"res/color/cat_navigationitem_text.xml",
"res/color/cat_profile_panel.xml",
"res/color/cat_signup_panel.xml",
"res/color/cat_tab_text.xml",
"res/color/cat_text_primary.xml",
"res/color/cat_text_primary_muted.xml",
"res/color/cat_text_secondary.xml",
"res/color/cat_text_secondary_muted.xml",
"res/color/common_signin_btn_text_dark.xml",
"res/color/common_signin_btn_text_light.xml",
"res/color/txt_btn_facebook.xml",
"res/color/txt_button_light.xml",
"res/color/txt_cell_cover_subtitle.xml",
"res/color/txt_cell_cover_title.xml",
"res/color/txt_cell_navigation.xml",
"res/color/txt_cell_queue_subtitle.xml",
"res/color/txt_cell_queue_title.xml",
"res/color/txt_cell_subtitle.xml",
"res/color/txt_cell_title.xml",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/album_covers_splash.png",
"res/drawable-hdpi-v4/background_icon.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_focused.9.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_pressed.9.png",
"res/drawable-hdpi-v4/bg_bubble.9.png",
"res/drawable-hdpi-v4/bg_dark_albums.jpg",
"res/drawable-hdpi-v4/bg_header_placeholder.png",
"res/drawable-hdpi-v4/bg_holiday_offer_upsell_interstitial_top.png",
"res/drawable-hdpi-v4/bg_premium_upsell_interstitial_top.jpg",
"res/drawable-hdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-hdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_primary.9.png",
"res/drawable-hdpi-v4/btn_big_primary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_big_primary_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_secondary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-hdpi-v4/btn_facebook_normal.9.png",
"res/drawable-hdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-hdpi-v4/btn_g_icon.png",
"res/drawable-hdpi-v4/btn_overlay_pause.png",
"res/drawable-hdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-hdpi-v4/btn_overlay_play.png",
"res/drawable-hdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-hdpi-v4/btn_player_in_collection_checked.png",
"res/drawable-hdpi-v4/cat_navigation_background.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-hdpi-v4/com_facebook_close.png",
"res/drawable-hdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-hdpi-v4/com_facebook_logo.png",
"res/drawable-hdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-hdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-hdpi-v4/common_full_open_on_phone.png",
"res/drawable-hdpi-v4/common_ic_googleplayservices.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-hdpi-v4/connect_device_type_computer.png",
"res/drawable-hdpi-v4/connect_device_type_receiver.png",
"res/drawable-hdpi-v4/connect_device_type_smartphone.png",
"res/drawable-hdpi-v4/connect_device_type_speaker.png",
"res/drawable-hdpi-v4/connect_device_type_tablet.png",
"res/drawable-hdpi-v4/connect_device_type_tv.png",
"res/drawable-hdpi-v4/connect_header_img.png",
"res/drawable-hdpi-v4/connect_showcase.png",
"res/drawable-hdpi-v4/fastscroll_default.png",
"res/drawable-hdpi-v4/fastscroll_pressed.png",
"res/drawable-hdpi-v4/genesis_new_releases.png",
"res/drawable-hdpi-v4/genesis_recommended_for_you.png",
"res/drawable-hdpi-v4/genesis_toplists.png",
"res/drawable-hdpi-v4/highlights.png",
"res/drawable-hdpi-v4/hlv_overscroll_edge.png",
"res/drawable-hdpi-v4/hlv_overscroll_glow.png",
"res/drawable-hdpi-v4/ic_action_navigation_menu.png",
"res/drawable-hdpi-v4/ic_menu_info_details.png",
"res/drawable-hdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-hdpi-v4/icn_add_to_collection.png",
"res/drawable-hdpi-v4/icn_add_to_playlist.png",
"res/drawable-hdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-hdpi-v4/icn_download_header_waiting.png",
"res/drawable-hdpi-v4/icn_download_waiting.png",
"res/drawable-hdpi-v4/icn_facebook.png",
"res/drawable-hdpi-v4/icn_mft_home_back.png",
"res/drawable-hdpi-v4/icn_mft_home_logo.png",
"res/drawable-hdpi-v4/icn_notification.png",
"res/drawable-hdpi-v4/icn_notification_add_to.png",
"res/drawable-hdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-hdpi-v4/icn_notification_dismiss.png",
"res/drawable-hdpi-v4/icn_notification_next_disabled.png",
"res/drawable-hdpi-v4/icn_notification_next_normal.png",
"res/drawable-hdpi-v4/icn_notification_pause_normal.png",
"res/drawable-hdpi-v4/icn_notification_play_normal.png",
"res/drawable-hdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-hdpi-v4/icn_notification_prev_normal.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-hdpi-v4/icn_playlist.png",
"res/drawable-hdpi-v4/icn_playlist_collaborative.png",
"res/drawable-hdpi-v4/icn_quickact_album.png",
"res/drawable-hdpi-v4/icn_quickact_artist.png",
"res/drawable-hdpi-v4/icn_quickact_delete.png",
"res/drawable-hdpi-v4/icn_quickact_queue.png",
"res/drawable-hdpi-v4/icn_quickact_radio.png",
"res/drawable-hdpi-v4/icn_quickact_share.png",
"res/drawable-hdpi-v4/icn_quickact_star.png",
"res/drawable-hdpi-v4/icn_radio.png",
"res/drawable-hdpi-v4/icn_radio_added_to_liked.png",
"res/drawable-hdpi-v4/icn_radio_checkmark.png",
"res/drawable-hdpi-v4/icn_radio_offline.png",
"res/drawable-hdpi-v4/icn_remove_from_collection.png",
"res/drawable-hdpi-v4/icn_share.png",
"res/drawable-hdpi-v4/icn_sort.png",
"res/drawable-hdpi-v4/icn_spotify_login.png",
"res/drawable-hdpi-v4/icon.png",
"res/drawable-hdpi-v4/img_spotify_logo_text.png",
"res/drawable-hdpi-v4/img_trial_started.png",
"res/drawable-hdpi-v4/logo_smaller.png",
"res/drawable-hdpi-v4/mft_home_background1.jpg",
"res/drawable-hdpi-v4/mft_home_background2.jpg",
"res/drawable-hdpi-v4/mft_home_background3.jpg",
"res/drawable-hdpi-v4/mobile_artist_concert_header.png",
"res/drawable-hdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-hdpi-v4/nav_icon.png",
"res/drawable-hdpi-v4/nav_icon_gray.png",
"res/drawable-hdpi-v4/notification_feature_announcement.jpg",
"res/drawable-hdpi-v4/powered_by_google_dark.png",
"res/drawable-hdpi-v4/powered_by_google_light.png",
"res/drawable-hdpi-v4/profile_panel_invitation_codes_panel.9.png",
"res/drawable-hdpi-v4/psn_icon.png",
"res/drawable-hdpi-v4/small_icon.png",
"res/drawable-hdpi-v4/socialchart_showcase.png",
"res/drawable-hdpi-v4/sp_logo.png",
"res/drawable-hdpi-v4/spinner_white.png",
"res/drawable-hdpi-v4/widget_bg.9.png",
"res/drawable-hdpi-v4/widget_next_disabled.png",
"res/drawable-hdpi-v4/widget_next_normal.png",
"res/drawable-hdpi-v4/widget_pause_disabled.png",
"res/drawable-hdpi-v4/widget_pause_normal.png",
"res/drawable-hdpi-v4/widget_play_disabled.png",
"res/drawable-hdpi-v4/widget_play_normal.png",
"res/drawable-hdpi-v4/widget_prev_disabled.png",
"res/drawable-hdpi-v4/widget_prev_normal.png",
"res/drawable-hdpi-v4/widget_preview.png",
"res/drawable-land-hdpi-v4/mft_home_background1.jpg",
"res/drawable-land-hdpi-v4/mft_home_background2.jpg",
"res/drawable-land-hdpi-v4/mft_home_background3.jpg",
"res/drawable-land-mdpi-v4/mft_home_background1.jpg",
"res/drawable-land-mdpi-v4/mft_home_background2.jpg",
"res/drawable-land-mdpi-v4/mft_home_background3.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-ldpi-v4/bg_header_placeholder.png",
"res/drawable-ldpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-ldpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-ldpi-v4/btn_facebook_disabled.9.png",
"res/drawable-ldpi-v4/btn_facebook_normal.9.png",
"res/drawable-ldpi-v4/btn_facebook_pressed.9.png",
"res/drawable-ldpi-v4/btn_g_icon.png",
"res/drawable-ldpi-v4/btn_overlay_pause.png",
"res/drawable-ldpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-ldpi-v4/btn_overlay_play.png",
"res/drawable-ldpi-v4/btn_overlay_play_pressed.png",
"res/drawable-ldpi-v4/com_facebook_close.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-ldpi-v4/com_mixpanel_android_logo.png",
"res/drawable-ldpi-v4/connect_header_img.png",
"res/drawable-ldpi-v4/connect_showcase.png",
"res/drawable-ldpi-v4/hlv_overscroll_edge.png",
"res/drawable-ldpi-v4/hlv_overscroll_glow.png",
"res/drawable-ldpi-v4/icn_facebook.png",
"res/drawable-ldpi-v4/icn_notification.png",
"res/drawable-ldpi-v4/icon.png",
"res/drawable-ldpi-v4/socialchart_showcase.png",
"res/drawable-ldpi-v4/spinner_white.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/bg_header_placeholder.png",
"res/drawable-mdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-mdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-mdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-mdpi-v4/btn_facebook_normal.9.png",
"res/drawable-mdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-mdpi-v4/btn_g_icon.png",
"res/drawable-mdpi-v4/btn_overlay_pause.png",
"res/drawable-mdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-mdpi-v4/btn_overlay_play.png",
"res/drawable-mdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-mdpi-v4/cat_navigation_background.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-mdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-mdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-mdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-mdpi-v4/connect_header_img.png",
"res/drawable-mdpi-v4/connect_showcase.png",
"res/drawable-mdpi-v4/fastscroll_default.png",
"res/drawable-mdpi-v4/fastscroll_pressed.png",
"res/drawable-mdpi-v4/hlv_overscroll_edge.png",
"res/drawable-mdpi-v4/hlv_overscroll_glow.png",
"res/drawable-mdpi-v4/ic_action_navigation_menu.png",
"res/drawable-mdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-mdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-mdpi-v4/icn_facebook.png",
"res/drawable-mdpi-v4/icn_ford_logo.png",
"res/drawable-mdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-mdpi-v4/icn_mft_home_back.png",
"res/drawable-mdpi-v4/icn_mft_home_logo.png",
"res/drawable-mdpi-v4/icn_notification.png",
"res/drawable-mdpi-v4/icon.png",
"res/drawable-mdpi-v4/img_spotify_logo_text.png",
"res/drawable-mdpi-v4/logo_smaller.png",
"res/drawable-mdpi-v4/mft_home_background1.jpg",
"res/drawable-mdpi-v4/mft_home_background2.jpg",
"res/drawable-mdpi-v4/mft_home_background3.jpg",
"res/drawable-mdpi-v4/mobile_artist_concert_header.png",
"res/drawable-mdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-mdpi-v4/nav_icon.png",
"res/drawable-mdpi-v4/nav_icon_gray.png",
"res/drawable-mdpi-v4/powered_by_google_dark.png",
"res/drawable-mdpi-v4/powered_by_google_light.png",
"res/drawable-mdpi-v4/psn_icon.png",
"res/drawable-mdpi-v4/socialchart_showcase.png",
"res/drawable-mdpi-v4/sp_logo.png",
"res/drawable-mdpi-v4/spinner_white.png",
"res/drawable-nodpi-v4/cat_placeholder_album.png",
"res/drawable-nodpi-v4/cat_placeholder_artist.png",
"res/drawable-nodpi-v4/cat_placeholder_flag.png",
"res/drawable-nodpi-v4/cat_placeholder_genre.png",
"res/drawable-nodpi-v4/cat_placeholder_inbox.png",
"res/drawable-nodpi-v4/cat_placeholder_offline.png",
"res/drawable-nodpi-v4/cat_placeholder_playlist.png",
"res/drawable-nodpi-v4/cat_placeholder_podcast.png",
"res/drawable-nodpi-v4/cat_placeholder_search.png",
"res/drawable-nodpi-v4/cat_placeholder_star.png",
"res/drawable-nodpi-v4/cat_placeholder_toplist.png",
"res/drawable-nodpi-v4/cat_placeholder_track.png",
"res/drawable-nodpi-v4/cat_placeholder_user.png",
"res/drawable-nodpi-v4/cat_placeholder_warning.png",
"res/drawable-nodpi-v4/placeholder_annotate.png",
"res/drawable-nodpi-v4/placeholder_artist.png",
"res/drawable-nodpi-v4/placeholder_genre.png",
"res/drawable-nodpi-v4/placeholder_playlist.png",
"res/drawable-nodpi-v4/placeholder_user.png",
"res/drawable-small-ldpi-v4/icn_radio_offline.png",
"res/drawable-tvdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-v11/cat_dialog_button_left.xml",
"res/drawable-v11/cat_dialog_button_right.xml",
"res/drawable-v11/cat_listitem_background.xml",
"res/drawable-v11/cat_listitem_background_activated.xml",
"res/drawable-v21/abc_cab_background_top_material.xml",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_menu_dropdown_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/background_icon.png",
"res/drawable-xhdpi-v4/bg_header_placeholder.png",
"res/drawable-xhdpi-v4/bg_login_browse.jpg",
"res/drawable-xhdpi-v4/bg_login_landing.jpg",
"res/drawable-xhdpi-v4/bg_login_radio.jpg",
"res/drawable-xhdpi-v4/bg_login_search.jpg",
"res/drawable-xhdpi-v4/bg_login_yourmusic.jpg",
"res/drawable-xhdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-xhdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-xhdpi-v4/bg_upsell_carousel.jpg",
"res/drawable-xhdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-xhdpi-v4/btn_facebook_normal.9.png",
"res/drawable-xhdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-xhdpi-v4/btn_g_icon.png",
"res/drawable-xhdpi-v4/btn_overlay_pause.png",
"res/drawable-xhdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-xhdpi-v4/btn_overlay_play.png",
"res/drawable-xhdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-xhdpi-v4/cat_edit_background_activated.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_dialog_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled_focused.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_feedback_image.png",
"res/drawable-xhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xhdpi-v4/cat_navigationitem_background_active.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_default.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xhdpi-v4/com_facebook_close.png",
"res/drawable-xhdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-xhdpi-v4/com_facebook_logo.png",
"res/drawable-xhdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xhdpi-v4/connect_header_img.png",
"res/drawable-xhdpi-v4/connect_showcase.png",
"res/drawable-xhdpi-v4/contextmenu_placeholder.png",
"res/drawable-xhdpi-v4/fastscroll_default.png",
"res/drawable-xhdpi-v4/fastscroll_pressed.png",
"res/drawable-xhdpi-v4/find_friends.jpg",
"res/drawable-xhdpi-v4/globe_telecom_flair_1.png",
"res/drawable-xhdpi-v4/globe_telecom_flair_2.png",
"res/drawable-xhdpi-v4/globe_telecom_logo.png",
"res/drawable-xhdpi-v4/hlv_overscroll_edge.png",
"res/drawable-xhdpi-v4/hlv_overscroll_glow.png",
"res/drawable-xhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xhdpi-v4/icn_ads.png",
"res/drawable-xhdpi-v4/icn_ads_large.png",
"res/drawable-xhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xhdpi-v4/icn_device_picker_volume.png",
"res/drawable-xhdpi-v4/icn_facebook.png",
"res/drawable-xhdpi-v4/icn_ford_logo.png",
"res/drawable-xhdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-xhdpi-v4/icn_mft_home_back.png",
"res/drawable-xhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xhdpi-v4/icn_notification.png",
"res/drawable-xhdpi-v4/icn_notification_add_to.png",
"res/drawable-xhdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_dismiss.png",
"res/drawable-xhdpi-v4/icn_notification_next_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_next_normal.png",
"res/drawable-xhdpi-v4/icn_notification_pause_normal.png",
"res/drawable-xhdpi-v4/icn_notification_play_normal.png",
"res/drawable-xhdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_prev_normal.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-xhdpi-v4/icn_right_point_caret.png",
"res/drawable-xhdpi-v4/icon.png",
"res/drawable-xhdpi-v4/img_spotify_logo_text.png",
"res/drawable-xhdpi-v4/logo_smaller.png",
"res/drawable-xhdpi-v4/mediaservice_pause.png",
"res/drawable-xhdpi-v4/mediaservice_play.png",
"res/drawable-xhdpi-v4/mediaservice_save.png",
"res/drawable-xhdpi-v4/mediaservice_save_enabled.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle_checked.png",
"res/drawable-xhdpi-v4/mediaservice_skip_next.png",
"res/drawable-xhdpi-v4/mediaservice_skip_previous.png",
"res/drawable-xhdpi-v4/mediaservice_start_radio_black.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_down.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up_selected.png",
"res/drawable-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-xhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xhdpi-v4/nav_icon.png",
"res/drawable-xhdpi-v4/nav_icon_gray.png",
"res/drawable-xhdpi-v4/powered_by_google_dark.png",
"res/drawable-xhdpi-v4/powered_by_google_light.png",
"res/drawable-xhdpi-v4/premium_upsell_icon.png",
"res/drawable-xhdpi-v4/psn_icon.png",
"res/drawable-xhdpi-v4/small_icon.png",
"res/drawable-xhdpi-v4/socialchart_showcase.png",
"res/drawable-xhdpi-v4/sp_logo.png",
"res/drawable-xhdpi-v4/spinner_16_inner_holo.png",
"res/drawable-xhdpi-v4/spinner_16_outer_holo.png",
"res/drawable-xhdpi-v4/spinner_white.png",
"res/drawable-xhdpi-v4/widget_next_disabled.png",
"res/drawable-xhdpi-v4/widget_next_normal.png",
"res/drawable-xhdpi-v4/widget_pause_disabled.png",
"res/drawable-xhdpi-v4/widget_pause_normal.png",
"res/drawable-xhdpi-v4/widget_play_disabled.png",
"res/drawable-xhdpi-v4/widget_play_normal.png",
"res/drawable-xhdpi-v4/widget_prev_disabled.png",
"res/drawable-xhdpi-v4/widget_prev_normal.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/background_icon.png",
"res/drawable-xxhdpi-v4/btn_g_icon.png",
"res/drawable-xxhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xxhdpi-v4/cat_overflow_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xxhdpi-v4/connect_header_img.png",
"res/drawable-xxhdpi-v4/fastscroll_default.png",
"res/drawable-xxhdpi-v4/fastscroll_pressed.png",
"res/drawable-xxhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xxhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxhdpi-v4/icn_facebook.png",
"res/drawable-xxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxhdpi-v4/icon.png",
"res/drawable-xxhdpi-v4/logo_smaller.png",
"res/drawable-xxhdpi-v4/mediaservice_albums.png",
"res/drawable-xxhdpi-v4/mediaservice_artists.png",
"res/drawable-xxhdpi-v4/mediaservice_browse.png",
"res/drawable-xxhdpi-v4/mediaservice_newreleases.png",
"res/drawable-xxhdpi-v4/mediaservice_playlists.png",
"res/drawable-xxhdpi-v4/mediaservice_radio.png",
"res/drawable-xxhdpi-v4/mediaservice_starred.png",
"res/drawable-xxhdpi-v4/mediaservice_yourmusic.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xxhdpi-v4/nav_icon.png",
"res/drawable-xxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxhdpi-v4/powered_by_google_dark.png",
"res/drawable-xxhdpi-v4/powered_by_google_light.png",
"res/drawable-xxhdpi-v4/psn_icon.png",
"res/drawable-xxhdpi-v4/small_icon.png",
"res/drawable-xxhdpi-v4/sp_logo.png",
"res/drawable-xxhdpi-v4/widget_next_disabled.png",
"res/drawable-xxhdpi-v4/widget_next_normal.png",
"res/drawable-xxhdpi-v4/widget_pause_disabled.png",
"res/drawable-xxhdpi-v4/widget_pause_normal.png",
"res/drawable-xxhdpi-v4/widget_placeholder.png",
"res/drawable-xxhdpi-v4/widget_play_disabled.png",
"res/drawable-xxhdpi-v4/widget_play_normal.png",
"res/drawable-xxhdpi-v4/widget_prev_disabled.png",
"res/drawable-xxhdpi-v4/widget_prev_normal.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/connect_header_img.png",
"res/drawable-xxxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxxhdpi-v4/icon.png",
"res/drawable-xxxhdpi-v4/logo_smaller.png",
"res/drawable-xxxhdpi-v4/nav_icon.png",
"res/drawable-xxxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxxhdpi-v4/psn_icon.png",
"res/drawable-xxxhdpi-v4/sp_logo.png",
"res/drawable/abc_btn_check_material.xml",
"res/drawable/abc_btn_radio_material.xml",
"res/drawable/abc_cab_background_internal_bg.xml",
"res/drawable/abc_cab_background_top_material.xml",
"res/drawable/abc_edit_text_material.xml",
"res/drawable/abc_item_background_holo_dark.xml",
"res/drawable/abc_item_background_holo_light.xml",
"res/drawable/abc_list_selector_background_transition_holo_dark.xml",
"res/drawable/abc_list_selector_background_transition_holo_light.xml",
"res/drawable/abc_list_selector_holo_dark.xml",
"res/drawable/abc_list_selector_holo_light.xml",
"res/drawable/abc_switch_thumb_material.xml",
"res/drawable/abc_tab_indicator_material.xml",
"res/drawable/abc_textfield_search_material.xml",
"res/drawable/bg_actionbar_item.xml",
"res/drawable/bg_actionbar_tab.xml",
"res/drawable/bg_activity_card.xml",
"res/drawable/bg_browse_header.xml",
"res/drawable/bg_browse_start_fragment_header.xml",
"res/drawable/bg_button_dialog_bottom_left_light.xml",
"res/drawable/bg_button_dialog_bottom_light.xml",
"res/drawable/bg_button_dialog_bottom_right_light.xml",
"res/drawable/bg_button_light.xml",
"res/drawable/bg_button_queue.xml",
"res/drawable/bg_cat_login_field.xml",
"res/drawable/bg_cell.xml",
"res/drawable/bg_connect_playing_from_bar_cat.xml",
"res/drawable/bg_dialog_button_divider.xml",
"res/drawable/bg_discover.xml",
"res/drawable/bg_globe_telecom_premium_activation.xml",
"res/drawable/bg_header.xml",
"res/drawable/bg_notification_button.xml",
"res/drawable/bg_placeholder_album.xml",
"res/drawable/bg_placeholder_annotate_image.xml",
"res/drawable/bg_placeholder_artist.xml",
"res/drawable/bg_placeholder_artist_black.xml",
"res/drawable/bg_placeholder_playlist.xml",
"res/drawable/bg_placeholder_user.xml",
"res/drawable/bg_popup.xml",
"res/drawable/bg_popup_outside.xml",
"res/drawable/bg_premium_upsell_interstitial_reason.xml",
"res/drawable/bg_settings_bubble.xml",
"res/drawable/bg_share_connect_icon_facebook.xml",
"res/drawable/bg_share_connect_icon_tumblr.xml",
"res/drawable/bg_share_connect_icon_twitter.xml",
"res/drawable/bg_toast.xml",
"res/drawable/bg_upsell_banner.xml",
"res/drawable/bg_widget_button.xml",
"res/drawable/btn_cat_login_button_facebook.xml",
"res/drawable/btn_cat_login_button_google.xml",
"res/drawable/btn_cat_login_button_later.xml",
"res/drawable/btn_cat_login_button_primary.xml",
"res/drawable/btn_cat_login_button_secondary.xml",
"res/drawable/btn_cat_nav_upsell_button.xml",
"res/drawable/btn_facebook.xml",
"res/drawable/btn_header_overlay_pause.xml",
"res/drawable/btn_header_overlay_play.xml",
"res/drawable/btn_intro_primary.xml",
"res/drawable/btn_twitter.xml",
"res/drawable/button_download.xml",
"res/drawable/cat_actionbar_background.xml",
"res/drawable/cat_actionbar_background_split.xml",
"res/drawable/cat_back_dummy.xml",
"res/drawable/cat_button.xml",
"res/drawable/cat_button_danger.xml",
"res/drawable/cat_button_info.xml",
"res/drawable/cat_button_info_small.xml",
"res/drawable/cat_button_info_small_state_default.xml",
"res/drawable/cat_button_info_small_state_disabled.xml",
"res/drawable/cat_button_info_small_state_focused.xml",
"res/drawable/cat_button_info_small_state_pressed.xml",
"res/drawable/cat_button_info_state_default.xml",
"res/drawable/cat_button_info_state_disabled.xml",
"res/drawable/cat_button_info_state_focused.xml",
"res/drawable/cat_button_info_state_pressed.xml",
"res/drawable/cat_button_primary.xml",
"res/drawable/cat_button_primary_small.xml",
"res/drawable/cat_button_primary_small_state_default.xml",
"res/drawable/cat_button_primary_small_state_disabled.xml",
"res/drawable/cat_button_primary_small_state_focused.xml",
"res/drawable/cat_button_primary_small_state_pressed.xml",
"res/drawable/cat_button_primary_state_default.xml",
"res/drawable/cat_button_primary_state_disabled.xml",
"res/drawable/cat_button_primary_state_focused.xml",
"res/drawable/cat_button_primary_state_pressed.xml",
"res/drawable/cat_button_small.xml",
"res/drawable/cat_button_small_state_checked.xml",
"res/drawable/cat_button_small_state_default.xml",
"res/drawable/cat_button_small_state_disabled.xml",
"res/drawable/cat_button_small_state_focused.xml",
"res/drawable/cat_button_small_state_pressed.xml",
"res/drawable/cat_button_state_checked.xml",
"res/drawable/cat_button_state_default.xml",
"res/drawable/cat_button_state_disabled.xml",
"res/drawable/cat_button_state_focused.xml",
"res/drawable/cat_button_state_pressed.xml",
"res/drawable/cat_card_background.xml",
"res/drawable/cat_card_foreground.xml",
"res/drawable/cat_checkbox.xml",
"res/drawable/cat_dialog_background.xml",
"res/drawable/cat_dialog_button_bar_background.xml",
"res/drawable/cat_dialog_button_left.xml",
"res/drawable/cat_dialog_button_right.xml",
"res/drawable/cat_dialog_button_single_negative.xml",
"res/drawable/cat_dialog_button_single_positive.xml",
"res/drawable/cat_dropdown_list_divider.xml",
"res/drawable/cat_edit_background.xml",
"res/drawable/cat_edit_background_dialog.xml",
"res/drawable/cat_filter_list_background.xml",
"res/drawable/cat_filter_list_divider.xml",
"res/drawable/cat_list_divider.xml",
"res/drawable/cat_list_divider_light.xml",
"res/drawable/cat_list_divider_vertical.xml",
"res/drawable/cat_list_popup_filter_selector.xml",
"res/drawable/cat_list_selector.xml",
"res/drawable/cat_list_selector_default.xml",
"res/drawable/cat_list_selector_focused.xml",
"res/drawable/cat_list_selector_focused_no_margin.xml",
"res/drawable/cat_list_selector_light.xml",
"res/drawable/cat_list_selector_light_focused.xml",
"res/drawable/cat_list_selector_light_pressed.xml",
"res/drawable/cat_list_selector_no_margin.xml",
"res/drawable/cat_list_selector_pressed.xml",
"res/drawable/cat_list_selector_pressed_no_margin.xml",
"res/drawable/cat_listitem_background.xml",
"res/drawable/cat_listitem_background_default.xml",
"res/drawable/cat_navigation_list_divider.xml",
"res/drawable/cat_navigationitem_background.xml",
"res/drawable/cat_notificationbadge_background.xml",
"res/drawable/cat_progress.xml",
"res/drawable/cat_seekbar_thumb.xml",
"res/drawable/cat_seekbar_thumb_default.xml",
"res/drawable/cat_spinner_background.xml",
"res/drawable/cat_switch.xml",
"res/drawable/cat_switch_default.xml",
"res/drawable/cat_switch_disabled.xml",
"res/drawable/cat_switch_focused.xml",
"res/drawable/cat_switch_thumb.xml",
"res/drawable/cat_switch_thumb_default.xml",
"res/drawable/cat_switch_thumb_disabled.xml",
"res/drawable/cat_text_background_explicit.xml",
"res/drawable/com_facebook_button_blue.xml",
"res/drawable/com_facebook_button_blue_focused.9.png",
"res/drawable/com_facebook_button_blue_normal.9.png",
"res/drawable/com_facebook_button_blue_pressed.9.png",
"res/drawable/com_facebook_button_check.xml",
"res/drawable/com_facebook_button_check_off.png",
"res/drawable/com_facebook_button_check_on.png",
"res/drawable/com_facebook_button_grey_focused.9.png",
"res/drawable/com_facebook_button_grey_normal.9.png",
"res/drawable/com_facebook_button_grey_pressed.9.png",
"res/drawable/com_facebook_button_like.xml",
"res/drawable/com_facebook_button_like_background.png",
"res/drawable/com_facebook_button_like_background_selected.png",
"res/drawable/com_facebook_button_like_icon.png",
"res/drawable/com_facebook_button_like_icon_selected.png",
"res/drawable/com_facebook_button_like_pressed.png",
"res/drawable/com_facebook_button_like_selected.xml",
"res/drawable/com_facebook_close.png",
"res/drawable/com_facebook_inverse_icon.png",
"res/drawable/com_facebook_list_divider.9.png",
"res/drawable/com_facebook_list_section_header_background.9.png",
"res/drawable/com_facebook_loginbutton_silver.xml",
"res/drawable/com_facebook_logo.png",
"res/drawable/com_facebook_picker_item_background.xml",
"res/drawable/com_facebook_picker_list_focused.9.png",
"res/drawable/com_facebook_picker_list_longpressed.9.png",
"res/drawable/com_facebook_picker_list_pressed.9.png",
"res/drawable/com_facebook_picker_list_selector.xml",
"res/drawable/com_facebook_picker_list_selector_background_transition.xml",
"res/drawable/com_facebook_picker_list_selector_disabled.9.png",
"res/drawable/com_facebook_picker_top_button.xml",
"res/drawable/com_facebook_place_default_icon.png",
"res/drawable/com_facebook_profile_default_icon.png",
"res/drawable/com_facebook_profile_picture_blank_portrait.png",
"res/drawable/com_facebook_profile_picture_blank_square.png",
"res/drawable/com_facebook_top_background.xml",
"res/drawable/com_facebook_top_button.xml",
"res/drawable/com_facebook_usersettingsfragment_background_gradient.xml",
"res/drawable/com_mixpanel_android_arrowleft_insets.xml",
"res/drawable/com_mixpanel_android_arrowleft_states.xml",
"res/drawable/com_mixpanel_android_arrowright_insets.xml",
"res/drawable/com_mixpanel_android_arrowright_states.xml",
"res/drawable/com_mixpanel_android_checkmark_states.xml",
"res/drawable/com_mixpanel_android_choice_first_states.xml",
"res/drawable/com_mixpanel_android_choice_last_states.xml",
"res/drawable/com_mixpanel_android_choice_middle_states.xml",
"res/drawable/com_mixpanel_android_nocolor_list.xml",
"res/drawable/com_mixpanel_android_rounded_bottom.9.png",
"res/drawable/com_mixpanel_android_rounded_bottom_selected.9.png",
"res/drawable/com_mixpanel_android_rounded_top.9.png",
"res/drawable/com_mixpanel_android_rounded_top_selected.9.png",
"res/drawable/com_mixpanel_android_square.9.png",
"res/drawable/com_mixpanel_android_square_selected.9.png",
"res/drawable/com_mixpanel_android_text_answer_border.xml",
"res/drawable/common_signin_btn_icon_dark.xml",
"res/drawable/common_signin_btn_icon_light.xml",
"res/drawable/common_signin_btn_text_dark.xml",
"res/drawable/common_signin_btn_text_light.xml",
"res/drawable/fastscroll_selector.xml",
"res/drawable/icn_loading_indicator.xml",
"res/drawable/img_end_of_trial.xml",
"res/drawable/indicator_bar.xml",
"res/drawable/mft_home_cell_border.xml",
"res/drawable/player_progress_thumb.xml",
"res/drawable/profile_panel_badge_background.xml",
"res/drawable/progress_small.xml",
"res/drawable/progress_small_holo.xml",
"res/drawable/socialchart_list_divider.xml",
"res/drawable/socialchart_remaining_shape.xml",
"res/drawable/transparent.xml",
"res/layout-land/fragment_mft2_home.xml",
"res/layout-land/list.xml",
"res/layout-land/list_with_overlay.xml",
"res/layout-land/mobile_artist_bio.xml",
"res/layout-land/player.xml",
"res/layout-land/player_content_view.xml",
"res/layout-land/player_controls.xml",
"res/layout-v11/abc_screen_content_include.xml",
"res/layout-v21/abc_screen_toolbar.xml",
"res/layout/abc_action_bar_title_item.xml",
"res/layout/abc_action_bar_up_container.xml",
"res/layout/abc_action_bar_view_list_nav_layout.xml",
"res/layout/abc_action_menu_item_layout.xml",
"res/layout/abc_action_menu_layout.xml",
"res/layout/abc_action_mode_bar.xml",
"res/layout/abc_action_mode_close_item_material.xml",
"res/layout/abc_activity_chooser_view.xml",
"res/layout/abc_activity_chooser_view_include.xml",
"res/layout/abc_activity_chooser_view_list_item.xml",
"res/layout/abc_expanded_menu_layout.xml",
"res/layout/abc_list_menu_item_checkbox.xml",
"res/layout/abc_list_menu_item_icon.xml",
"res/layout/abc_list_menu_item_layout.xml",
"res/layout/abc_list_menu_item_radio.xml",
"res/layout/abc_popup_menu_item_layout.xml",
"res/layout/abc_screen_content_include.xml",
"res/layout/abc_screen_simple.xml",
"res/layout/abc_screen_simple_overlay_action_mode.xml",
"res/layout/abc_screen_toolbar.xml",
"res/layout/abc_search_dropdown_item_icons_2line.xml",
"res/layout/abc_search_view.xml",
"res/layout/abc_simple_dropdown_hint.xml",
"res/layout/actionbar_search.xml",
"res/layout/activity_annotate_playlist.xml",
"res/layout/activity_cover_image.xml",
"res/layout/activity_default.xml",
"res/layout/activity_device.xml",
"res/layout/activity_disable_offline_mode.xml",
"res/layout/activity_facebook_webview.xml",
"res/layout/activity_general_message_radio_and_premium.xml",
"res/layout/activity_globe_premium_activation.xml",
"res/layout/activity_holiday_offer_upsell_interstitial.xml",
"res/layout/activity_lockscreen.xml",
"res/layout/activity_marketing_opt_in_body.xml",
"res/layout/activity_notification_webview.xml",
"res/layout/activity_open.xml",
"res/layout/activity_player.xml",
"res/layout/activity_premium_signup.xml",
"res/layout/activity_premium_upsell_interstitial.xml",
"res/layout/activity_reset_password.xml",
"res/layout/activity_showcase.xml",
"res/layout/activity_tos_text.xml",
"res/layout/activity_two_buttons_dialog.xml",
"res/layout/activity_uninstall_old_app.xml",
"res/layout/activity_upsell_dialog.xml",
"res/layout/activity_video_player.xml",
"res/layout/additional_info_bar.xml",
"res/layout/biography_image_view.xml",
"res/layout/browse_cover_card.xml",
"res/layout/browse_new_releases_header.xml",
"res/layout/cardview.xml",
"res/layout/cat_listtile_1.xml",
"res/layout/cat_listtile_1_image.xml",
"res/layout/cat_listtile_1_image_small.xml",
"res/layout/cat_listtile_1_small.xml",
"res/layout/cat_listtile_2.xml",
"res/layout/cat_listtile_2_image.xml",
"res/layout/cat_listtile_2_image_muted.xml",
"res/layout/cat_listtile_2_muted.xml",
"res/layout/cat_listtile_2_number.xml",
"res/layout/cat_listtile_2_number_muted.xml",
"res/layout/cat_listtile_multiline.xml",
"res/layout/cell_activity_story.xml",
"res/layout/cell_artist_portrait.xml",
"res/layout/cell_browse_genre.xml",
"res/layout/cell_browse_playlist.xml",
"res/layout/cell_browse_playlist_horizontal_list.xml",
"res/layout/cell_browse_trending_artist.xml",
"res/layout/cell_copyright.xml",
"res/layout/cell_mft_home.xml",
"res/layout/cell_navigation.xml",
"res/layout/cell_square_image.xml",
"res/layout/cell_track_cover.xml",
"res/layout/cell_tracks_sample.xml",
"res/layout/collection_show_all.xml",
"res/layout/com_facebook_friendpickerfragment.xml",
"res/layout/com_facebook_login_activity_layout.xml",
"res/layout/com_facebook_picker_activity_circle_row.xml",
"res/layout/com_facebook_picker_checkbox.xml",
"res/layout/com_facebook_picker_image.xml",
"res/layout/com_facebook_picker_list_row.xml",
"res/layout/com_facebook_picker_list_section_header.xml",
"res/layout/com_facebook_picker_search_box.xml",
"res/layout/com_facebook_picker_title_bar.xml",
"res/layout/com_facebook_picker_title_bar_stub.xml",
"res/layout/com_facebook_placepickerfragment.xml",
"res/layout/com_facebook_placepickerfragment_list_row.xml",
"res/layout/com_facebook_search_bar_layout.xml",
"res/layout/com_facebook_tooltip_bubble.xml",
"res/layout/com_facebook_usersettingsfragment.xml",
"res/layout/com_mixpanel_android_activity_survey.xml",
"res/layout/com_mixpanel_android_first_choice_answer.xml",
"res/layout/com_mixpanel_android_last_choice_answer.xml",
"res/layout/com_mixpanel_android_middle_choice_answer.xml",
"res/layout/com_mixpanel_android_question_card.xml",
"res/layout/connect_playing_from_bar.xml",
"res/layout/context_menu.xml",
"res/layout/cosmos_search_cell_mft_appears_on.xml",
"res/layout/cosmos_search_footer_loading.xml",
"res/layout/cosmos_search_playlist_row.xml",
"res/layout/discover_grouped_card.xml",
"res/layout/discover_story.xml",
"res/layout/display_banner_ad.xml",
"res/layout/findfriends_header.xml",
"res/layout/footer_loading.xml",
"res/layout/fragment_activity_list_view.xml",
"res/layout/fragment_add_to_playlist.xml",
"res/layout/fragment_arsenal_ask_login.xml",
"res/layout/fragment_arsenal_dywla.xml",
"res/layout/fragment_arsenal_feedback.xml",
"res/layout/fragment_arsenal_linking.xml",
"res/layout/fragment_arsenal_sso.xml",
"res/layout/fragment_browse_default_list_view.xml",
"res/layout/fragment_browse_default_list_view_cat.xml",
"res/layout/fragment_browse_header_background.xml",
"res/layout/fragment_browse_header_text.xml",
"res/layout/fragment_collection.xml",
"res/layout/fragment_context_recognition.xml",
"res/layout/fragment_cosmos_test.xml",
"res/layout/fragment_device.xml",
"res/layout/fragment_discover.xml",
"res/layout/fragment_inbox.xml",
"res/layout/fragment_login_new.xml",
"res/layout/fragment_login_splash.xml",
"res/layout/fragment_login_welcome.xml",
"res/layout/fragment_mft2_home.xml",
"res/layout/fragment_not_available.xml",
"res/layout/fragment_offline_bar.xml",
"res/layout/fragment_open_access.xml",
"res/layout/fragment_profile_panel.xml",
"res/layout/fragment_push_notification_settings.xml",
"res/layout/fragment_radio.xml",
"res/layout/fragment_relatedartists_cat.xml",
"res/layout/fragment_settings.xml",
"res/layout/fragment_share_dialog_connect_facebook.xml",
"res/layout/fragment_share_post.xml",
"res/layout/fragment_show_licenses.xml",
"res/layout/fragment_showcase.xml",
"res/layout/fragment_signup_new.xml",
"res/layout/fragment_sso_login.xml",
"res/layout/fragment_start.xml",
"res/layout/fragment_webview.xml",
"res/layout/fragment_with_recycler_view.xml",
"res/layout/fragment_x_promo_welcome.xml",
"res/layout/generic_dialog_header.xml",
"res/layout/generic_dialog_two_buttons.xml",
"res/layout/header_devices.xml",
"res/layout/header_download.xml",
"res/layout/header_filter.xml",
"res/layout/header_info_2_lines_page.xml",
"res/layout/header_info_page.xml",
"res/layout/header_pretty_subtitle.xml",
"res/layout/include_start_login_buttons_anonymous.xml",
"res/layout/include_start_login_buttons_normal.xml",
"res/layout/list.xml",
"res/layout/list_discovery.xml",
"res/layout/list_frame.xml",
"res/layout/list_popup.xml",
"res/layout/list_with_emptyview.xml",
"res/layout/list_with_overlay.xml",
"res/layout/loading_view.xml",
"res/layout/login_content.xml",
"res/layout/main.xml",
"res/layout/main_debug_overlay.xml",
"res/layout/material_listtile_1.xml",
"res/layout/material_listtile_1_image.xml",
"res/layout/material_listtile_1_image_small.xml",
"res/layout/material_listtile_1_small.xml",
"res/layout/material_listtile_2.xml",
"res/layout/material_listtile_2_image.xml",
"res/layout/material_listtile_2_image_muted.xml",
"res/layout/material_listtile_2_muted.xml",
"res/layout/material_listtile_2_number.xml",
"res/layout/material_listtile_2_number_muted.xml",
"res/layout/material_listtile_multiline.xml",
"res/layout/media_controller.xml",
"res/layout/mobile_artist_bio.xml",
"res/layout/mobile_artist_calendar_sheet_cat.xml",
"res/layout/mobile_artist_concert_cat.xml",
"res/layout/mobile_artist_fragment_base.xml",
"res/layout/mobile_artist_header.xml",
"res/layout/mobile_artist_header_single_image.xml",
"res/layout/mobile_artist_page_indicator.xml",
"res/layout/mobile_artist_portrait.xml",
"res/layout/navigation.xml",
"res/layout/notification_big_player.xml",
"res/layout/notification_big_player_radio.xml",
"res/layout/notification_coverart_and_text.xml",
"res/layout/notification_next.xml",
"res/layout/notification_play_pause.xml",
"res/layout/notification_small_player.xml",
"res/layout/page_debug_single_button.xml",
"res/layout/page_player_done.xml",
"res/layout/page_player_improving.xml",
"res/layout/page_player_liked_list.xml",
"res/layout/page_player_progress.xml",
"res/layout/page_player_skips_left.xml",
"res/layout/page_player_suggested_song.xml",
"res/layout/page_player_text.xml",
"res/layout/page_upsell_item.xml",
"res/layout/paste_dialog.xml",
"res/layout/paste_divider_wrapper.xml",
"res/layout/paste_empty.xml",
"res/layout/paste_header.xml",
"res/layout/paste_listitem.xml",
"res/layout/paste_match_parent_width.xml",
"res/layout/paste_navigationitem.xml",
"res/layout/paste_sectionheader.xml",
"res/layout/paste_wrap_content.xml",
"res/layout/placeholder_title.xml",
"res/layout/play_button_view.xml",
"res/layout/play_history.xml",
"res/layout/player.xml",
"res/layout/player_content_view.xml",
"res/layout/player_controls.xml",
"res/layout/player_new.xml",
"res/layout/player_preview.xml",
"res/layout/player_preview_item.xml",
"res/layout/playlist_annotate_overlay.xml",
"res/layout/popup_gender_select.xml",
"res/layout/preview_progress_button.xml",
"res/layout/profile_counts_subheader.xml",
"res/layout/queue.xml",
"res/layout/radio_cover_card.xml",
"res/layout/search.xml",
"res/layout/section_link_cat.xml",
"res/layout/settings_basic_row.xml",
"res/layout/settings_crossfade_row.xml",
"res/layout/settings_facebook_row.xml",
"res/layout/settings_spinner_row.xml",
"res/layout/settings_toggle_button_row.xml",
"res/layout/share_header.xml",
"res/layout/simple_text_view.xml",
"res/layout/socialchart_header2.xml",
"res/layout/socialchart_smallfriendicon.xml",
"res/layout/socialchart_trackrow.xml",
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ChainedApkInfos -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ChainedApkInfos -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script import ScriptUtil
from androlyze.model.script.ChainedScript import ChainedScript
from androlyze.model.script.impl.manifest.Files import Files
from androlyze.model.script.impl.manifest.Libs import Libs
from androlyze.model.script.impl.manifest.Permissions import Permissions
from androlyze.model.script.impl.manifest.components.Activities import Activities
from androlyze.model.script.impl.manifest.components.BroadcastReceivers import BroadcastReceivers
from androlyze.model.script.impl.manifest.components.ContentProviders import ContentProviders
from androlyze.model.script.impl.manifest.components.Intents import Intents
from androlyze.model.script.impl.manifest.components.Services import Services
from androlyze.model.script.impl.manifest.Manifest import Manifest
from androlyze.model.script.impl.manifest.components.PublicContentProviders import PublicContentProviders
class ChainedApkInfos(ChainedScript):
''' The same as the `ApkInfo` script, but build using modular scripts chained together '''
VERSION = "0.1"
def chain_scripts(self):
# use the chained_script function to do further grouping
components = ScriptUtil.chained_script([Activities(), Services(), BroadcastReceivers(),
ContentProviders(), PublicContentProviders(),
Intents()], ("components", ), name = "components")
return [components, Permissions(), Libs(), Files(), Manifest()]
def root_categories(self):
return ('apkinfo', )
def log_chained_script_meta_infos(self):
''' By default some information will be logged.
Like e.g. the scripts used, which ran successful and which failed.
'''
return False
ClassDetails¶
This is an autogenerated documentation file for the script: ClassDetails
Run it¶
$ ./androanalyze scripts_builtin/ClassDetails.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ClassDetails -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ClassDetails",
"sha256": "3d3bc59c30a524773b0bc40697ff04de4f3b5e781426644df3f63b3a5ba00552",
"analysis date": "2015-06-26T17:13:36.213000",
"version": "0.1"
},
"class details": {
"Landroid/support/v4/a/a/a;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/a/a/c;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/a/a/b;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/a/a/d;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/a/a/e;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/a/a/f;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/a/a/g;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/a/a/h;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/a/a/i;": {
"methods": [
"a",
"a",
"a",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/app/BackStackState$1;": {
"methods": [
"<init>",
"a",
"createFromParcel",
"newArray"
],
"fields": []
},
"Landroid/support/v4/app/BackStackState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"a",
"describeContents",
"writeToParcel"
],
"fields": [
"CREATOR",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k"
]
},
"Landroid/support/v4/app/k;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/app/Fragment$1;": {
"methods": [
"<init>",
"a",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/Fragment$InstantiationException;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/Fragment$SavedState$1;": {
"methods": [
"<init>",
"a",
"createFromParcel",
"newArray"
],
"fields": []
},
"Landroid/support/v4/app/Fragment$SavedState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"describeContents",
"writeToParcel"
],
"fields": [
"CREATOR",
"a"
]
},
"Landroid/support/v4/app/Fragment;": {
"methods": [
"<clinit>",
"<init>",
"G",
"a",
"a",
"b",
"j",
"m",
"r",
"A",
"B",
"C",
"D",
"E",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"d",
"d",
"d",
"d",
"e",
"e_",
"equals",
"f",
"g",
"g",
"h",
"h",
"hashCode",
"i",
"i",
"i_",
"j_",
"k",
"k_",
"l",
"l_",
"n",
"o",
"onConfigurationChanged",
"onCreateContextMenu",
"onLowMemory",
"p",
"q",
"s",
"t",
"toString",
"u",
"v",
"w",
"x",
"y",
"z"
],
"fields": [
"a",
"j",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"aa",
"ab",
"ac",
"ad",
"ae",
"af",
"ag",
"ah",
"ai",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
]
},
"Landroid/support/v4/app/FragmentManagerState$1;": {
"methods": [
"<init>",
"a",
"createFromParcel",
"newArray"
],
"fields": []
},
"Landroid/support/v4/app/FragmentManagerState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"describeContents",
"writeToParcel"
],
"fields": [
"CREATOR",
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/FragmentState$1;": {
"methods": [
"<init>",
"a",
"createFromParcel",
"newArray"
],
"fields": []
},
"Landroid/support/v4/app/FragmentState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"a",
"describeContents",
"writeToParcel"
],
"fields": [
"CREATOR",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k"
]
},
"Landroid/support/v4/app/FragmentTabHost$SavedState$1;": {
"methods": [
"<init>",
"a",
"createFromParcel",
"newArray"
],
"fields": []
},
"Landroid/support/v4/app/FragmentTabHost$SavedState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"<init>",
"toString",
"writeToParcel"
],
"fields": [
"CREATOR",
"a"
]
},
"Landroid/support/v4/app/FragmentTabHost;": {
"methods": [
"<init>",
"a",
"a",
"onAttachedToWindow",
"onDetachedFromWindow",
"onRestoreInstanceState",
"onSaveInstanceState",
"onTabChanged",
"setOnTabChangedListener",
"setup"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g"
]
},
"Landroid/support/v4/app/SuperNotCalledException;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/content/c;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/app/a;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/app/aa;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"b",
"b",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/ab;": {
"methods": [
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/app/ac;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/app/ad;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/app/ae;": {
"methods": [
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/app/af;": {
"methods": [
"<init>",
"a",
"dispatchRestoreInstanceState",
"dispatchSaveInstanceState"
],
"fields": []
},
"Landroid/support/v4/app/ag;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/ah;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/ai;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"b",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/be;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/aj$1;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/bd;": {
"methods": [
"a",
"b",
"c",
"d",
"e"
],
"fields": []
},
"Landroid/support/v4/app/aj;": {
"methods": [
"<clinit>",
"a",
"b",
"c",
"d",
"e"
],
"fields": [
"d",
"a",
"b",
"c",
"e",
"f"
]
},
"Landroid/support/v4/app/ax;": {
"methods": [
"<init>",
"a"
],
"fields": [
"d",
"e",
"f",
"g"
]
},
"Landroid/support/v4/app/ak;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/al;": {
"methods": [
"<init>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/am;": {
"methods": [
"<init>",
"d",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": [
"A",
"B",
"C",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
]
},
"Landroid/support/v4/app/an;": {
"methods": [
"<init>"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/ao;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/ar;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/av;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/aw;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/ap;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/aq;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/as;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/at;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/au;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/app/ay;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/az;": {
"methods": [
"<init>",
"a",
"a",
"b"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/app/b;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/ba;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bb;": {
"methods": [
"<init>",
"a",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/bc;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bf;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/bg;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/bh;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/bi;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"a",
"a"
],
"fields": [
"a",
"b",
"c",
"d"
]
},
"Landroid/support/v4/app/bj;": {
"methods": [
"<init>",
"a",
"a",
"b"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/bk;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bl;": {
"methods": [
"<init>",
"a",
"a",
"b"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/bu;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bm$1;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/bt;": {
"methods": [
"a",
"b",
"c",
"d",
"e"
],
"fields": []
},
"Landroid/support/v4/app/bm;": {
"methods": [
"<clinit>",
"a",
"b",
"c",
"d",
"e"
],
"fields": [
"a",
"g",
"b",
"c",
"d",
"e",
"f"
]
},
"Landroid/support/v4/app/bn;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bo;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/bp;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/bq;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/br;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/bs;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bv;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/app/bw;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/bx;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"a",
"a",
"iterator"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/by;": {
"methods": [
"a_"
],
"fields": []
},
"Landroid/support/v4/app/bz;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/app/c;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/ca;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/cb;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/app/d;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/u;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/e$1;": {
"methods": [
"<init>",
"a"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/app/e$2;": {
"methods": [
"<init>",
"onPreDraw"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
]
},
"Landroid/support/v4/app/e$3;": {
"methods": [
"<init>",
"onPreDraw"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/app/r;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"c",
"c"
],
"fields": []
},
"Landroid/support/v4/app/e;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"c",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"c",
"c",
"run",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u"
]
},
"Landroid/support/v4/app/f;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i"
]
},
"Landroid/support/v4/app/g;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/app/h;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"b",
"c",
"d",
"d",
"e",
"e_",
"k_",
"l_",
"onCancel",
"onDismiss"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i"
]
},
"Landroid/support/v4/app/i$1;": {
"methods": [
"<init>",
"handleMessage"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/i$2;": {
"methods": [
"<init>",
"a",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/i;": {
"methods": [
"<init>",
"a",
"a",
"d",
"a",
"a",
"a",
"a",
"a",
"c",
"dump",
"n_",
"onActivityResult",
"onBackPressed",
"onConfigurationChanged",
"onCreate",
"onCreatePanelMenu",
"onCreateView",
"onDestroy",
"onKeyDown",
"onLowMemory",
"onMenuItemSelected",
"onNewIntent",
"onPanelClosed",
"onPause",
"onPostResume",
"onPreparePanel",
"onResume",
"onRetainNonConfigurationInstance",
"onSaveInstanceState",
"onStart",
"onStop",
"p_",
"startActivityForResult"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m"
]
},
"Landroid/support/v4/app/j;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/app/l;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"c",
"d",
"e",
"f"
],
"fields": []
},
"Landroid/support/v4/app/m;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/n$1;": {
"methods": [
"<init>",
"run"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/n$2;": {
"methods": [
"<init>",
"run"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/n$3;": {
"methods": [
"<init>",
"run"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/app/n$4;": {
"methods": [
"<init>",
"onAnimationEnd",
"onAnimationRepeat",
"onAnimationStart"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/app/n;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"c",
"d",
"e",
"e",
"f",
"g",
"s",
"t",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"onCreateView",
"p",
"q",
"r",
"toString"
],
"fields": [
"A",
"B",
"C",
"a",
"b",
"z",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y"
]
},
"Landroid/support/v4/app/o;": {
"methods": [
"<clinit>"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/at;": {
"methods": [
"<init>",
"c",
"d",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"c"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/p;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b"
],
"fields": [
"b",
"c",
"d"
]
},
"Landroid/support/v4/app/q;": {
"methods": [],
"fields": [
"a",
"b",
"c",
"d"
]
},
"Landroid/support/v4/app/s$1;": {
"methods": [
"<init>",
"onGetEpicenter"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/s$2;": {
"methods": [
"<init>",
"onPreDraw"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f"
]
},
"Landroid/support/v4/app/s$3;": {
"methods": [
"<init>",
"onGetEpicenter"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/app/s$4;": {
"methods": [
"<init>",
"onPreDraw"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k"
]
},
"Landroid/support/v4/app/s;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b"
],
"fields": []
},
"Landroid/support/v4/app/t;": {
"methods": [
"<init>"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/v$1;": {
"methods": [
"<init>",
"run"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/v$2;": {
"methods": [
"<init>",
"onItemClick"
],
"fields": [
"a"
]
},
"Landroid/support/v4/app/v;": {
"methods": [
"<init>",
"H",
"a",
"F",
"G",
"a",
"a",
"a",
"a",
"d"
],
"fields": [
"a",
"aj",
"ak",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i"
]
},
"Landroid/support/v4/app/w;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"b"
],
"fields": []
},
"Landroid/support/v4/app/x;": {
"methods": [
"a",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/app/y;": {
"methods": [
"<clinit>",
"<init>",
"c",
"d",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
]
},
"Landroid/support/v4/content/p;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/app/z;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"b",
"c",
"d",
"e",
"f",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o"
]
},
"Landroid/support/v4/b/a/a;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/b/a/b;": {
"methods": [
"a",
"expandActionView",
"getActionView",
"isActionViewExpanded",
"setActionView",
"setActionView",
"setShowAsAction"
],
"fields": []
},
"Landroid/support/v4/b/a/c;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/c/a;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/c/b;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/c/c;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/c/d;": {
"methods": [
"<init>",
"createFromParcel",
"newArray"
],
"fields": [
"a"
]
},
"Landroid/support/v4/c/e;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/c/f;": {
"methods": [
"<init>",
"createFromParcel",
"createFromParcel",
"newArray"
],
"fields": [
"a"
]
},
"Landroid/support/v4/c/g;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/ModernAsyncTask$1;": {
"methods": [
"<init>",
"newThread"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/v;": {
"methods": [
"<init>",
"<init>"
],
"fields": [
"b"
]
},
"Landroid/support/v4/content/ModernAsyncTask$2;": {
"methods": [
"<init>",
"call"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/ModernAsyncTask$3;": {
"methods": [
"<init>",
"done"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/ModernAsyncTask$4;": {
"methods": [
"<clinit>"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/ModernAsyncTask$Status;": {
"methods": [
"<clinit>",
"<init>",
"valueOf",
"values"
],
"fields": [
"a",
"b",
"c",
"d"
]
},
"Landroid/support/v4/content/ModernAsyncTask;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"b",
"b",
"c",
"c",
"c",
"d",
"a",
"a",
"a",
"b",
"d"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i"
]
},
"Landroid/support/v4/content/n;": {
"methods": [
"<init>",
"c",
"a",
"a",
"a",
"a",
"b",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"toString"
],
"fields": [
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t"
]
},
"Landroid/support/v4/content/a;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"b",
"b",
"c",
"d"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/content/b;": {
"methods": [
"<init>",
"e",
"a",
"a",
"b",
"run"
],
"fields": [
"a",
"b",
"c",
"e"
]
},
"Landroid/support/v4/content/d;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/e;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/f;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/g;": {
"methods": [
"<init>",
"a",
"b",
"o",
"a",
"a",
"b",
"d",
"e",
"f",
"g"
],
"fields": [
"f",
"g",
"h",
"i",
"j",
"k",
"l"
]
},
"Landroid/support/v4/content/h;": {
"methods": [
"<clinit>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/i;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/j;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/content/k;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/content/l;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/content/m;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/content/o;": {
"methods": [
"<init>",
"deliverSelfNotifications",
"onChange"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/q$1;": {
"methods": [
"<init>",
"handleMessage"
],
"fields": [
"a"
]
},
"Landroid/support/v4/content/q;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"a",
"a",
"a"
],
"fields": [
"f",
"g",
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/content/r;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/content/s;": {
"methods": [
"<init>",
"toString"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/content/t;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/content/u;": {
"methods": [
"<init>",
"<init>",
"handleMessage"
],
"fields": []
},
"Landroid/support/v4/d/a;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/d/b;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/d/c;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/d/d;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/d/e;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/d/f;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/e/g;": {
"methods": [
"<init>",
"a",
"a",
"b",
"c",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"c",
"d",
"e",
"f"
],
"fields": [
"b",
"c",
"d"
]
},
"Landroid/support/v4/e/a$1;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": [
"a"
]
},
"Landroid/support/v4/e/p;": {
"methods": [
"<init>",
"a",
"a",
"a",
"e",
"a",
"a",
"a",
"b",
"b",
"c",
"clear",
"containsKey",
"containsValue",
"d",
"equals",
"get",
"hashCode",
"isEmpty",
"put",
"remove",
"size",
"toString"
],
"fields": [
"b",
"c",
"d",
"e",
"f",
"g",
"h"
]
},
"Landroid/support/v4/e/a;": {
"methods": [
"<init>",
"a",
"entrySet",
"keySet",
"putAll",
"values"
],
"fields": [
"a"
]
},
"Landroid/support/v4/e/b;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"b",
"c"
],
"fields": [
"a",
"b",
"c"
]
},
"Landroid/support/v4/e/c;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/e/d;": {
"methods": [
"<init>",
"a",
"close",
"flush",
"write"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/e/e;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"c",
"d",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"clone",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/e/f;": {
"methods": [
"<init>",
"b",
"a",
"a",
"a",
"b",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g"
]
},
"Landroid/support/v4/e/h;": {
"methods": [
"<init>",
"hasNext",
"next",
"remove"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/e/i;": {
"methods": [
"<init>",
"add",
"addAll",
"clear",
"contains",
"containsAll",
"equals",
"hashCode",
"isEmpty",
"iterator",
"remove",
"removeAll",
"retainAll",
"size",
"toArray",
"toArray"
],
"fields": [
"a"
]
},
"Landroid/support/v4/e/j;": {
"methods": [
"<init>",
"add",
"addAll",
"clear",
"contains",
"containsAll",
"equals",
"hashCode",
"isEmpty",
"iterator",
"remove",
"removeAll",
"retainAll",
"size",
"toArray",
"toArray"
],
"fields": [
"a"
]
},
"Landroid/support/v4/e/k;": {
"methods": [
"<init>",
"a",
"equals",
"getKey",
"getValue",
"hasNext",
"hashCode",
"next",
"remove",
"setValue",
"toString"
],
"fields": [
"a",
"b",
"c",
"d"
]
},
"Landroid/support/v4/e/l;": {
"methods": [
"<init>",
"add",
"addAll",
"clear",
"contains",
"containsAll",
"isEmpty",
"iterator",
"remove",
"removeAll",
"retainAll",
"size",
"toArray",
"toArray"
],
"fields": [
"a"
]
},
"Landroid/support/v4/e/m;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/e/n;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/e/o;": {
"methods": [
"<init>",
"b",
"a",
"a"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/e/q;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"c",
"d",
"a",
"a",
"a",
"b",
"b",
"c",
"clone",
"d",
"e",
"f",
"toString"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/e/r;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"b"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/co;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/view/ActionBarTabStrip;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"b",
"b",
"c",
"d",
"a",
"onAttachedToWindow",
"onDetachedFromWindow"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o"
]
},
"Landroid/support/v4/view/PagerTabStrip$1;": {
"methods": [
"<init>",
"onClick"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/PagerTabStrip$2;": {
"methods": [
"<init>",
"onClick"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/PagerTitleStrip;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"b",
"a",
"a",
"a",
"a",
"a",
"onAttachedToWindow",
"onDetachedFromWindow",
"onLayout",
"onMeasure",
"requestLayout"
],
"fields": [
"n",
"o",
"q",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"p"
]
},
"Landroid/support/v4/view/PagerTabStrip;": {
"methods": [
"<init>",
"a",
"a",
"a",
"onDraw",
"onTouchEvent",
"setBackgroundColor",
"setBackgroundDrawable",
"setBackgroundResource",
"setPadding"
],
"fields": [
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v"
]
},
"Landroid/support/v4/view/PagerTitleStripHacked;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"onAttachedToWindow",
"onDetachedFromWindow",
"onLayout",
"onMeasure",
"requestLayout"
],
"fields": [
"b",
"l",
"a",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k"
]
},
"Landroid/support/v4/view/ViewPager$1;": {
"methods": [
"<init>",
"a",
"compare"
],
"fields": []
},
"Landroid/support/v4/view/ViewPager$2;": {
"methods": [
"<init>",
"getInterpolation"
],
"fields": []
},
"Landroid/support/v4/view/ViewPager$3;": {
"methods": [
"<init>",
"run"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/ViewPager$LayoutParams;": {
"methods": [
"<init>",
"<init>"
],
"fields": [
"a",
"b",
"c",
"d",
"e",
"f"
]
},
"Landroid/support/v4/view/ViewPager$SavedState$1;": {
"methods": [
"<init>",
"b",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/view/ViewPager$SavedState;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"toString",
"writeToParcel"
],
"fields": [
"CREATOR",
"a",
"b",
"c"
]
},
"Landroid/support/v4/view/ViewPager;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"g",
"h",
"i",
"j",
"k",
"l",
"a",
"a",
"a",
"a",
"a",
"a",
"addFocusables",
"addTouchables",
"addView",
"b",
"b",
"canScrollHorizontally",
"checkLayoutParams",
"computeScroll",
"dispatchKeyEvent",
"dispatchPopulateAccessibilityEvent",
"draw",
"drawableStateChanged",
"generateDefaultLayoutParams",
"generateLayoutParams",
"generateLayoutParams",
"getChildDrawingOrder",
"onAttachedToWindow",
"onDetachedFromWindow",
"onDraw",
"onInterceptTouchEvent",
"onLayout",
"onMeasure",
"onRequestFocusInDescendants",
"onRestoreInstanceState",
"onSaveInstanceState",
"onSizeChanged",
"onTouchEvent",
"removeView",
"verifyDrawable"
],
"fields": [
"ag",
"e",
"g",
"h",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"a",
"aa",
"ab",
"ac",
"ad",
"ae",
"af",
"ah",
"ai",
"b",
"c",
"d",
"f",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
]
},
"Landroid/support/v4/view/a/a;": {
"methods": [
"<clinit>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/a/aa$1;": {
"methods": [
"<init>",
"createAccessibilityNodeInfo",
"findAccessibilityNodeInfosByText",
"findFocus",
"performAction"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/a/aa;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/ab;": {
"methods": [
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/a/ac;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"b",
"c",
"equals",
"hashCode"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/a/af;": {
"methods": [
"a",
"a",
"a",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/ah;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/ad;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/ae;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/a/ag;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/a/ai;": {
"methods": [
"a",
"a",
"a",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/d;": {
"methods": [],
"fields": []
},
"Landroid/support/v4/view/a/c;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/a/b;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/a/e;": {
"methods": [
"<clinit>",
"<init>",
"a",
"c",
"c",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"equals",
"f",
"f",
"g",
"g",
"h",
"h",
"hashCode",
"i",
"i",
"j",
"k",
"l",
"m",
"n",
"toString"
],
"fields": [
"b",
"a"
]
},
"Landroid/support/v4/view/a/h;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"g",
"h",
"h",
"i",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u"
],
"fields": []
},
"Landroid/support/v4/view/a/l;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"g",
"h",
"h",
"i",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u"
],
"fields": []
},
"Landroid/support/v4/view/a/g;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q"
],
"fields": []
},
"Landroid/support/v4/view/a/i;": {
"methods": [
"<init>",
"b",
"h",
"i",
"r",
"s",
"t"
],
"fields": []
},
"Landroid/support/v4/view/a/j;": {
"methods": [
"<init>",
"u"
],
"fields": []
},
"Landroid/support/v4/view/a/k;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/a/f;": {
"methods": [
"<init>",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/m;": {
"methods": [
"<init>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/a/n;": {
"methods": [
"<init>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/a/o;": {
"methods": [
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/p;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"b",
"b",
"c",
"c",
"c",
"c",
"c",
"d",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q"
],
"fields": []
},
"Landroid/support/v4/view/a/q;": {
"methods": [
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/r;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/s;": {
"methods": [
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/a/t;": {
"methods": [
"<clinit>",
"<init>",
"<init>",
"a",
"b",
"c",
"d"
],
"fields": [
"b",
"a"
]
},
"Landroid/support/v4/view/a/u;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/z;": {
"methods": [
"a",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/a/v$1;": {
"methods": [
"<init>",
"a",
"b",
"c"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/a/x;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/v;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/w$1;": {
"methods": [
"<init>",
"a",
"b",
"c",
"d"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/a/w;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/a/y$1;": {
"methods": [
"<init>",
"createAccessibilityNodeInfo",
"findAccessibilityNodeInfosByText",
"performAction"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/a/y;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/a;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"a",
"c",
"a",
"a",
"a",
"b",
"d"
],
"fields": [
"b",
"c",
"a"
]
},
"Landroid/support/v4/view/aa;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/ab;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/ac;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/ad;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/ae;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/af;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/aj;": {
"methods": [
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/ag;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/ah;": {
"methods": [
"<init>",
"a",
"a",
"a",
"b",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/ai;": {
"methods": [
"<init>",
"b",
"c"
],
"fields": []
},
"Landroid/support/v4/view/ak;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/al;": {
"methods": [
"a",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/am;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/an;": {
"methods": [
"<clinit>",
"a",
"a",
"b",
"b",
"c",
"c",
"d"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/aq;": {
"methods": [
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/ao;": {
"methods": [
"<init>",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/ap;": {
"methods": [
"<init>",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/ar;": {
"methods": [
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/as;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cr;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cs;": {
"methods": [
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/au;": {
"methods": [
"<init>",
"<init>",
"a",
"a",
"a",
"b",
"onChanged"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/av;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/aw;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/ax;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/ay;": {
"methods": [
"<init>",
"<init>",
"a",
"a",
"a",
"b",
"onChanged"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/az;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/g;": {
"methods": [
"a",
"a",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/b$1;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"b",
"c",
"d"
],
"fields": [
"a",
"b"
]
},
"Landroid/support/v4/view/c;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/e;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/b;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"c",
"d"
],
"fields": []
},
"Landroid/support/v4/view/ba;": {
"methods": [
"<init>",
"getTransformation"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/bb;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/be;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bc;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bd;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bf;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bg;": {
"methods": [
"<clinit>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"c",
"c",
"c",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/bq;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"c",
"c",
"c",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v"
],
"fields": []
},
"Landroid/support/v4/view/bi;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"b",
"c",
"c",
"c",
"d",
"d",
"e",
"e",
"f",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/bj;": {
"methods": [
"<init>",
"a",
"k"
],
"fields": []
},
"Landroid/support/v4/view/bk;": {
"methods": [
"<init>",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bl;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"l",
"m",
"n",
"o",
"p",
"v"
],
"fields": []
},
"Landroid/support/v4/view/bm;": {
"methods": [
"<clinit>",
"<init>",
"a",
"a",
"b",
"c",
"s"
],
"fields": [
"b",
"c"
]
},
"Landroid/support/v4/view/bn;": {
"methods": [
"<init>",
"a",
"a",
"a",
"a",
"c",
"d",
"e",
"f",
"j",
"q",
"r",
"u"
],
"fields": []
},
"Landroid/support/v4/view/bo;": {
"methods": [
"<init>",
"a",
"i",
"t"
],
"fields": []
},
"Landroid/support/v4/view/bp;": {
"methods": [
"<init>",
"c"
],
"fields": []
},
"Landroid/support/v4/view/bh;": {
"methods": [
"<init>",
"a",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/view/br$1;": {
"methods": [
"<init>",
"onApplyWindowInsets"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/br;": {
"methods": [
"a",
"a",
"a"
],
"fields": []
},
"Landroid/support/v4/view/bs;": {
"methods": [
"a",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/bt;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/bu;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"b",
"b",
"c",
"c",
"d",
"d",
"e",
"e",
"f",
"g",
"h"
],
"fields": []
},
"Landroid/support/v4/view/bv;": {
"methods": [
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bw;": {
"methods": [
"a",
"a",
"a",
"a",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h"
],
"fields": []
},
"Landroid/support/v4/view/bx;": {
"methods": [
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/by;": {
"methods": [
"<clinit>",
"a",
"b"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/cd;": {
"methods": [
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/bz;": {
"methods": [
"<init>",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/ca;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/cb;": {
"methods": [
"<init>",
"b"
],
"fields": []
},
"Landroid/support/v4/view/cc;": {
"methods": [
"<init>",
"b"
],
"fields": []
},
"Landroid/support/v4/view/ce;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cf;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cg;": {
"methods": [
"<clinit>",
"a"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/ck;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cm;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/ci;": {
"methods": [
"<init>",
"a"
],
"fields": []
},
"Landroid/support/v4/view/cj;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/cl;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/ch;": {
"methods": [
"<init>"
],
"fields": []
},
"Landroid/support/v4/view/cn;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cp;": {
"methods": [
"<init>"
],
"fields": [
"a",
"b",
"c",
"d",
"e"
]
},
"Landroid/support/v4/view/cq;": {
"methods": [
"<init>",
"a",
"a",
"a",
"d"
],
"fields": [
"b"
]
},
"Landroid/support/v4/view/ct;": {
"methods": [
"a"
],
"fields": []
},
"Landroid/support/v4/view/cu;": {
"methods": [
"<init>",
"<init>",
"onChanged",
"onInvalidated"
],
"fields": [
"a"
]
},
"Landroid/support/v4/view/cv;": {
"methods": [
"<init>",
"a",
"a",
"b"
],
"fields": []
},
"Landroid/support/v4/view/cw;": {
"methods": [
"<init>",
"a",
"compare"
],
"fields": []
},
"Landroid/support/v4/view/cx;": {
"methods": [
"<clinit>",
"<init>",
"a",
"b",
"c",
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ClassDetails -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ClassDetails -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
# categories
CAT_CLASS_DETAILS = "class details"
CAT_METHODS = "methods"
CAT_FIELDS = "fields"
class ClassDetails(AndroScript):
''' Retrieve all classes and their methods and fields '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
# dvm stuff
# list<ClassDefItem>
classes = dalvik_vm_format.get_classes()
# run over classes
for c in classes:
ROOT_CAT = (CAT_CLASS_DETAILS, c.name)
res.register_keys([CAT_METHODS, CAT_FIELDS], *ROOT_CAT)
# list<EncodedMethod>
methods = c.get_methods()
res.log(CAT_METHODS, [mn.name for mn in methods], *ROOT_CAT)
# list<EncodedField>
fields = c.get_fields()
res.log(CAT_FIELDS, [fn.name for fn in fields], *ROOT_CAT)
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
if __name__ == '__main__':
for res in AndroScript.test(ClassDetails, ["../../../../testenv/apks/a2dp.Vol.apk"]):
print res
print res.write_to_json()
ClassInfos¶
This is an autogenerated documentation file for the script: ClassInfos
Run it¶
$ ./androanalyze scripts_builtin/ClassInfos.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ClassInfos -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ClassInfos",
"sha256": "2bb0c0f793cc7447edd429ed97079edeaa86bef2e248b2c85fc50dd344d91c89",
"analysis date": "2015-06-22T20:22:51.559000",
"version": "0.1",
"time script": 0.1976008415222168,
"time androguard open": 37.81527519226074,
"time total": 38.01287603378296
},
"ChainedScript": {
"scripts": [
"ClassListing",
"ClassDetails"
],
"successful": [
"ClassListing",
"ClassDetails"
],
"failures": []
},
"classes": [
"Landroid/support/v4/a/a/a;",
"Landroid/support/v4/a/a/c;",
"Landroid/support/v4/a/a/b;",
"Landroid/support/v4/a/a/d;",
"Landroid/support/v4/a/a/e;",
"Landroid/support/v4/a/a/f;",
"Landroid/support/v4/a/a/g;",
"Landroid/support/v4/a/a/h;",
"Landroid/support/v4/a/a/i;",
"Landroid/support/v4/app/BackStackState$1;",
"Landroid/support/v4/app/BackStackState;",
"Landroid/support/v4/app/k;",
"Landroid/support/v4/app/Fragment$1;",
"Landroid/support/v4/app/Fragment$InstantiationException;",
"Landroid/support/v4/app/Fragment$SavedState$1;",
"Landroid/support/v4/app/Fragment$SavedState;",
"Landroid/support/v4/app/Fragment;",
"Landroid/support/v4/app/FragmentManagerState$1;",
"Landroid/support/v4/app/FragmentManagerState;",
"Landroid/support/v4/app/FragmentState$1;",
"Landroid/support/v4/app/FragmentState;",
"Landroid/support/v4/app/FragmentTabHost$SavedState$1;",
"Landroid/support/v4/app/FragmentTabHost$SavedState;",
"Landroid/support/v4/app/FragmentTabHost;",
"Landroid/support/v4/app/SuperNotCalledException;",
"Landroid/support/v4/content/c;",
"Landroid/support/v4/app/a;",
"Landroid/support/v4/app/aa;",
"Landroid/support/v4/app/ab;",
"Landroid/support/v4/app/ac;",
"Landroid/support/v4/app/ad;",
"Landroid/support/v4/app/ae;",
"Landroid/support/v4/app/af;",
"Landroid/support/v4/app/ag;",
"Landroid/support/v4/app/ah;",
"Landroid/support/v4/app/ai;",
"Landroid/support/v4/app/be;",
"Landroid/support/v4/app/aj$1;",
"Landroid/support/v4/app/bd;",
"Landroid/support/v4/app/aj;",
"Landroid/support/v4/app/ax;",
"Landroid/support/v4/app/ak;",
"Landroid/support/v4/app/al;",
"Landroid/support/v4/app/am;",
"Landroid/support/v4/app/an;",
"Landroid/support/v4/app/ao;",
"Landroid/support/v4/app/ar;",
"Landroid/support/v4/app/av;",
"Landroid/support/v4/app/aw;",
"Landroid/support/v4/app/ap;",
"Landroid/support/v4/app/aq;",
"Landroid/support/v4/app/as;",
"Landroid/support/v4/app/at;",
"Landroid/support/v4/app/au;",
"Landroid/support/v4/app/ay;",
"Landroid/support/v4/app/az;",
"Landroid/support/v4/app/b;",
"Landroid/support/v4/app/ba;",
"Landroid/support/v4/app/bb;",
"Landroid/support/v4/app/bc;",
"Landroid/support/v4/app/bf;",
"Landroid/support/v4/app/bg;",
"Landroid/support/v4/app/bh;",
"Landroid/support/v4/app/bi;",
"Landroid/support/v4/app/bj;",
"Landroid/support/v4/app/bk;",
"Landroid/support/v4/app/bl;",
"Landroid/support/v4/app/bu;",
"Landroid/support/v4/app/bm$1;",
"Landroid/support/v4/app/bt;",
"Landroid/support/v4/app/bm;",
"Landroid/support/v4/app/bn;",
"Landroid/support/v4/app/bo;",
"Landroid/support/v4/app/bp;",
"Landroid/support/v4/app/bq;",
"Landroid/support/v4/app/br;",
"Landroid/support/v4/app/bs;",
"Landroid/support/v4/app/bv;",
"Landroid/support/v4/app/bw;",
"Landroid/support/v4/app/bx;",
"Landroid/support/v4/app/by;",
"Landroid/support/v4/app/bz;",
"Landroid/support/v4/app/c;",
"Landroid/support/v4/app/ca;",
"Landroid/support/v4/app/cb;",
"Landroid/support/v4/app/d;",
"Landroid/support/v4/app/u;",
"Landroid/support/v4/app/e$1;",
"Landroid/support/v4/app/e$2;",
"Landroid/support/v4/app/e$3;",
"Landroid/support/v4/app/r;",
"Landroid/support/v4/app/e;",
"Landroid/support/v4/app/f;",
"Landroid/support/v4/app/g;",
"Landroid/support/v4/app/h;",
"Landroid/support/v4/app/i$1;",
"Landroid/support/v4/app/i$2;",
"Landroid/support/v4/app/i;",
"Landroid/support/v4/app/j;",
"Landroid/support/v4/app/l;",
"Landroid/support/v4/app/m;",
"Landroid/support/v4/app/n$1;",
"Landroid/support/v4/app/n$2;",
"Landroid/support/v4/app/n$3;",
"Landroid/support/v4/app/n$4;",
"Landroid/support/v4/app/n;",
"Landroid/support/v4/app/o;",
"Landroid/support/v4/view/at;",
"Landroid/support/v4/app/p;",
"Landroid/support/v4/app/q;",
"Landroid/support/v4/app/s$1;",
"Landroid/support/v4/app/s$2;",
"Landroid/support/v4/app/s$3;",
"Landroid/support/v4/app/s$4;",
"Landroid/support/v4/app/s;",
"Landroid/support/v4/app/t;",
"Landroid/support/v4/app/v$1;",
"Landroid/support/v4/app/v$2;",
"Landroid/support/v4/app/v;",
"Landroid/support/v4/app/w;",
"Landroid/support/v4/app/x;",
"Landroid/support/v4/app/y;",
"Landroid/support/v4/content/p;",
"Landroid/support/v4/app/z;",
"Landroid/support/v4/b/a/a;",
"Landroid/support/v4/b/a/b;",
"Landroid/support/v4/b/a/c;",
"Landroid/support/v4/c/a;",
"Landroid/support/v4/c/b;",
"Landroid/support/v4/c/c;",
"Landroid/support/v4/c/d;",
"Landroid/support/v4/c/e;",
"Landroid/support/v4/c/f;",
"Landroid/support/v4/c/g;",
"Landroid/support/v4/content/ModernAsyncTask$1;",
"Landroid/support/v4/content/v;",
"Landroid/support/v4/content/ModernAsyncTask$2;",
"Landroid/support/v4/content/ModernAsyncTask$3;",
"Landroid/support/v4/content/ModernAsyncTask$4;",
"Landroid/support/v4/content/ModernAsyncTask$Status;",
"Landroid/support/v4/content/ModernAsyncTask;",
"Landroid/support/v4/content/n;",
"Landroid/support/v4/content/a;",
"Landroid/support/v4/content/b;",
"Landroid/support/v4/content/d;",
"Landroid/support/v4/content/e;",
"Landroid/support/v4/content/f;",
"Landroid/support/v4/content/g;",
"Landroid/support/v4/content/h;",
"Landroid/support/v4/content/i;",
"Landroid/support/v4/content/j;",
"Landroid/support/v4/content/k;",
"Landroid/support/v4/content/l;",
"Landroid/support/v4/content/m;",
"Landroid/support/v4/content/o;",
"Landroid/support/v4/content/q$1;",
"Landroid/support/v4/content/q;",
"Landroid/support/v4/content/r;",
"Landroid/support/v4/content/s;",
"Landroid/support/v4/content/t;",
"Landroid/support/v4/content/u;",
"Landroid/support/v4/d/a;",
"Landroid/support/v4/d/b;",
"Landroid/support/v4/d/c;",
"Landroid/support/v4/d/d;",
"Landroid/support/v4/d/e;",
"Landroid/support/v4/d/f;",
"Landroid/support/v4/e/g;",
"Landroid/support/v4/e/a$1;",
"Landroid/support/v4/e/p;",
"Landroid/support/v4/e/a;",
"Landroid/support/v4/e/b;",
"Landroid/support/v4/e/c;",
"Landroid/support/v4/e/d;",
"Landroid/support/v4/e/e;",
"Landroid/support/v4/e/f;",
"Landroid/support/v4/e/h;",
"Landroid/support/v4/e/i;",
"Landroid/support/v4/e/j;",
"Landroid/support/v4/e/k;",
"Landroid/support/v4/e/l;",
"Landroid/support/v4/e/m;",
"Landroid/support/v4/e/n;",
"Landroid/support/v4/e/o;",
"Landroid/support/v4/e/q;",
"Landroid/support/v4/e/r;",
"Landroid/support/v4/view/co;",
"Landroid/support/v4/view/ActionBarTabStrip;",
"Landroid/support/v4/view/PagerTabStrip$1;",
"Landroid/support/v4/view/PagerTabStrip$2;",
"Landroid/support/v4/view/PagerTitleStrip;",
"Landroid/support/v4/view/PagerTabStrip;",
"Landroid/support/v4/view/PagerTitleStripHacked;",
"Landroid/support/v4/view/ViewPager$1;",
"Landroid/support/v4/view/ViewPager$2;",
"Landroid/support/v4/view/ViewPager$3;",
"Landroid/support/v4/view/ViewPager$LayoutParams;",
"Landroid/support/v4/view/ViewPager$SavedState$1;",
"Landroid/support/v4/view/ViewPager$SavedState;",
"Landroid/support/v4/view/ViewPager;",
"Landroid/support/v4/view/a/a;",
"Landroid/support/v4/view/a/aa$1;",
"Landroid/support/v4/view/a/aa;",
"Landroid/support/v4/view/a/ab;",
"Landroid/support/v4/view/a/ac;",
"Landroid/support/v4/view/a/af;",
"Landroid/support/v4/view/a/ah;",
"Landroid/support/v4/view/a/ad;",
"Landroid/support/v4/view/a/ae;",
"Landroid/support/v4/view/a/ag;",
"Landroid/support/v4/view/a/ai;",
"Landroid/support/v4/view/a/d;",
"Landroid/support/v4/view/a/c;",
"Landroid/support/v4/view/a/b;",
"Landroid/support/v4/view/a/e;",
"Landroid/support/v4/view/a/h;",
"Landroid/support/v4/view/a/l;",
"Landroid/support/v4/view/a/g;",
"Landroid/support/v4/view/a/i;",
"Landroid/support/v4/view/a/j;",
"Landroid/support/v4/view/a/k;",
"Landroid/support/v4/view/a/f;",
"Landroid/support/v4/view/a/m;",
"Landroid/support/v4/view/a/n;",
"Landroid/support/v4/view/a/o;",
"Landroid/support/v4/view/a/p;",
"Landroid/support/v4/view/a/q;",
"Landroid/support/v4/view/a/r;",
"Landroid/support/v4/view/a/s;",
"Landroid/support/v4/view/a/t;",
"Landroid/support/v4/view/a/u;",
"Landroid/support/v4/view/a/z;",
"Landroid/support/v4/view/a/v$1;",
"Landroid/support/v4/view/a/x;",
"Landroid/support/v4/view/a/v;",
"Landroid/support/v4/view/a/w$1;",
"Landroid/support/v4/view/a/w;",
"Landroid/support/v4/view/a/y$1;",
"Landroid/support/v4/view/a/y;",
"Landroid/support/v4/view/a;",
"Landroid/support/v4/view/aa;",
"Landroid/support/v4/view/ab;",
"Landroid/support/v4/view/ac;",
"Landroid/support/v4/view/ad;",
"Landroid/support/v4/view/ae;",
"Landroid/support/v4/view/af;",
"Landroid/support/v4/view/aj;",
"Landroid/support/v4/view/ag;",
"Landroid/support/v4/view/ah;",
"Landroid/support/v4/view/ai;",
"Landroid/support/v4/view/ak;",
"Landroid/support/v4/view/al;",
"Landroid/support/v4/view/am;",
"Landroid/support/v4/view/an;",
"Landroid/support/v4/view/aq;",
"Landroid/support/v4/view/ao;",
"Landroid/support/v4/view/ap;",
"Landroid/support/v4/view/ar;",
"Landroid/support/v4/view/as;",
"Landroid/support/v4/view/cr;",
"Landroid/support/v4/view/cs;",
"Landroid/support/v4/view/au;",
"Landroid/support/v4/view/av;",
"Landroid/support/v4/view/aw;",
"Landroid/support/v4/view/ax;",
"Landroid/support/v4/view/ay;",
"Landroid/support/v4/view/az;",
"Landroid/support/v4/view/g;",
"Landroid/support/v4/view/b$1;",
"Landroid/support/v4/view/c;",
"Landroid/support/v4/view/e;",
"Landroid/support/v4/view/b;",
"Landroid/support/v4/view/ba;",
"Landroid/support/v4/view/bb;",
"Landroid/support/v4/view/be;",
"Landroid/support/v4/view/bc;",
"Landroid/support/v4/view/bd;",
"Landroid/support/v4/view/bf;",
"Landroid/support/v4/view/bg;",
"Landroid/support/v4/view/bq;",
"Landroid/support/v4/view/bi;",
"Landroid/support/v4/view/bj;",
"Landroid/support/v4/view/bk;",
"Landroid/support/v4/view/bl;",
"Landroid/support/v4/view/bm;",
"Landroid/support/v4/view/bn;",
"Landroid/support/v4/view/bo;",
"Landroid/support/v4/view/bp;",
"Landroid/support/v4/view/bh;",
"Landroid/support/v4/view/br$1;",
"Landroid/support/v4/view/br;",
"Landroid/support/v4/view/bs;",
"Landroid/support/v4/view/bt;",
"Landroid/support/v4/view/bu;",
"Landroid/support/v4/view/bv;",
"Landroid/support/v4/view/bw;",
"Landroid/support/v4/view/bx;",
"Landroid/support/v4/view/by;",
"Landroid/support/v4/view/cd;",
"Landroid/support/v4/view/bz;",
"Landroid/support/v4/view/ca;",
"Landroid/support/v4/view/cb;",
"Landroid/support/v4/view/cc;",
"Landroid/support/v4/view/ce;",
"Landroid/support/v4/view/cf;",
"Landroid/support/v4/view/cg;",
"Landroid/support/v4/view/ck;",
"Landroid/support/v4/view/cm;",
"Landroid/support/v4/view/ci;",
"Landroid/support/v4/view/cj;",
"Landroid/support/v4/view/cl;",
"Landroid/support/v4/view/ch;",
"Landroid/support/v4/view/cn;",
"Landroid/support/v4/view/cp;",
"Landroid/support/v4/view/cq;",
"Landroid/support/v4/view/ct;",
"Landroid/support/v4/view/cu;",
"Landroid/support/v4/view/cv;",
"Landroid/support/v4/view/cw;",
"Landroid/support/v4/view/cx;",
"Landroid/support/v4/view/df;",
"Landroid/support/v4/view/cy;",
"Landroid/support/v4/view/cz;",
"Landroid/support/v4/view/i;",
"Landroid/support/v4/view/d$1;",
"Landroid/support/v4/view/d;",
"Landroid/support/v4/view/da;",
"Landroid/support/v4/view/dj;",
"Landroid/support/v4/view/db;",
"Landroid/support/v4/view/dd;",
"Landroid/support/v4/view/dc;",
"Landroid/support/v4/view/de;",
"Landroid/support/v4/view/dg$1;",
"Landroid/support/v4/view/dg;",
"Landroid/support/v4/view/dh$1;",
"Landroid/support/v4/view/dh;",
"Landroid/support/v4/view/di$1;",
"Landroid/support/v4/view/di;",
"Landroid/support/v4/view/dk;",
"Landroid/support/v4/view/dl;",
"Landroid/support/v4/view/dm;",
"Landroid/support/v4/view/dn;",
"Landroid/support/v4/view/f$1;",
"Landroid/support/v4/view/f;",
"Landroid/support/v4/view/h$1;",
"Landroid/support/v4/view/h;",
"Landroid/support/v4/view/j;",
"Landroid/support/v4/view/k;",
"Landroid/support/v4/view/l;",
"Landroid/support/v4/view/m;",
"Landroid/support/v4/view/n;",
"Landroid/support/v4/view/o;",
"Landroid/support/v4/view/p;",
"Landroid/support/v4/view/q;",
"Landroid/support/v4/view/r;",
"Landroid/support/v4/view/s;",
"Landroid/support/v4/view/t;",
"Landroid/support/v4/view/x;",
"Landroid/support/v4/view/u;",
"Landroid/support/v4/view/v;",
"Landroid/support/v4/view/w;",
"Landroid/support/v4/view/y;",
"Landroid/support/v4/view/z;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$1;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$2;",
"Landroid/support/v4/widget/ContentLoadingProgressBar;",
"Landroid/support/v4/widget/DrawerLayout$LayoutParams;",
"Landroid/support/v4/widget/DrawerLayout$SavedState$1;",
"Landroid/support/v4/widget/DrawerLayout$SavedState;",
"Landroid/support/v4/widget/s;",
"Landroid/support/v4/widget/DrawerLayout;",
"Landroid/support/v4/widget/SlidingPaneLayout$LayoutParams;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState$1;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState;",
"Landroid/support/v4/widget/SlidingPaneLayout;",
"Landroid/support/v4/widget/SwipeRefreshLayout$1;",
"Landroid/support/v4/widget/SwipeRefreshLayout$2;",
"Landroid/support/v4/widget/SwipeRefreshLayout$3;",
"Landroid/support/v4/widget/SwipeRefreshLayout$4;",
"Landroid/support/v4/widget/SwipeRefreshLayout$5;",
"Landroid/support/v4/widget/SwipeRefreshLayout$6;",
"Landroid/support/v4/widget/SwipeRefreshLayout$7;",
"Landroid/support/v4/widget/SwipeRefreshLayout;",
"Landroid/support/v4/widget/a;",
"Landroid/support/v4/widget/aa;",
"Landroid/support/v4/widget/ab;",
"Landroid/support/v4/widget/ac;",
"Landroid/support/v4/widget/ad;",
"Landroid/support/v4/widget/ag;",
"Landroid/support/v4/widget/ae;",
"Landroid/support/v4/widget/af;",
"Landroid/support/v4/widget/ah;",
"Landroid/support/v4/widget/i;",
"Landroid/support/v4/widget/f;",
"Landroid/support/v4/widget/ai;",
"Landroid/support/v4/widget/aj;",
"Landroid/support/v4/widget/ak;",
"Landroid/support/v4/widget/al;",
"Landroid/support/v4/widget/am;",
"Landroid/support/v4/widget/an;",
"Landroid/support/v4/widget/ao;",
"Landroid/support/v4/widget/ap;",
"Landroid/support/v4/widget/aq;",
"Landroid/support/v4/widget/ar;",
"Landroid/support/v4/widget/ba;",
"Landroid/support/v4/widget/as;",
"Landroid/support/v4/widget/at;",
"Landroid/support/v4/widget/au;",
"Landroid/support/v4/widget/av;",
"Landroid/support/v4/widget/aw;",
"Landroid/support/v4/widget/ax;",
"Landroid/support/v4/widget/ay;",
"Landroid/support/v4/widget/az$1;",
"Landroid/support/v4/widget/az$2;",
"Landroid/support/v4/widget/az;",
"Landroid/support/v4/widget/b;",
"Landroid/support/v4/widget/c;",
"Landroid/support/v4/widget/d;",
"Landroid/support/v4/widget/e;",
"Landroid/support/v4/widget/g;",
"Landroid/support/v4/widget/h;",
"Landroid/support/v4/widget/j;",
"Landroid/support/v4/widget/k;",
"Landroid/support/v4/widget/l;",
"Landroid/support/v4/widget/m;",
"Landroid/support/v4/widget/n;",
"Landroid/support/v4/widget/o;",
"Landroid/support/v4/widget/p$1;",
"Landroid/support/v4/widget/p;",
"Landroid/support/v4/widget/q;",
"Landroid/support/v4/widget/r;",
"Landroid/support/v4/widget/t;",
"Landroid/support/v4/widget/w;",
"Landroid/support/v4/widget/u;",
"Landroid/support/v4/widget/v;",
"Landroid/support/v4/widget/x;",
"Landroid/support/v4/widget/y;",
"Landroid/support/v4/widget/z$1;",
"Landroid/support/v4/widget/z$2;",
"Landroid/support/v4/widget/z$3;",
"Landroid/support/v4/widget/z$4;",
"Landroid/support/v4/widget/z$5;",
"Landroid/support/v4/widget/z;",
"Landroid/support/v7/a/a;",
"Landroid/support/v7/a/b;",
"Landroid/support/v7/a/c;",
"Landroid/support/v7/a/d;",
"Landroid/support/v7/a/e;",
"Landroid/support/v7/a/f;",
"Landroid/support/v7/a/g;",
"Landroid/support/v7/a/h;",
"Landroid/support/v7/a/i;",
"Landroid/support/v7/a/j;",
"Landroid/support/v7/a/k;",
"Landroid/support/v7/a/l;",
"Landroid/support/v7/app/ActionBar$LayoutParams;",
"Landroid/support/v7/app/ActionBar;",
"Landroid/support/v7/app/a;",
"Landroid/support/v7/app/s;",
"Landroid/support/v7/app/b;",
"Landroid/support/v7/internal/a/f;",
"Landroid/support/v7/app/c$1;",
"Landroid/support/v7/app/c;",
"Landroid/support/v7/app/l;",
"Landroid/support/v7/app/d;",
"Landroid/support/v7/app/e$1;",
"Landroid/support/v7/app/e$2;",
"Landroid/support/v7/internal/widget/x;",
"Landroid/support/v7/app/e$3;",
"Landroid/support/v7/app/e$4;",
"Landroid/support/v7/internal/view/menu/j;",
"Landroid/support/v7/app/e;",
"Landroid/support/v7/internal/view/menu/w;",
"Landroid/support/v7/app/f;",
"Landroid/support/v7/b/b;",
"Landroid/support/v7/app/g;",
"Landroid/support/v7/app/h;",
"Landroid/support/v7/app/i;",
"Landroid/support/v7/internal/widget/z;",
"Landroid/support/v7/app/j;",
"Landroid/support/v7/app/k;",
"Landroid/support/v7/app/m;",
"Landroid/support/v7/app/x;",
"Landroid/support/v7/app/o;",
"Landroid/support/v7/app/n;",
"Landroid/support/v7/app/p;",
"Landroid/support/v7/app/q;",
"Landroid/support/v7/app/r;",
"Landroid/support/v7/app/t;",
"Landroid/support/v7/app/u;",
"Landroid/support/v7/app/v;",
"Lcom/spotify/mobile/android/util/ui/d;",
"Landroid/support/v7/app/w;",
"Landroid/support/v7/b/a;",
"Landroid/support/v7/b/c;",
"Landroid/support/v7/internal/a/a$1;",
"Landroid/support/v7/widget/br;",
"Landroid/support/v7/internal/a/a$2;",
"Landroid/support/v7/internal/a/a;",
"Landroid/support/v7/internal/a/b;",
"Landroid/support/v7/internal/a/c;",
"Landroid/support/v7/internal/a/d;",
"Landroid/support/v7/widget/bs;",
"Landroid/support/v7/internal/a/e;",
"Landroid/support/v7/internal/a/g$1;",
"Landroid/support/v7/internal/a/g$2;",
"Landroid/support/v7/internal/a/g$3;",
"Landroid/support/v7/internal/widget/f;",
"Landroid/support/v7/internal/a/g;",
"Landroid/support/v7/internal/a/h;",
"Landroid/support/v7/internal/a;",
"Landroid/support/v7/internal/b/a;",
"Landroid/support/v7/internal/view/a;",
"Landroid/support/v7/internal/view/b;",
"Landroid/support/v7/internal/view/c;",
"Landroid/support/v7/internal/view/d;",
"Landroid/support/v7/internal/view/e;",
"Landroid/support/v7/internal/view/f;",
"Landroid/support/v7/internal/view/g;",
"Landroid/support/v7/internal/view/h$1;",
"Landroid/support/v7/internal/view/h;",
"Landroid/support/v7/internal/widget/CompatTextView;",
"Landroid/support/v7/internal/view/menu/y;",
"Landroid/support/v7/widget/h;",
"Landroid/support/v7/internal/view/menu/ActionMenuItemView;",
"Landroid/support/v7/internal/view/menu/k;",
"Landroid/support/v7/internal/view/menu/x;",
"Landroid/support/v7/internal/view/menu/ExpandedMenuView;",
"Landroid/support/v7/internal/view/menu/ListMenuItemView;",
"Landroid/support/v7/internal/view/menu/a;",
"Landroid/support/v7/internal/view/menu/f;",
"Landroid/support/v7/internal/view/menu/e;",
"Landroid/support/v7/internal/view/menu/aa;",
"Landroid/support/v7/internal/view/menu/i;",
"Landroid/support/v7/internal/view/menu/ab;",
"Landroid/support/v7/internal/view/menu/ac;",
"Landroid/support/v7/widget/ab;",
"Landroid/support/v7/internal/view/menu/b;",
"Landroid/support/v7/internal/view/menu/c;",
"Landroid/support/v7/internal/view/menu/v;",
"Landroid/support/v7/internal/view/menu/d;",
"Landroid/support/v7/internal/view/menu/g;",
"Landroid/support/v7/internal/view/menu/h;",
"Landroid/support/v7/internal/view/menu/l;",
"Landroid/support/v7/internal/view/menu/m$1;",
"Landroid/support/v7/internal/view/menu/m;",
"Landroid/support/v7/internal/view/menu/n;",
"Landroid/support/v7/internal/view/menu/o$1;",
"Landroid/support/v7/internal/view/menu/o;",
"Landroid/support/v7/internal/view/menu/p;",
"Landroid/support/v7/internal/view/menu/q;",
"Landroid/support/v7/internal/view/menu/r;",
"Landroid/support/v7/internal/view/menu/s;",
"Landroid/support/v7/internal/view/menu/t;",
"Landroid/support/v7/internal/view/menu/u;",
"Landroid/support/v7/internal/view/menu/z;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/o;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat;",
"Landroid/support/v7/internal/widget/ActionBarContainer;",
"Landroid/support/v7/internal/widget/ActionBarContextView$1;",
"Landroid/support/v7/internal/widget/a;",
"Landroid/support/v7/internal/widget/ActionBarContextView;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$1;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$2;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$3;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$4;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$LayoutParams;",
"Landroid/support/v7/internal/widget/t;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout;",
"Landroid/support/v7/internal/widget/ActivityChooserView$1;",
"Landroid/support/v7/internal/widget/ActivityChooserView$2;",
"Landroid/support/v7/internal/widget/ActivityChooserView$3;",
"Landroid/support/v7/internal/widget/ActivityChooserView;",
"Landroid/support/v7/internal/widget/AppCompatPopupWindow;",
"Landroid/support/v7/internal/widget/ContentFrameLayout;",
"Landroid/support/v7/internal/widget/w;",
"Landroid/support/v7/internal/widget/FitWindowsFrameLayout;",
"Landroid/support/v7/internal/widget/FitWindowsLinearLayout;",
"Landroid/support/v7/internal/widget/ListViewCompat;",
"Landroid/support/v7/internal/widget/NativeActionModeAwareLayout;",
"Landroid/support/v7/internal/widget/SpinnerCompat$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$2;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/SpinnerCompat;",
"Landroid/support/v7/internal/widget/TintCheckBox;",
"Landroid/support/v7/internal/widget/TintCheckedTextView;",
"Landroid/support/v7/internal/widget/TintEditText;",
"Landroid/support/v7/internal/widget/TintImageView;",
"Landroid/support/v7/internal/widget/TintRadioButton;",
"Landroid/support/v7/internal/widget/TintSpinner;",
"Landroid/support/v7/internal/widget/ViewStubCompat;",
"Landroid/support/v7/internal/widget/aa;",
"Landroid/support/v7/internal/widget/ab$1;",
"Landroid/support/v7/internal/widget/q;",
"Landroid/support/v7/internal/widget/ab;",
"Landroid/support/v7/internal/widget/ac;",
"Landroid/support/v7/widget/LinearLayoutCompat;",
"Landroid/support/v7/internal/widget/ad;",
"Landroid/support/v7/internal/widget/ah;",
"Landroid/support/v7/internal/widget/ae;",
"Landroid/support/v7/internal/widget/af;",
"Landroid/support/v7/internal/widget/ag$1;",
"Landroid/support/v7/widget/ListPopupWindow;",
"Landroid/support/v7/internal/widget/ag;",
"Landroid/support/v7/internal/widget/v;",
"Landroid/support/v7/internal/widget/ai;",
"Landroid/support/v7/internal/widget/aj;",
"Landroid/support/v7/internal/widget/ak;",
"Landroid/support/v7/internal/widget/al;",
"Landroid/support/v7/internal/widget/am;",
"Landroid/support/v7/internal/widget/an$1;",
"Landroid/support/v7/internal/widget/an$2;",
"Landroid/support/v7/internal/widget/an$3;",
"Landroid/support/v7/internal/widget/u;",
"Landroid/support/v7/internal/widget/an;",
"Landroid/support/v7/internal/widget/ao;",
"Landroid/support/v7/internal/widget/ap;",
"Landroid/support/v7/internal/widget/b;",
"Landroid/support/v7/internal/widget/c;",
"Landroid/support/v7/internal/widget/d;",
"Landroid/support/v7/internal/widget/e;",
"Landroid/support/v7/internal/widget/g;",
"Landroid/support/v7/internal/widget/h;",
"Landroid/support/v7/internal/widget/i;",
"Landroid/support/v7/internal/widget/j;",
"Landroid/support/v7/internal/widget/k;",
"Landroid/support/v7/internal/widget/l;",
"Landroid/support/v7/internal/widget/m;",
"Landroid/support/v7/internal/widget/n;",
"Landroid/support/v7/internal/widget/p;",
"Landroid/support/v7/internal/widget/r;",
"Landroid/support/v7/internal/widget/s;",
"Landroid/support/v7/internal/widget/y;",
"Landroid/support/v7/widget/LinearLayoutCompat$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView;",
"Landroid/support/v7/widget/RecyclerView$LayoutParams;",
"Landroid/support/v7/widget/GridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/at;",
"Landroid/support/v7/widget/LinearLayoutManager;",
"Landroid/support/v7/widget/GridLayoutManager;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState;",
"Landroid/support/v7/widget/ListPopupWindow$1;",
"Landroid/support/v7/widget/ListPopupWindow$2;",
"Landroid/support/v7/widget/RecyclerView$1;",
"Landroid/support/v7/widget/RecyclerView$2;",
"Landroid/support/v7/widget/RecyclerView$3;",
"Landroid/support/v7/widget/q;",
"Landroid/support/v7/widget/RecyclerView$4;",
"Landroid/support/v7/widget/m;",
"Landroid/support/v7/widget/RecyclerView$5;",
"Landroid/support/v7/widget/RecyclerView$SavedState$1;",
"Landroid/support/v7/widget/RecyclerView$SavedState;",
"Landroid/support/v7/widget/RecyclerView;",
"Landroid/support/v7/widget/SearchView$10;",
"Landroid/support/v7/widget/SearchView$11;",
"Landroid/support/v7/widget/SearchView$12;",
"Landroid/support/v7/widget/SearchView$1;",
"Landroid/support/v7/widget/SearchView$2;",
"Landroid/support/v7/widget/SearchView$3;",
"Landroid/support/v7/widget/SearchView$4;",
"Landroid/support/v7/widget/SearchView$5;",
"Landroid/support/v7/widget/SearchView$6;",
"Landroid/support/v7/widget/SearchView$7;",
"Landroid/support/v7/widget/SearchView$8;",
"Landroid/support/v7/widget/SearchView$9;",
"Landroid/support/v7/widget/SearchView$SearchAutoComplete;",
"Landroid/support/v7/widget/SearchView;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager;",
"Landroid/support/v7/widget/SwitchCompat$1;",
"Landroid/support/v7/widget/SwitchCompat;",
"Landroid/support/v7/widget/k;",
"Landroid/support/v7/widget/Toolbar$1;",
"Landroid/support/v7/widget/Toolbar$2;",
"Landroid/support/v7/widget/Toolbar$3;",
"Landroid/support/v7/widget/Toolbar$LayoutParams;",
"Landroid/support/v7/widget/Toolbar$SavedState$1;",
"Landroid/support/v7/widget/Toolbar$SavedState;",
"Landroid/support/v7/widget/Toolbar;",
"Landroid/support/v7/widget/a;",
"Landroid/support/v7/widget/aa;",
"Landroid/support/v7/widget/ac;",
"Landroid/support/v7/widget/ad;",
"Landroid/support/v7/widget/ae;",
"Landroid/support/v7/widget/af;",
"Landroid/support/v7/widget/ag;",
"Landroid/support/v7/widget/ah;",
"Landroid/support/v7/widget/ai;",
"Landroid/support/v7/widget/aj;",
"Landroid/support/v7/widget/ak;",
"Landroid/support/v7/widget/al;",
"Landroid/support/v7/widget/al$1;",
"Landroid/support/v7/widget/al$2;",
"Landroid/support/v7/widget/am;",
"Landroid/support/v7/widget/an;",
"Landroid/support/v7/widget/ao;",
"Landroid/support/v7/widget/ap;",
"Landroid/support/v7/widget/aq;",
"Landroid/support/v7/widget/ar;",
"Landroid/support/v7/widget/as;",
"Landroid/support/v7/widget/au;",
"Landroid/support/v7/widget/av;",
"Landroid/support/v7/widget/aw;",
"Landroid/support/v7/widget/ax;",
"Landroid/support/v7/widget/ay;",
"Landroid/support/v7/widget/az;",
"Landroid/support/v7/widget/b;",
"Landroid/support/v7/widget/ba;",
"Landroid/support/v7/widget/bb;",
"Landroid/support/v7/widget/bc;",
"Landroid/support/v7/widget/bd;",
"Landroid/support/v7/widget/be;",
"Landroid/support/v7/widget/bf;",
"Landroid/support/v7/widget/bg$1;",
"Landroid/support/v7/widget/bg;",
"Landroid/support/v7/widget/bh;",
"Landroid/support/v7/widget/bi;",
"Landroid/support/v7/widget/bj;",
"Landroid/support/v7/widget/bk;",
"Landroid/support/v7/widget/bl;",
"Landroid/support/v7/widget/bm;",
"Landroid/support/v7/widget/bn;",
"Landroid/support/v7/widget/bo;",
"Landroid/support/v7/widget/bp;",
"Landroid/support/v7/widget/bq;",
"Landroid/support/v7/widget/c;",
"Landroid/support/v7/widget/d;",
"Landroid/support/v7/widget/e$1;",
"Landroid/support/v7/widget/e;",
"Landroid/support/v7/widget/f;",
"Landroid/support/v7/widget/g;",
"Landroid/support/v7/widget/i;",
"Landroid/support/v7/widget/j;",
"Landroid/support/v7/widget/l;",
"Landroid/support/v7/widget/n;",
"Landroid/support/v7/widget/o;",
"Landroid/support/v7/widget/p;",
"Landroid/support/v7/widget/r$1;",
"Landroid/support/v7/widget/r$2;",
"Landroid/support/v7/widget/r$3;",
"Landroid/support/v7/widget/u;",
"Landroid/support/v7/widget/r$4;",
"Landroid/support/v7/widget/r$5;",
"Landroid/support/v7/widget/r$6;",
"Landroid/support/v7/widget/r$7;",
"Landroid/support/v7/widget/r$8;",
"Landroid/support/v7/widget/r;",
"Landroid/support/v7/widget/s;",
"Landroid/support/v7/widget/t;",
"Landroid/support/v7/widget/v;",
"Landroid/support/v7/widget/w;",
"Landroid/support/v7/widget/x;",
"Landroid/support/v7/widget/y;",
"Landroid/support/v7/widget/z;",
"Lcom/a/a/a/a;",
"Lcom/a/a/a/b;",
"Lcom/a/a/a/c;",
"Lcom/b/a/a$1;",
"Lcom/b/a/a$2;",
"Lcom/b/a/a;",
"Lcom/b/a/b;",
"Lcom/b/a/c;",
"Lcom/b/a/d;",
"Lcom/b/a/e;",
"Lcom/b/a/f$1;",
"Lcom/b/a/f;",
"Lcom/b/a/g;",
"Lcom/c/a;",
"Lcom/c/b;",
"Lcom/c/c;",
"Lcom/c/d;",
"Lcom/c/e;",
"Lcom/c/f;",
"Lcom/c/g;",
"Lcom/c/h;",
"Lcom/c/i;",
"Lcom/c/j;",
"Lcom/c/k;",
"Lcom/c/l;",
"Lcom/c/m;",
"Lcom/c/n;",
"Lcom/c/o;",
"Lcom/c/p;",
"Lcom/c/q;",
"Lcom/c/r;",
"Lcom/c/s;",
"Lcom/c/t;",
"Lcom/c/u;",
"Lcom/comscore/a/a/a;",
"Lcom/comscore/a/a/b;",
"Lcom/comscore/a/a/c;",
"Lcom/comscore/a/a/d;",
"Lcom/comscore/a/a/e;",
"Lcom/comscore/a/a/f;",
"Lcom/comscore/analytics/ApplicationState;",
"Lcom/comscore/analytics/SessionState;",
"Lcom/comscore/analytics/a;",
"Lcom/comscore/analytics/b;",
"Lcom/comscore/analytics/c;",
"Lcom/comscore/analytics/d;",
"Lcom/comscore/analytics/e;",
"Lcom/comscore/analytics/f;",
"Lcom/comscore/analytics/g;",
"Lcom/comscore/analytics/h;",
"Lcom/comscore/analytics/i;",
"Lcom/comscore/analytics/j;",
"Lcom/comscore/analytics/k;",
"Lcom/comscore/analytics/l;",
"Lcom/comscore/analytics/m;",
"Lcom/comscore/analytics/n;",
"Lcom/comscore/analytics/o;",
"Lcom/comscore/analytics/p;",
"Lcom/comscore/applications/EventType;",
"Lcom/comscore/b/b;",
"Lcom/comscore/applications/c;",
"Lcom/comscore/applications/a;",
"Lcom/comscore/applications/b;",
"Lcom/comscore/applications/d;",
"Lcom/comscore/b/a;",
"Lcom/comscore/b/c;",
"Lcom/comscore/b/d;",
"Lcom/comscore/b/e;",
"Lcom/comscore/metrics/EventType;",
"Lcom/comscore/metrics/a;",
"Lcom/comscore/metrics/b;",
"Lcom/comscore/utils/DispatchQueue;",
"Lcom/comscore/utils/TransmissionMode;",
"Lcom/comscore/utils/a/a;",
"Lcom/comscore/utils/a;",
"Lcom/comscore/utils/b/a;",
"Lcom/comscore/utils/b/b;",
"Lcom/comscore/utils/b/c;",
"Lcom/comscore/utils/b;",
"Lcom/comscore/utils/c;",
"Lcom/comscore/utils/d;",
"Lcom/comscore/utils/e;",
"Lcom/comscore/utils/f;",
"Lcom/comscore/utils/g;",
"Lcom/comscore/utils/h;",
"Lcom/comscore/utils/i;",
"Lcom/comscore/utils/j;",
"Lcom/comscore/utils/k;",
"Lcom/comscore/utils/l;",
"Lcom/comscore/utils/m;",
"Lcom/comscore/utils/n;",
"Lcom/comscore/utils/o;",
"Lcom/comscore/utils/p;",
"Lcom/comscore/utils/q;",
"Lcom/comscore/utils/r;",
"Lcom/comscore/utils/s;",
"Lcom/comscore/utils/t;",
"Lcom/comscore/utils/u;",
"Lcom/crashlytics/android/ndk/JniNativeApi;",
"Lcom/devsmart/android/ui/HorizontalListView$1;",
"Lcom/devsmart/android/ui/HorizontalListView$2;",
"Lcom/devsmart/android/ui/HorizontalListView$3;",
"Lcom/devsmart/android/ui/HorizontalListView;",
"Lcom/facebook/AccessToken$SerializationProxyV2;",
"Lcom/facebook/AccessToken;",
"Lcom/facebook/AccessTokenSource;",
"Lcom/facebook/AppEventsLogger$1;",
"Lcom/facebook/AppEventsLogger$2;",
"Lcom/facebook/AppEventsLogger$3;",
"Lcom/facebook/AppEventsLogger$4;",
"Lcom/facebook/AppEventsLogger$5;",
"Lcom/facebook/q;",
"Lcom/facebook/AppEventsLogger$6;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair;",
"Lcom/facebook/AppEventsLogger$AppEvent$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AppEvent;",
"Lcom/facebook/AppEventsLogger$FlushBehavior;",
"Lcom/facebook/AppEventsLogger$FlushReason;",
"Lcom/facebook/AppEventsLogger$FlushResult;",
"Lcom/facebook/AppEventsLogger;",
"Lcom/facebook/h;",
"Lcom/facebook/AuthorizationClient$1;",
"Lcom/facebook/AuthorizationClient$2;",
"Lcom/facebook/AuthorizationClient$3;",
"Lcom/facebook/AuthorizationClient$4;",
"Lcom/facebook/x;",
"Lcom/facebook/AuthorizationClient$5;",
"Lcom/facebook/AuthorizationClient$AuthHandler;",
"Lcom/facebook/AuthorizationClient$AuthorizationRequest;",
"Lcom/facebook/internal/av;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaProxyAuthHandler;",
"Lcom/facebook/AuthorizationClient$Result$Code;",
"Lcom/facebook/AuthorizationClient$Result;",
"Lcom/facebook/widget/s;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler;",
"Lcom/facebook/AuthorizationClient;",
"Lcom/facebook/FacebookException;",
"Lcom/facebook/FacebookAuthorizationException;",
"Lcom/facebook/FacebookDialogException;",
"Lcom/facebook/FacebookGraphObjectException;",
"Lcom/facebook/FacebookOperationCanceledException;",
"Lcom/facebook/FacebookRequestError$Category;",
"Lcom/facebook/FacebookRequestError;",
"Lcom/facebook/FacebookServiceException;",
"Lcom/facebook/FacebookTimeSpentData$SerializationProxyV2;",
"Lcom/facebook/FacebookTimeSpentData;",
"Lcom/facebook/HttpMethod;",
"Lcom/facebook/LoggingBehavior;",
"Lcom/facebook/g;",
"Lcom/facebook/LoginActivity$1;",
"Lcom/facebook/f;",
"Lcom/facebook/LoginActivity$2;",
"Lcom/facebook/LoginActivity;",
"Lcom/facebook/Request$1;",
"Lcom/facebook/Request$2;",
"Lcom/facebook/s;",
"Lcom/facebook/Request$3;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType$1;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType;",
"Lcom/facebook/Request;",
"Lcom/facebook/Session$1;",
"Lcom/facebook/Session$2;",
"Lcom/facebook/Session$3;",
"Lcom/facebook/Session$4$1;",
"Lcom/facebook/Session$4;",
"Lcom/facebook/Session$5;",
"Lcom/facebook/af;",
"Lcom/facebook/Session$AuthorizationRequest$1;",
"Lcom/facebook/Session$AuthorizationRequest$2;",
"Lcom/facebook/Session$AuthorizationRequest$3;",
"Lcom/facebook/Session$AuthorizationRequest$4;",
"Lcom/facebook/Session$AuthorizationRequest$AuthRequestSerializationProxyV1;",
"Lcom/facebook/Session$AuthorizationRequest;",
"Lcom/facebook/Session$NewPermissionsRequest;",
"Lcom/facebook/Session$OpenRequest;",
"Lcom/facebook/Session$SerializationProxyV1;",
"Lcom/facebook/Session;",
"Lcom/facebook/SessionDefaultAudience;",
"Lcom/facebook/SessionLoginBehavior;",
"Lcom/facebook/SessionState$Category;",
"Lcom/facebook/SessionState;",
"Lcom/facebook/a/a;",
"Lcom/facebook/a/b;",
"Lcom/facebook/a/c;",
"Lcom/facebook/a/d;",
"Lcom/facebook/a/e;",
"Lcom/facebook/a/f;",
"Lcom/facebook/a/g;",
"Lcom/facebook/a/h;",
"Lcom/facebook/a;",
"Lcom/facebook/aa$1;",
"Lcom/facebook/aa;",
"Lcom/facebook/ab;",
"Lcom/facebook/ac;",
"Lcom/facebook/ad;",
"Lcom/facebook/ae;",
"Lcom/facebook/ag;",
"Lcom/facebook/ah;",
"Lcom/facebook/ai;",
"Lcom/facebook/aj$1;",
"Lcom/facebook/aj$2$1;",
"Lcom/facebook/aj$2;",
"Lcom/facebook/aj;",
"Lcom/facebook/al;",
"Lcom/facebook/ak;",
"Lcom/facebook/am;",
"Lcom/facebook/an;",
"Lcom/facebook/b$1;",
"Lcom/facebook/b;",
"Lcom/facebook/c;",
"Lcom/facebook/d;",
"Lcom/facebook/widget/q;",
"Lcom/facebook/widget/p;",
"Lcom/facebook/e;",
"Lcom/facebook/i;",
"Lcom/facebook/internal/LikeActionController$10;",
"Lcom/facebook/internal/aa;",
"Lcom/facebook/internal/LikeActionController$1;",
"Lcom/facebook/internal/LikeActionController$2;",
"Lcom/facebook/internal/LikeActionController$3;",
"Lcom/facebook/internal/LikeActionController$4;",
"Lcom/facebook/internal/LikeActionController$5$1;",
"Lcom/facebook/internal/LikeActionController$5;",
"Lcom/facebook/widget/b;",
"Lcom/facebook/internal/LikeActionController$6;",
"Lcom/facebook/internal/LikeActionController$7$1;",
"Lcom/facebook/internal/aj;",
"Lcom/facebook/internal/LikeActionController$7;",
"Lcom/facebook/internal/LikeActionController$8;",
"Lcom/facebook/internal/LikeActionController$9$1;",
"Lcom/facebook/internal/LikeActionController$9;",
"Lcom/facebook/widget/c;",
"Lcom/facebook/internal/LikeActionController$LikeDialogFeature;",
"Lcom/facebook/internal/LikeActionController;",
"Lcom/facebook/internal/LikeBoxCountView$1;",
"Lcom/facebook/internal/LikeBoxCountView$LikeBoxCountViewCaretPosition;",
"Lcom/facebook/internal/LikeBoxCountView;",
"Lcom/facebook/internal/SessionAuthorizationType;",
"Lcom/facebook/internal/a;",
"Lcom/facebook/internal/y;",
"Lcom/facebook/internal/ab;",
"Lcom/facebook/internal/ac;",
"Lcom/facebook/internal/ad;",
"Lcom/facebook/internal/ae;",
"Lcom/facebook/widget/a;",
"Lcom/facebook/internal/af;",
"Lcom/facebook/internal/ag;",
"Lcom/facebook/internal/ah;",
"Lcom/facebook/internal/ai;",
"Lcom/facebook/internal/ak;",
"Lcom/facebook/internal/al;",
"Lcom/facebook/internal/au;",
"Lcom/facebook/internal/am;",
"Lcom/facebook/internal/an;",
"Lcom/facebook/internal/ao;",
"Lcom/facebook/internal/ar;",
"Lcom/facebook/internal/ap;",
"Lcom/facebook/internal/aq;",
"Lcom/facebook/internal/as;",
"Lcom/facebook/internal/at;",
"Lcom/facebook/internal/au$1;",
"Lcom/facebook/internal/aw;",
"Lcom/facebook/internal/ax;",
"Lcom/facebook/internal/ay;",
"Lcom/facebook/internal/az;",
"Lcom/facebook/internal/c;",
"Lcom/facebook/internal/b$1;",
"Lcom/facebook/internal/b$2;",
"Lcom/facebook/internal/b$3;",
"Lcom/facebook/internal/b$4;",
"Lcom/facebook/internal/b$5;",
"Lcom/facebook/internal/b$6;",
"Lcom/facebook/internal/b$7;",
"Lcom/facebook/internal/b;",
"Lcom/facebook/internal/ba;",
"Lcom/facebook/internal/bb$1;",
"Lcom/facebook/internal/bb;",
"Lcom/facebook/internal/bc;",
"Lcom/facebook/internal/bd;",
"Lcom/facebook/internal/be;",
"Lcom/facebook/internal/bf$1;",
"Lcom/facebook/internal/bf;",
"Lcom/facebook/internal/bg;",
"Lcom/facebook/internal/bh;",
"Lcom/facebook/w;",
"Lcom/facebook/internal/d;",
"Lcom/facebook/internal/e$1;",
"Lcom/facebook/internal/e$2;",
"Lcom/facebook/widget/o;",
"Lcom/facebook/internal/e;",
"Lcom/facebook/internal/l;",
"Lcom/facebook/internal/f$1;",
"Lcom/facebook/internal/f$2;",
"Lcom/facebook/internal/f$3;",
"Lcom/facebook/internal/f;",
"Lcom/facebook/internal/g$1;",
"Lcom/facebook/internal/g$2;",
"Lcom/facebook/internal/g;",
"Lcom/facebook/internal/h;",
"Lcom/facebook/internal/i;",
"Lcom/facebook/internal/j;",
"Lcom/facebook/internal/k;",
"Lcom/facebook/internal/m;",
"Lcom/facebook/internal/n$1;",
"Lcom/facebook/internal/n;",
"Lcom/facebook/internal/o;",
"Lcom/facebook/internal/p;",
"Lcom/facebook/internal/q;",
"Lcom/facebook/internal/r;",
"Lcom/facebook/internal/s;",
"Lcom/facebook/internal/t;",
"Lcom/facebook/internal/u;",
"Lcom/facebook/internal/v;",
"Lcom/facebook/internal/w;",
"Lcom/facebook/internal/x;",
"Lcom/facebook/internal/y$1;",
"Lcom/facebook/internal/z;",
"Lcom/facebook/j;",
"Lcom/facebook/k;",
"Lcom/facebook/m;",
"Lcom/facebook/l$1;",
"Lcom/facebook/l$2;",
"Lcom/facebook/l;",
"Lcom/facebook/model/CreateGraphObject;",
"Lcom/facebook/model/GraphObject;",
"Lcom/facebook/model/GraphLocation;",
"Lcom/facebook/model/GraphMultiResult;",
"Lcom/facebook/model/GraphObjectList;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectListImpl;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy$1;",
"Lcom/facebook/model/GraphObject$Factory$ProxyBase;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy;",
"Lcom/facebook/model/GraphObject$Factory;",
"Lcom/facebook/model/GraphPlace;",
"Lcom/facebook/model/GraphUser;",
"Lcom/facebook/model/JsonUtil$JSONObjectEntry;",
"Lcom/facebook/model/JsonUtil;",
"Lcom/facebook/model/OpenGraphAction$Factory;",
"Lcom/facebook/model/OpenGraphAction;",
"Lcom/facebook/model/OpenGraphObject$Factory;",
"Lcom/facebook/model/OpenGraphObject;",
"Lcom/facebook/model/PropertyName;",
"Lcom/facebook/z;",
"Lcom/facebook/n;",
"Lcom/facebook/o$1;",
"Lcom/facebook/o;",
"Lcom/facebook/p;",
"Lcom/facebook/r;",
"Lcom/facebook/t;",
"Lcom/facebook/u;",
"Lcom/facebook/v;",
"Lcom/facebook/widget/FacebookDialog$PendingCall$1;",
"Lcom/facebook/widget/FacebookDialog$PendingCall;",
"Lcom/facebook/widget/FacebookDialog;",
"Lcom/facebook/widget/LikeView$1;",
"Lcom/facebook/widget/LikeView$2;",
"Lcom/facebook/widget/LikeView$AuxiliaryViewPosition;",
"Lcom/facebook/widget/LikeView$HorizontalAlignment;",
"Lcom/facebook/widget/LikeView$Style;",
"Lcom/facebook/widget/LikeView;",
"Lcom/facebook/widget/LoginButton$1;",
"Lcom/facebook/widget/LoginButton$2;",
"Lcom/facebook/widget/LoginButton$ToolTipMode;",
"Lcom/facebook/widget/LoginButton;",
"Lcom/facebook/widget/ProfilePictureView$1;",
"Lcom/facebook/widget/ProfilePictureView;",
"Lcom/facebook/widget/ToolTipPopup$1;",
"Lcom/facebook/widget/ToolTipPopup$2;",
"Lcom/facebook/widget/ToolTipPopup$3;",
"Lcom/facebook/widget/ToolTipPopup$Style;",
"Lcom/facebook/widget/ToolTipPopup;",
"Lcom/facebook/widget/d;",
"Lcom/facebook/widget/a$1;",
"Lcom/facebook/widget/e;",
"Lcom/facebook/widget/f;",
"Lcom/facebook/widget/g;",
"Lcom/facebook/widget/h;",
"Lcom/facebook/widget/i;",
"Lcom/facebook/widget/j$1;",
"Lcom/facebook/widget/j;",
"Lcom/facebook/widget/k;",
"Lcom/facebook/widget/l;",
"Lcom/facebook/widget/m;",
"Lcom/facebook/widget/n;",
"Lcom/facebook/widget/o$1;",
"Lcom/facebook/widget/o$2;",
"Lcom/facebook/widget/o$3;",
"Lcom/facebook/widget/r;",
"Lcom/facebook/y;",
"Lcom/fasterxml/jackson/annotation/JacksonAnnotationsInside;",
"Lcom/fasterxml/jackson/annotation/JacksonInject;",
"Lcom/fasterxml/jackson/annotation/JsonAnyGetter;",
"Lcom/fasterxml/jackson/annotation/JsonAnySetter;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$1;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$Visibility;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect;",
"Lcom/fasterxml/jackson/annotation/JsonBackReference;",
"Lcom/fasterxml/jackson/annotation/JsonCreator;",
"Lcom/fasterxml/jackson/annotation/JsonFilter;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Shape;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Value;",
"Lcom/fasterxml/jackson/annotation/JsonFormat;",
"Lcom/fasterxml/jackson/annotation/JsonGetter;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityInfo;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityReference;",
"Lcom/fasterxml/jackson/annotation/JsonIgnore;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreProperties;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreType;",
"Lcom/fasterxml/jackson/annotation/JsonInclude$Include;",
"Lcom/fasterxml/jackson/annotation/JsonInclude;",
"Lcom/fasterxml/jackson/annotation/JsonManagedReference;",
"Lcom/fasterxml/jackson/annotation/JsonProperty;",
"Lcom/fasterxml/jackson/annotation/JsonPropertyOrder;",
"Lcom/fasterxml/jackson/annotation/JsonRawValue;",
"Lcom/fasterxml/jackson/annotation/JsonRootName;",
"Lcom/fasterxml/jackson/annotation/JsonSetter;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes$Type;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes;",
"Lcom/fasterxml/jackson/annotation/JsonTypeId;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$As;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$Id;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$None;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo;",
"Lcom/fasterxml/jackson/annotation/JsonTypeName;",
"Lcom/fasterxml/jackson/annotation/JsonUnwrapped;",
"Lcom/fasterxml/jackson/annotation/JsonValue;",
"Lcom/fasterxml/jackson/annotation/JsonView;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator$IdKey;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$Base;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$None;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$PropertyGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators;",
"Lcom/fasterxml/jackson/core/Base64Variant;",
"Lcom/fasterxml/jackson/core/Base64Variants;",
"Lcom/fasterxml/jackson/core/FormatSchema;",
"Lcom/fasterxml/jackson/core/JsonEncoding;",
"Lcom/fasterxml/jackson/core/JsonFactory$Feature;",
"Lcom/fasterxml/jackson/core/JsonFactory;",
"Lcom/fasterxml/jackson/core/JsonProcessingException;",
"Lcom/fasterxml/jackson/core/JsonGenerationException;",
"Lcom/fasterxml/jackson/core/JsonGenerator$Feature;",
"Lcom/fasterxml/jackson/core/JsonGenerator;",
"Lcom/fasterxml/jackson/core/JsonLocation;",
"Lcom/fasterxml/jackson/core/JsonParseException;",
"Lcom/fasterxml/jackson/core/JsonParser$Feature;",
"Lcom/fasterxml/jackson/core/JsonParser$NumberType;",
"Lcom/fasterxml/jackson/core/JsonParser;",
"Lcom/fasterxml/jackson/core/JsonStreamContext;",
"Lcom/fasterxml/jackson/core/JsonToken;",
"Lcom/fasterxml/jackson/core/ObjectCodec;",
"Lcom/fasterxml/jackson/core/PrettyPrinter;",
"Lcom/fasterxml/jackson/core/SerializableString;",
"Lcom/fasterxml/jackson/core/TreeNode;",
"Lcom/fasterxml/jackson/core/base/GeneratorBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase;",
"Lcom/fasterxml/jackson/core/base/ParserBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase$1;",
"Lcom/fasterxml/jackson/core/io/BaseReader;",
"Lcom/fasterxml/jackson/core/io/CharTypes;",
"Lcom/fasterxml/jackson/core/io/CharacterEscapes;",
"Lcom/fasterxml/jackson/core/io/IOContext;",
"Lcom/fasterxml/jackson/core/io/InputDecorator;",
"Lcom/fasterxml/jackson/core/io/JsonStringEncoder;",
"Lcom/fasterxml/jackson/core/io/MergedStream;",
"Lcom/fasterxml/jackson/core/io/NumberInput;",
"Lcom/fasterxml/jackson/core/io/NumberOutput;",
"Lcom/fasterxml/jackson/core/io/OutputDecorator;",
"Lcom/fasterxml/jackson/core/io/SegmentedStringWriter;",
"Lcom/fasterxml/jackson/core/io/SerializedString;",
"Lcom/fasterxml/jackson/core/io/UTF32Reader;",
"Lcom/fasterxml/jackson/core/io/UTF8Writer;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper$1;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper;",
"Lcom/fasterxml/jackson/core/json/JsonGeneratorImpl;",
"Lcom/fasterxml/jackson/core/json/JsonReadContext;",
"Lcom/fasterxml/jackson/core/json/JsonWriteContext;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser;",
"Lcom/fasterxml/jackson/core/json/UTF8JsonGenerator;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser;",
"Lcom/fasterxml/jackson/core/json/WriterBasedJsonGenerator;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$TableInfo;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/Name;",
"Lcom/fasterxml/jackson/core/sym/Name1;",
"Lcom/fasterxml/jackson/core/sym/Name2;",
"Lcom/fasterxml/jackson/core/sym/Name3;",
"Lcom/fasterxml/jackson/core/sym/NameN;",
"Lcom/fasterxml/jackson/core/type/ResolvedType;",
"Lcom/fasterxml/jackson/core/type/TypeReference;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$ByteBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$CharBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler;",
"Lcom/fasterxml/jackson/core/util/ByteArrayBuilder;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$FixedSpaceIndenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Lf2SpacesIndenter;",
"Lcom/fasterxml/jackson/core/util/Instantiatable;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/InternCache;",
"Lcom/fasterxml/jackson/core/util/JsonParserDelegate;",
"Lcom/fasterxml/jackson/core/util/JsonParserSequence;",
"Lcom/fasterxml/jackson/core/util/MinimalPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/TextBuffer;",
"Lcom/fasterxml/jackson/databind/AbstractTypeResolver;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty$Type;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/BeanDescription;",
"Lcom/fasterxml/jackson/databind/BeanProperty;",
"Lcom/fasterxml/jackson/databind/BeanProperty$Std;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector$MixInResolver;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfig;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfigBase;",
"Lcom/fasterxml/jackson/databind/DeserializationConfig;",
"Lcom/fasterxml/jackson/databind/DeserializationContext;",
"Lcom/fasterxml/jackson/databind/cfg/ConfigFeature;",
"Lcom/fasterxml/jackson/databind/DeserializationFeature;",
"Lcom/fasterxml/jackson/databind/InjectableValues;",
"Lcom/fasterxml/jackson/databind/JavaType;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer$None;",
"Lcom/fasterxml/jackson/databind/JsonMappingException$Reference;",
"Lcom/fasterxml/jackson/databind/JsonMappingException;",
"Lcom/fasterxml/jackson/databind/JsonNode;",
"Lcom/fasterxml/jackson/databind/JsonSerializable;",
"Lcom/fasterxml/jackson/databind/JsonSerializer;",
"Lcom/fasterxml/jackson/databind/JsonSerializer$None;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer$None;",
"Lcom/fasterxml/jackson/databind/MapperFeature;",
"Lcom/fasterxml/jackson/databind/MappingJsonFactory;",
"Lcom/fasterxml/jackson/databind/ObjectMapper;",
"Lcom/fasterxml/jackson/databind/ObjectWriter;",
"Lcom/fasterxml/jackson/databind/PropertyName;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PropertyNamingStrategyBase;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PascalCaseStrategy;",
"Lcom/fasterxml/jackson/databind/SerializationConfig;",
"Lcom/fasterxml/jackson/databind/SerializationFeature;",
"Lcom/fasterxml/jackson/databind/SerializerProvider;",
"Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl;",
"Lcom/fasterxml/jackson/databind/annotation/JsonDeserialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonNaming;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder$Value;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Inclusion;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Typing;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeIdResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonValueInstantiator;",
"Lcom/fasterxml/jackson/databind/annotation/NoClass;",
"Lcom/fasterxml/jackson/databind/cfg/BaseSettings;",
"Lcom/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/cfg/HandlerInstantiator;",
"Lcom/fasterxml/jackson/databind/cfg/SerializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ResolvableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBuilder;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerModifier;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/SettableBeanProperty;",
"Lcom/fasterxml/jackson/databind/deser/CreatorProperty;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext$Impl;",
"Lcom/fasterxml/jackson/databind/deser/DeserializationProblemHandler;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerCache;",
"Lcom/fasterxml/jackson/databind/deser/Deserializers;",
"Lcom/fasterxml/jackson/databind/deser/KeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/SettableAnyProperty;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiators;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayBuilderDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$Bucket;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$IteratorImpl;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap;",
"Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$Builder;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$ExtTypedProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/FieldProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/InnerClassProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ManagedReferenceProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/MethodProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/NullProvider;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdReader;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdValueProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedCreator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Any;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Map;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Regular;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValueBuffer;",
"Lcom/fasterxml/jackson/databind/deser/impl/ReadableObjectId;",
"Lcom/fasterxml/jackson/databind/deser/impl/SetterlessProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/TypeWrappedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/UnwrappedPropertyHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/ValueInjector;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdScalarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ClassDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ContainerDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/std/CollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$CalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$SqlDateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimeZoneDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimestampDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/DelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer$FactoryBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumMapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumSetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JavaTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JsonLocationInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$TokenBufferDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicBooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicReferenceDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CharsetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CurrencyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$FileDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$InetAddressDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$LocaleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$PatternDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$StackTraceElementDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URIDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URLDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$UUIDDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/MapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$1;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigDecimalDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigIntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$PrimitiveOrWrapperDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ByteDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$CharacterDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$DoubleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$FloatDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$IntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$LongDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$NumberDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ShortDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/ObjectArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$Base;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$BooleanDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ByteDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$CharDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$DoubleDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$FloatDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$IntDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$LongDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ShortDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$StringDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$BoolKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ByteKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CalendarKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CharKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DateKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DelegatingKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DoubleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$EnumKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$FloatKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$IntKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LocaleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LongKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ShortKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringCtorKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringFactoryKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$UuidKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/StringCollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ThrowableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/exc/InvalidFormatException;",
"Lcom/fasterxml/jackson/databind/exc/UnrecognizedPropertyException;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$DurationDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$GregorianCalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$QNameDeserializer;",
"Lcom/fasterxml/jackson/databind/util/Provider;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers$XMLGregorianCalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$DocumentDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$NodeDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMSerializer;",
"Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;",
"Lcom/fasterxml/jackson/databind/introspect/Annotated;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedClass;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMember;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedWithParams;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethodMap;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedParameter;",
"Lcom/fasterxml/jackson/databind/util/Annotations;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotationMap;",
"Lcom/fasterxml/jackson/databind/introspect/BasicBeanDescription;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BasicClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/MemberKey;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/ObjectIdInfo;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$WithMember;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$2;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$3;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$Linked;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker$Std;",
"Lcom/fasterxml/jackson/databind/jsontype/NamedType;",
"Lcom/fasterxml/jackson/databind/jsontype/SubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeDeserializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeSerializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeIdResolverBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/ClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/MinimalClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdSubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeNameIdResolver;",
"Lcom/fasterxml/jackson/databind/node/BaseJsonNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode;",
"Lcom/fasterxml/jackson/databind/node/ArrayNode;",
"Lcom/fasterxml/jackson/databind/node/ValueNode;",
"Lcom/fasterxml/jackson/databind/node/NumericNode;",
"Lcom/fasterxml/jackson/databind/node/BigIntegerNode;",
"Lcom/fasterxml/jackson/databind/node/BinaryNode;",
"Lcom/fasterxml/jackson/databind/node/BooleanNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode$NoNodesIterator;",
"Lcom/fasterxml/jackson/databind/node/DecimalNode;",
"Lcom/fasterxml/jackson/databind/node/DoubleNode;",
"Lcom/fasterxml/jackson/databind/node/IntNode;",
"Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;",
"Lcom/fasterxml/jackson/databind/node/LongNode;",
"Lcom/fasterxml/jackson/databind/node/MissingNode;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Array;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Object;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$RootValue;",
"Lcom/fasterxml/jackson/databind/node/NullNode;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode$NoFieldsIterator;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode;",
"Lcom/fasterxml/jackson/databind/node/POJONode;",
"Lcom/fasterxml/jackson/databind/node/TextNode;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser$1;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser;",
"Lcom/fasterxml/jackson/databind/ser/AnyGetterWriter;",
"Lcom/fasterxml/jackson/databind/ser/SerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BasicSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyFilter;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/ContextualSerializer;",
"Lcom/fasterxml/jackson/databind/ser/ResolvableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/BeanSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerBuilder;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerModifier;",
"Lcom/fasterxml/jackson/databind/ser/ContainerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider$Impl;",
"Lcom/fasterxml/jackson/databind/ser/FilterProvider;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache$TypeKey;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache;",
"Lcom/fasterxml/jackson/databind/ser/Serializers;",
"Lcom/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FailingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$MultiView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$SingleView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/std/AsArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StaticListSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedStringListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/IteratorSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap$Bucket;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/ObjectIdWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Double;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Empty;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Multi;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$SerializerAndMapResult;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Single;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$TypeAndSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/std/ArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringCollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/TypeWrappedSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnknownSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/WritableObjectId;",
"Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NonTypedScalarSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/BooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/CalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/CollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumMapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSetSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/InetAddressSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/IterableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/JsonValueSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/MapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NullSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$DoubleSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$FloatSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntLikeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$LongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$NumberSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/ObjectArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/RawSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SerializableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlDateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlTimeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$BooleanArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ByteArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$CharArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$DoubleArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$TypedPrimitiveArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$FloatArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$IntArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$LongArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ShortArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdContainerSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicBooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicIntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicLongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicReferenceSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$ClassSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$FileSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$CalendarKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$DateKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$StringKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TimeZoneSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/ToStringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TokenBufferSerializer;",
"Lcom/fasterxml/jackson/databind/type/TypeBase;",
"Lcom/fasterxml/jackson/databind/type/ArrayType;",
"Lcom/fasterxml/jackson/databind/type/ClassKey;",
"Lcom/fasterxml/jackson/databind/type/CollectionLikeType;",
"Lcom/fasterxml/jackson/databind/type/CollectionType;",
"Lcom/fasterxml/jackson/databind/type/HierarchicType;",
"Lcom/fasterxml/jackson/databind/type/MapLikeType;",
"Lcom/fasterxml/jackson/databind/type/MapType;",
"Lcom/fasterxml/jackson/databind/type/SimpleType;",
"Lcom/fasterxml/jackson/databind/type/TypeBindings;",
"Lcom/fasterxml/jackson/databind/type/TypeFactory;",
"Lcom/fasterxml/jackson/databind/type/TypeModifier;",
"Lcom/fasterxml/jackson/databind/type/TypeParser$MyTokenizer;",
"Lcom/fasterxml/jackson/databind/type/TypeParser;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ArrayIterator;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$BooleanBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ByteBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$DoubleBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$FloatBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$IntBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$LongBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ShortBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders;",
"Lcom/fasterxml/jackson/databind/util/BeanUtil;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil;",
"Lcom/fasterxml/jackson/databind/util/Comparators$1;",
"Lcom/fasterxml/jackson/databind/util/Comparators;",
"Lcom/fasterxml/jackson/databind/util/Converter;",
"Lcom/fasterxml/jackson/databind/util/EnumResolver;",
"Lcom/fasterxml/jackson/databind/util/EnumValues;",
"Lcom/fasterxml/jackson/databind/util/LRUMap;",
"Lcom/fasterxml/jackson/databind/util/LinkedNode;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$1;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$2;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$3;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$4;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$Chained;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer$Node;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder$Node;",
"Lcom/fasterxml/jackson/databind/util/RootNameLookup;",
"Lcom/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/util/StdDateFormat;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$1;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Parser;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Segment;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Empty;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Multi;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Single;",
"Lcom/ford/syncV4/a/a;",
"Lcom/ford/syncV4/b/a;",
"Lcom/ford/syncV4/b/b;",
"Lcom/ford/syncV4/b/c;",
"Lcom/ford/syncV4/b/d;",
"Lcom/ford/syncV4/b/e$1;",
"Lcom/ford/syncV4/b/e;",
"Lcom/ford/syncV4/c/a;",
"Lcom/ford/syncV4/d/a;",
"Lcom/ford/syncV4/protocol/c;",
"Lcom/ford/syncV4/transport/f;",
"Lcom/ford/syncV4/d/b;",
"Lcom/ford/syncV4/d/c;",
"Lcom/ford/syncV4/protocol/a/c;",
"Lcom/ford/syncV4/d/d;",
"Lcom/ford/syncV4/exception/SyncException;",
"Lcom/ford/syncV4/exception/SyncExceptionCause;",
"Lcom/ford/syncV4/protocol/a/a$1;",
"Lcom/ford/syncV4/protocol/a/a$2;",
"Lcom/ford/syncV4/protocol/a/b;",
"Lcom/ford/syncV4/protocol/a/a;",
"Lcom/ford/syncV4/protocol/a;",
"Lcom/ford/syncV4/protocol/b;",
"Lcom/ford/syncV4/protocol/d;",
"Lcom/ford/syncV4/protocol/e;",
"Lcom/ford/syncV4/protocol/enums/FunctionID$1;",
"Lcom/ford/syncV4/protocol/enums/MessageType;",
"Lcom/ford/syncV4/util/b;",
"Lcom/ford/syncV4/protocol/enums/a;",
"Lcom/ford/syncV4/protocol/enums/b;",
"Lcom/ford/syncV4/protocol/enums/c;",
"Lcom/ford/syncV4/protocol/enums/d;",
"Lcom/ford/syncV4/protocol/f;",
"Lcom/ford/syncV4/protocol/g;",
"Lcom/ford/syncV4/protocol/h;",
"Lcom/ford/syncV4/proxy/a/a;",
"Lcom/ford/syncV4/proxy/a/b;",
"Lcom/ford/syncV4/proxy/a/c;",
"Lcom/ford/syncV4/proxy/b/b;",
"Lcom/ford/syncV4/proxy/a;",
"Lcom/ford/syncV4/proxy/b/a;",
"Lcom/ford/syncV4/proxy/b;",
"Lcom/ford/syncV4/proxy/h;",
"Lcom/ford/syncV4/proxy/c;",
"Lcom/ford/syncV4/proxy/d;",
"Lcom/ford/syncV4/proxy/e;",
"Lcom/ford/syncV4/proxy/f;",
"Lcom/ford/syncV4/proxy/g;",
"Lcom/ford/syncV4/proxy/j;",
"Lcom/ford/syncV4/proxy/i;",
"Lcom/ford/syncV4/proxy/j$10;",
"Lcom/ford/syncV4/proxy/j$11;",
"Lcom/ford/syncV4/proxy/j$12;",
"Lcom/ford/syncV4/proxy/j$13;",
"Lcom/ford/syncV4/proxy/j$14;",
"Lcom/ford/syncV4/proxy/j$15;",
"Lcom/ford/syncV4/proxy/j$16;",
"Lcom/ford/syncV4/proxy/j$17;",
"Lcom/ford/syncV4/proxy/j$18;",
"Lcom/ford/syncV4/proxy/j$19;",
"Lcom/ford/syncV4/proxy/j$1;",
"Lcom/ford/syncV4/proxy/j$20;",
"Lcom/ford/syncV4/proxy/j$21;",
"Lcom/ford/syncV4/proxy/j$22;",
"Lcom/ford/syncV4/proxy/j$23;",
"Lcom/ford/syncV4/proxy/j$24;",
"Lcom/ford/syncV4/proxy/j$25;",
"Lcom/ford/syncV4/proxy/j$26;",
"Lcom/ford/syncV4/proxy/j$27;",
"Lcom/ford/syncV4/proxy/j$28;",
"Lcom/ford/syncV4/proxy/j$29;",
"Lcom/ford/syncV4/proxy/j$2;",
"Lcom/ford/syncV4/proxy/j$30;",
"Lcom/ford/syncV4/proxy/j$31;",
"Lcom/ford/syncV4/proxy/j$32;",
"Lcom/ford/syncV4/proxy/j$33;",
"Lcom/ford/syncV4/proxy/j$34;",
"Lcom/ford/syncV4/proxy/j$35;",
"Lcom/ford/syncV4/proxy/j$36;",
"Lcom/ford/syncV4/proxy/j$37;",
"Lcom/ford/syncV4/proxy/j$38;",
"Lcom/ford/syncV4/proxy/j$39;",
"Lcom/ford/syncV4/proxy/j$3;",
"Lcom/ford/syncV4/proxy/j$40;",
"Lcom/ford/syncV4/proxy/j$41;",
"Lcom/ford/syncV4/proxy/j$42;",
"Lcom/ford/syncV4/proxy/j$43;",
"Lcom/ford/syncV4/proxy/j$44;",
"Lcom/ford/syncV4/proxy/j$45;",
"Lcom/ford/syncV4/proxy/j$46;",
"Lcom/ford/syncV4/proxy/j$47;",
"Lcom/ford/syncV4/proxy/j$48;",
"Lcom/ford/syncV4/proxy/j$49;",
"Lcom/ford/syncV4/proxy/j$4;",
"Lcom/ford/syncV4/proxy/j$50;",
"Lcom/ford/syncV4/proxy/j$51;",
"Lcom/ford/syncV4/proxy/j$52;",
"Lcom/ford/syncV4/proxy/j$53;",
"Lcom/ford/syncV4/proxy/j$54;",
"Lcom/ford/syncV4/proxy/j$55;",
"Lcom/ford/syncV4/proxy/j$56;",
"Lcom/ford/syncV4/proxy/j$57;",
"Lcom/ford/syncV4/proxy/j$58;",
"Lcom/ford/syncV4/proxy/j$59;",
"Lcom/ford/syncV4/proxy/j$5;",
"Lcom/ford/syncV4/proxy/j$60;",
"Lcom/ford/syncV4/proxy/j$61;",
"Lcom/ford/syncV4/proxy/j$62;",
"Lcom/ford/syncV4/proxy/j$63;",
"Lcom/ford/syncV4/proxy/j$64;",
"Lcom/ford/syncV4/proxy/j$6;",
"Lcom/ford/syncV4/proxy/j$7;",
"Lcom/ford/syncV4/proxy/j$8;",
"Lcom/ford/syncV4/pr
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ClassInfos -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ClassInfos -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.ChainedScript import ChainedScript
from androlyze.model.script.impl.ClassDetails import ClassDetails
from androlyze.model.script.impl.ClassListing import ClassListing
class ClassInfos(ChainedScript):
''' List classes as well as their details (methods and fields) '''
VERSION = "0.1"
############################################################
#---ChainedScript options
############################################################
def chain_scripts(self):
return [ClassListing(), ClassDetails()]
def continue_on_script_failure(self):
''' Specify if the analysis shall continue if a script encounters an error '''
return True
def log_script_failure_exception(self):
''' If true, write the exception into the result file'''
return True
def create_script_stats(self):
''' If true, create some script statistics and
write them into the `ResultObject` (at least if used)'''
return True
if __name__ == '__main__':
from androlyze.model.script.AndroScript import AndroScript
for res in AndroScript.test(ClassInfos, ["../../../../testenv/apks/a2dp.Vol.apk"]):
# get result object
print res
print
# get json
print res.write_to_json()
ClassListing¶
This is an autogenerated documentation file for the script: ClassListing
Run it¶
$ ./androanalyze scripts_builtin/ClassListing.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ClassListing -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ClassListing",
"sha256": "751e97d37b745d177d670debd51d8950ba070cfcb0dbb4914d6d6ae7143df0b8",
"analysis date": "2015-06-26T17:13:38.527000",
"version": "0.1"
},
"classes": [
"Landroid/support/v4/a/a/a;",
"Landroid/support/v4/a/a/c;",
"Landroid/support/v4/a/a/b;",
"Landroid/support/v4/a/a/d;",
"Landroid/support/v4/a/a/e;",
"Landroid/support/v4/a/a/f;",
"Landroid/support/v4/a/a/g;",
"Landroid/support/v4/a/a/h;",
"Landroid/support/v4/a/a/i;",
"Landroid/support/v4/app/BackStackState$1;",
"Landroid/support/v4/app/BackStackState;",
"Landroid/support/v4/app/k;",
"Landroid/support/v4/app/Fragment$1;",
"Landroid/support/v4/app/Fragment$InstantiationException;",
"Landroid/support/v4/app/Fragment$SavedState$1;",
"Landroid/support/v4/app/Fragment$SavedState;",
"Landroid/support/v4/app/Fragment;",
"Landroid/support/v4/app/FragmentManagerState$1;",
"Landroid/support/v4/app/FragmentManagerState;",
"Landroid/support/v4/app/FragmentState$1;",
"Landroid/support/v4/app/FragmentState;",
"Landroid/support/v4/app/FragmentTabHost$SavedState$1;",
"Landroid/support/v4/app/FragmentTabHost$SavedState;",
"Landroid/support/v4/app/FragmentTabHost;",
"Landroid/support/v4/app/SuperNotCalledException;",
"Landroid/support/v4/content/c;",
"Landroid/support/v4/app/a;",
"Landroid/support/v4/app/aa;",
"Landroid/support/v4/app/ab;",
"Landroid/support/v4/app/ac;",
"Landroid/support/v4/app/ad;",
"Landroid/support/v4/app/ae;",
"Landroid/support/v4/app/af;",
"Landroid/support/v4/app/ag;",
"Landroid/support/v4/app/ah;",
"Landroid/support/v4/app/ai;",
"Landroid/support/v4/app/be;",
"Landroid/support/v4/app/aj$1;",
"Landroid/support/v4/app/bd;",
"Landroid/support/v4/app/aj;",
"Landroid/support/v4/app/ax;",
"Landroid/support/v4/app/ak;",
"Landroid/support/v4/app/al;",
"Landroid/support/v4/app/am;",
"Landroid/support/v4/app/an;",
"Landroid/support/v4/app/ao;",
"Landroid/support/v4/app/ar;",
"Landroid/support/v4/app/av;",
"Landroid/support/v4/app/aw;",
"Landroid/support/v4/app/ap;",
"Landroid/support/v4/app/aq;",
"Landroid/support/v4/app/as;",
"Landroid/support/v4/app/at;",
"Landroid/support/v4/app/au;",
"Landroid/support/v4/app/ay;",
"Landroid/support/v4/app/az;",
"Landroid/support/v4/app/b;",
"Landroid/support/v4/app/ba;",
"Landroid/support/v4/app/bb;",
"Landroid/support/v4/app/bc;",
"Landroid/support/v4/app/bf;",
"Landroid/support/v4/app/bg;",
"Landroid/support/v4/app/bh;",
"Landroid/support/v4/app/bi;",
"Landroid/support/v4/app/bj;",
"Landroid/support/v4/app/bk;",
"Landroid/support/v4/app/bl;",
"Landroid/support/v4/app/bu;",
"Landroid/support/v4/app/bm$1;",
"Landroid/support/v4/app/bt;",
"Landroid/support/v4/app/bm;",
"Landroid/support/v4/app/bn;",
"Landroid/support/v4/app/bo;",
"Landroid/support/v4/app/bp;",
"Landroid/support/v4/app/bq;",
"Landroid/support/v4/app/br;",
"Landroid/support/v4/app/bs;",
"Landroid/support/v4/app/bv;",
"Landroid/support/v4/app/bw;",
"Landroid/support/v4/app/bx;",
"Landroid/support/v4/app/by;",
"Landroid/support/v4/app/bz;",
"Landroid/support/v4/app/c;",
"Landroid/support/v4/app/ca;",
"Landroid/support/v4/app/cb;",
"Landroid/support/v4/app/d;",
"Landroid/support/v4/app/u;",
"Landroid/support/v4/app/e$1;",
"Landroid/support/v4/app/e$2;",
"Landroid/support/v4/app/e$3;",
"Landroid/support/v4/app/r;",
"Landroid/support/v4/app/e;",
"Landroid/support/v4/app/f;",
"Landroid/support/v4/app/g;",
"Landroid/support/v4/app/h;",
"Landroid/support/v4/app/i$1;",
"Landroid/support/v4/app/i$2;",
"Landroid/support/v4/app/i;",
"Landroid/support/v4/app/j;",
"Landroid/support/v4/app/l;",
"Landroid/support/v4/app/m;",
"Landroid/support/v4/app/n$1;",
"Landroid/support/v4/app/n$2;",
"Landroid/support/v4/app/n$3;",
"Landroid/support/v4/app/n$4;",
"Landroid/support/v4/app/n;",
"Landroid/support/v4/app/o;",
"Landroid/support/v4/view/at;",
"Landroid/support/v4/app/p;",
"Landroid/support/v4/app/q;",
"Landroid/support/v4/app/s$1;",
"Landroid/support/v4/app/s$2;",
"Landroid/support/v4/app/s$3;",
"Landroid/support/v4/app/s$4;",
"Landroid/support/v4/app/s;",
"Landroid/support/v4/app/t;",
"Landroid/support/v4/app/v$1;",
"Landroid/support/v4/app/v$2;",
"Landroid/support/v4/app/v;",
"Landroid/support/v4/app/w;",
"Landroid/support/v4/app/x;",
"Landroid/support/v4/app/y;",
"Landroid/support/v4/content/p;",
"Landroid/support/v4/app/z;",
"Landroid/support/v4/b/a/a;",
"Landroid/support/v4/b/a/b;",
"Landroid/support/v4/b/a/c;",
"Landroid/support/v4/c/a;",
"Landroid/support/v4/c/b;",
"Landroid/support/v4/c/c;",
"Landroid/support/v4/c/d;",
"Landroid/support/v4/c/e;",
"Landroid/support/v4/c/f;",
"Landroid/support/v4/c/g;",
"Landroid/support/v4/content/ModernAsyncTask$1;",
"Landroid/support/v4/content/v;",
"Landroid/support/v4/content/ModernAsyncTask$2;",
"Landroid/support/v4/content/ModernAsyncTask$3;",
"Landroid/support/v4/content/ModernAsyncTask$4;",
"Landroid/support/v4/content/ModernAsyncTask$Status;",
"Landroid/support/v4/content/ModernAsyncTask;",
"Landroid/support/v4/content/n;",
"Landroid/support/v4/content/a;",
"Landroid/support/v4/content/b;",
"Landroid/support/v4/content/d;",
"Landroid/support/v4/content/e;",
"Landroid/support/v4/content/f;",
"Landroid/support/v4/content/g;",
"Landroid/support/v4/content/h;",
"Landroid/support/v4/content/i;",
"Landroid/support/v4/content/j;",
"Landroid/support/v4/content/k;",
"Landroid/support/v4/content/l;",
"Landroid/support/v4/content/m;",
"Landroid/support/v4/content/o;",
"Landroid/support/v4/content/q$1;",
"Landroid/support/v4/content/q;",
"Landroid/support/v4/content/r;",
"Landroid/support/v4/content/s;",
"Landroid/support/v4/content/t;",
"Landroid/support/v4/content/u;",
"Landroid/support/v4/d/a;",
"Landroid/support/v4/d/b;",
"Landroid/support/v4/d/c;",
"Landroid/support/v4/d/d;",
"Landroid/support/v4/d/e;",
"Landroid/support/v4/d/f;",
"Landroid/support/v4/e/g;",
"Landroid/support/v4/e/a$1;",
"Landroid/support/v4/e/p;",
"Landroid/support/v4/e/a;",
"Landroid/support/v4/e/b;",
"Landroid/support/v4/e/c;",
"Landroid/support/v4/e/d;",
"Landroid/support/v4/e/e;",
"Landroid/support/v4/e/f;",
"Landroid/support/v4/e/h;",
"Landroid/support/v4/e/i;",
"Landroid/support/v4/e/j;",
"Landroid/support/v4/e/k;",
"Landroid/support/v4/e/l;",
"Landroid/support/v4/e/m;",
"Landroid/support/v4/e/n;",
"Landroid/support/v4/e/o;",
"Landroid/support/v4/e/q;",
"Landroid/support/v4/e/r;",
"Landroid/support/v4/view/co;",
"Landroid/support/v4/view/ActionBarTabStrip;",
"Landroid/support/v4/view/PagerTabStrip$1;",
"Landroid/support/v4/view/PagerTabStrip$2;",
"Landroid/support/v4/view/PagerTitleStrip;",
"Landroid/support/v4/view/PagerTabStrip;",
"Landroid/support/v4/view/PagerTitleStripHacked;",
"Landroid/support/v4/view/ViewPager$1;",
"Landroid/support/v4/view/ViewPager$2;",
"Landroid/support/v4/view/ViewPager$3;",
"Landroid/support/v4/view/ViewPager$LayoutParams;",
"Landroid/support/v4/view/ViewPager$SavedState$1;",
"Landroid/support/v4/view/ViewPager$SavedState;",
"Landroid/support/v4/view/ViewPager;",
"Landroid/support/v4/view/a/a;",
"Landroid/support/v4/view/a/aa$1;",
"Landroid/support/v4/view/a/aa;",
"Landroid/support/v4/view/a/ab;",
"Landroid/support/v4/view/a/ac;",
"Landroid/support/v4/view/a/af;",
"Landroid/support/v4/view/a/ah;",
"Landroid/support/v4/view/a/ad;",
"Landroid/support/v4/view/a/ae;",
"Landroid/support/v4/view/a/ag;",
"Landroid/support/v4/view/a/ai;",
"Landroid/support/v4/view/a/d;",
"Landroid/support/v4/view/a/c;",
"Landroid/support/v4/view/a/b;",
"Landroid/support/v4/view/a/e;",
"Landroid/support/v4/view/a/h;",
"Landroid/support/v4/view/a/l;",
"Landroid/support/v4/view/a/g;",
"Landroid/support/v4/view/a/i;",
"Landroid/support/v4/view/a/j;",
"Landroid/support/v4/view/a/k;",
"Landroid/support/v4/view/a/f;",
"Landroid/support/v4/view/a/m;",
"Landroid/support/v4/view/a/n;",
"Landroid/support/v4/view/a/o;",
"Landroid/support/v4/view/a/p;",
"Landroid/support/v4/view/a/q;",
"Landroid/support/v4/view/a/r;",
"Landroid/support/v4/view/a/s;",
"Landroid/support/v4/view/a/t;",
"Landroid/support/v4/view/a/u;",
"Landroid/support/v4/view/a/z;",
"Landroid/support/v4/view/a/v$1;",
"Landroid/support/v4/view/a/x;",
"Landroid/support/v4/view/a/v;",
"Landroid/support/v4/view/a/w$1;",
"Landroid/support/v4/view/a/w;",
"Landroid/support/v4/view/a/y$1;",
"Landroid/support/v4/view/a/y;",
"Landroid/support/v4/view/a;",
"Landroid/support/v4/view/aa;",
"Landroid/support/v4/view/ab;",
"Landroid/support/v4/view/ac;",
"Landroid/support/v4/view/ad;",
"Landroid/support/v4/view/ae;",
"Landroid/support/v4/view/af;",
"Landroid/support/v4/view/aj;",
"Landroid/support/v4/view/ag;",
"Landroid/support/v4/view/ah;",
"Landroid/support/v4/view/ai;",
"Landroid/support/v4/view/ak;",
"Landroid/support/v4/view/al;",
"Landroid/support/v4/view/am;",
"Landroid/support/v4/view/an;",
"Landroid/support/v4/view/aq;",
"Landroid/support/v4/view/ao;",
"Landroid/support/v4/view/ap;",
"Landroid/support/v4/view/ar;",
"Landroid/support/v4/view/as;",
"Landroid/support/v4/view/cr;",
"Landroid/support/v4/view/cs;",
"Landroid/support/v4/view/au;",
"Landroid/support/v4/view/av;",
"Landroid/support/v4/view/aw;",
"Landroid/support/v4/view/ax;",
"Landroid/support/v4/view/ay;",
"Landroid/support/v4/view/az;",
"Landroid/support/v4/view/g;",
"Landroid/support/v4/view/b$1;",
"Landroid/support/v4/view/c;",
"Landroid/support/v4/view/e;",
"Landroid/support/v4/view/b;",
"Landroid/support/v4/view/ba;",
"Landroid/support/v4/view/bb;",
"Landroid/support/v4/view/be;",
"Landroid/support/v4/view/bc;",
"Landroid/support/v4/view/bd;",
"Landroid/support/v4/view/bf;",
"Landroid/support/v4/view/bg;",
"Landroid/support/v4/view/bq;",
"Landroid/support/v4/view/bi;",
"Landroid/support/v4/view/bj;",
"Landroid/support/v4/view/bk;",
"Landroid/support/v4/view/bl;",
"Landroid/support/v4/view/bm;",
"Landroid/support/v4/view/bn;",
"Landroid/support/v4/view/bo;",
"Landroid/support/v4/view/bp;",
"Landroid/support/v4/view/bh;",
"Landroid/support/v4/view/br$1;",
"Landroid/support/v4/view/br;",
"Landroid/support/v4/view/bs;",
"Landroid/support/v4/view/bt;",
"Landroid/support/v4/view/bu;",
"Landroid/support/v4/view/bv;",
"Landroid/support/v4/view/bw;",
"Landroid/support/v4/view/bx;",
"Landroid/support/v4/view/by;",
"Landroid/support/v4/view/cd;",
"Landroid/support/v4/view/bz;",
"Landroid/support/v4/view/ca;",
"Landroid/support/v4/view/cb;",
"Landroid/support/v4/view/cc;",
"Landroid/support/v4/view/ce;",
"Landroid/support/v4/view/cf;",
"Landroid/support/v4/view/cg;",
"Landroid/support/v4/view/ck;",
"Landroid/support/v4/view/cm;",
"Landroid/support/v4/view/ci;",
"Landroid/support/v4/view/cj;",
"Landroid/support/v4/view/cl;",
"Landroid/support/v4/view/ch;",
"Landroid/support/v4/view/cn;",
"Landroid/support/v4/view/cp;",
"Landroid/support/v4/view/cq;",
"Landroid/support/v4/view/ct;",
"Landroid/support/v4/view/cu;",
"Landroid/support/v4/view/cv;",
"Landroid/support/v4/view/cw;",
"Landroid/support/v4/view/cx;",
"Landroid/support/v4/view/df;",
"Landroid/support/v4/view/cy;",
"Landroid/support/v4/view/cz;",
"Landroid/support/v4/view/i;",
"Landroid/support/v4/view/d$1;",
"Landroid/support/v4/view/d;",
"Landroid/support/v4/view/da;",
"Landroid/support/v4/view/dj;",
"Landroid/support/v4/view/db;",
"Landroid/support/v4/view/dd;",
"Landroid/support/v4/view/dc;",
"Landroid/support/v4/view/de;",
"Landroid/support/v4/view/dg$1;",
"Landroid/support/v4/view/dg;",
"Landroid/support/v4/view/dh$1;",
"Landroid/support/v4/view/dh;",
"Landroid/support/v4/view/di$1;",
"Landroid/support/v4/view/di;",
"Landroid/support/v4/view/dk;",
"Landroid/support/v4/view/dl;",
"Landroid/support/v4/view/dm;",
"Landroid/support/v4/view/dn;",
"Landroid/support/v4/view/f$1;",
"Landroid/support/v4/view/f;",
"Landroid/support/v4/view/h$1;",
"Landroid/support/v4/view/h;",
"Landroid/support/v4/view/j;",
"Landroid/support/v4/view/k;",
"Landroid/support/v4/view/l;",
"Landroid/support/v4/view/m;",
"Landroid/support/v4/view/n;",
"Landroid/support/v4/view/o;",
"Landroid/support/v4/view/p;",
"Landroid/support/v4/view/q;",
"Landroid/support/v4/view/r;",
"Landroid/support/v4/view/s;",
"Landroid/support/v4/view/t;",
"Landroid/support/v4/view/x;",
"Landroid/support/v4/view/u;",
"Landroid/support/v4/view/v;",
"Landroid/support/v4/view/w;",
"Landroid/support/v4/view/y;",
"Landroid/support/v4/view/z;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$1;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$2;",
"Landroid/support/v4/widget/ContentLoadingProgressBar;",
"Landroid/support/v4/widget/DrawerLayout$LayoutParams;",
"Landroid/support/v4/widget/DrawerLayout$SavedState$1;",
"Landroid/support/v4/widget/DrawerLayout$SavedState;",
"Landroid/support/v4/widget/s;",
"Landroid/support/v4/widget/DrawerLayout;",
"Landroid/support/v4/widget/SlidingPaneLayout$LayoutParams;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState$1;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState;",
"Landroid/support/v4/widget/SlidingPaneLayout;",
"Landroid/support/v4/widget/SwipeRefreshLayout$1;",
"Landroid/support/v4/widget/SwipeRefreshLayout$2;",
"Landroid/support/v4/widget/SwipeRefreshLayout$3;",
"Landroid/support/v4/widget/SwipeRefreshLayout$4;",
"Landroid/support/v4/widget/SwipeRefreshLayout$5;",
"Landroid/support/v4/widget/SwipeRefreshLayout$6;",
"Landroid/support/v4/widget/SwipeRefreshLayout$7;",
"Landroid/support/v4/widget/SwipeRefreshLayout;",
"Landroid/support/v4/widget/a;",
"Landroid/support/v4/widget/aa;",
"Landroid/support/v4/widget/ab;",
"Landroid/support/v4/widget/ac;",
"Landroid/support/v4/widget/ad;",
"Landroid/support/v4/widget/ag;",
"Landroid/support/v4/widget/ae;",
"Landroid/support/v4/widget/af;",
"Landroid/support/v4/widget/ah;",
"Landroid/support/v4/widget/i;",
"Landroid/support/v4/widget/f;",
"Landroid/support/v4/widget/ai;",
"Landroid/support/v4/widget/aj;",
"Landroid/support/v4/widget/ak;",
"Landroid/support/v4/widget/al;",
"Landroid/support/v4/widget/am;",
"Landroid/support/v4/widget/an;",
"Landroid/support/v4/widget/ao;",
"Landroid/support/v4/widget/ap;",
"Landroid/support/v4/widget/aq;",
"Landroid/support/v4/widget/ar;",
"Landroid/support/v4/widget/ba;",
"Landroid/support/v4/widget/as;",
"Landroid/support/v4/widget/at;",
"Landroid/support/v4/widget/au;",
"Landroid/support/v4/widget/av;",
"Landroid/support/v4/widget/aw;",
"Landroid/support/v4/widget/ax;",
"Landroid/support/v4/widget/ay;",
"Landroid/support/v4/widget/az$1;",
"Landroid/support/v4/widget/az$2;",
"Landroid/support/v4/widget/az;",
"Landroid/support/v4/widget/b;",
"Landroid/support/v4/widget/c;",
"Landroid/support/v4/widget/d;",
"Landroid/support/v4/widget/e;",
"Landroid/support/v4/widget/g;",
"Landroid/support/v4/widget/h;",
"Landroid/support/v4/widget/j;",
"Landroid/support/v4/widget/k;",
"Landroid/support/v4/widget/l;",
"Landroid/support/v4/widget/m;",
"Landroid/support/v4/widget/n;",
"Landroid/support/v4/widget/o;",
"Landroid/support/v4/widget/p$1;",
"Landroid/support/v4/widget/p;",
"Landroid/support/v4/widget/q;",
"Landroid/support/v4/widget/r;",
"Landroid/support/v4/widget/t;",
"Landroid/support/v4/widget/w;",
"Landroid/support/v4/widget/u;",
"Landroid/support/v4/widget/v;",
"Landroid/support/v4/widget/x;",
"Landroid/support/v4/widget/y;",
"Landroid/support/v4/widget/z$1;",
"Landroid/support/v4/widget/z$2;",
"Landroid/support/v4/widget/z$3;",
"Landroid/support/v4/widget/z$4;",
"Landroid/support/v4/widget/z$5;",
"Landroid/support/v4/widget/z;",
"Landroid/support/v7/a/a;",
"Landroid/support/v7/a/b;",
"Landroid/support/v7/a/c;",
"Landroid/support/v7/a/d;",
"Landroid/support/v7/a/e;",
"Landroid/support/v7/a/f;",
"Landroid/support/v7/a/g;",
"Landroid/support/v7/a/h;",
"Landroid/support/v7/a/i;",
"Landroid/support/v7/a/j;",
"Landroid/support/v7/a/k;",
"Landroid/support/v7/a/l;",
"Landroid/support/v7/app/ActionBar$LayoutParams;",
"Landroid/support/v7/app/ActionBar;",
"Landroid/support/v7/app/a;",
"Landroid/support/v7/app/s;",
"Landroid/support/v7/app/b;",
"Landroid/support/v7/internal/a/f;",
"Landroid/support/v7/app/c$1;",
"Landroid/support/v7/app/c;",
"Landroid/support/v7/app/l;",
"Landroid/support/v7/app/d;",
"Landroid/support/v7/app/e$1;",
"Landroid/support/v7/app/e$2;",
"Landroid/support/v7/internal/widget/x;",
"Landroid/support/v7/app/e$3;",
"Landroid/support/v7/app/e$4;",
"Landroid/support/v7/internal/view/menu/j;",
"Landroid/support/v7/app/e;",
"Landroid/support/v7/internal/view/menu/w;",
"Landroid/support/v7/app/f;",
"Landroid/support/v7/b/b;",
"Landroid/support/v7/app/g;",
"Landroid/support/v7/app/h;",
"Landroid/support/v7/app/i;",
"Landroid/support/v7/internal/widget/z;",
"Landroid/support/v7/app/j;",
"Landroid/support/v7/app/k;",
"Landroid/support/v7/app/m;",
"Landroid/support/v7/app/x;",
"Landroid/support/v7/app/o;",
"Landroid/support/v7/app/n;",
"Landroid/support/v7/app/p;",
"Landroid/support/v7/app/q;",
"Landroid/support/v7/app/r;",
"Landroid/support/v7/app/t;",
"Landroid/support/v7/app/u;",
"Landroid/support/v7/app/v;",
"Lcom/spotify/mobile/android/util/ui/d;",
"Landroid/support/v7/app/w;",
"Landroid/support/v7/b/a;",
"Landroid/support/v7/b/c;",
"Landroid/support/v7/internal/a/a$1;",
"Landroid/support/v7/widget/br;",
"Landroid/support/v7/internal/a/a$2;",
"Landroid/support/v7/internal/a/a;",
"Landroid/support/v7/internal/a/b;",
"Landroid/support/v7/internal/a/c;",
"Landroid/support/v7/internal/a/d;",
"Landroid/support/v7/widget/bs;",
"Landroid/support/v7/internal/a/e;",
"Landroid/support/v7/internal/a/g$1;",
"Landroid/support/v7/internal/a/g$2;",
"Landroid/support/v7/internal/a/g$3;",
"Landroid/support/v7/internal/widget/f;",
"Landroid/support/v7/internal/a/g;",
"Landroid/support/v7/internal/a/h;",
"Landroid/support/v7/internal/a;",
"Landroid/support/v7/internal/b/a;",
"Landroid/support/v7/internal/view/a;",
"Landroid/support/v7/internal/view/b;",
"Landroid/support/v7/internal/view/c;",
"Landroid/support/v7/internal/view/d;",
"Landroid/support/v7/internal/view/e;",
"Landroid/support/v7/internal/view/f;",
"Landroid/support/v7/internal/view/g;",
"Landroid/support/v7/internal/view/h$1;",
"Landroid/support/v7/internal/view/h;",
"Landroid/support/v7/internal/widget/CompatTextView;",
"Landroid/support/v7/internal/view/menu/y;",
"Landroid/support/v7/widget/h;",
"Landroid/support/v7/internal/view/menu/ActionMenuItemView;",
"Landroid/support/v7/internal/view/menu/k;",
"Landroid/support/v7/internal/view/menu/x;",
"Landroid/support/v7/internal/view/menu/ExpandedMenuView;",
"Landroid/support/v7/internal/view/menu/ListMenuItemView;",
"Landroid/support/v7/internal/view/menu/a;",
"Landroid/support/v7/internal/view/menu/f;",
"Landroid/support/v7/internal/view/menu/e;",
"Landroid/support/v7/internal/view/menu/aa;",
"Landroid/support/v7/internal/view/menu/i;",
"Landroid/support/v7/internal/view/menu/ab;",
"Landroid/support/v7/internal/view/menu/ac;",
"Landroid/support/v7/widget/ab;",
"Landroid/support/v7/internal/view/menu/b;",
"Landroid/support/v7/internal/view/menu/c;",
"Landroid/support/v7/internal/view/menu/v;",
"Landroid/support/v7/internal/view/menu/d;",
"Landroid/support/v7/internal/view/menu/g;",
"Landroid/support/v7/internal/view/menu/h;",
"Landroid/support/v7/internal/view/menu/l;",
"Landroid/support/v7/internal/view/menu/m$1;",
"Landroid/support/v7/internal/view/menu/m;",
"Landroid/support/v7/internal/view/menu/n;",
"Landroid/support/v7/internal/view/menu/o$1;",
"Landroid/support/v7/internal/view/menu/o;",
"Landroid/support/v7/internal/view/menu/p;",
"Landroid/support/v7/internal/view/menu/q;",
"Landroid/support/v7/internal/view/menu/r;",
"Landroid/support/v7/internal/view/menu/s;",
"Landroid/support/v7/internal/view/menu/t;",
"Landroid/support/v7/internal/view/menu/u;",
"Landroid/support/v7/internal/view/menu/z;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/o;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat;",
"Landroid/support/v7/internal/widget/ActionBarContainer;",
"Landroid/support/v7/internal/widget/ActionBarContextView$1;",
"Landroid/support/v7/internal/widget/a;",
"Landroid/support/v7/internal/widget/ActionBarContextView;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$1;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$2;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$3;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$4;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$LayoutParams;",
"Landroid/support/v7/internal/widget/t;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout;",
"Landroid/support/v7/internal/widget/ActivityChooserView$1;",
"Landroid/support/v7/internal/widget/ActivityChooserView$2;",
"Landroid/support/v7/internal/widget/ActivityChooserView$3;",
"Landroid/support/v7/internal/widget/ActivityChooserView;",
"Landroid/support/v7/internal/widget/AppCompatPopupWindow;",
"Landroid/support/v7/internal/widget/ContentFrameLayout;",
"Landroid/support/v7/internal/widget/w;",
"Landroid/support/v7/internal/widget/FitWindowsFrameLayout;",
"Landroid/support/v7/internal/widget/FitWindowsLinearLayout;",
"Landroid/support/v7/internal/widget/ListViewCompat;",
"Landroid/support/v7/internal/widget/NativeActionModeAwareLayout;",
"Landroid/support/v7/internal/widget/SpinnerCompat$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$2;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/SpinnerCompat;",
"Landroid/support/v7/internal/widget/TintCheckBox;",
"Landroid/support/v7/internal/widget/TintCheckedTextView;",
"Landroid/support/v7/internal/widget/TintEditText;",
"Landroid/support/v7/internal/widget/TintImageView;",
"Landroid/support/v7/internal/widget/TintRadioButton;",
"Landroid/support/v7/internal/widget/TintSpinner;",
"Landroid/support/v7/internal/widget/ViewStubCompat;",
"Landroid/support/v7/internal/widget/aa;",
"Landroid/support/v7/internal/widget/ab$1;",
"Landroid/support/v7/internal/widget/q;",
"Landroid/support/v7/internal/widget/ab;",
"Landroid/support/v7/internal/widget/ac;",
"Landroid/support/v7/widget/LinearLayoutCompat;",
"Landroid/support/v7/internal/widget/ad;",
"Landroid/support/v7/internal/widget/ah;",
"Landroid/support/v7/internal/widget/ae;",
"Landroid/support/v7/internal/widget/af;",
"Landroid/support/v7/internal/widget/ag$1;",
"Landroid/support/v7/widget/ListPopupWindow;",
"Landroid/support/v7/internal/widget/ag;",
"Landroid/support/v7/internal/widget/v;",
"Landroid/support/v7/internal/widget/ai;",
"Landroid/support/v7/internal/widget/aj;",
"Landroid/support/v7/internal/widget/ak;",
"Landroid/support/v7/internal/widget/al;",
"Landroid/support/v7/internal/widget/am;",
"Landroid/support/v7/internal/widget/an$1;",
"Landroid/support/v7/internal/widget/an$2;",
"Landroid/support/v7/internal/widget/an$3;",
"Landroid/support/v7/internal/widget/u;",
"Landroid/support/v7/internal/widget/an;",
"Landroid/support/v7/internal/widget/ao;",
"Landroid/support/v7/internal/widget/ap;",
"Landroid/support/v7/internal/widget/b;",
"Landroid/support/v7/internal/widget/c;",
"Landroid/support/v7/internal/widget/d;",
"Landroid/support/v7/internal/widget/e;",
"Landroid/support/v7/internal/widget/g;",
"Landroid/support/v7/internal/widget/h;",
"Landroid/support/v7/internal/widget/i;",
"Landroid/support/v7/internal/widget/j;",
"Landroid/support/v7/internal/widget/k;",
"Landroid/support/v7/internal/widget/l;",
"Landroid/support/v7/internal/widget/m;",
"Landroid/support/v7/internal/widget/n;",
"Landroid/support/v7/internal/widget/p;",
"Landroid/support/v7/internal/widget/r;",
"Landroid/support/v7/internal/widget/s;",
"Landroid/support/v7/internal/widget/y;",
"Landroid/support/v7/widget/LinearLayoutCompat$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView;",
"Landroid/support/v7/widget/RecyclerView$LayoutParams;",
"Landroid/support/v7/widget/GridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/at;",
"Landroid/support/v7/widget/LinearLayoutManager;",
"Landroid/support/v7/widget/GridLayoutManager;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState;",
"Landroid/support/v7/widget/ListPopupWindow$1;",
"Landroid/support/v7/widget/ListPopupWindow$2;",
"Landroid/support/v7/widget/RecyclerView$1;",
"Landroid/support/v7/widget/RecyclerView$2;",
"Landroid/support/v7/widget/RecyclerView$3;",
"Landroid/support/v7/widget/q;",
"Landroid/support/v7/widget/RecyclerView$4;",
"Landroid/support/v7/widget/m;",
"Landroid/support/v7/widget/RecyclerView$5;",
"Landroid/support/v7/widget/RecyclerView$SavedState$1;",
"Landroid/support/v7/widget/RecyclerView$SavedState;",
"Landroid/support/v7/widget/RecyclerView;",
"Landroid/support/v7/widget/SearchView$10;",
"Landroid/support/v7/widget/SearchView$11;",
"Landroid/support/v7/widget/SearchView$12;",
"Landroid/support/v7/widget/SearchView$1;",
"Landroid/support/v7/widget/SearchView$2;",
"Landroid/support/v7/widget/SearchView$3;",
"Landroid/support/v7/widget/SearchView$4;",
"Landroid/support/v7/widget/SearchView$5;",
"Landroid/support/v7/widget/SearchView$6;",
"Landroid/support/v7/widget/SearchView$7;",
"Landroid/support/v7/widget/SearchView$8;",
"Landroid/support/v7/widget/SearchView$9;",
"Landroid/support/v7/widget/SearchView$SearchAutoComplete;",
"Landroid/support/v7/widget/SearchView;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager;",
"Landroid/support/v7/widget/SwitchCompat$1;",
"Landroid/support/v7/widget/SwitchCompat;",
"Landroid/support/v7/widget/k;",
"Landroid/support/v7/widget/Toolbar$1;",
"Landroid/support/v7/widget/Toolbar$2;",
"Landroid/support/v7/widget/Toolbar$3;",
"Landroid/support/v7/widget/Toolbar$LayoutParams;",
"Landroid/support/v7/widget/Toolbar$SavedState$1;",
"Landroid/support/v7/widget/Toolbar$SavedState;",
"Landroid/support/v7/widget/Toolbar;",
"Landroid/support/v7/widget/a;",
"Landroid/support/v7/widget/aa;",
"Landroid/support/v7/widget/ac;",
"Landroid/support/v7/widget/ad;",
"Landroid/support/v7/widget/ae;",
"Landroid/support/v7/widget/af;",
"Landroid/support/v7/widget/ag;",
"Landroid/support/v7/widget/ah;",
"Landroid/support/v7/widget/ai;",
"Landroid/support/v7/widget/aj;",
"Landroid/support/v7/widget/ak;",
"Landroid/support/v7/widget/al;",
"Landroid/support/v7/widget/al$1;",
"Landroid/support/v7/widget/al$2;",
"Landroid/support/v7/widget/am;",
"Landroid/support/v7/widget/an;",
"Landroid/support/v7/widget/ao;",
"Landroid/support/v7/widget/ap;",
"Landroid/support/v7/widget/aq;",
"Landroid/support/v7/widget/ar;",
"Landroid/support/v7/widget/as;",
"Landroid/support/v7/widget/au;",
"Landroid/support/v7/widget/av;",
"Landroid/support/v7/widget/aw;",
"Landroid/support/v7/widget/ax;",
"Landroid/support/v7/widget/ay;",
"Landroid/support/v7/widget/az;",
"Landroid/support/v7/widget/b;",
"Landroid/support/v7/widget/ba;",
"Landroid/support/v7/widget/bb;",
"Landroid/support/v7/widget/bc;",
"Landroid/support/v7/widget/bd;",
"Landroid/support/v7/widget/be;",
"Landroid/support/v7/widget/bf;",
"Landroid/support/v7/widget/bg$1;",
"Landroid/support/v7/widget/bg;",
"Landroid/support/v7/widget/bh;",
"Landroid/support/v7/widget/bi;",
"Landroid/support/v7/widget/bj;",
"Landroid/support/v7/widget/bk;",
"Landroid/support/v7/widget/bl;",
"Landroid/support/v7/widget/bm;",
"Landroid/support/v7/widget/bn;",
"Landroid/support/v7/widget/bo;",
"Landroid/support/v7/widget/bp;",
"Landroid/support/v7/widget/bq;",
"Landroid/support/v7/widget/c;",
"Landroid/support/v7/widget/d;",
"Landroid/support/v7/widget/e$1;",
"Landroid/support/v7/widget/e;",
"Landroid/support/v7/widget/f;",
"Landroid/support/v7/widget/g;",
"Landroid/support/v7/widget/i;",
"Landroid/support/v7/widget/j;",
"Landroid/support/v7/widget/l;",
"Landroid/support/v7/widget/n;",
"Landroid/support/v7/widget/o;",
"Landroid/support/v7/widget/p;",
"Landroid/support/v7/widget/r$1;",
"Landroid/support/v7/widget/r$2;",
"Landroid/support/v7/widget/r$3;",
"Landroid/support/v7/widget/u;",
"Landroid/support/v7/widget/r$4;",
"Landroid/support/v7/widget/r$5;",
"Landroid/support/v7/widget/r$6;",
"Landroid/support/v7/widget/r$7;",
"Landroid/support/v7/widget/r$8;",
"Landroid/support/v7/widget/r;",
"Landroid/support/v7/widget/s;",
"Landroid/support/v7/widget/t;",
"Landroid/support/v7/widget/v;",
"Landroid/support/v7/widget/w;",
"Landroid/support/v7/widget/x;",
"Landroid/support/v7/widget/y;",
"Landroid/support/v7/widget/z;",
"Lcom/a/a/a/a;",
"Lcom/a/a/a/b;",
"Lcom/a/a/a/c;",
"Lcom/b/a/a$1;",
"Lcom/b/a/a$2;",
"Lcom/b/a/a;",
"Lcom/b/a/b;",
"Lcom/b/a/c;",
"Lcom/b/a/d;",
"Lcom/b/a/e;",
"Lcom/b/a/f$1;",
"Lcom/b/a/f;",
"Lcom/b/a/g;",
"Lcom/c/a;",
"Lcom/c/b;",
"Lcom/c/c;",
"Lcom/c/d;",
"Lcom/c/e;",
"Lcom/c/f;",
"Lcom/c/g;",
"Lcom/c/h;",
"Lcom/c/i;",
"Lcom/c/j;",
"Lcom/c/k;",
"Lcom/c/l;",
"Lcom/c/m;",
"Lcom/c/n;",
"Lcom/c/o;",
"Lcom/c/p;",
"Lcom/c/q;",
"Lcom/c/r;",
"Lcom/c/s;",
"Lcom/c/t;",
"Lcom/c/u;",
"Lcom/comscore/a/a/a;",
"Lcom/comscore/a/a/b;",
"Lcom/comscore/a/a/c;",
"Lcom/comscore/a/a/d;",
"Lcom/comscore/a/a/e;",
"Lcom/comscore/a/a/f;",
"Lcom/comscore/analytics/ApplicationState;",
"Lcom/comscore/analytics/SessionState;",
"Lcom/comscore/analytics/a;",
"Lcom/comscore/analytics/b;",
"Lcom/comscore/analytics/c;",
"Lcom/comscore/analytics/d;",
"Lcom/comscore/analytics/e;",
"Lcom/comscore/analytics/f;",
"Lcom/comscore/analytics/g;",
"Lcom/comscore/analytics/h;",
"Lcom/comscore/analytics/i;",
"Lcom/comscore/analytics/j;",
"Lcom/comscore/analytics/k;",
"Lcom/comscore/analytics/l;",
"Lcom/comscore/analytics/m;",
"Lcom/comscore/analytics/n;",
"Lcom/comscore/analytics/o;",
"Lcom/comscore/analytics/p;",
"Lcom/comscore/applications/EventType;",
"Lcom/comscore/b/b;",
"Lcom/comscore/applications/c;",
"Lcom/comscore/applications/a;",
"Lcom/comscore/applications/b;",
"Lcom/comscore/applications/d;",
"Lcom/comscore/b/a;",
"Lcom/comscore/b/c;",
"Lcom/comscore/b/d;",
"Lcom/comscore/b/e;",
"Lcom/comscore/metrics/EventType;",
"Lcom/comscore/metrics/a;",
"Lcom/comscore/metrics/b;",
"Lcom/comscore/utils/DispatchQueue;",
"Lcom/comscore/utils/TransmissionMode;",
"Lcom/comscore/utils/a/a;",
"Lcom/comscore/utils/a;",
"Lcom/comscore/utils/b/a;",
"Lcom/comscore/utils/b/b;",
"Lcom/comscore/utils/b/c;",
"Lcom/comscore/utils/b;",
"Lcom/comscore/utils/c;",
"Lcom/comscore/utils/d;",
"Lcom/comscore/utils/e;",
"Lcom/comscore/utils/f;",
"Lcom/comscore/utils/g;",
"Lcom/comscore/utils/h;",
"Lcom/comscore/utils/i;",
"Lcom/comscore/utils/j;",
"Lcom/comscore/utils/k;",
"Lcom/comscore/utils/l;",
"Lcom/comscore/utils/m;",
"Lcom/comscore/utils/n;",
"Lcom/comscore/utils/o;",
"Lcom/comscore/utils/p;",
"Lcom/comscore/utils/q;",
"Lcom/comscore/utils/r;",
"Lcom/comscore/utils/s;",
"Lcom/comscore/utils/t;",
"Lcom/comscore/utils/u;",
"Lcom/crashlytics/android/ndk/JniNativeApi;",
"Lcom/devsmart/android/ui/HorizontalListView$1;",
"Lcom/devsmart/android/ui/HorizontalListView$2;",
"Lcom/devsmart/android/ui/HorizontalListView$3;",
"Lcom/devsmart/android/ui/HorizontalListView;",
"Lcom/facebook/AccessToken$SerializationProxyV2;",
"Lcom/facebook/AccessToken;",
"Lcom/facebook/AccessTokenSource;",
"Lcom/facebook/AppEventsLogger$1;",
"Lcom/facebook/AppEventsLogger$2;",
"Lcom/facebook/AppEventsLogger$3;",
"Lcom/facebook/AppEventsLogger$4;",
"Lcom/facebook/AppEventsLogger$5;",
"Lcom/facebook/q;",
"Lcom/facebook/AppEventsLogger$6;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair;",
"Lcom/facebook/AppEventsLogger$AppEvent$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AppEvent;",
"Lcom/facebook/AppEventsLogger$FlushBehavior;",
"Lcom/facebook/AppEventsLogger$FlushReason;",
"Lcom/facebook/AppEventsLogger$FlushResult;",
"Lcom/facebook/AppEventsLogger;",
"Lcom/facebook/h;",
"Lcom/facebook/AuthorizationClient$1;",
"Lcom/facebook/AuthorizationClient$2;",
"Lcom/facebook/AuthorizationClient$3;",
"Lcom/facebook/AuthorizationClient$4;",
"Lcom/facebook/x;",
"Lcom/facebook/AuthorizationClient$5;",
"Lcom/facebook/AuthorizationClient$AuthHandler;",
"Lcom/facebook/AuthorizationClient$AuthorizationRequest;",
"Lcom/facebook/internal/av;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaProxyAuthHandler;",
"Lcom/facebook/AuthorizationClient$Result$Code;",
"Lcom/facebook/AuthorizationClient$Result;",
"Lcom/facebook/widget/s;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler;",
"Lcom/facebook/AuthorizationClient;",
"Lcom/facebook/FacebookException;",
"Lcom/facebook/FacebookAuthorizationException;",
"Lcom/facebook/FacebookDialogException;",
"Lcom/facebook/FacebookGraphObjectException;",
"Lcom/facebook/FacebookOperationCanceledException;",
"Lcom/facebook/FacebookRequestError$Category;",
"Lcom/facebook/FacebookRequestError;",
"Lcom/facebook/FacebookServiceException;",
"Lcom/facebook/FacebookTimeSpentData$SerializationProxyV2;",
"Lcom/facebook/FacebookTimeSpentData;",
"Lcom/facebook/HttpMethod;",
"Lcom/facebook/LoggingBehavior;",
"Lcom/facebook/g;",
"Lcom/facebook/LoginActivity$1;",
"Lcom/facebook/f;",
"Lcom/facebook/LoginActivity$2;",
"Lcom/facebook/LoginActivity;",
"Lcom/facebook/Request$1;",
"Lcom/facebook/Request$2;",
"Lcom/facebook/s;",
"Lcom/facebook/Request$3;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType$1;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType;",
"Lcom/facebook/Request;",
"Lcom/facebook/Session$1;",
"Lcom/facebook/Session$2;",
"Lcom/facebook/Session$3;",
"Lcom/facebook/Session$4$1;",
"Lcom/facebook/Session$4;",
"Lcom/facebook/Session$5;",
"Lcom/facebook/af;",
"Lcom/facebook/Session$AuthorizationRequest$1;",
"Lcom/facebook/Session$AuthorizationRequest$2;",
"Lcom/facebook/Session$AuthorizationRequest$3;",
"Lcom/facebook/Session$AuthorizationRequest$4;",
"Lcom/facebook/Session$AuthorizationRequest$AuthRequestSerializationProxyV1;",
"Lcom/facebook/Session$AuthorizationRequest;",
"Lcom/facebook/Session$NewPermissionsRequest;",
"Lcom/facebook/Session$OpenRequest;",
"Lcom/facebook/Session$SerializationProxyV1;",
"Lcom/facebook/Session;",
"Lcom/facebook/SessionDefaultAudience;",
"Lcom/facebook/SessionLoginBehavior;",
"Lcom/facebook/SessionState$Category;",
"Lcom/facebook/SessionState;",
"Lcom/facebook/a/a;",
"Lcom/facebook/a/b;",
"Lcom/facebook/a/c;",
"Lcom/facebook/a/d;",
"Lcom/facebook/a/e;",
"Lcom/facebook/a/f;",
"Lcom/facebook/a/g;",
"Lcom/facebook/a/h;",
"Lcom/facebook/a;",
"Lcom/facebook/aa$1;",
"Lcom/facebook/aa;",
"Lcom/facebook/ab;",
"Lcom/facebook/ac;",
"Lcom/facebook/ad;",
"Lcom/facebook/ae;",
"Lcom/facebook/ag;",
"Lcom/facebook/ah;",
"Lcom/facebook/ai;",
"Lcom/facebook/aj$1;",
"Lcom/facebook/aj$2$1;",
"Lcom/facebook/aj$2;",
"Lcom/facebook/aj;",
"Lcom/facebook/al;",
"Lcom/facebook/ak;",
"Lcom/facebook/am;",
"Lcom/facebook/an;",
"Lcom/facebook/b$1;",
"Lcom/facebook/b;",
"Lcom/facebook/c;",
"Lcom/facebook/d;",
"Lcom/facebook/widget/q;",
"Lcom/facebook/widget/p;",
"Lcom/facebook/e;",
"Lcom/facebook/i;",
"Lcom/facebook/internal/LikeActionController$10;",
"Lcom/facebook/internal/aa;",
"Lcom/facebook/internal/LikeActionController$1;",
"Lcom/facebook/internal/LikeActionController$2;",
"Lcom/facebook/internal/LikeActionController$3;",
"Lcom/facebook/internal/LikeActionController$4;",
"Lcom/facebook/internal/LikeActionController$5$1;",
"Lcom/facebook/internal/LikeActionController$5;",
"Lcom/facebook/widget/b;",
"Lcom/facebook/internal/LikeActionController$6;",
"Lcom/facebook/internal/LikeActionController$7$1;",
"Lcom/facebook/internal/aj;",
"Lcom/facebook/internal/LikeActionController$7;",
"Lcom/facebook/internal/LikeActionController$8;",
"Lcom/facebook/internal/LikeActionController$9$1;",
"Lcom/facebook/internal/LikeActionController$9;",
"Lcom/facebook/widget/c;",
"Lcom/facebook/internal/LikeActionController$LikeDialogFeature;",
"Lcom/facebook/internal/LikeActionController;",
"Lcom/facebook/internal/LikeBoxCountView$1;",
"Lcom/facebook/internal/LikeBoxCountView$LikeBoxCountViewCaretPosition;",
"Lcom/facebook/internal/LikeBoxCountView;",
"Lcom/facebook/internal/SessionAuthorizationType;",
"Lcom/facebook/internal/a;",
"Lcom/facebook/internal/y;",
"Lcom/facebook/internal/ab;",
"Lcom/facebook/internal/ac;",
"Lcom/facebook/internal/ad;",
"Lcom/facebook/internal/ae;",
"Lcom/facebook/widget/a;",
"Lcom/facebook/internal/af;",
"Lcom/facebook/internal/ag;",
"Lcom/facebook/internal/ah;",
"Lcom/facebook/internal/ai;",
"Lcom/facebook/internal/ak;",
"Lcom/facebook/internal/al;",
"Lcom/facebook/internal/au;",
"Lcom/facebook/internal/am;",
"Lcom/facebook/internal/an;",
"Lcom/facebook/internal/ao;",
"Lcom/facebook/internal/ar;",
"Lcom/facebook/internal/ap;",
"Lcom/facebook/internal/aq;",
"Lcom/facebook/internal/as;",
"Lcom/facebook/internal/at;",
"Lcom/facebook/internal/au$1;",
"Lcom/facebook/internal/aw;",
"Lcom/facebook/internal/ax;",
"Lcom/facebook/internal/ay;",
"Lcom/facebook/internal/az;",
"Lcom/facebook/internal/c;",
"Lcom/facebook/internal/b$1;",
"Lcom/facebook/internal/b$2;",
"Lcom/facebook/internal/b$3;",
"Lcom/facebook/internal/b$4;",
"Lcom/facebook/internal/b$5;",
"Lcom/facebook/internal/b$6;",
"Lcom/facebook/internal/b$7;",
"Lcom/facebook/internal/b;",
"Lcom/facebook/internal/ba;",
"Lcom/facebook/internal/bb$1;",
"Lcom/facebook/internal/bb;",
"Lcom/facebook/internal/bc;",
"Lcom/facebook/internal/bd;",
"Lcom/facebook/internal/be;",
"Lcom/facebook/internal/bf$1;",
"Lcom/facebook/internal/bf;",
"Lcom/facebook/internal/bg;",
"Lcom/facebook/internal/bh;",
"Lcom/facebook/w;",
"Lcom/facebook/internal/d;",
"Lcom/facebook/internal/e$1;",
"Lcom/facebook/internal/e$2;",
"Lcom/facebook/widget/o;",
"Lcom/facebook/internal/e;",
"Lcom/facebook/internal/l;",
"Lcom/facebook/internal/f$1;",
"Lcom/facebook/internal/f$2;",
"Lcom/facebook/internal/f$3;",
"Lcom/facebook/internal/f;",
"Lcom/facebook/internal/g$1;",
"Lcom/facebook/internal/g$2;",
"Lcom/facebook/internal/g;",
"Lcom/facebook/internal/h;",
"Lcom/facebook/internal/i;",
"Lcom/facebook/internal/j;",
"Lcom/facebook/internal/k;",
"Lcom/facebook/internal/m;",
"Lcom/facebook/internal/n$1;",
"Lcom/facebook/internal/n;",
"Lcom/facebook/internal/o;",
"Lcom/facebook/internal/p;",
"Lcom/facebook/internal/q;",
"Lcom/facebook/internal/r;",
"Lcom/facebook/internal/s;",
"Lcom/facebook/internal/t;",
"Lcom/facebook/internal/u;",
"Lcom/facebook/internal/v;",
"Lcom/facebook/internal/w;",
"Lcom/facebook/internal/x;",
"Lcom/facebook/internal/y$1;",
"Lcom/facebook/internal/z;",
"Lcom/facebook/j;",
"Lcom/facebook/k;",
"Lcom/facebook/m;",
"Lcom/facebook/l$1;",
"Lcom/facebook/l$2;",
"Lcom/facebook/l;",
"Lcom/facebook/model/CreateGraphObject;",
"Lcom/facebook/model/GraphObject;",
"Lcom/facebook/model/GraphLocation;",
"Lcom/facebook/model/GraphMultiResult;",
"Lcom/facebook/model/GraphObjectList;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectListImpl;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy$1;",
"Lcom/facebook/model/GraphObject$Factory$ProxyBase;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy;",
"Lcom/facebook/model/GraphObject$Factory;",
"Lcom/facebook/model/GraphPlace;",
"Lcom/facebook/model/GraphUser;",
"Lcom/facebook/model/JsonUtil$JSONObjectEntry;",
"Lcom/facebook/model/JsonUtil;",
"Lcom/facebook/model/OpenGraphAction$Factory;",
"Lcom/facebook/model/OpenGraphAction;",
"Lcom/facebook/model/OpenGraphObject$Factory;",
"Lcom/facebook/model/OpenGraphObject;",
"Lcom/facebook/model/PropertyName;",
"Lcom/facebook/z;",
"Lcom/facebook/n;",
"Lcom/facebook/o$1;",
"Lcom/facebook/o;",
"Lcom/facebook/p;",
"Lcom/facebook/r;",
"Lcom/facebook/t;",
"Lcom/facebook/u;",
"Lcom/facebook/v;",
"Lcom/facebook/widget/FacebookDialog$PendingCall$1;",
"Lcom/facebook/widget/FacebookDialog$PendingCall;",
"Lcom/facebook/widget/FacebookDialog;",
"Lcom/facebook/widget/LikeView$1;",
"Lcom/facebook/widget/LikeView$2;",
"Lcom/facebook/widget/LikeView$AuxiliaryViewPosition;",
"Lcom/facebook/widget/LikeView$HorizontalAlignment;",
"Lcom/facebook/widget/LikeView$Style;",
"Lcom/facebook/widget/LikeView;",
"Lcom/facebook/widget/LoginButton$1;",
"Lcom/facebook/widget/LoginButton$2;",
"Lcom/facebook/widget/LoginButton$ToolTipMode;",
"Lcom/facebook/widget/LoginButton;",
"Lcom/facebook/widget/ProfilePictureView$1;",
"Lcom/facebook/widget/ProfilePictureView;",
"Lcom/facebook/widget/ToolTipPopup$1;",
"Lcom/facebook/widget/ToolTipPopup$2;",
"Lcom/facebook/widget/ToolTipPopup$3;",
"Lcom/facebook/widget/ToolTipPopup$Style;",
"Lcom/facebook/widget/ToolTipPopup;",
"Lcom/facebook/widget/d;",
"Lcom/facebook/widget/a$1;",
"Lcom/facebook/widget/e;",
"Lcom/facebook/widget/f;",
"Lcom/facebook/widget/g;",
"Lcom/facebook/widget/h;",
"Lcom/facebook/widget/i;",
"Lcom/facebook/widget/j$1;",
"Lcom/facebook/widget/j;",
"Lcom/facebook/widget/k;",
"Lcom/facebook/widget/l;",
"Lcom/facebook/widget/m;",
"Lcom/facebook/widget/n;",
"Lcom/facebook/widget/o$1;",
"Lcom/facebook/widget/o$2;",
"Lcom/facebook/widget/o$3;",
"Lcom/facebook/widget/r;",
"Lcom/facebook/y;",
"Lcom/fasterxml/jackson/annotation/JacksonAnnotationsInside;",
"Lcom/fasterxml/jackson/annotation/JacksonInject;",
"Lcom/fasterxml/jackson/annotation/JsonAnyGetter;",
"Lcom/fasterxml/jackson/annotation/JsonAnySetter;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$1;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$Visibility;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect;",
"Lcom/fasterxml/jackson/annotation/JsonBackReference;",
"Lcom/fasterxml/jackson/annotation/JsonCreator;",
"Lcom/fasterxml/jackson/annotation/JsonFilter;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Shape;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Value;",
"Lcom/fasterxml/jackson/annotation/JsonFormat;",
"Lcom/fasterxml/jackson/annotation/JsonGetter;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityInfo;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityReference;",
"Lcom/fasterxml/jackson/annotation/JsonIgnore;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreProperties;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreType;",
"Lcom/fasterxml/jackson/annotation/JsonInclude$Include;",
"Lcom/fasterxml/jackson/annotation/JsonInclude;",
"Lcom/fasterxml/jackson/annotation/JsonManagedReference;",
"Lcom/fasterxml/jackson/annotation/JsonProperty;",
"Lcom/fasterxml/jackson/annotation/JsonPropertyOrder;",
"Lcom/fasterxml/jackson/annotation/JsonRawValue;",
"Lcom/fasterxml/jackson/annotation/JsonRootName;",
"Lcom/fasterxml/jackson/annotation/JsonSetter;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes$Type;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes;",
"Lcom/fasterxml/jackson/annotation/JsonTypeId;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$As;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$Id;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$None;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo;",
"Lcom/fasterxml/jackson/annotation/JsonTypeName;",
"Lcom/fasterxml/jackson/annotation/JsonUnwrapped;",
"Lcom/fasterxml/jackson/annotation/JsonValue;",
"Lcom/fasterxml/jackson/annotation/JsonView;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator$IdKey;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$Base;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$None;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$PropertyGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators;",
"Lcom/fasterxml/jackson/core/Base64Variant;",
"Lcom/fasterxml/jackson/core/Base64Variants;",
"Lcom/fasterxml/jackson/core/FormatSchema;",
"Lcom/fasterxml/jackson/core/JsonEncoding;",
"Lcom/fasterxml/jackson/core/JsonFactory$Feature;",
"Lcom/fasterxml/jackson/core/JsonFactory;",
"Lcom/fasterxml/jackson/core/JsonProcessingException;",
"Lcom/fasterxml/jackson/core/JsonGenerationException;",
"Lcom/fasterxml/jackson/core/JsonGenerator$Feature;",
"Lcom/fasterxml/jackson/core/JsonGenerator;",
"Lcom/fasterxml/jackson/core/JsonLocation;",
"Lcom/fasterxml/jackson/core/JsonParseException;",
"Lcom/fasterxml/jackson/core/JsonParser$Feature;",
"Lcom/fasterxml/jackson/core/JsonParser$NumberType;",
"Lcom/fasterxml/jackson/core/JsonParser;",
"Lcom/fasterxml/jackson/core/JsonStreamContext;",
"Lcom/fasterxml/jackson/core/JsonToken;",
"Lcom/fasterxml/jackson/core/ObjectCodec;",
"Lcom/fasterxml/jackson/core/PrettyPrinter;",
"Lcom/fasterxml/jackson/core/SerializableString;",
"Lcom/fasterxml/jackson/core/TreeNode;",
"Lcom/fasterxml/jackson/core/base/GeneratorBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase;",
"Lcom/fasterxml/jackson/core/base/ParserBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase$1;",
"Lcom/fasterxml/jackson/core/io/BaseReader;",
"Lcom/fasterxml/jackson/core/io/CharTypes;",
"Lcom/fasterxml/jackson/core/io/CharacterEscapes;",
"Lcom/fasterxml/jackson/core/io/IOContext;",
"Lcom/fasterxml/jackson/core/io/InputDecorator;",
"Lcom/fasterxml/jackson/core/io/JsonStringEncoder;",
"Lcom/fasterxml/jackson/core/io/MergedStream;",
"Lcom/fasterxml/jackson/core/io/NumberInput;",
"Lcom/fasterxml/jackson/core/io/NumberOutput;",
"Lcom/fasterxml/jackson/core/io/OutputDecorator;",
"Lcom/fasterxml/jackson/core/io/SegmentedStringWriter;",
"Lcom/fasterxml/jackson/core/io/SerializedString;",
"Lcom/fasterxml/jackson/core/io/UTF32Reader;",
"Lcom/fasterxml/jackson/core/io/UTF8Writer;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper$1;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper;",
"Lcom/fasterxml/jackson/core/json/JsonGeneratorImpl;",
"Lcom/fasterxml/jackson/core/json/JsonReadContext;",
"Lcom/fasterxml/jackson/core/json/JsonWriteContext;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser;",
"Lcom/fasterxml/jackson/core/json/UTF8JsonGenerator;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser;",
"Lcom/fasterxml/jackson/core/json/WriterBasedJsonGenerator;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$TableInfo;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/Name;",
"Lcom/fasterxml/jackson/core/sym/Name1;",
"Lcom/fasterxml/jackson/core/sym/Name2;",
"Lcom/fasterxml/jackson/core/sym/Name3;",
"Lcom/fasterxml/jackson/core/sym/NameN;",
"Lcom/fasterxml/jackson/core/type/ResolvedType;",
"Lcom/fasterxml/jackson/core/type/TypeReference;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$ByteBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$CharBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler;",
"Lcom/fasterxml/jackson/core/util/ByteArrayBuilder;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$FixedSpaceIndenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Lf2SpacesIndenter;",
"Lcom/fasterxml/jackson/core/util/Instantiatable;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/InternCache;",
"Lcom/fasterxml/jackson/core/util/JsonParserDelegate;",
"Lcom/fasterxml/jackson/core/util/JsonParserSequence;",
"Lcom/fasterxml/jackson/core/util/MinimalPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/TextBuffer;",
"Lcom/fasterxml/jackson/databind/AbstractTypeResolver;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty$Type;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/BeanDescription;",
"Lcom/fasterxml/jackson/databind/BeanProperty;",
"Lcom/fasterxml/jackson/databind/BeanProperty$Std;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector$MixInResolver;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfig;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfigBase;",
"Lcom/fasterxml/jackson/databind/DeserializationConfig;",
"Lcom/fasterxml/jackson/databind/DeserializationContext;",
"Lcom/fasterxml/jackson/databind/cfg/ConfigFeature;",
"Lcom/fasterxml/jackson/databind/DeserializationFeature;",
"Lcom/fasterxml/jackson/databind/InjectableValues;",
"Lcom/fasterxml/jackson/databind/JavaType;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer$None;",
"Lcom/fasterxml/jackson/databind/JsonMappingException$Reference;",
"Lcom/fasterxml/jackson/databind/JsonMappingException;",
"Lcom/fasterxml/jackson/databind/JsonNode;",
"Lcom/fasterxml/jackson/databind/JsonSerializable;",
"Lcom/fasterxml/jackson/databind/JsonSerializer;",
"Lcom/fasterxml/jackson/databind/JsonSerializer$None;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer$None;",
"Lcom/fasterxml/jackson/databind/MapperFeature;",
"Lcom/fasterxml/jackson/databind/MappingJsonFactory;",
"Lcom/fasterxml/jackson/databind/ObjectMapper;",
"Lcom/fasterxml/jackson/databind/ObjectWriter;",
"Lcom/fasterxml/jackson/databind/PropertyName;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PropertyNamingStrategyBase;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PascalCaseStrategy;",
"Lcom/fasterxml/jackson/databind/SerializationConfig;",
"Lcom/fasterxml/jackson/databind/SerializationFeature;",
"Lcom/fasterxml/jackson/databind/SerializerProvider;",
"Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl;",
"Lcom/fasterxml/jackson/databind/annotation/JsonDeserialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonNaming;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder$Value;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Inclusion;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Typing;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeIdResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonValueInstantiator;",
"Lcom/fasterxml/jackson/databind/annotation/NoClass;",
"Lcom/fasterxml/jackson/databind/cfg/BaseSettings;",
"Lcom/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/cfg/HandlerInstantiator;",
"Lcom/fasterxml/jackson/databind/cfg/SerializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ResolvableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBuilder;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerModifier;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/SettableBeanProperty;",
"Lcom/fasterxml/jackson/databind/deser/CreatorProperty;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext$Impl;",
"Lcom/fasterxml/jackson/databind/deser/DeserializationProblemHandler;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerCache;",
"Lcom/fasterxml/jackson/databind/deser/Deserializers;",
"Lcom/fasterxml/jackson/databind/deser/KeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/SettableAnyProperty;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiators;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayBuilderDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$Bucket;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$IteratorImpl;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap;",
"Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$Builder;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$ExtTypedProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/FieldProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/InnerClassProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ManagedReferenceProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/MethodProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/NullProvider;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdReader;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdValueProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedCreator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Any;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Map;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Regular;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValueBuffer;",
"Lcom/fasterxml/jackson/databind/deser/impl/ReadableObjectId;",
"Lcom/fasterxml/jackson/databind/deser/impl/SetterlessProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/TypeWrappedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/UnwrappedPropertyHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/ValueInjector;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdScalarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ClassDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ContainerDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/std/CollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$CalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$SqlDateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimeZoneDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimestampDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/DelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer$FactoryBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumMapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumSetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JavaTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JsonLocationInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$TokenBufferDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicBooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicReferenceDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CharsetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CurrencyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$FileDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$InetAddressDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$LocaleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$PatternDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$StackTraceElementDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URIDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URLDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$UUIDDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/MapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$1;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigDecimalDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigIntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$PrimitiveOrWrapperDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ByteDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$CharacterDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$DoubleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$FloatDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$IntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$LongDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$NumberDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ShortDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/ObjectArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$Base;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$BooleanDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ByteDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$CharDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$DoubleDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$FloatDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$IntDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$LongDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ShortDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$StringDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$BoolKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ByteKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CalendarKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CharKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DateKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DelegatingKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DoubleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$EnumKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$FloatKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$IntKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LocaleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LongKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ShortKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringCtorKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringFactoryKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$UuidKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/StringCollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ThrowableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/exc/InvalidFormatException;",
"Lcom/fasterxml/jackson/databind/exc/UnrecognizedPropertyException;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$DurationDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$GregorianCalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$QNameDeserializer;",
"Lcom/fasterxml/jackson/databind/util/Provider;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers$XMLGregorianCalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$DocumentDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$NodeDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMSerializer;",
"Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;",
"Lcom/fasterxml/jackson/databind/introspect/Annotated;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedClass;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMember;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedWithParams;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethodMap;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedParameter;",
"Lcom/fasterxml/jackson/databind/util/Annotations;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotationMap;",
"Lcom/fasterxml/jackson/databind/introspect/BasicBeanDescription;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BasicClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/MemberKey;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/ObjectIdInfo;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$WithMember;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$2;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$3;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$Linked;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker$Std;",
"Lcom/fasterxml/jackson/databind/jsontype/NamedType;",
"Lcom/fasterxml/jackson/databind/jsontype/SubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeDeserializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeSerializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeIdResolverBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/ClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/MinimalClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdSubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeNameIdResolver;",
"Lcom/fasterxml/jackson/databind/node/BaseJsonNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode;",
"Lcom/fasterxml/jackson/databind/node/ArrayNode;",
"Lcom/fasterxml/jackson/databind/node/ValueNode;",
"Lcom/fasterxml/jackson/databind/node/NumericNode;",
"Lcom/fasterxml/jackson/databind/node/BigIntegerNode;",
"Lcom/fasterxml/jackson/databind/node/BinaryNode;",
"Lcom/fasterxml/jackson/databind/node/BooleanNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode$NoNodesIterator;",
"Lcom/fasterxml/jackson/databind/node/DecimalNode;",
"Lcom/fasterxml/jackson/databind/node/DoubleNode;",
"Lcom/fasterxml/jackson/databind/node/IntNode;",
"Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;",
"Lcom/fasterxml/jackson/databind/node/LongNode;",
"Lcom/fasterxml/jackson/databind/node/MissingNode;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Array;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Object;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$RootValue;",
"Lcom/fasterxml/jackson/databind/node/NullNode;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode$NoFieldsIterator;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode;",
"Lcom/fasterxml/jackson/databind/node/POJONode;",
"Lcom/fasterxml/jackson/databind/node/TextNode;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser$1;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser;",
"Lcom/fasterxml/jackson/databind/ser/AnyGetterWriter;",
"Lcom/fasterxml/jackson/databind/ser/SerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BasicSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyFilter;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/ContextualSerializer;",
"Lcom/fasterxml/jackson/databind/ser/ResolvableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/BeanSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerBuilder;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerModifier;",
"Lcom/fasterxml/jackson/databind/ser/ContainerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider$Impl;",
"Lcom/fasterxml/jackson/databind/ser/FilterProvider;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache$TypeKey;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache;",
"Lcom/fasterxml/jackson/databind/ser/Serializers;",
"Lcom/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FailingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$MultiView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$SingleView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/std/AsArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StaticListSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedStringListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/IteratorSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap$Bucket;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/ObjectIdWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Double;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Empty;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Multi;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$SerializerAndMapResult;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Single;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$TypeAndSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/std/ArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringCollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/TypeWrappedSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnknownSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/WritableObjectId;",
"Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NonTypedScalarSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/BooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/CalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/CollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumMapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSetSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/InetAddressSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/IterableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/JsonValueSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/MapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NullSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$DoubleSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$FloatSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntLikeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$LongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$NumberSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/ObjectArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/RawSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SerializableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlDateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlTimeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$BooleanArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ByteArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$CharArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$DoubleArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$TypedPrimitiveArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$FloatArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$IntArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$LongArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ShortArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdContainerSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicBooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicIntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicLongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicReferenceSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$ClassSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$FileSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$CalendarKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$DateKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$StringKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TimeZoneSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/ToStringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TokenBufferSerializer;",
"Lcom/fasterxml/jackson/databind/type/TypeBase;",
"Lcom/fasterxml/jackson/databind/type/ArrayType;",
"Lcom/fasterxml/jackson/databind/type/ClassKey;",
"Lcom/fasterxml/jackson/databind/type/CollectionLikeType;",
"Lcom/fasterxml/jackson/databind/type/CollectionType;",
"Lcom/fasterxml/jackson/databind/type/HierarchicType;",
"Lcom/fasterxml/jackson/databind/type/MapLikeType;",
"Lcom/fasterxml/jackson/databind/type/MapType;",
"Lcom/fasterxml/jackson/databind/type/SimpleType;",
"Lcom/fasterxml/jackson/databind/type/TypeBindings;",
"Lcom/fasterxml/jackson/databind/type/TypeFactory;",
"Lcom/fasterxml/jackson/databind/type/TypeModifier;",
"Lcom/fasterxml/jackson/databind/type/TypeParser$MyTokenizer;",
"Lcom/fasterxml/jackson/databind/type/TypeParser;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ArrayIterator;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$BooleanBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ByteBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$DoubleBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$FloatBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$IntBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$LongBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ShortBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders;",
"Lcom/fasterxml/jackson/databind/util/BeanUtil;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil;",
"Lcom/fasterxml/jackson/databind/util/Comparators$1;",
"Lcom/fasterxml/jackson/databind/util/Comparators;",
"Lcom/fasterxml/jackson/databind/util/Converter;",
"Lcom/fasterxml/jackson/databind/util/EnumResolver;",
"Lcom/fasterxml/jackson/databind/util/EnumValues;",
"Lcom/fasterxml/jackson/databind/util/LRUMap;",
"Lcom/fasterxml/jackson/databind/util/LinkedNode;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$1;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$2;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$3;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$4;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$Chained;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer$Node;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder$Node;",
"Lcom/fasterxml/jackson/databind/util/RootNameLookup;",
"Lcom/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/util/StdDateFormat;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$1;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Parser;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Segment;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Empty;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Multi;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Single;",
"Lcom/ford/syncV4/a/a;",
"Lcom/ford/syncV4/b/a;",
"Lcom/ford/syncV4/b/b;",
"Lcom/ford/syncV4/b/c;",
"Lcom/ford/syncV4/b/d;",
"Lcom/ford/syncV4/b/e$1;",
"Lcom/ford/syncV4/b/e;",
"Lcom/ford/syncV4/c/a;",
"Lcom/ford/syncV4/d/a;",
"Lcom/ford/syncV4/protocol/c;",
"Lcom/ford/syncV4/transport/f;",
"Lcom/ford/syncV4/d/b;",
"Lcom/ford/syncV4/d/c;",
"Lcom/ford/syncV4/protocol/a/c;",
"Lcom/ford/syncV4/d/d;",
"Lcom/ford/syncV4/exception/SyncException;",
"Lcom/ford/syncV4/exception/SyncExceptionCause;",
"Lcom/ford/syncV4/protocol/a/a$1;",
"Lcom/ford/syncV4/protocol/a/a$2;",
"Lcom/ford/syncV4/protocol/a/b;",
"Lcom/ford/syncV4/protocol/a/a;",
"Lcom/ford/syncV4/protocol/a;",
"Lcom/ford/syncV4/protocol/b;",
"Lcom/ford/syncV4/protocol/d;",
"Lcom/ford/syncV4/protocol/e;",
"Lcom/ford/syncV4/protocol/enums/FunctionID$1;",
"Lcom/ford/syncV4/protocol/enums/MessageType;",
"Lcom/ford/syncV4/util/b;",
"Lcom/ford/syncV4/protocol/enums/a;",
"Lcom/ford/syncV4/protocol/enums/b;",
"Lcom/ford/syncV4/protocol/enums/c;",
"Lcom/ford/syncV4/protocol/enums/d;",
"Lcom/ford/syncV4/protocol/f;",
"Lcom/ford/syncV4/protocol/g;",
"Lcom/ford/syncV4/protocol/h;",
"Lcom/ford/syncV4/proxy/a/a;",
"Lcom/ford/syncV4/proxy/a/b;",
"Lcom/ford/syncV4/proxy/a/c;",
"Lcom/ford/syncV4/proxy/b/b;",
"Lcom/ford/syncV4/proxy/a;",
"Lcom/ford/syncV4/proxy/b/a;",
"Lcom/ford/syncV4/proxy/b;",
"Lcom/ford/syncV4/proxy/h;",
"Lcom/ford/syncV4/proxy/c;",
"Lcom/ford/syncV4/proxy/d;",
"Lcom/ford/syncV4/proxy/e;",
"Lcom/ford/syncV4/proxy/f;",
"Lcom/ford/syncV4/proxy/g;",
"Lcom/ford/syncV4/proxy/j;",
"Lcom/ford/syncV4/proxy/i;",
"Lcom/ford/syncV4/proxy/j$10;",
"Lcom/ford/syncV4/proxy/j$11;",
"Lcom/ford/syncV4/proxy/j$12;",
"Lcom/ford/syncV4/proxy/j$13;",
"Lcom/ford/syncV4/proxy/j$14;",
"Lcom/ford/syncV4/proxy/j$15;",
"Lcom/ford/syncV4/proxy/j$16;",
"Lcom/ford/syncV4/proxy/j$17;",
"Lcom/ford/syncV4/proxy/j$18;",
"Lcom/ford/syncV4/proxy/j$19;",
"Lcom/ford/syncV4/proxy/j$1;",
"Lcom/ford/syncV4/proxy/j$20;",
"Lcom/ford/syncV4/proxy/j$21;",
"Lcom/ford/syncV4/proxy/j$22;",
"Lcom/ford/syncV4/proxy/j$23;",
"Lcom/ford/syncV4/proxy/j$24;",
"Lcom/ford/syncV4/proxy/j$25;",
"Lcom/ford/syncV4/proxy/j$26;",
"Lcom/ford/syncV4/proxy/j$27;",
"Lcom/ford/syncV4/proxy/j$28;",
"Lcom/ford/syncV4/proxy/j$29;",
"Lcom/ford/syncV4/proxy/j$2;",
"Lcom/ford/syncV4/proxy/j$30;",
"Lcom/ford/syncV4/proxy/j$31;",
"Lcom/ford/syncV4/proxy/j$32;",
"Lcom/ford/syncV4/proxy/j$33;",
"Lcom/ford/syncV4/proxy/j$34;",
"Lcom/ford/syncV4/proxy/j$35;",
"Lcom/ford/syncV4/proxy/j$36;",
"Lcom/ford/syncV4/proxy/j$37;",
"Lcom/ford/syncV4/proxy/j$38;",
"Lcom/ford/syncV4/proxy/j$39;",
"Lcom/ford/syncV4/proxy/j$3;",
"Lcom/ford/syncV4/proxy/j$40;",
"Lcom/ford/syncV4/proxy/j$41;",
"Lcom/ford/syncV4/proxy/j$42;",
"Lcom/ford/syncV4/proxy/j$43;",
"Lcom/ford/syncV4/proxy/j$44;",
"Lcom/ford/syncV4/proxy/j$45;",
"Lcom/ford/syncV4/proxy/j$46;",
"Lcom/ford/syncV4/proxy/j$47;",
"Lcom/ford/syncV4/proxy/j$48;",
"Lcom/ford/syncV4/proxy/j$49;",
"Lcom/ford/syncV4/proxy/j$4;",
"Lcom/ford/syncV4/proxy/j$50;",
"Lcom/ford/syncV4/proxy/j$51;",
"Lcom/ford/syncV4/proxy/j$52;",
"Lcom/ford/syncV4/proxy/j$53;",
"Lcom/ford/syncV4/proxy/j$54;",
"Lcom/ford/syncV4/proxy/j$55;",
"Lcom/ford/syncV4/proxy/j$56;",
"Lcom/ford/syncV4/proxy/j$57;",
"Lcom/ford/syncV4/proxy/j$58;",
"Lcom/ford/syncV4/proxy/j$59;",
"Lcom/ford/syncV4/proxy/j$5;",
"Lcom/ford/syncV4/proxy/j$60;",
"Lcom/ford/syncV4/proxy/j$61;",
"Lcom/ford/syncV4/proxy/j$62;",
"Lcom/ford/syncV4/proxy/j$63;",
"Lcom/ford/syncV4/proxy/j$64;",
"Lcom/ford/syncV4/proxy/j$6;",
"Lcom/ford/syncV4/proxy/j$7;",
"Lcom/ford/syncV4/proxy/j$8;",
"Lcom/ford/syncV4/proxy/j$9;",
"Lcom/ford/syncV4/proxy/k;",
"Lcom/ford/syncV4/proxy/l;",
"Lcom/ford/syncV4/proxy/rpc/a;",
"Lcom/ford/syncV4/proxy/rpc/aa;",
"Lcom/ford/syncV4/proxy/rpc/ab;",
"Lcom/ford/syncV4/proxy/rpc/ac;",
"Lcom/ford/syncV4/proxy/rpc/ad;",
"Lcom/ford/syncV4/proxy/rpc/ae;",
"Lcom/ford/syncV4/
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ClassListing -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ClassListing -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
CAT_CLASSES = "classes"
class ClassListing(AndroScript):
''' List all classes from the dex file '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
# dvm stuff
res.register_keys([CAT_CLASSES])
# dvm stuff
# list<ClassDefItem>
classes = dalvik_vm_format.get_classes()
# class listing
res.log(CAT_CLASSES, [c.name for c in classes])
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
CodePermissions¶
This is an autogenerated documentation file for the script: CodePermissions
Run it¶
$ ./androanalyze scripts_builtin/CodePermissions.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn CodePermissions -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "CodePermissions",
"sha256": "af0a194e42630d36588910fc4bc58258e86b5ae2c1eddcb3e467c23e9f6c231b",
"analysis date": "2015-06-22T20:22:51.758000",
"version": "0.1"
},
"code permissions": {
"listing": {
"FACTORY_TEST": [],
"ACCESS_NETWORK_STATE": [
"Lcom.google.android.gms.internal.hu.<init>",
"Lcom.comscore.utils.e.c",
"Lcom.spotify.music.spotlets.networkoperatorpremiumactivation.NetworkOperatorConnectivityChecker.c",
"Lcom.squareup.picasso.aa.a",
"Lcom.comscore.utils.e.d",
"Lcom.c.g.a",
"Lcom.mixpanel.android.mpmetrics.x.b",
"Lcom.c.h.b",
"Lcom.squareup.picasso.j.d",
"Lcom.comscore.utils.e.e",
"Lcom.spotify.music.spotlets.networkoperatorpremiumactivation.NetworkOperatorConnectivityChecker.b",
"Lcom.spotify.mobile.android.f.x.e",
"Lcom.spotify.mobile.android.util.bm.a",
"Lcom.google.android.gms.internal.hu.a",
"Lcom.comscore.utils.e.a",
"Lcom.comscore.utils.e.b",
"Lcom.squareup.picasso.m.onReceive",
"Lcom.mixpanel.android.mpmetrics.e.a",
"Lcom.spotify.mobile.android.core.internal.ConnectivityListener.getConnectionType",
"Lcom.spotify.mobile.android.spotlets.search.a.c"
],
"NFC": [
"Lcom.spotify.mobile.android.util.a.a.<init>"
],
"BROADCAST_STICKY": [
"Lcom.spotify.mobile.android.service.am.a"
],
"MODIFY_AUDIO_SETTINGS": [
"Lcom.spotify.mobile.android.f.d.b",
"Lcom.spotify.mobile.android.f.r$14.c",
"Lcom.spotify.mobile.android.f.r$14.a"
],
"USE_CREDENTIALS": [
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$5.b",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$3.b",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$2.b",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$6.b"
],
"WAKE_LOCK": [
"Lcom.spotify.mobile.android.spotlets.openaccess.util.d.q",
"Lcom.spotify.mobile.android.spotlets.video.BackgroundableVideoService.f",
"Lcom.spotify.mobile.android.spotlets.video.BackgroundableVideoService.a",
"Lcom.spotify.mobile.android.f.r$8.a",
"Lcom.spotify.mobile.android.spotlets.openaccess.util.d.g",
"Lcom.spotify.mobile.android.f.r$8.b",
"Lcom.spotify.mobile.android.f.r$15.b",
"Lcom.spotify.mobile.android.spotlets.video.BackgroundableVideoService.h",
"Lcom.spotify.mobile.android.core.internal.LocalFilePlayer.play",
"Lcom.spotify.mobile.android.f.r$15.a",
"Lcom.spotify.mobile.android.spotlets.video.BackgroundableVideoService$3.run",
"Lcom.spotify.mobile.android.spotlets.video.BackgroundableVideoService.b"
],
"VIBRATE": [],
"BLUETOOTH": [
"Lcom.ford.syncV4.transport.a.a",
"Lcom.ford.syncV4.transport.b.a",
"Lcom.ford.syncV4.transport.c.c",
"Lcom.mixpanel.android.mpmetrics.x.c",
"Lcom.ford.syncV4.transport.c.b",
"Lcom.spotify.mobile.android.applink.AppLinkBluetoothManager.a",
"Lcom.ford.syncV4.trace.e.a"
],
"ACCESS_WIFI_STATE": [
"Lcom.comscore.utils.e.a"
],
"MANAGE_ACCOUNTS": [
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$4.b"
],
"GET_ACCOUNTS": [
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$4.b",
"Lcom.spotify.mobile.android.arsenal.q.a",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$5.b",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$6.b",
"Lcom.sony.snei.np.android.account.oauth.a.a.c.a$2.b"
],
"READ_CONTACTS": [
"Lcom.spotify.mobile.android.service.media.provider.MediaProvider.openFile",
"Lcom.squareup.picasso.h.c",
"Lcom.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity.c",
"Lcom.squareup.picasso.g.c",
"Landroid.support.v7.widget.bo.a"
],
"CHANGE_COMPONENT_ENABLED_STATE": [
"Lcom.spotify.mobile.android.spotlets.collection.service.AnnotateService.a"
],
"READ_PHONE_STATE": [
"Lcom.sony.snei.np.android.a.a.d.b",
"Lcom.spotify.mobile.android.util.an.i"
],
"INTERNET": [
"Lnet.hockeyapp.android.a.a.<init>",
"Lcom.loopj.android.http.b.<init>",
"Lcom.google.android.gms.internal.iu.a",
"Lcom.ford.syncV4.transport.g.a",
"Lcom.squareup.okhttp.internal.http.c.connect",
"Lcom.sony.snei.np.android.common.oauth.authgw.lib.b.a",
"Lcom.spotify.mobile.android.ui.fragments.y.a",
"Lcom.comscore.utils.e.c",
"Lcom.facebook.internal.n.b",
"Lcom.squareup.okhttp.g.a",
"Lcom.spotify.mobile.android.spotlets.browse.util.d.a",
"Lnet.hockeyapp.android.views.UpdateView.b",
"Lcom.ford.syncV4.proxy.j.a",
"Lcom.google.android.gms.internal.il.f",
"Lcom.squareup.picasso.ao.a",
"Lcom.google.android.gms.internal.ir$2.call",
"Lcom.squareup.okhttp.internal.http.HttpURLConnectionImpl.<init>",
"Lcom.ford.syncV4.transport.i.b",
"Lcom.c.r.<init>",
"Lcom.spotify.mobile.android.spotlets.collection.service.AnnotateServiceHelperImpl.b",
"Lcom.google.android.gms.internal.iy.<init>",
"Lcom.google.android.gms.internal.jc.onCreateWindow",
"Lcom.facebook.Request.a",
"Lcom.google.android.gms.internal.hp.a",
"Lcom.mixpanel.android.mpmetrics.ServerMessage.a",
"Lcom.google.android.gms.internal.jd.a",
"Lcom.squareup.okhttp.internal.http.ae.<init>",
"Lcom.facebook.widget.o$3.<init>",
"Lnet.hockeyapp.android.b.a",
"Lcom.google.android.gms.ads.AdActivity.setContentView",
"Lcom.comscore.metrics.a.a",
"Lcom.spotify.mobile.android.orbit.OrbitLibraryLoader.copyLibFromApk",
"Lcom.c.q.run"
]
},
"code": {
"FACTORY_TEST": [],
"ACCESS_NETWORK_STATE": [
{
"Lcom_spotify_mobile_android_spotlets_search_a_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_comscore_utils_e_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_comscore_utils_e_e": [
" public void e(android.os.Bundle p1)",
" {",
" return;",
" }"
]
},
{
"Lcom_spotify_music_spotlets_networkoperatorpremiumactivation_NetworkOperatorConnectivityChecker_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_mixpanel_android_mpmetrics_x_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_squareup_picasso_j_d": [
" public final int describeContents()",
" {",
" return 0;",
" }"
]
},
{
"Lcom_spotify_mobile_android_core_internal_ConnectivityListener_getConnectionType": [
" public int getConnectionType()",
" {",
" int v0_0 = 3;",
" if (com.spotify.mobile.android.core.internal.ConnectivityListener.sApplicationContext != null) {",
" int v3_2 = this.mConnectivityManager.getActiveNetworkInfo();",
" if ((v3_2 != 0) && (v3_2.isConnected())) {",
" int v3_3 = v3_2.getType();",
" if (v3_3 != 0) {",
" if (v3_3 == 6) {",
" return v0_0;",
" } else {",
" if (v3_3 == 1) {",
" v0_0 = 4;",
" return v0_0;",
" }",
" }",
" } else {",
" int v3_5 = this.mTelephonyManager.getNetworkType();",
" if (v3_5 >= 3) {",
" return v0_0;",
" } else {",
" if (v3_5 != 2) {",
" if (v3_5 == 1) {",
" v0_0 = 1;",
" return v0_0;",
" }",
" } else {",
" v0_0 = 2;",
" return v0_0;",
" }",
" }",
" }",
" v0_0 = -1;",
" } else {",
" v0_0 = 0;",
" }",
" return v0_0;",
" } else {",
" throw new IllegalStateException(\"application context has not been set!\");",
" }",
" }"
]
},
{
"Lcom_mixpanel_android_mpmetrics_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_squareup_picasso_aa_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_hu_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_hu_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_spotify_music_spotlets_networkoperatorpremiumactivation_NetworkOperatorConnectivityChecker_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_comscore_utils_e_d": [
" public final int describeContents()",
" {",
" return 0;",
" }"
]
},
{
"Lcom_mixpanel_android_mpmetrics_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_x_e": [
" public void e(android.os.Bundle p1)",
" {",
" return;",
" }"
]
},
{
"Lcom_c_h_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_comscore_utils_e_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_util_bm_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_c_g_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_hu_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_comscore_utils_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_squareup_picasso_m_onReceive": [
" public final void onReceive(android.content.Context p2, android.content.Intent p3)",
" {",
" if (this.a.c) {",
" this.a.b();",
" }",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_search_a_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_spotify_mobile_android_util_bm_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"NFC": [
{
"Lcom_spotify_mobile_android_util_a_a_<init>": [
" b()",
" {",
" return;",
" }"
]
}
],
"BROADCAST_STICKY": [
{
"Lcom_spotify_mobile_android_service_am_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"MODIFY_AUDIO_SETTINGS": [
{
"Lcom_spotify_mobile_android_f_r$14_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_d_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$14_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"USE_CREDENTIALS": [
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$2_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$6_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$6_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$2_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$5_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$5_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$3_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
}
],
"WAKE_LOCK": [
{
"Lcom_spotify_mobile_android_spotlets_video_BackgroundableVideoService$3_run": [
" public final void run()",
" {",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"Run: \").append(this).toString());",
" }",
" if ((!this.k) || (this.o >= 0)) {",
" int v10;",
" this.a(1);",
" if (android.os.Build$VERSION.SDK_INT < 21) {",
" v10 = 0;",
" } else {",
" int v0_6 = new android.util.SparseArray();",
" String v1_6 = new android.util.SparseArray();",
" this.b(v0_6, v1_6);",
" v10 = this.a(v0_6, v1_6, 0);",
" }",
" int v9;",
" if (v10 == 0) {",
" v9 = this.j;",
" } else {",
" v9 = 0;",
" }",
" String v1_7;",
" if (v10 == 0) {",
" v1_7 = this.i;",
" } else {",
" v1_7 = 0;",
" }",
" android.support.v4.app.f v8 = this.b;",
" while (v8 != null) {",
" int v7;",
" if (v10 == 0) {",
" v7 = v8.e;",
" } else {",
" v7 = 0;",
" }",
" android.support.v4.app.n v3_1;",
" if (v10 == 0) {",
" v3_1 = v8.f;",
" } else {",
" v3_1 = 0;",
" }",
" switch (v8.c) {",
" case 1:",
" int v0_32 = v8.d;",
" v0_32.Q = v7;",
" this.a.a(v0_32, 0);",
" break;",
" case 2:",
" int v5;",
" int v0_22 = v8.d;",
" if (this.a.g == null) {",
" v5 = v0_22;",
" } else {",
" int v4_2 = 0;",
" v5 = v0_22;",
" while (v4_2 < this.a.g.size()) {",
" int v0_30 = ((android.support.v4.app.Fragment) this.a.g.get(v4_2));",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"OP_REPLACE: adding=\").append(v5).append(\" old=\").append(v0_30).toString());",
" }",
" if ((v5 == 0) || (v0_30.H == v5.H)) {",
" if (v0_30 != v5) {",
" if (v8.i == null) {",
" v8.i = new java.util.ArrayList();",
" }",
" v8.i.add(v0_30);",
" v0_30.Q = v3_1;",
" if (this.k) {",
" v0_30.B = (v0_30.B + 1);",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"Bump nesting of \").append(v0_30).append(\" to \").append(v0_30.B).toString());",
" }",
" }",
" this.a.a(v0_30, v1_7, v9);",
" } else {",
" v8.d = 0;",
" v5 = 0;",
" }",
" }",
" v4_2++;",
" }",
" }",
" if (v5 == 0) {",
" } else {",
" v5.Q = v7;",
" this.a.a(v5, 0);",
" }",
" break;",
" case 3:",
" int v0_21 = v8.d;",
" v0_21.Q = v3_1;",
" this.a.a(v0_21, v1_7, v9);",
" break;",
" case 4:",
" int v0_20 = v8.d;",
" v0_20.Q = v3_1;",
" this.a.b(v0_20, v1_7, v9);",
" break;",
" case 5:",
" int v0_19 = v8.d;",
" v0_19.Q = v7;",
" this.a.c(v0_19, v1_7, v9);",
" break;",
" case 6:",
" int v0_18 = v8.d;",
" v0_18.Q = v3_1;",
" this.a.d(v0_18, v1_7, v9);",
" break;",
" case 7:",
" int v0_17 = v8.d;",
" v0_17.Q = v7;",
" this.a.e(v0_17, v1_7, v9);",
" break;",
" default:",
" throw new IllegalArgumentException(new StringBuilder(\"Unknown cmd: \").append(v8.c).toString());",
" }",
" v8 = v8.a;",
" }",
" this.a.a(this.a.n, v1_7, v9, 1);",
" if (this.k) {",
" this.a.b(this);",
" }",
" return;",
" } else {",
" throw new IllegalStateException(\"addToBackStack() called after commit()\");",
" }",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_openaccess_util_d_q": [
" final void q()",
" {",
" this.p = -1;",
" this.q = 0;",
" this.v = 0;",
" this.w = 0;",
" this.x = 0;",
" this.y = 0;",
" this.z = 0;",
" this.A = 0;",
" this.B = 0;",
" this.C = 0;",
" this.E = 0;",
" this.D = 0;",
" this.G = 0;",
" this.H = 0;",
" this.I = 0;",
" this.J = 0;",
" this.K = 0;",
" this.M = 0;",
" this.W = 0;",
" this.X = 0;",
" this.Y = 0;",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_video_BackgroundableVideoService_f": [
" public final void f(android.os.Bundle p3)",
" {",
" if (this.p < 0) {",
" this.r = p3;",
" return;",
" } else {",
" throw new IllegalStateException(\"Fragment already active\");",
" }",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_openaccess_util_d_g": [
" public final android.content.res.Resources g()",
" {",
" if (this.D != null) {",
" return this.D.getResources();",
" } else {",
" throw new IllegalStateException(new StringBuilder(\"Fragment \").append(this).append(\" not attached to Activity\").toString());",
" }",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_video_BackgroundableVideoService_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_video_BackgroundableVideoService_h": [
" public final android.support.v4.app.l h()",
" {",
" if (this.E == null) {",
" this.G();",
" if (this.k < 5) {",
" if (this.k < 4) {",
" if (this.k < 2) {",
" if (this.k > 0) {",
" this.E.l();",
" }",
" } else {",
" this.E.m();",
" }",
" } else {",
" this.E.n();",
" }",
" } else {",
" this.E.o();",
" }",
" }",
" return this.E;",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$15_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_video_BackgroundableVideoService_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$8_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_core_internal_LocalFilePlayer_play": [
" public void play()",
" {",
" if (this.mMediaPlayer != null) {",
" this.mMediaPlayer.start();",
" }",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$8_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$8_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_f_r$15_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"VIBRATE": [],
"BLUETOOTH": [
{
"Lcom_spotify_mobile_android_applink_AppLinkBluetoothManager_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_a_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_c_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_mixpanel_android_mpmetrics_x_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_ford_syncV4_transport_a_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_applink_AppLinkBluetoothManager_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_trace_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_applink_AppLinkBluetoothManager_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_c_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_spotify_mobile_android_applink_AppLinkBluetoothManager_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_b_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_a_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_trace_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"ACCESS_WIFI_STATE": [
{
"Lcom_comscore_utils_e_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"MANAGE_ACCOUNTS": [
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$4_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
}
],
"GET_ACCOUNTS": [
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$4_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$5_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$2_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_sony_snei_np_android_account_oauth_a_a_c_a$6_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_spotify_mobile_android_arsenal_q_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"READ_CONTACTS": [
{
"Lcom_squareup_picasso_h_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_squareup_picasso_g_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_squareup_picasso_h_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Landroid_support_v7_widget_bo_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_service_media_provider_MediaProvider_openFile": [
" public android.os.ParcelFileDescriptor openFile(android.net.Uri p5, String p6)",
" {",
" Throwable v0_7;",
" if (this.a()) {",
" switch (this.b.match(p5)) {",
" case 0:",
" long v2 = android.os.Binder.clearCallingIdentity();",
" try {",
" v0_7 = this.getContext().getContentResolver().openFileDescriptor(this.a.buildUpon().encodedPath(p5.getEncodedPath()).build(), p6);",
" android.os.Binder.restoreCallingIdentity(v2);",
" } catch (Throwable v0_8) {",
" android.os.Binder.restoreCallingIdentity(v2);",
" throw v0_8;",
" }",
" break;",
" default:",
" v0_7 = super.openFile(p5, p6);",
" }",
" } else {",
" v0_7 = super.openFile(p5, p6);",
" }",
" return v0_7;",
" }"
]
},
{
"Lcom_spotify_mobile_android_ui_activity_AnnotatePlaylistActivity_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_squareup_picasso_g_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_squareup_picasso_g_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
}
],
"CHANGE_COMPONENT_ENABLED_STATE": [
{
"Lcom_spotify_mobile_android_spotlets_collection_service_AnnotateService_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
}
],
"READ_PHONE_STATE": [
{
"Lcom_spotify_mobile_android_util_an_i": [
" final void i(android.os.Bundle p3)",
" {",
" this.e(p3);",
" if (this.E != null) {",
" android.os.Parcelable v0_2 = this.E.k();",
" if (v0_2 != null) {",
" p3.putParcelable(\"android:support:fragments\", v0_2);",
" }",
" }",
" return;",
" }"
]
},
{
"Lcom_sony_snei_np_android_a_a_d_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
}
],
"INTERNET": [
{
"Lcom_squareup_okhttp_g_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_c_q_run": [
" public final void run()",
" {",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"Run: \").append(this).toString());",
" }",
" if ((!this.k) || (this.o >= 0)) {",
" int v10;",
" this.a(1);",
" if (android.os.Build$VERSION.SDK_INT < 21) {",
" v10 = 0;",
" } else {",
" int v0_6 = new android.util.SparseArray();",
" String v1_6 = new android.util.SparseArray();",
" this.b(v0_6, v1_6);",
" v10 = this.a(v0_6, v1_6, 0);",
" }",
" int v9;",
" if (v10 == 0) {",
" v9 = this.j;",
" } else {",
" v9 = 0;",
" }",
" String v1_7;",
" if (v10 == 0) {",
" v1_7 = this.i;",
" } else {",
" v1_7 = 0;",
" }",
" android.support.v4.app.f v8 = this.b;",
" while (v8 != null) {",
" int v7;",
" if (v10 == 0) {",
" v7 = v8.e;",
" } else {",
" v7 = 0;",
" }",
" android.support.v4.app.n v3_1;",
" if (v10 == 0) {",
" v3_1 = v8.f;",
" } else {",
" v3_1 = 0;",
" }",
" switch (v8.c) {",
" case 1:",
" int v0_32 = v8.d;",
" v0_32.Q = v7;",
" this.a.a(v0_32, 0);",
" break;",
" case 2:",
" int v5;",
" int v0_22 = v8.d;",
" if (this.a.g == null) {",
" v5 = v0_22;",
" } else {",
" int v4_2 = 0;",
" v5 = v0_22;",
" while (v4_2 < this.a.g.size()) {",
" int v0_30 = ((android.support.v4.app.Fragment) this.a.g.get(v4_2));",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"OP_REPLACE: adding=\").append(v5).append(\" old=\").append(v0_30).toString());",
" }",
" if ((v5 == 0) || (v0_30.H == v5.H)) {",
" if (v0_30 != v5) {",
" if (v8.i == null) {",
" v8.i = new java.util.ArrayList();",
" }",
" v8.i.add(v0_30);",
" v0_30.Q = v3_1;",
" if (this.k) {",
" v0_30.B = (v0_30.B + 1);",
" if (android.support.v4.app.n.a) {",
" android.util.Log.v(\"FragmentManager\", new StringBuilder(\"Bump nesting of \").append(v0_30).append(\" to \").append(v0_30.B).toString());",
" }",
" }",
" this.a.a(v0_30, v1_7, v9);",
" } else {",
" v8.d = 0;",
" v5 = 0;",
" }",
" }",
" v4_2++;",
" }",
" }",
" if (v5 == 0) {",
" } else {",
" v5.Q = v7;",
" this.a.a(v5, 0);",
" }",
" break;",
" case 3:",
" int v0_21 = v8.d;",
" v0_21.Q = v3_1;",
" this.a.a(v0_21, v1_7, v9);",
" break;",
" case 4:",
" int v0_20 = v8.d;",
" v0_20.Q = v3_1;",
" this.a.b(v0_20, v1_7, v9);",
" break;",
" case 5:",
" int v0_19 = v8.d;",
" v0_19.Q = v7;",
" this.a.c(v0_19, v1_7, v9);",
" break;",
" case 6:",
" int v0_18 = v8.d;",
" v0_18.Q = v3_1;",
" this.a.d(v0_18, v1_7, v9);",
" break;",
" case 7:",
" int v0_17 = v8.d;",
" v0_17.Q = v7;",
" this.a.e(v0_17, v1_7, v9);",
" break;",
" default:",
" throw new IllegalArgumentException(new StringBuilder(\"Unknown cmd: \").append(v8.c).toString());",
" }",
" v8 = v8.a;",
" }",
" this.a.a(this.a.n, v1_7, v9, 1);",
" if (this.k) {",
" this.a.b(this);",
" }",
" return;",
" } else {",
" throw new IllegalStateException(\"addToBackStack() called after commit()\");",
" }",
" }"
]
},
{
"Lcom_loopj_android_http_b_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_comscore_metrics_a_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_collection_service_AnnotateServiceHelperImpl_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lnet_hockeyapp_android_b_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_squareup_picasso_ao_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_iu_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_ir$2_call": [
" public final Object call()",
" {",
" android.support.v4.content.ModernAsyncTask.a(this.a).set(1);",
" android.os.Process.setThreadPriority(10);",
" return android.support.v4.content.ModernAsyncTask.a(this.a, this.a.b());",
" }"
]
},
{
"Lcom_squareup_okhttp_internal_http_ae_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_browse_util_d_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_facebook_Request_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_facebook_internal_n_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_c_r_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_squareup_okhttp_internal_http_HttpURLConnectionImpl_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_proxy_j_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_ads_AdActivity_setContentView": [
" public void setContentView(int p2)",
" {",
" this.g().a(p2);",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_g_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_facebook_widget_o$3_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_spotlets_browse_util_d_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_sony_snei_np_android_common_oauth_authgw_lib_b_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lnet_hockeyapp_android_a_a_<init>": [
" b()",
" {",
" return;",
" }"
]
},
{
"Lcom_ford_syncV4_transport_i_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_squareup_okhttp_internal_http_c_connect": [
" public void connect()",
" {",
" try {",
" switch (com.spotify.cosmos.android.Resolver$4.$SwitchMap$com$spotify$cosmos$android$Resolver$State[this.mState.ordinal()]) {",
" case 1:",
" this.doConnect();",
" return;",
" default:",
" return;",
" }",
" } catch (Throwable v0_2) {",
" }",
" throw v0_2;",
" }"
]
},
{
"Lnet_hockeyapp_android_views_UpdateView_b": [
" public static boolean b(android.graphics.drawable.Drawable p1)",
" {",
" return android.support.v4.a.a.a.a.b(p1);",
" }"
]
},
{
"Lcom_google_android_gms_internal_ir$2_call": [
" public final Object call()",
" {",
" android.support.v4.content.ModernAsyncTask.a(this.a).set(1);",
" android.os.Process.setThreadPriority(10);",
" return android.support.v4.content.ModernAsyncTask.a(this.a, this.a.b());",
" }"
]
},
{
"Lcom_google_android_gms_internal_jd_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_hp_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_comscore_utils_e_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_spotify_mobile_android_orbit_OrbitLibraryLoader_copyLibFromApk": [
" private static boolean copyLibFromApk(java.net.URL p6, java.io.File p7)",
" {",
" java.io.IOException v2_0 = 0;",
" java.io.IOException v0_0 = 0;",
" try {",
" java.io.IOException v1 = p6.openStream();",
" try {",
" java.io.IOException v3_0 = new java.io.FileOutputStream(p7);",
" v2_0 = 512;",
" } catch (java.io.IOException v3) {",
" if (v2_0 != null) {",
" try {",
" v2_0.close();",
" } catch (java.io.IOException v2) {",
" }",
" }",
" if (v1 == null) {",
" return v0_0;",
" } else {",
" try {",
" v1.close();",
" } catch (java.io.IOException v1) {",
" }",
" return v0_0;",
" }",
" } catch (java.io.IOException v0_1) {",
" v3_0 = 512;",
" if (v3_0 != null) {",
" try {",
" v3_0.close();",
" } catch (java.io.IOException v2) {",
" }",
" }",
" if (v1 != null) {",
" try {",
" v1.close();",
" } catch (java.io.IOException v1) {",
" }",
" }",
" throw v0_1;",
" }",
" try {",
" java.io.IOException v2_1 = new byte[512];",
" } catch (java.io.IOException v2) {",
" v2_0 = v3_0;",
" } catch (java.io.IOException v0_1) {",
" }",
" while(true) {",
" int v4 = v1.read(v2_1);",
" if (v4 == -1) {",
" break;",
" }",
" v3_0.write(v2_1, 0, v4);",
" }",
" v3_0.flush();",
" try {",
" v3_0.close();",
" } catch (java.io.IOException v0) {",
" }",
" if (v1 != null) {",
" try {",
" v1.close();",
" } catch (java.io.IOException v0) {",
" }",
" }",
" v0_0 = 1;",
" return v0_0;",
" } catch (java.io.IOException v1) {",
" v1 = 0;",
" } catch (java.io.IOException v0_1) {",
" v1 = 0;",
" v3_0 = 0;",
" }",
" }"
]
},
{
"Lcom_google_android_gms_internal_il_f": [
" public final void f(android.os.Bundle p3)",
" {",
" if (this.p < 0) {",
" this.r = p3;",
" return;",
" } else {",
" throw new IllegalStateException(\"Fragment already active\");",
" }",
" }"
]
},
{
"Lcom_google_android_gms_internal_jc_onCreateWindow": [
" public final boolean onCreateWindow(android.webkit.WebView p4, boolean p5, boolean p6, android.os.Message p7)",
" {",
" int v0_1 = ((android.webkit.WebView$WebViewTransport) p7.obj);",
" android.webkit.WebView v1_1 = new android.webkit.WebView(p4.getContext());",
" v1_1.setWebViewClient(this.a.a);",
" v0_1.setWebView(v1_1);",
" p7.sendToTarget();",
" return 1;",
" }"
]
},
{
"Lcom_google_android_gms_internal_jd_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_sony_snei_np_android_common_oauth_authgw_lib_b_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_spotify_mobile_android_ui_fragments_y_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_comscore_utils_e_c": [
" public final synthetic Object createFromParcel(android.os.Parcel p2)",
" {",
" return android.support.v4.app.BackStackState$1.a(p2);",
" }"
]
},
{
"Lcom_mixpanel_android_mpmetrics_ServerMessage_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_comscore_metrics_a_a": [
" public static void a(android.graphics.drawable.Drawable p1)",
" {",
" android.support.v4.a.a.a.a.a(p1);",
" return;",
" }"
]
},
{
"Lcom_google_android_gms_internal_iy_<init>": [
" b()",
" {",
" return;",
" }"
]
}
]
}
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn CodePermissions -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn CodePermissions -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androguard.decompiler.dad import decompile
from androlyze.model.script.AndroScript import AndroScript
from androguard.core.analysis.analysis import PathP
# categories
CAT_PERMISSIONS = "code permissions"
PERMISSIONS_LISTING = "listing"
PERMISSIONS_CODE = "code"
def full_method_signature(method):
return '%s.%s.%s' % (method.get_class_name()[:-1], method.get_name(), method.get_descriptor())
def full_method_name(method):
return '%s.%s' % (method.get_class_name()[:-1].replace("/", "."), method.get_name())
class CodePermissions(AndroScript):
''' List where permissions are used in the code and decompile them '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
res.register_keys([CAT_PERMISSIONS])
class_manager = dalvik_vm_format.get_class_manager()
perm_dict = vm_analysis.get_permissions([])
# register list for each used permissions keys
permissions = set(perm_dict.keys())
res.register_enum_keys(permissions, CAT_PERMISSIONS, PERMISSIONS_LISTING)
# register each permission only once!
res.register_enum_keys(permissions, CAT_PERMISSIONS, PERMISSIONS_CODE)
# use set to remove duplicates!
method_names = set()
method_analysis_objs = set()
for permission_name, pathp_obj_list in perm_dict.items():
# list<PathP>
for pathp in pathp_obj_list:
if isinstance(pathp, PathP):
# type: androguard.core.bytecodes.dvm.MethodIdItem
# the method that uses the permission
src_method = class_manager.get_method_ref(pathp.src_idx)
method_name = full_method_name(src_method)
method_names.add((permission_name, method_name))
# the api function for the permission
#dst_method = class_manager.get_method_ref(pathp.dst_idx)
# get androguard.core.bytecodes.dvm.EncodedMethod
encoded_method = dalvik_vm_format.get_method(src_method.get_name())[0]
# get androguard.core.analysis.analysis.MethodAnalysis
method_analysis = vm_analysis.get_method(encoded_method)
method_analysis_objs.add((permission_name, method_name, method_analysis))
for permission_name, method_name in method_names:
# log which classes use which permissions
res.log_append_to_enum(permission_name, method_name, CAT_PERMISSIONS, PERMISSIONS_LISTING)
for permission_name, method_name, method_analysis in method_analysis_objs:
ms = decompile.DvMethod(method_analysis)
ms.process()
source_code = ms.get_source()
# decompile these methods too!
log_val = {method_name : source_code.split("\n")[1:-1]}
res.log_append_to_enum(permission_name, log_val, CAT_PERMISSIONS, PERMISSIONS_CODE)
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
if __name__ == '__main__':
for res in AndroScript.test(CodePermissions, ["../../../../testenv/apks/a2dp.Vol.apk"]):
print res
print res.write_to_json()
ContentProviders¶
This is an autogenerated documentation file for the script: ContentProviders
Run it¶
$ ./androanalyze scripts_builtin/ContentProviders.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ContentProviders -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ContentProviders",
"sha256": "d65a344cd6d268dbc354acde438054ecd5bbd55f0b6c071d4358a58fccd180f6",
"analysis date": "2015-06-22T20:23:02.318000",
"version": "0.1"
},
"content providers": [
"com.spotify.music.internal.provider.SpotifyProvider",
"com.spotify.music.internal.provider.LoggerProvider",
"com.spotify.mobile.android.util.prefs.PrefsProvider",
"com.spotify.mobile.android.service.media.provider.MediaProvider"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ContentProviders -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ContentProviders -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
CAT_PROVIDERS = "content providers"
class ContentProviders(AndroScript):
''' List content providers '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
res.register_keys([CAT_PROVIDERS])
res.log(CAT_PROVIDERS, apk.get_providers())
DVM¶
This is an autogenerated documentation file for the script: DVM
Run it¶
$ ./androanalyze scripts_builtin/DVM.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn DVM -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "DVM",
"sha256": "2bfd46c9c48161668f04a2f8d425f9edb9eefed99fc3425620dceb7ed3d663d4",
"analysis date": "2015-06-22T20:23:02.373000",
"version": "0.1",
"time script": 73.80007100105286,
"time androguard open": 37.81527519226074,
"time total": 111.6153461933136
},
"ChainedScript": {
"scripts": [
"ClassListing",
"ClassDetails",
"DecompileClassesText"
],
"successful": [
"ClassListing",
"ClassDetails",
"DecompileClassesText"
],
"failures": []
},
"classes": [
"Landroid/support/v4/a/a/a;",
"Landroid/support/v4/a/a/c;",
"Landroid/support/v4/a/a/b;",
"Landroid/support/v4/a/a/d;",
"Landroid/support/v4/a/a/e;",
"Landroid/support/v4/a/a/f;",
"Landroid/support/v4/a/a/g;",
"Landroid/support/v4/a/a/h;",
"Landroid/support/v4/a/a/i;",
"Landroid/support/v4/app/BackStackState$1;",
"Landroid/support/v4/app/BackStackState;",
"Landroid/support/v4/app/k;",
"Landroid/support/v4/app/Fragment$1;",
"Landroid/support/v4/app/Fragment$InstantiationException;",
"Landroid/support/v4/app/Fragment$SavedState$1;",
"Landroid/support/v4/app/Fragment$SavedState;",
"Landroid/support/v4/app/Fragment;",
"Landroid/support/v4/app/FragmentManagerState$1;",
"Landroid/support/v4/app/FragmentManagerState;",
"Landroid/support/v4/app/FragmentState$1;",
"Landroid/support/v4/app/FragmentState;",
"Landroid/support/v4/app/FragmentTabHost$SavedState$1;",
"Landroid/support/v4/app/FragmentTabHost$SavedState;",
"Landroid/support/v4/app/FragmentTabHost;",
"Landroid/support/v4/app/SuperNotCalledException;",
"Landroid/support/v4/content/c;",
"Landroid/support/v4/app/a;",
"Landroid/support/v4/app/aa;",
"Landroid/support/v4/app/ab;",
"Landroid/support/v4/app/ac;",
"Landroid/support/v4/app/ad;",
"Landroid/support/v4/app/ae;",
"Landroid/support/v4/app/af;",
"Landroid/support/v4/app/ag;",
"Landroid/support/v4/app/ah;",
"Landroid/support/v4/app/ai;",
"Landroid/support/v4/app/be;",
"Landroid/support/v4/app/aj$1;",
"Landroid/support/v4/app/bd;",
"Landroid/support/v4/app/aj;",
"Landroid/support/v4/app/ax;",
"Landroid/support/v4/app/ak;",
"Landroid/support/v4/app/al;",
"Landroid/support/v4/app/am;",
"Landroid/support/v4/app/an;",
"Landroid/support/v4/app/ao;",
"Landroid/support/v4/app/ar;",
"Landroid/support/v4/app/av;",
"Landroid/support/v4/app/aw;",
"Landroid/support/v4/app/ap;",
"Landroid/support/v4/app/aq;",
"Landroid/support/v4/app/as;",
"Landroid/support/v4/app/at;",
"Landroid/support/v4/app/au;",
"Landroid/support/v4/app/ay;",
"Landroid/support/v4/app/az;",
"Landroid/support/v4/app/b;",
"Landroid/support/v4/app/ba;",
"Landroid/support/v4/app/bb;",
"Landroid/support/v4/app/bc;",
"Landroid/support/v4/app/bf;",
"Landroid/support/v4/app/bg;",
"Landroid/support/v4/app/bh;",
"Landroid/support/v4/app/bi;",
"Landroid/support/v4/app/bj;",
"Landroid/support/v4/app/bk;",
"Landroid/support/v4/app/bl;",
"Landroid/support/v4/app/bu;",
"Landroid/support/v4/app/bm$1;",
"Landroid/support/v4/app/bt;",
"Landroid/support/v4/app/bm;",
"Landroid/support/v4/app/bn;",
"Landroid/support/v4/app/bo;",
"Landroid/support/v4/app/bp;",
"Landroid/support/v4/app/bq;",
"Landroid/support/v4/app/br;",
"Landroid/support/v4/app/bs;",
"Landroid/support/v4/app/bv;",
"Landroid/support/v4/app/bw;",
"Landroid/support/v4/app/bx;",
"Landroid/support/v4/app/by;",
"Landroid/support/v4/app/bz;",
"Landroid/support/v4/app/c;",
"Landroid/support/v4/app/ca;",
"Landroid/support/v4/app/cb;",
"Landroid/support/v4/app/d;",
"Landroid/support/v4/app/u;",
"Landroid/support/v4/app/e$1;",
"Landroid/support/v4/app/e$2;",
"Landroid/support/v4/app/e$3;",
"Landroid/support/v4/app/r;",
"Landroid/support/v4/app/e;",
"Landroid/support/v4/app/f;",
"Landroid/support/v4/app/g;",
"Landroid/support/v4/app/h;",
"Landroid/support/v4/app/i$1;",
"Landroid/support/v4/app/i$2;",
"Landroid/support/v4/app/i;",
"Landroid/support/v4/app/j;",
"Landroid/support/v4/app/l;",
"Landroid/support/v4/app/m;",
"Landroid/support/v4/app/n$1;",
"Landroid/support/v4/app/n$2;",
"Landroid/support/v4/app/n$3;",
"Landroid/support/v4/app/n$4;",
"Landroid/support/v4/app/n;",
"Landroid/support/v4/app/o;",
"Landroid/support/v4/view/at;",
"Landroid/support/v4/app/p;",
"Landroid/support/v4/app/q;",
"Landroid/support/v4/app/s$1;",
"Landroid/support/v4/app/s$2;",
"Landroid/support/v4/app/s$3;",
"Landroid/support/v4/app/s$4;",
"Landroid/support/v4/app/s;",
"Landroid/support/v4/app/t;",
"Landroid/support/v4/app/v$1;",
"Landroid/support/v4/app/v$2;",
"Landroid/support/v4/app/v;",
"Landroid/support/v4/app/w;",
"Landroid/support/v4/app/x;",
"Landroid/support/v4/app/y;",
"Landroid/support/v4/content/p;",
"Landroid/support/v4/app/z;",
"Landroid/support/v4/b/a/a;",
"Landroid/support/v4/b/a/b;",
"Landroid/support/v4/b/a/c;",
"Landroid/support/v4/c/a;",
"Landroid/support/v4/c/b;",
"Landroid/support/v4/c/c;",
"Landroid/support/v4/c/d;",
"Landroid/support/v4/c/e;",
"Landroid/support/v4/c/f;",
"Landroid/support/v4/c/g;",
"Landroid/support/v4/content/ModernAsyncTask$1;",
"Landroid/support/v4/content/v;",
"Landroid/support/v4/content/ModernAsyncTask$2;",
"Landroid/support/v4/content/ModernAsyncTask$3;",
"Landroid/support/v4/content/ModernAsyncTask$4;",
"Landroid/support/v4/content/ModernAsyncTask$Status;",
"Landroid/support/v4/content/ModernAsyncTask;",
"Landroid/support/v4/content/n;",
"Landroid/support/v4/content/a;",
"Landroid/support/v4/content/b;",
"Landroid/support/v4/content/d;",
"Landroid/support/v4/content/e;",
"Landroid/support/v4/content/f;",
"Landroid/support/v4/content/g;",
"Landroid/support/v4/content/h;",
"Landroid/support/v4/content/i;",
"Landroid/support/v4/content/j;",
"Landroid/support/v4/content/k;",
"Landroid/support/v4/content/l;",
"Landroid/support/v4/content/m;",
"Landroid/support/v4/content/o;",
"Landroid/support/v4/content/q$1;",
"Landroid/support/v4/content/q;",
"Landroid/support/v4/content/r;",
"Landroid/support/v4/content/s;",
"Landroid/support/v4/content/t;",
"Landroid/support/v4/content/u;",
"Landroid/support/v4/d/a;",
"Landroid/support/v4/d/b;",
"Landroid/support/v4/d/c;",
"Landroid/support/v4/d/d;",
"Landroid/support/v4/d/e;",
"Landroid/support/v4/d/f;",
"Landroid/support/v4/e/g;",
"Landroid/support/v4/e/a$1;",
"Landroid/support/v4/e/p;",
"Landroid/support/v4/e/a;",
"Landroid/support/v4/e/b;",
"Landroid/support/v4/e/c;",
"Landroid/support/v4/e/d;",
"Landroid/support/v4/e/e;",
"Landroid/support/v4/e/f;",
"Landroid/support/v4/e/h;",
"Landroid/support/v4/e/i;",
"Landroid/support/v4/e/j;",
"Landroid/support/v4/e/k;",
"Landroid/support/v4/e/l;",
"Landroid/support/v4/e/m;",
"Landroid/support/v4/e/n;",
"Landroid/support/v4/e/o;",
"Landroid/support/v4/e/q;",
"Landroid/support/v4/e/r;",
"Landroid/support/v4/view/co;",
"Landroid/support/v4/view/ActionBarTabStrip;",
"Landroid/support/v4/view/PagerTabStrip$1;",
"Landroid/support/v4/view/PagerTabStrip$2;",
"Landroid/support/v4/view/PagerTitleStrip;",
"Landroid/support/v4/view/PagerTabStrip;",
"Landroid/support/v4/view/PagerTitleStripHacked;",
"Landroid/support/v4/view/ViewPager$1;",
"Landroid/support/v4/view/ViewPager$2;",
"Landroid/support/v4/view/ViewPager$3;",
"Landroid/support/v4/view/ViewPager$LayoutParams;",
"Landroid/support/v4/view/ViewPager$SavedState$1;",
"Landroid/support/v4/view/ViewPager$SavedState;",
"Landroid/support/v4/view/ViewPager;",
"Landroid/support/v4/view/a/a;",
"Landroid/support/v4/view/a/aa$1;",
"Landroid/support/v4/view/a/aa;",
"Landroid/support/v4/view/a/ab;",
"Landroid/support/v4/view/a/ac;",
"Landroid/support/v4/view/a/af;",
"Landroid/support/v4/view/a/ah;",
"Landroid/support/v4/view/a/ad;",
"Landroid/support/v4/view/a/ae;",
"Landroid/support/v4/view/a/ag;",
"Landroid/support/v4/view/a/ai;",
"Landroid/support/v4/view/a/d;",
"Landroid/support/v4/view/a/c;",
"Landroid/support/v4/view/a/b;",
"Landroid/support/v4/view/a/e;",
"Landroid/support/v4/view/a/h;",
"Landroid/support/v4/view/a/l;",
"Landroid/support/v4/view/a/g;",
"Landroid/support/v4/view/a/i;",
"Landroid/support/v4/view/a/j;",
"Landroid/support/v4/view/a/k;",
"Landroid/support/v4/view/a/f;",
"Landroid/support/v4/view/a/m;",
"Landroid/support/v4/view/a/n;",
"Landroid/support/v4/view/a/o;",
"Landroid/support/v4/view/a/p;",
"Landroid/support/v4/view/a/q;",
"Landroid/support/v4/view/a/r;",
"Landroid/support/v4/view/a/s;",
"Landroid/support/v4/view/a/t;",
"Landroid/support/v4/view/a/u;",
"Landroid/support/v4/view/a/z;",
"Landroid/support/v4/view/a/v$1;",
"Landroid/support/v4/view/a/x;",
"Landroid/support/v4/view/a/v;",
"Landroid/support/v4/view/a/w$1;",
"Landroid/support/v4/view/a/w;",
"Landroid/support/v4/view/a/y$1;",
"Landroid/support/v4/view/a/y;",
"Landroid/support/v4/view/a;",
"Landroid/support/v4/view/aa;",
"Landroid/support/v4/view/ab;",
"Landroid/support/v4/view/ac;",
"Landroid/support/v4/view/ad;",
"Landroid/support/v4/view/ae;",
"Landroid/support/v4/view/af;",
"Landroid/support/v4/view/aj;",
"Landroid/support/v4/view/ag;",
"Landroid/support/v4/view/ah;",
"Landroid/support/v4/view/ai;",
"Landroid/support/v4/view/ak;",
"Landroid/support/v4/view/al;",
"Landroid/support/v4/view/am;",
"Landroid/support/v4/view/an;",
"Landroid/support/v4/view/aq;",
"Landroid/support/v4/view/ao;",
"Landroid/support/v4/view/ap;",
"Landroid/support/v4/view/ar;",
"Landroid/support/v4/view/as;",
"Landroid/support/v4/view/cr;",
"Landroid/support/v4/view/cs;",
"Landroid/support/v4/view/au;",
"Landroid/support/v4/view/av;",
"Landroid/support/v4/view/aw;",
"Landroid/support/v4/view/ax;",
"Landroid/support/v4/view/ay;",
"Landroid/support/v4/view/az;",
"Landroid/support/v4/view/g;",
"Landroid/support/v4/view/b$1;",
"Landroid/support/v4/view/c;",
"Landroid/support/v4/view/e;",
"Landroid/support/v4/view/b;",
"Landroid/support/v4/view/ba;",
"Landroid/support/v4/view/bb;",
"Landroid/support/v4/view/be;",
"Landroid/support/v4/view/bc;",
"Landroid/support/v4/view/bd;",
"Landroid/support/v4/view/bf;",
"Landroid/support/v4/view/bg;",
"Landroid/support/v4/view/bq;",
"Landroid/support/v4/view/bi;",
"Landroid/support/v4/view/bj;",
"Landroid/support/v4/view/bk;",
"Landroid/support/v4/view/bl;",
"Landroid/support/v4/view/bm;",
"Landroid/support/v4/view/bn;",
"Landroid/support/v4/view/bo;",
"Landroid/support/v4/view/bp;",
"Landroid/support/v4/view/bh;",
"Landroid/support/v4/view/br$1;",
"Landroid/support/v4/view/br;",
"Landroid/support/v4/view/bs;",
"Landroid/support/v4/view/bt;",
"Landroid/support/v4/view/bu;",
"Landroid/support/v4/view/bv;",
"Landroid/support/v4/view/bw;",
"Landroid/support/v4/view/bx;",
"Landroid/support/v4/view/by;",
"Landroid/support/v4/view/cd;",
"Landroid/support/v4/view/bz;",
"Landroid/support/v4/view/ca;",
"Landroid/support/v4/view/cb;",
"Landroid/support/v4/view/cc;",
"Landroid/support/v4/view/ce;",
"Landroid/support/v4/view/cf;",
"Landroid/support/v4/view/cg;",
"Landroid/support/v4/view/ck;",
"Landroid/support/v4/view/cm;",
"Landroid/support/v4/view/ci;",
"Landroid/support/v4/view/cj;",
"Landroid/support/v4/view/cl;",
"Landroid/support/v4/view/ch;",
"Landroid/support/v4/view/cn;",
"Landroid/support/v4/view/cp;",
"Landroid/support/v4/view/cq;",
"Landroid/support/v4/view/ct;",
"Landroid/support/v4/view/cu;",
"Landroid/support/v4/view/cv;",
"Landroid/support/v4/view/cw;",
"Landroid/support/v4/view/cx;",
"Landroid/support/v4/view/df;",
"Landroid/support/v4/view/cy;",
"Landroid/support/v4/view/cz;",
"Landroid/support/v4/view/i;",
"Landroid/support/v4/view/d$1;",
"Landroid/support/v4/view/d;",
"Landroid/support/v4/view/da;",
"Landroid/support/v4/view/dj;",
"Landroid/support/v4/view/db;",
"Landroid/support/v4/view/dd;",
"Landroid/support/v4/view/dc;",
"Landroid/support/v4/view/de;",
"Landroid/support/v4/view/dg$1;",
"Landroid/support/v4/view/dg;",
"Landroid/support/v4/view/dh$1;",
"Landroid/support/v4/view/dh;",
"Landroid/support/v4/view/di$1;",
"Landroid/support/v4/view/di;",
"Landroid/support/v4/view/dk;",
"Landroid/support/v4/view/dl;",
"Landroid/support/v4/view/dm;",
"Landroid/support/v4/view/dn;",
"Landroid/support/v4/view/f$1;",
"Landroid/support/v4/view/f;",
"Landroid/support/v4/view/h$1;",
"Landroid/support/v4/view/h;",
"Landroid/support/v4/view/j;",
"Landroid/support/v4/view/k;",
"Landroid/support/v4/view/l;",
"Landroid/support/v4/view/m;",
"Landroid/support/v4/view/n;",
"Landroid/support/v4/view/o;",
"Landroid/support/v4/view/p;",
"Landroid/support/v4/view/q;",
"Landroid/support/v4/view/r;",
"Landroid/support/v4/view/s;",
"Landroid/support/v4/view/t;",
"Landroid/support/v4/view/x;",
"Landroid/support/v4/view/u;",
"Landroid/support/v4/view/v;",
"Landroid/support/v4/view/w;",
"Landroid/support/v4/view/y;",
"Landroid/support/v4/view/z;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$1;",
"Landroid/support/v4/widget/ContentLoadingProgressBar$2;",
"Landroid/support/v4/widget/ContentLoadingProgressBar;",
"Landroid/support/v4/widget/DrawerLayout$LayoutParams;",
"Landroid/support/v4/widget/DrawerLayout$SavedState$1;",
"Landroid/support/v4/widget/DrawerLayout$SavedState;",
"Landroid/support/v4/widget/s;",
"Landroid/support/v4/widget/DrawerLayout;",
"Landroid/support/v4/widget/SlidingPaneLayout$LayoutParams;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState$1;",
"Landroid/support/v4/widget/SlidingPaneLayout$SavedState;",
"Landroid/support/v4/widget/SlidingPaneLayout;",
"Landroid/support/v4/widget/SwipeRefreshLayout$1;",
"Landroid/support/v4/widget/SwipeRefreshLayout$2;",
"Landroid/support/v4/widget/SwipeRefreshLayout$3;",
"Landroid/support/v4/widget/SwipeRefreshLayout$4;",
"Landroid/support/v4/widget/SwipeRefreshLayout$5;",
"Landroid/support/v4/widget/SwipeRefreshLayout$6;",
"Landroid/support/v4/widget/SwipeRefreshLayout$7;",
"Landroid/support/v4/widget/SwipeRefreshLayout;",
"Landroid/support/v4/widget/a;",
"Landroid/support/v4/widget/aa;",
"Landroid/support/v4/widget/ab;",
"Landroid/support/v4/widget/ac;",
"Landroid/support/v4/widget/ad;",
"Landroid/support/v4/widget/ag;",
"Landroid/support/v4/widget/ae;",
"Landroid/support/v4/widget/af;",
"Landroid/support/v4/widget/ah;",
"Landroid/support/v4/widget/i;",
"Landroid/support/v4/widget/f;",
"Landroid/support/v4/widget/ai;",
"Landroid/support/v4/widget/aj;",
"Landroid/support/v4/widget/ak;",
"Landroid/support/v4/widget/al;",
"Landroid/support/v4/widget/am;",
"Landroid/support/v4/widget/an;",
"Landroid/support/v4/widget/ao;",
"Landroid/support/v4/widget/ap;",
"Landroid/support/v4/widget/aq;",
"Landroid/support/v4/widget/ar;",
"Landroid/support/v4/widget/ba;",
"Landroid/support/v4/widget/as;",
"Landroid/support/v4/widget/at;",
"Landroid/support/v4/widget/au;",
"Landroid/support/v4/widget/av;",
"Landroid/support/v4/widget/aw;",
"Landroid/support/v4/widget/ax;",
"Landroid/support/v4/widget/ay;",
"Landroid/support/v4/widget/az$1;",
"Landroid/support/v4/widget/az$2;",
"Landroid/support/v4/widget/az;",
"Landroid/support/v4/widget/b;",
"Landroid/support/v4/widget/c;",
"Landroid/support/v4/widget/d;",
"Landroid/support/v4/widget/e;",
"Landroid/support/v4/widget/g;",
"Landroid/support/v4/widget/h;",
"Landroid/support/v4/widget/j;",
"Landroid/support/v4/widget/k;",
"Landroid/support/v4/widget/l;",
"Landroid/support/v4/widget/m;",
"Landroid/support/v4/widget/n;",
"Landroid/support/v4/widget/o;",
"Landroid/support/v4/widget/p$1;",
"Landroid/support/v4/widget/p;",
"Landroid/support/v4/widget/q;",
"Landroid/support/v4/widget/r;",
"Landroid/support/v4/widget/t;",
"Landroid/support/v4/widget/w;",
"Landroid/support/v4/widget/u;",
"Landroid/support/v4/widget/v;",
"Landroid/support/v4/widget/x;",
"Landroid/support/v4/widget/y;",
"Landroid/support/v4/widget/z$1;",
"Landroid/support/v4/widget/z$2;",
"Landroid/support/v4/widget/z$3;",
"Landroid/support/v4/widget/z$4;",
"Landroid/support/v4/widget/z$5;",
"Landroid/support/v4/widget/z;",
"Landroid/support/v7/a/a;",
"Landroid/support/v7/a/b;",
"Landroid/support/v7/a/c;",
"Landroid/support/v7/a/d;",
"Landroid/support/v7/a/e;",
"Landroid/support/v7/a/f;",
"Landroid/support/v7/a/g;",
"Landroid/support/v7/a/h;",
"Landroid/support/v7/a/i;",
"Landroid/support/v7/a/j;",
"Landroid/support/v7/a/k;",
"Landroid/support/v7/a/l;",
"Landroid/support/v7/app/ActionBar$LayoutParams;",
"Landroid/support/v7/app/ActionBar;",
"Landroid/support/v7/app/a;",
"Landroid/support/v7/app/s;",
"Landroid/support/v7/app/b;",
"Landroid/support/v7/internal/a/f;",
"Landroid/support/v7/app/c$1;",
"Landroid/support/v7/app/c;",
"Landroid/support/v7/app/l;",
"Landroid/support/v7/app/d;",
"Landroid/support/v7/app/e$1;",
"Landroid/support/v7/app/e$2;",
"Landroid/support/v7/internal/widget/x;",
"Landroid/support/v7/app/e$3;",
"Landroid/support/v7/app/e$4;",
"Landroid/support/v7/internal/view/menu/j;",
"Landroid/support/v7/app/e;",
"Landroid/support/v7/internal/view/menu/w;",
"Landroid/support/v7/app/f;",
"Landroid/support/v7/b/b;",
"Landroid/support/v7/app/g;",
"Landroid/support/v7/app/h;",
"Landroid/support/v7/app/i;",
"Landroid/support/v7/internal/widget/z;",
"Landroid/support/v7/app/j;",
"Landroid/support/v7/app/k;",
"Landroid/support/v7/app/m;",
"Landroid/support/v7/app/x;",
"Landroid/support/v7/app/o;",
"Landroid/support/v7/app/n;",
"Landroid/support/v7/app/p;",
"Landroid/support/v7/app/q;",
"Landroid/support/v7/app/r;",
"Landroid/support/v7/app/t;",
"Landroid/support/v7/app/u;",
"Landroid/support/v7/app/v;",
"Lcom/spotify/mobile/android/util/ui/d;",
"Landroid/support/v7/app/w;",
"Landroid/support/v7/b/a;",
"Landroid/support/v7/b/c;",
"Landroid/support/v7/internal/a/a$1;",
"Landroid/support/v7/widget/br;",
"Landroid/support/v7/internal/a/a$2;",
"Landroid/support/v7/internal/a/a;",
"Landroid/support/v7/internal/a/b;",
"Landroid/support/v7/internal/a/c;",
"Landroid/support/v7/internal/a/d;",
"Landroid/support/v7/widget/bs;",
"Landroid/support/v7/internal/a/e;",
"Landroid/support/v7/internal/a/g$1;",
"Landroid/support/v7/internal/a/g$2;",
"Landroid/support/v7/internal/a/g$3;",
"Landroid/support/v7/internal/widget/f;",
"Landroid/support/v7/internal/a/g;",
"Landroid/support/v7/internal/a/h;",
"Landroid/support/v7/internal/a;",
"Landroid/support/v7/internal/b/a;",
"Landroid/support/v7/internal/view/a;",
"Landroid/support/v7/internal/view/b;",
"Landroid/support/v7/internal/view/c;",
"Landroid/support/v7/internal/view/d;",
"Landroid/support/v7/internal/view/e;",
"Landroid/support/v7/internal/view/f;",
"Landroid/support/v7/internal/view/g;",
"Landroid/support/v7/internal/view/h$1;",
"Landroid/support/v7/internal/view/h;",
"Landroid/support/v7/internal/widget/CompatTextView;",
"Landroid/support/v7/internal/view/menu/y;",
"Landroid/support/v7/widget/h;",
"Landroid/support/v7/internal/view/menu/ActionMenuItemView;",
"Landroid/support/v7/internal/view/menu/k;",
"Landroid/support/v7/internal/view/menu/x;",
"Landroid/support/v7/internal/view/menu/ExpandedMenuView;",
"Landroid/support/v7/internal/view/menu/ListMenuItemView;",
"Landroid/support/v7/internal/view/menu/a;",
"Landroid/support/v7/internal/view/menu/f;",
"Landroid/support/v7/internal/view/menu/e;",
"Landroid/support/v7/internal/view/menu/aa;",
"Landroid/support/v7/internal/view/menu/i;",
"Landroid/support/v7/internal/view/menu/ab;",
"Landroid/support/v7/internal/view/menu/ac;",
"Landroid/support/v7/widget/ab;",
"Landroid/support/v7/internal/view/menu/b;",
"Landroid/support/v7/internal/view/menu/c;",
"Landroid/support/v7/internal/view/menu/v;",
"Landroid/support/v7/internal/view/menu/d;",
"Landroid/support/v7/internal/view/menu/g;",
"Landroid/support/v7/internal/view/menu/h;",
"Landroid/support/v7/internal/view/menu/l;",
"Landroid/support/v7/internal/view/menu/m$1;",
"Landroid/support/v7/internal/view/menu/m;",
"Landroid/support/v7/internal/view/menu/n;",
"Landroid/support/v7/internal/view/menu/o$1;",
"Landroid/support/v7/internal/view/menu/o;",
"Landroid/support/v7/internal/view/menu/p;",
"Landroid/support/v7/internal/view/menu/q;",
"Landroid/support/v7/internal/view/menu/r;",
"Landroid/support/v7/internal/view/menu/s;",
"Landroid/support/v7/internal/view/menu/t;",
"Landroid/support/v7/internal/view/menu/u;",
"Landroid/support/v7/internal/view/menu/z;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/o;",
"Landroid/support/v7/internal/widget/AbsSpinnerCompat;",
"Landroid/support/v7/internal/widget/ActionBarContainer;",
"Landroid/support/v7/internal/widget/ActionBarContextView$1;",
"Landroid/support/v7/internal/widget/a;",
"Landroid/support/v7/internal/widget/ActionBarContextView;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$1;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$2;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$3;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$4;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout$LayoutParams;",
"Landroid/support/v7/internal/widget/t;",
"Landroid/support/v7/internal/widget/ActionBarOverlayLayout;",
"Landroid/support/v7/internal/widget/ActivityChooserView$1;",
"Landroid/support/v7/internal/widget/ActivityChooserView$2;",
"Landroid/support/v7/internal/widget/ActivityChooserView$3;",
"Landroid/support/v7/internal/widget/ActivityChooserView;",
"Landroid/support/v7/internal/widget/AppCompatPopupWindow;",
"Landroid/support/v7/internal/widget/ContentFrameLayout;",
"Landroid/support/v7/internal/widget/w;",
"Landroid/support/v7/internal/widget/FitWindowsFrameLayout;",
"Landroid/support/v7/internal/widget/FitWindowsLinearLayout;",
"Landroid/support/v7/internal/widget/ListViewCompat;",
"Landroid/support/v7/internal/widget/NativeActionModeAwareLayout;",
"Landroid/support/v7/internal/widget/SpinnerCompat$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$2;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState$1;",
"Landroid/support/v7/internal/widget/SpinnerCompat$SavedState;",
"Landroid/support/v7/internal/widget/SpinnerCompat;",
"Landroid/support/v7/internal/widget/TintCheckBox;",
"Landroid/support/v7/internal/widget/TintCheckedTextView;",
"Landroid/support/v7/internal/widget/TintEditText;",
"Landroid/support/v7/internal/widget/TintImageView;",
"Landroid/support/v7/internal/widget/TintRadioButton;",
"Landroid/support/v7/internal/widget/TintSpinner;",
"Landroid/support/v7/internal/widget/ViewStubCompat;",
"Landroid/support/v7/internal/widget/aa;",
"Landroid/support/v7/internal/widget/ab$1;",
"Landroid/support/v7/internal/widget/q;",
"Landroid/support/v7/internal/widget/ab;",
"Landroid/support/v7/internal/widget/ac;",
"Landroid/support/v7/widget/LinearLayoutCompat;",
"Landroid/support/v7/internal/widget/ad;",
"Landroid/support/v7/internal/widget/ah;",
"Landroid/support/v7/internal/widget/ae;",
"Landroid/support/v7/internal/widget/af;",
"Landroid/support/v7/internal/widget/ag$1;",
"Landroid/support/v7/widget/ListPopupWindow;",
"Landroid/support/v7/internal/widget/ag;",
"Landroid/support/v7/internal/widget/v;",
"Landroid/support/v7/internal/widget/ai;",
"Landroid/support/v7/internal/widget/aj;",
"Landroid/support/v7/internal/widget/ak;",
"Landroid/support/v7/internal/widget/al;",
"Landroid/support/v7/internal/widget/am;",
"Landroid/support/v7/internal/widget/an$1;",
"Landroid/support/v7/internal/widget/an$2;",
"Landroid/support/v7/internal/widget/an$3;",
"Landroid/support/v7/internal/widget/u;",
"Landroid/support/v7/internal/widget/an;",
"Landroid/support/v7/internal/widget/ao;",
"Landroid/support/v7/internal/widget/ap;",
"Landroid/support/v7/internal/widget/b;",
"Landroid/support/v7/internal/widget/c;",
"Landroid/support/v7/internal/widget/d;",
"Landroid/support/v7/internal/widget/e;",
"Landroid/support/v7/internal/widget/g;",
"Landroid/support/v7/internal/widget/h;",
"Landroid/support/v7/internal/widget/i;",
"Landroid/support/v7/internal/widget/j;",
"Landroid/support/v7/internal/widget/k;",
"Landroid/support/v7/internal/widget/l;",
"Landroid/support/v7/internal/widget/m;",
"Landroid/support/v7/internal/widget/n;",
"Landroid/support/v7/internal/widget/p;",
"Landroid/support/v7/internal/widget/r;",
"Landroid/support/v7/internal/widget/s;",
"Landroid/support/v7/internal/widget/y;",
"Landroid/support/v7/widget/LinearLayoutCompat$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView$LayoutParams;",
"Landroid/support/v7/widget/ActionMenuView;",
"Landroid/support/v7/widget/RecyclerView$LayoutParams;",
"Landroid/support/v7/widget/GridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/at;",
"Landroid/support/v7/widget/LinearLayoutManager;",
"Landroid/support/v7/widget/GridLayoutManager;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/LinearLayoutManager$SavedState;",
"Landroid/support/v7/widget/ListPopupWindow$1;",
"Landroid/support/v7/widget/ListPopupWindow$2;",
"Landroid/support/v7/widget/RecyclerView$1;",
"Landroid/support/v7/widget/RecyclerView$2;",
"Landroid/support/v7/widget/RecyclerView$3;",
"Landroid/support/v7/widget/q;",
"Landroid/support/v7/widget/RecyclerView$4;",
"Landroid/support/v7/widget/m;",
"Landroid/support/v7/widget/RecyclerView$5;",
"Landroid/support/v7/widget/RecyclerView$SavedState$1;",
"Landroid/support/v7/widget/RecyclerView$SavedState;",
"Landroid/support/v7/widget/RecyclerView;",
"Landroid/support/v7/widget/SearchView$10;",
"Landroid/support/v7/widget/SearchView$11;",
"Landroid/support/v7/widget/SearchView$12;",
"Landroid/support/v7/widget/SearchView$1;",
"Landroid/support/v7/widget/SearchView$2;",
"Landroid/support/v7/widget/SearchView$3;",
"Landroid/support/v7/widget/SearchView$4;",
"Landroid/support/v7/widget/SearchView$5;",
"Landroid/support/v7/widget/SearchView$6;",
"Landroid/support/v7/widget/SearchView$7;",
"Landroid/support/v7/widget/SearchView$8;",
"Landroid/support/v7/widget/SearchView$9;",
"Landroid/support/v7/widget/SearchView$SearchAutoComplete;",
"Landroid/support/v7/widget/SearchView;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LayoutParams;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup$FullSpanItem;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$LazySpanLookup;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState$1;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager$SavedState;",
"Landroid/support/v7/widget/StaggeredGridLayoutManager;",
"Landroid/support/v7/widget/SwitchCompat$1;",
"Landroid/support/v7/widget/SwitchCompat;",
"Landroid/support/v7/widget/k;",
"Landroid/support/v7/widget/Toolbar$1;",
"Landroid/support/v7/widget/Toolbar$2;",
"Landroid/support/v7/widget/Toolbar$3;",
"Landroid/support/v7/widget/Toolbar$LayoutParams;",
"Landroid/support/v7/widget/Toolbar$SavedState$1;",
"Landroid/support/v7/widget/Toolbar$SavedState;",
"Landroid/support/v7/widget/Toolbar;",
"Landroid/support/v7/widget/a;",
"Landroid/support/v7/widget/aa;",
"Landroid/support/v7/widget/ac;",
"Landroid/support/v7/widget/ad;",
"Landroid/support/v7/widget/ae;",
"Landroid/support/v7/widget/af;",
"Landroid/support/v7/widget/ag;",
"Landroid/support/v7/widget/ah;",
"Landroid/support/v7/widget/ai;",
"Landroid/support/v7/widget/aj;",
"Landroid/support/v7/widget/ak;",
"Landroid/support/v7/widget/al;",
"Landroid/support/v7/widget/al$1;",
"Landroid/support/v7/widget/al$2;",
"Landroid/support/v7/widget/am;",
"Landroid/support/v7/widget/an;",
"Landroid/support/v7/widget/ao;",
"Landroid/support/v7/widget/ap;",
"Landroid/support/v7/widget/aq;",
"Landroid/support/v7/widget/ar;",
"Landroid/support/v7/widget/as;",
"Landroid/support/v7/widget/au;",
"Landroid/support/v7/widget/av;",
"Landroid/support/v7/widget/aw;",
"Landroid/support/v7/widget/ax;",
"Landroid/support/v7/widget/ay;",
"Landroid/support/v7/widget/az;",
"Landroid/support/v7/widget/b;",
"Landroid/support/v7/widget/ba;",
"Landroid/support/v7/widget/bb;",
"Landroid/support/v7/widget/bc;",
"Landroid/support/v7/widget/bd;",
"Landroid/support/v7/widget/be;",
"Landroid/support/v7/widget/bf;",
"Landroid/support/v7/widget/bg$1;",
"Landroid/support/v7/widget/bg;",
"Landroid/support/v7/widget/bh;",
"Landroid/support/v7/widget/bi;",
"Landroid/support/v7/widget/bj;",
"Landroid/support/v7/widget/bk;",
"Landroid/support/v7/widget/bl;",
"Landroid/support/v7/widget/bm;",
"Landroid/support/v7/widget/bn;",
"Landroid/support/v7/widget/bo;",
"Landroid/support/v7/widget/bp;",
"Landroid/support/v7/widget/bq;",
"Landroid/support/v7/widget/c;",
"Landroid/support/v7/widget/d;",
"Landroid/support/v7/widget/e$1;",
"Landroid/support/v7/widget/e;",
"Landroid/support/v7/widget/f;",
"Landroid/support/v7/widget/g;",
"Landroid/support/v7/widget/i;",
"Landroid/support/v7/widget/j;",
"Landroid/support/v7/widget/l;",
"Landroid/support/v7/widget/n;",
"Landroid/support/v7/widget/o;",
"Landroid/support/v7/widget/p;",
"Landroid/support/v7/widget/r$1;",
"Landroid/support/v7/widget/r$2;",
"Landroid/support/v7/widget/r$3;",
"Landroid/support/v7/widget/u;",
"Landroid/support/v7/widget/r$4;",
"Landroid/support/v7/widget/r$5;",
"Landroid/support/v7/widget/r$6;",
"Landroid/support/v7/widget/r$7;",
"Landroid/support/v7/widget/r$8;",
"Landroid/support/v7/widget/r;",
"Landroid/support/v7/widget/s;",
"Landroid/support/v7/widget/t;",
"Landroid/support/v7/widget/v;",
"Landroid/support/v7/widget/w;",
"Landroid/support/v7/widget/x;",
"Landroid/support/v7/widget/y;",
"Landroid/support/v7/widget/z;",
"Lcom/a/a/a/a;",
"Lcom/a/a/a/b;",
"Lcom/a/a/a/c;",
"Lcom/b/a/a$1;",
"Lcom/b/a/a$2;",
"Lcom/b/a/a;",
"Lcom/b/a/b;",
"Lcom/b/a/c;",
"Lcom/b/a/d;",
"Lcom/b/a/e;",
"Lcom/b/a/f$1;",
"Lcom/b/a/f;",
"Lcom/b/a/g;",
"Lcom/c/a;",
"Lcom/c/b;",
"Lcom/c/c;",
"Lcom/c/d;",
"Lcom/c/e;",
"Lcom/c/f;",
"Lcom/c/g;",
"Lcom/c/h;",
"Lcom/c/i;",
"Lcom/c/j;",
"Lcom/c/k;",
"Lcom/c/l;",
"Lcom/c/m;",
"Lcom/c/n;",
"Lcom/c/o;",
"Lcom/c/p;",
"Lcom/c/q;",
"Lcom/c/r;",
"Lcom/c/s;",
"Lcom/c/t;",
"Lcom/c/u;",
"Lcom/comscore/a/a/a;",
"Lcom/comscore/a/a/b;",
"Lcom/comscore/a/a/c;",
"Lcom/comscore/a/a/d;",
"Lcom/comscore/a/a/e;",
"Lcom/comscore/a/a/f;",
"Lcom/comscore/analytics/ApplicationState;",
"Lcom/comscore/analytics/SessionState;",
"Lcom/comscore/analytics/a;",
"Lcom/comscore/analytics/b;",
"Lcom/comscore/analytics/c;",
"Lcom/comscore/analytics/d;",
"Lcom/comscore/analytics/e;",
"Lcom/comscore/analytics/f;",
"Lcom/comscore/analytics/g;",
"Lcom/comscore/analytics/h;",
"Lcom/comscore/analytics/i;",
"Lcom/comscore/analytics/j;",
"Lcom/comscore/analytics/k;",
"Lcom/comscore/analytics/l;",
"Lcom/comscore/analytics/m;",
"Lcom/comscore/analytics/n;",
"Lcom/comscore/analytics/o;",
"Lcom/comscore/analytics/p;",
"Lcom/comscore/applications/EventType;",
"Lcom/comscore/b/b;",
"Lcom/comscore/applications/c;",
"Lcom/comscore/applications/a;",
"Lcom/comscore/applications/b;",
"Lcom/comscore/applications/d;",
"Lcom/comscore/b/a;",
"Lcom/comscore/b/c;",
"Lcom/comscore/b/d;",
"Lcom/comscore/b/e;",
"Lcom/comscore/metrics/EventType;",
"Lcom/comscore/metrics/a;",
"Lcom/comscore/metrics/b;",
"Lcom/comscore/utils/DispatchQueue;",
"Lcom/comscore/utils/TransmissionMode;",
"Lcom/comscore/utils/a/a;",
"Lcom/comscore/utils/a;",
"Lcom/comscore/utils/b/a;",
"Lcom/comscore/utils/b/b;",
"Lcom/comscore/utils/b/c;",
"Lcom/comscore/utils/b;",
"Lcom/comscore/utils/c;",
"Lcom/comscore/utils/d;",
"Lcom/comscore/utils/e;",
"Lcom/comscore/utils/f;",
"Lcom/comscore/utils/g;",
"Lcom/comscore/utils/h;",
"Lcom/comscore/utils/i;",
"Lcom/comscore/utils/j;",
"Lcom/comscore/utils/k;",
"Lcom/comscore/utils/l;",
"Lcom/comscore/utils/m;",
"Lcom/comscore/utils/n;",
"Lcom/comscore/utils/o;",
"Lcom/comscore/utils/p;",
"Lcom/comscore/utils/q;",
"Lcom/comscore/utils/r;",
"Lcom/comscore/utils/s;",
"Lcom/comscore/utils/t;",
"Lcom/comscore/utils/u;",
"Lcom/crashlytics/android/ndk/JniNativeApi;",
"Lcom/devsmart/android/ui/HorizontalListView$1;",
"Lcom/devsmart/android/ui/HorizontalListView$2;",
"Lcom/devsmart/android/ui/HorizontalListView$3;",
"Lcom/devsmart/android/ui/HorizontalListView;",
"Lcom/facebook/AccessToken$SerializationProxyV2;",
"Lcom/facebook/AccessToken;",
"Lcom/facebook/AccessTokenSource;",
"Lcom/facebook/AppEventsLogger$1;",
"Lcom/facebook/AppEventsLogger$2;",
"Lcom/facebook/AppEventsLogger$3;",
"Lcom/facebook/AppEventsLogger$4;",
"Lcom/facebook/AppEventsLogger$5;",
"Lcom/facebook/q;",
"Lcom/facebook/AppEventsLogger$6;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AccessTokenAppIdPair;",
"Lcom/facebook/AppEventsLogger$AppEvent$SerializationProxyV1;",
"Lcom/facebook/AppEventsLogger$AppEvent;",
"Lcom/facebook/AppEventsLogger$FlushBehavior;",
"Lcom/facebook/AppEventsLogger$FlushReason;",
"Lcom/facebook/AppEventsLogger$FlushResult;",
"Lcom/facebook/AppEventsLogger;",
"Lcom/facebook/h;",
"Lcom/facebook/AuthorizationClient$1;",
"Lcom/facebook/AuthorizationClient$2;",
"Lcom/facebook/AuthorizationClient$3;",
"Lcom/facebook/AuthorizationClient$4;",
"Lcom/facebook/x;",
"Lcom/facebook/AuthorizationClient$5;",
"Lcom/facebook/AuthorizationClient$AuthHandler;",
"Lcom/facebook/AuthorizationClient$AuthorizationRequest;",
"Lcom/facebook/internal/av;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$GetTokenAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaAuthHandler;",
"Lcom/facebook/AuthorizationClient$KatanaProxyAuthHandler;",
"Lcom/facebook/AuthorizationClient$Result$Code;",
"Lcom/facebook/AuthorizationClient$Result;",
"Lcom/facebook/widget/s;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler$1;",
"Lcom/facebook/AuthorizationClient$WebViewAuthHandler;",
"Lcom/facebook/AuthorizationClient;",
"Lcom/facebook/FacebookException;",
"Lcom/facebook/FacebookAuthorizationException;",
"Lcom/facebook/FacebookDialogException;",
"Lcom/facebook/FacebookGraphObjectException;",
"Lcom/facebook/FacebookOperationCanceledException;",
"Lcom/facebook/FacebookRequestError$Category;",
"Lcom/facebook/FacebookRequestError;",
"Lcom/facebook/FacebookServiceException;",
"Lcom/facebook/FacebookTimeSpentData$SerializationProxyV2;",
"Lcom/facebook/FacebookTimeSpentData;",
"Lcom/facebook/HttpMethod;",
"Lcom/facebook/LoggingBehavior;",
"Lcom/facebook/g;",
"Lcom/facebook/LoginActivity$1;",
"Lcom/facebook/f;",
"Lcom/facebook/LoginActivity$2;",
"Lcom/facebook/LoginActivity;",
"Lcom/facebook/Request$1;",
"Lcom/facebook/Request$2;",
"Lcom/facebook/s;",
"Lcom/facebook/Request$3;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType$1;",
"Lcom/facebook/Request$ParcelFileDescriptorWithMimeType;",
"Lcom/facebook/Request;",
"Lcom/facebook/Session$1;",
"Lcom/facebook/Session$2;",
"Lcom/facebook/Session$3;",
"Lcom/facebook/Session$4$1;",
"Lcom/facebook/Session$4;",
"Lcom/facebook/Session$5;",
"Lcom/facebook/af;",
"Lcom/facebook/Session$AuthorizationRequest$1;",
"Lcom/facebook/Session$AuthorizationRequest$2;",
"Lcom/facebook/Session$AuthorizationRequest$3;",
"Lcom/facebook/Session$AuthorizationRequest$4;",
"Lcom/facebook/Session$AuthorizationRequest$AuthRequestSerializationProxyV1;",
"Lcom/facebook/Session$AuthorizationRequest;",
"Lcom/facebook/Session$NewPermissionsRequest;",
"Lcom/facebook/Session$OpenRequest;",
"Lcom/facebook/Session$SerializationProxyV1;",
"Lcom/facebook/Session;",
"Lcom/facebook/SessionDefaultAudience;",
"Lcom/facebook/SessionLoginBehavior;",
"Lcom/facebook/SessionState$Category;",
"Lcom/facebook/SessionState;",
"Lcom/facebook/a/a;",
"Lcom/facebook/a/b;",
"Lcom/facebook/a/c;",
"Lcom/facebook/a/d;",
"Lcom/facebook/a/e;",
"Lcom/facebook/a/f;",
"Lcom/facebook/a/g;",
"Lcom/facebook/a/h;",
"Lcom/facebook/a;",
"Lcom/facebook/aa$1;",
"Lcom/facebook/aa;",
"Lcom/facebook/ab;",
"Lcom/facebook/ac;",
"Lcom/facebook/ad;",
"Lcom/facebook/ae;",
"Lcom/facebook/ag;",
"Lcom/facebook/ah;",
"Lcom/facebook/ai;",
"Lcom/facebook/aj$1;",
"Lcom/facebook/aj$2$1;",
"Lcom/facebook/aj$2;",
"Lcom/facebook/aj;",
"Lcom/facebook/al;",
"Lcom/facebook/ak;",
"Lcom/facebook/am;",
"Lcom/facebook/an;",
"Lcom/facebook/b$1;",
"Lcom/facebook/b;",
"Lcom/facebook/c;",
"Lcom/facebook/d;",
"Lcom/facebook/widget/q;",
"Lcom/facebook/widget/p;",
"Lcom/facebook/e;",
"Lcom/facebook/i;",
"Lcom/facebook/internal/LikeActionController$10;",
"Lcom/facebook/internal/aa;",
"Lcom/facebook/internal/LikeActionController$1;",
"Lcom/facebook/internal/LikeActionController$2;",
"Lcom/facebook/internal/LikeActionController$3;",
"Lcom/facebook/internal/LikeActionController$4;",
"Lcom/facebook/internal/LikeActionController$5$1;",
"Lcom/facebook/internal/LikeActionController$5;",
"Lcom/facebook/widget/b;",
"Lcom/facebook/internal/LikeActionController$6;",
"Lcom/facebook/internal/LikeActionController$7$1;",
"Lcom/facebook/internal/aj;",
"Lcom/facebook/internal/LikeActionController$7;",
"Lcom/facebook/internal/LikeActionController$8;",
"Lcom/facebook/internal/LikeActionController$9$1;",
"Lcom/facebook/internal/LikeActionController$9;",
"Lcom/facebook/widget/c;",
"Lcom/facebook/internal/LikeActionController$LikeDialogFeature;",
"Lcom/facebook/internal/LikeActionController;",
"Lcom/facebook/internal/LikeBoxCountView$1;",
"Lcom/facebook/internal/LikeBoxCountView$LikeBoxCountViewCaretPosition;",
"Lcom/facebook/internal/LikeBoxCountView;",
"Lcom/facebook/internal/SessionAuthorizationType;",
"Lcom/facebook/internal/a;",
"Lcom/facebook/internal/y;",
"Lcom/facebook/internal/ab;",
"Lcom/facebook/internal/ac;",
"Lcom/facebook/internal/ad;",
"Lcom/facebook/internal/ae;",
"Lcom/facebook/widget/a;",
"Lcom/facebook/internal/af;",
"Lcom/facebook/internal/ag;",
"Lcom/facebook/internal/ah;",
"Lcom/facebook/internal/ai;",
"Lcom/facebook/internal/ak;",
"Lcom/facebook/internal/al;",
"Lcom/facebook/internal/au;",
"Lcom/facebook/internal/am;",
"Lcom/facebook/internal/an;",
"Lcom/facebook/internal/ao;",
"Lcom/facebook/internal/ar;",
"Lcom/facebook/internal/ap;",
"Lcom/facebook/internal/aq;",
"Lcom/facebook/internal/as;",
"Lcom/facebook/internal/at;",
"Lcom/facebook/internal/au$1;",
"Lcom/facebook/internal/aw;",
"Lcom/facebook/internal/ax;",
"Lcom/facebook/internal/ay;",
"Lcom/facebook/internal/az;",
"Lcom/facebook/internal/c;",
"Lcom/facebook/internal/b$1;",
"Lcom/facebook/internal/b$2;",
"Lcom/facebook/internal/b$3;",
"Lcom/facebook/internal/b$4;",
"Lcom/facebook/internal/b$5;",
"Lcom/facebook/internal/b$6;",
"Lcom/facebook/internal/b$7;",
"Lcom/facebook/internal/b;",
"Lcom/facebook/internal/ba;",
"Lcom/facebook/internal/bb$1;",
"Lcom/facebook/internal/bb;",
"Lcom/facebook/internal/bc;",
"Lcom/facebook/internal/bd;",
"Lcom/facebook/internal/be;",
"Lcom/facebook/internal/bf$1;",
"Lcom/facebook/internal/bf;",
"Lcom/facebook/internal/bg;",
"Lcom/facebook/internal/bh;",
"Lcom/facebook/w;",
"Lcom/facebook/internal/d;",
"Lcom/facebook/internal/e$1;",
"Lcom/facebook/internal/e$2;",
"Lcom/facebook/widget/o;",
"Lcom/facebook/internal/e;",
"Lcom/facebook/internal/l;",
"Lcom/facebook/internal/f$1;",
"Lcom/facebook/internal/f$2;",
"Lcom/facebook/internal/f$3;",
"Lcom/facebook/internal/f;",
"Lcom/facebook/internal/g$1;",
"Lcom/facebook/internal/g$2;",
"Lcom/facebook/internal/g;",
"Lcom/facebook/internal/h;",
"Lcom/facebook/internal/i;",
"Lcom/facebook/internal/j;",
"Lcom/facebook/internal/k;",
"Lcom/facebook/internal/m;",
"Lcom/facebook/internal/n$1;",
"Lcom/facebook/internal/n;",
"Lcom/facebook/internal/o;",
"Lcom/facebook/internal/p;",
"Lcom/facebook/internal/q;",
"Lcom/facebook/internal/r;",
"Lcom/facebook/internal/s;",
"Lcom/facebook/internal/t;",
"Lcom/facebook/internal/u;",
"Lcom/facebook/internal/v;",
"Lcom/facebook/internal/w;",
"Lcom/facebook/internal/x;",
"Lcom/facebook/internal/y$1;",
"Lcom/facebook/internal/z;",
"Lcom/facebook/j;",
"Lcom/facebook/k;",
"Lcom/facebook/m;",
"Lcom/facebook/l$1;",
"Lcom/facebook/l$2;",
"Lcom/facebook/l;",
"Lcom/facebook/model/CreateGraphObject;",
"Lcom/facebook/model/GraphObject;",
"Lcom/facebook/model/GraphLocation;",
"Lcom/facebook/model/GraphMultiResult;",
"Lcom/facebook/model/GraphObjectList;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectListImpl;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy$1;",
"Lcom/facebook/model/GraphObject$Factory$ProxyBase;",
"Lcom/facebook/model/GraphObject$Factory$GraphObjectProxy;",
"Lcom/facebook/model/GraphObject$Factory;",
"Lcom/facebook/model/GraphPlace;",
"Lcom/facebook/model/GraphUser;",
"Lcom/facebook/model/JsonUtil$JSONObjectEntry;",
"Lcom/facebook/model/JsonUtil;",
"Lcom/facebook/model/OpenGraphAction$Factory;",
"Lcom/facebook/model/OpenGraphAction;",
"Lcom/facebook/model/OpenGraphObject$Factory;",
"Lcom/facebook/model/OpenGraphObject;",
"Lcom/facebook/model/PropertyName;",
"Lcom/facebook/z;",
"Lcom/facebook/n;",
"Lcom/facebook/o$1;",
"Lcom/facebook/o;",
"Lcom/facebook/p;",
"Lcom/facebook/r;",
"Lcom/facebook/t;",
"Lcom/facebook/u;",
"Lcom/facebook/v;",
"Lcom/facebook/widget/FacebookDialog$PendingCall$1;",
"Lcom/facebook/widget/FacebookDialog$PendingCall;",
"Lcom/facebook/widget/FacebookDialog;",
"Lcom/facebook/widget/LikeView$1;",
"Lcom/facebook/widget/LikeView$2;",
"Lcom/facebook/widget/LikeView$AuxiliaryViewPosition;",
"Lcom/facebook/widget/LikeView$HorizontalAlignment;",
"Lcom/facebook/widget/LikeView$Style;",
"Lcom/facebook/widget/LikeView;",
"Lcom/facebook/widget/LoginButton$1;",
"Lcom/facebook/widget/LoginButton$2;",
"Lcom/facebook/widget/LoginButton$ToolTipMode;",
"Lcom/facebook/widget/LoginButton;",
"Lcom/facebook/widget/ProfilePictureView$1;",
"Lcom/facebook/widget/ProfilePictureView;",
"Lcom/facebook/widget/ToolTipPopup$1;",
"Lcom/facebook/widget/ToolTipPopup$2;",
"Lcom/facebook/widget/ToolTipPopup$3;",
"Lcom/facebook/widget/ToolTipPopup$Style;",
"Lcom/facebook/widget/ToolTipPopup;",
"Lcom/facebook/widget/d;",
"Lcom/facebook/widget/a$1;",
"Lcom/facebook/widget/e;",
"Lcom/facebook/widget/f;",
"Lcom/facebook/widget/g;",
"Lcom/facebook/widget/h;",
"Lcom/facebook/widget/i;",
"Lcom/facebook/widget/j$1;",
"Lcom/facebook/widget/j;",
"Lcom/facebook/widget/k;",
"Lcom/facebook/widget/l;",
"Lcom/facebook/widget/m;",
"Lcom/facebook/widget/n;",
"Lcom/facebook/widget/o$1;",
"Lcom/facebook/widget/o$2;",
"Lcom/facebook/widget/o$3;",
"Lcom/facebook/widget/r;",
"Lcom/facebook/y;",
"Lcom/fasterxml/jackson/annotation/JacksonAnnotationsInside;",
"Lcom/fasterxml/jackson/annotation/JacksonInject;",
"Lcom/fasterxml/jackson/annotation/JsonAnyGetter;",
"Lcom/fasterxml/jackson/annotation/JsonAnySetter;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$1;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect$Visibility;",
"Lcom/fasterxml/jackson/annotation/JsonAutoDetect;",
"Lcom/fasterxml/jackson/annotation/JsonBackReference;",
"Lcom/fasterxml/jackson/annotation/JsonCreator;",
"Lcom/fasterxml/jackson/annotation/JsonFilter;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Shape;",
"Lcom/fasterxml/jackson/annotation/JsonFormat$Value;",
"Lcom/fasterxml/jackson/annotation/JsonFormat;",
"Lcom/fasterxml/jackson/annotation/JsonGetter;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityInfo;",
"Lcom/fasterxml/jackson/annotation/JsonIdentityReference;",
"Lcom/fasterxml/jackson/annotation/JsonIgnore;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreProperties;",
"Lcom/fasterxml/jackson/annotation/JsonIgnoreType;",
"Lcom/fasterxml/jackson/annotation/JsonInclude$Include;",
"Lcom/fasterxml/jackson/annotation/JsonInclude;",
"Lcom/fasterxml/jackson/annotation/JsonManagedReference;",
"Lcom/fasterxml/jackson/annotation/JsonProperty;",
"Lcom/fasterxml/jackson/annotation/JsonPropertyOrder;",
"Lcom/fasterxml/jackson/annotation/JsonRawValue;",
"Lcom/fasterxml/jackson/annotation/JsonRootName;",
"Lcom/fasterxml/jackson/annotation/JsonSetter;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes$Type;",
"Lcom/fasterxml/jackson/annotation/JsonSubTypes;",
"Lcom/fasterxml/jackson/annotation/JsonTypeId;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$As;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$Id;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo$None;",
"Lcom/fasterxml/jackson/annotation/JsonTypeInfo;",
"Lcom/fasterxml/jackson/annotation/JsonTypeName;",
"Lcom/fasterxml/jackson/annotation/JsonUnwrapped;",
"Lcom/fasterxml/jackson/annotation/JsonValue;",
"Lcom/fasterxml/jackson/annotation/JsonView;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator$IdKey;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$Base;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$None;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators$PropertyGenerator;",
"Lcom/fasterxml/jackson/annotation/ObjectIdGenerators;",
"Lcom/fasterxml/jackson/core/Base64Variant;",
"Lcom/fasterxml/jackson/core/Base64Variants;",
"Lcom/fasterxml/jackson/core/FormatSchema;",
"Lcom/fasterxml/jackson/core/JsonEncoding;",
"Lcom/fasterxml/jackson/core/JsonFactory$Feature;",
"Lcom/fasterxml/jackson/core/JsonFactory;",
"Lcom/fasterxml/jackson/core/JsonProcessingException;",
"Lcom/fasterxml/jackson/core/JsonGenerationException;",
"Lcom/fasterxml/jackson/core/JsonGenerator$Feature;",
"Lcom/fasterxml/jackson/core/JsonGenerator;",
"Lcom/fasterxml/jackson/core/JsonLocation;",
"Lcom/fasterxml/jackson/core/JsonParseException;",
"Lcom/fasterxml/jackson/core/JsonParser$Feature;",
"Lcom/fasterxml/jackson/core/JsonParser$NumberType;",
"Lcom/fasterxml/jackson/core/JsonParser;",
"Lcom/fasterxml/jackson/core/JsonStreamContext;",
"Lcom/fasterxml/jackson/core/JsonToken;",
"Lcom/fasterxml/jackson/core/ObjectCodec;",
"Lcom/fasterxml/jackson/core/PrettyPrinter;",
"Lcom/fasterxml/jackson/core/SerializableString;",
"Lcom/fasterxml/jackson/core/TreeNode;",
"Lcom/fasterxml/jackson/core/base/GeneratorBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase;",
"Lcom/fasterxml/jackson/core/base/ParserBase;",
"Lcom/fasterxml/jackson/core/base/ParserMinimalBase$1;",
"Lcom/fasterxml/jackson/core/io/BaseReader;",
"Lcom/fasterxml/jackson/core/io/CharTypes;",
"Lcom/fasterxml/jackson/core/io/CharacterEscapes;",
"Lcom/fasterxml/jackson/core/io/IOContext;",
"Lcom/fasterxml/jackson/core/io/InputDecorator;",
"Lcom/fasterxml/jackson/core/io/JsonStringEncoder;",
"Lcom/fasterxml/jackson/core/io/MergedStream;",
"Lcom/fasterxml/jackson/core/io/NumberInput;",
"Lcom/fasterxml/jackson/core/io/NumberOutput;",
"Lcom/fasterxml/jackson/core/io/OutputDecorator;",
"Lcom/fasterxml/jackson/core/io/SegmentedStringWriter;",
"Lcom/fasterxml/jackson/core/io/SerializedString;",
"Lcom/fasterxml/jackson/core/io/UTF32Reader;",
"Lcom/fasterxml/jackson/core/io/UTF8Writer;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper$1;",
"Lcom/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper;",
"Lcom/fasterxml/jackson/core/json/JsonGeneratorImpl;",
"Lcom/fasterxml/jackson/core/json/JsonReadContext;",
"Lcom/fasterxml/jackson/core/json/JsonWriteContext;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/ReaderBasedJsonParser;",
"Lcom/fasterxml/jackson/core/json/UTF8JsonGenerator;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser$1;",
"Lcom/fasterxml/jackson/core/json/UTF8StreamJsonParser;",
"Lcom/fasterxml/jackson/core/json/WriterBasedJsonGenerator;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer$TableInfo;",
"Lcom/fasterxml/jackson/core/sym/BytesToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer$Bucket;",
"Lcom/fasterxml/jackson/core/sym/CharsToNameCanonicalizer;",
"Lcom/fasterxml/jackson/core/sym/Name;",
"Lcom/fasterxml/jackson/core/sym/Name1;",
"Lcom/fasterxml/jackson/core/sym/Name2;",
"Lcom/fasterxml/jackson/core/sym/Name3;",
"Lcom/fasterxml/jackson/core/sym/NameN;",
"Lcom/fasterxml/jackson/core/type/ResolvedType;",
"Lcom/fasterxml/jackson/core/type/TypeReference;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$ByteBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler$CharBufferType;",
"Lcom/fasterxml/jackson/core/util/BufferRecycler;",
"Lcom/fasterxml/jackson/core/util/ByteArrayBuilder;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$FixedSpaceIndenter;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter$Lf2SpacesIndenter;",
"Lcom/fasterxml/jackson/core/util/Instantiatable;",
"Lcom/fasterxml/jackson/core/util/DefaultPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/InternCache;",
"Lcom/fasterxml/jackson/core/util/JsonParserDelegate;",
"Lcom/fasterxml/jackson/core/util/JsonParserSequence;",
"Lcom/fasterxml/jackson/core/util/MinimalPrettyPrinter;",
"Lcom/fasterxml/jackson/core/util/TextBuffer;",
"Lcom/fasterxml/jackson/databind/AbstractTypeResolver;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty$Type;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty;",
"Lcom/fasterxml/jackson/databind/AnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/BeanDescription;",
"Lcom/fasterxml/jackson/databind/BeanProperty;",
"Lcom/fasterxml/jackson/databind/BeanProperty$Std;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector$MixInResolver;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfig;",
"Lcom/fasterxml/jackson/databind/cfg/MapperConfigBase;",
"Lcom/fasterxml/jackson/databind/DeserializationConfig;",
"Lcom/fasterxml/jackson/databind/DeserializationContext;",
"Lcom/fasterxml/jackson/databind/cfg/ConfigFeature;",
"Lcom/fasterxml/jackson/databind/DeserializationFeature;",
"Lcom/fasterxml/jackson/databind/InjectableValues;",
"Lcom/fasterxml/jackson/databind/JavaType;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer;",
"Lcom/fasterxml/jackson/databind/JsonDeserializer$None;",
"Lcom/fasterxml/jackson/databind/JsonMappingException$Reference;",
"Lcom/fasterxml/jackson/databind/JsonMappingException;",
"Lcom/fasterxml/jackson/databind/JsonNode;",
"Lcom/fasterxml/jackson/databind/JsonSerializable;",
"Lcom/fasterxml/jackson/databind/JsonSerializer;",
"Lcom/fasterxml/jackson/databind/JsonSerializer$None;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer;",
"Lcom/fasterxml/jackson/databind/KeyDeserializer$None;",
"Lcom/fasterxml/jackson/databind/MapperFeature;",
"Lcom/fasterxml/jackson/databind/MappingJsonFactory;",
"Lcom/fasterxml/jackson/databind/ObjectMapper;",
"Lcom/fasterxml/jackson/databind/ObjectWriter;",
"Lcom/fasterxml/jackson/databind/PropertyName;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PropertyNamingStrategyBase;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy;",
"Lcom/fasterxml/jackson/databind/PropertyNamingStrategy$PascalCaseStrategy;",
"Lcom/fasterxml/jackson/databind/SerializationConfig;",
"Lcom/fasterxml/jackson/databind/SerializationFeature;",
"Lcom/fasterxml/jackson/databind/SerializerProvider;",
"Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl;",
"Lcom/fasterxml/jackson/databind/annotation/JsonDeserialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonNaming;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder$Value;",
"Lcom/fasterxml/jackson/databind/annotation/JsonPOJOBuilder;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Inclusion;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize$Typing;",
"Lcom/fasterxml/jackson/databind/annotation/JsonSerialize;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeIdResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonTypeResolver;",
"Lcom/fasterxml/jackson/databind/annotation/JsonValueInstantiator;",
"Lcom/fasterxml/jackson/databind/annotation/NoClass;",
"Lcom/fasterxml/jackson/databind/cfg/BaseSettings;",
"Lcom/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/cfg/HandlerInstantiator;",
"Lcom/fasterxml/jackson/databind/cfg/SerializerFactoryConfig;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/AbstractDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ResolvableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerBuilder;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerFactory;",
"Lcom/fasterxml/jackson/databind/deser/BeanDeserializerModifier;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/BuilderBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/ContextualKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/SettableBeanProperty;",
"Lcom/fasterxml/jackson/databind/deser/CreatorProperty;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext;",
"Lcom/fasterxml/jackson/databind/deser/DefaultDeserializationContext$Impl;",
"Lcom/fasterxml/jackson/databind/deser/DeserializationProblemHandler;",
"Lcom/fasterxml/jackson/databind/deser/DeserializerCache;",
"Lcom/fasterxml/jackson/databind/deser/Deserializers;",
"Lcom/fasterxml/jackson/databind/deser/KeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/SettableAnyProperty;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/ValueInstantiators;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayBuilderDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanAsArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$Bucket;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap$IteratorImpl;",
"Lcom/fasterxml/jackson/databind/deser/impl/BeanPropertyMap;",
"Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$Builder;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler$ExtTypedProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/FieldProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/InnerClassProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/ManagedReferenceProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/MethodProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/NullProvider;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdReader;",
"Lcom/fasterxml/jackson/databind/deser/impl/ObjectIdValueProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedCreator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Any;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Map;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValue$Regular;",
"Lcom/fasterxml/jackson/databind/deser/impl/PropertyValueBuffer;",
"Lcom/fasterxml/jackson/databind/deser/impl/ReadableObjectId;",
"Lcom/fasterxml/jackson/databind/deser/impl/SetterlessProperty;",
"Lcom/fasterxml/jackson/databind/deser/impl/TypeWrappedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/impl/UnwrappedPropertyHandler;",
"Lcom/fasterxml/jackson/databind/deser/impl/ValueInjector;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/BaseNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdScalarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ClassDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ContainerDeserializerBase;",
"Lcom/fasterxml/jackson/databind/deser/std/CollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$CalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$DateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$SqlDateDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimeZoneDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers$TimestampDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/DateDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/DelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer$FactoryBasedDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumMapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/EnumSetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JavaTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$JsonLocationInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers$TokenBufferDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JacksonDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicBooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$AtomicReferenceDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CharsetDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$CurrencyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$FileDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$InetAddressDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$LocaleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$PatternDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$StackTraceElementDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URIDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$URLDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers$UUIDDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JdkDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer$ObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/MapDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$1;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigDecimalDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BigIntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$PrimitiveOrWrapperDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$BooleanDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ByteDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$CharacterDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$DoubleDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$FloatDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$IntegerDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$LongDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$NumberDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers$ShortDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/NumberDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/ObjectArrayDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$Base;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$BooleanDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ByteDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$CharDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$DoubleDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$FloatDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$IntDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$LongDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$ShortDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers$StringDeser;",
"Lcom/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$BoolKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ByteKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CalendarKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$CharKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DateKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DelegatingKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DoubleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$EnumKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$FloatKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$IntKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LocaleKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$LongKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$ShortKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringCtorKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringFactoryKeyDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$UuidKD;",
"Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializers;",
"Lcom/fasterxml/jackson/databind/deser/std/StdValueInstantiator;",
"Lcom/fasterxml/jackson/databind/deser/std/StringCollectionDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/StringDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/ThrowableDeserializer;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer$1;",
"Lcom/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer;",
"Lcom/fasterxml/jackson/databind/exc/InvalidFormatException;",
"Lcom/fasterxml/jackson/databind/exc/UnrecognizedPropertyException;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$DurationDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$GregorianCalendarDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers$QNameDeserializer;",
"Lcom/fasterxml/jackson/databind/util/Provider;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLDeserializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers$XMLGregorianCalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ext/CoreXMLSerializers;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$DocumentDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMDeserializer$NodeDeserializer;",
"Lcom/fasterxml/jackson/databind/ext/DOMSerializer;",
"Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;",
"Lcom/fasterxml/jackson/databind/introspect/Annotated;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedClass;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMember;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedWithParams;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedField;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod$Serialization;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethodMap;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotatedParameter;",
"Lcom/fasterxml/jackson/databind/util/Annotations;",
"Lcom/fasterxml/jackson/databind/introspect/AnnotationMap;",
"Lcom/fasterxml/jackson/databind/introspect/BasicBeanDescription;",
"Lcom/fasterxml/jackson/databind/introspect/ClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BasicClassIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/BeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/MemberKey;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector;",
"Lcom/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector$1;",
"Lcom/fasterxml/jackson/databind/introspect/ObjectIdInfo;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$WithMember;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$2;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$3;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder$Linked;",
"Lcom/fasterxml/jackson/databind/introspect/POJOPropertyBuilder;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker;",
"Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker$Std;",
"Lcom/fasterxml/jackson/databind/jsontype/NamedType;",
"Lcom/fasterxml/jackson/databind/jsontype/SubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/TypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeDeserializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeSerializerBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeDeserializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeSerializer;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeIdResolverBase;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/ClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/MinimalClassNameIdResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdSubtypeResolver;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder$1;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder;",
"Lcom/fasterxml/jackson/databind/jsontype/impl/TypeNameIdResolver;",
"Lcom/fasterxml/jackson/databind/node/BaseJsonNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode;",
"Lcom/fasterxml/jackson/databind/node/ArrayNode;",
"Lcom/fasterxml/jackson/databind/node/ValueNode;",
"Lcom/fasterxml/jackson/databind/node/NumericNode;",
"Lcom/fasterxml/jackson/databind/node/BigIntegerNode;",
"Lcom/fasterxml/jackson/databind/node/BinaryNode;",
"Lcom/fasterxml/jackson/databind/node/BooleanNode;",
"Lcom/fasterxml/jackson/databind/node/ContainerNode$NoNodesIterator;",
"Lcom/fasterxml/jackson/databind/node/DecimalNode;",
"Lcom/fasterxml/jackson/databind/node/DoubleNode;",
"Lcom/fasterxml/jackson/databind/node/IntNode;",
"Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;",
"Lcom/fasterxml/jackson/databind/node/LongNode;",
"Lcom/fasterxml/jackson/databind/node/MissingNode;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Array;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$Object;",
"Lcom/fasterxml/jackson/databind/node/NodeCursor$RootValue;",
"Lcom/fasterxml/jackson/databind/node/NullNode;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode$NoFieldsIterator;",
"Lcom/fasterxml/jackson/databind/node/ObjectNode;",
"Lcom/fasterxml/jackson/databind/node/POJONode;",
"Lcom/fasterxml/jackson/databind/node/TextNode;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser$1;",
"Lcom/fasterxml/jackson/databind/node/TreeTraversingParser;",
"Lcom/fasterxml/jackson/databind/ser/AnyGetterWriter;",
"Lcom/fasterxml/jackson/databind/ser/SerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BasicSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyFilter;",
"Lcom/fasterxml/jackson/databind/ser/BeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/ContextualSerializer;",
"Lcom/fasterxml/jackson/databind/ser/ResolvableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/BeanSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerBuilder;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerFactory;",
"Lcom/fasterxml/jackson/databind/ser/BeanSerializerModifier;",
"Lcom/fasterxml/jackson/databind/ser/ContainerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider;",
"Lcom/fasterxml/jackson/databind/ser/DefaultSerializerProvider$Impl;",
"Lcom/fasterxml/jackson/databind/ser/FilterProvider;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder$1;",
"Lcom/fasterxml/jackson/databind/ser/PropertyBuilder;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache$TypeKey;",
"Lcom/fasterxml/jackson/databind/ser/SerializerCache;",
"Lcom/fasterxml/jackson/databind/ser/Serializers;",
"Lcom/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FailingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$MultiView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter$SingleView;",
"Lcom/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/std/AsArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StaticListSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/IndexedStringListSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/IteratorSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap$Bucket;",
"Lcom/fasterxml/jackson/databind/ser/impl/JsonSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/ObjectIdWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertyBasedObjectIdGenerator;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Double;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Empty;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Multi;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$SerializerAndMapResult;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$Single;",
"Lcom/fasterxml/jackson/databind/ser/impl/PropertySerializerMap$TypeAndSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;",
"Lcom/fasterxml/jackson/databind/ser/std/ArraySerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/StringCollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/TypeWrappedSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnknownSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanPropertyWriter;",
"Lcom/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/impl/WritableObjectId;",
"Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NonTypedScalarSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/BooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase;",
"Lcom/fasterxml/jackson/databind/ser/std/CalendarSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/CollectionSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/DateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumMapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/EnumSetSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/InetAddressSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/IterableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/JsonValueSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/MapSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NullSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$DoubleSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$FloatSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntLikeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$IntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$LongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers$NumberSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/NumberSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/ObjectArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/RawSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SerializableSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlDateSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/SqlTimeSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$BooleanArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ByteArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$CharArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$DoubleArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$TypedPrimitiveArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$FloatArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$IntArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$LongArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers$ShortArraySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdArraySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdContainerSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicBooleanSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicIntegerSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicLongSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$AtomicReferenceSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$ClassSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers$FileSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdJdkSerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$CalendarKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$DateKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers$StringKeySerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/StdKeySerializers;",
"Lcom/fasterxml/jackson/databind/ser/std/StringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TimeZoneSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/ToStringSerializer;",
"Lcom/fasterxml/jackson/databind/ser/std/TokenBufferSerializer;",
"Lcom/fasterxml/jackson/databind/type/TypeBase;",
"Lcom/fasterxml/jackson/databind/type/ArrayType;",
"Lcom/fasterxml/jackson/databind/type/ClassKey;",
"Lcom/fasterxml/jackson/databind/type/CollectionLikeType;",
"Lcom/fasterxml/jackson/databind/type/CollectionType;",
"Lcom/fasterxml/jackson/databind/type/HierarchicType;",
"Lcom/fasterxml/jackson/databind/type/MapLikeType;",
"Lcom/fasterxml/jackson/databind/type/MapType;",
"Lcom/fasterxml/jackson/databind/type/SimpleType;",
"Lcom/fasterxml/jackson/databind/type/TypeBindings;",
"Lcom/fasterxml/jackson/databind/type/TypeFactory;",
"Lcom/fasterxml/jackson/databind/type/TypeModifier;",
"Lcom/fasterxml/jackson/databind/type/TypeParser$MyTokenizer;",
"Lcom/fasterxml/jackson/databind/type/TypeParser;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ArrayIterator;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$BooleanBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ByteBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$DoubleBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$FloatBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$IntBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$LongBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders$ShortBuilder;",
"Lcom/fasterxml/jackson/databind/util/ArrayBuilders;",
"Lcom/fasterxml/jackson/databind/util/BeanUtil;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;",
"Lcom/fasterxml/jackson/databind/util/ClassUtil;",
"Lcom/fasterxml/jackson/databind/util/Comparators$1;",
"Lcom/fasterxml/jackson/databind/util/Comparators;",
"Lcom/fasterxml/jackson/databind/util/Converter;",
"Lcom/fasterxml/jackson/databind/util/EnumResolver;",
"Lcom/fasterxml/jackson/databind/util/EnumValues;",
"Lcom/fasterxml/jackson/databind/util/LRUMap;",
"Lcom/fasterxml/jackson/databind/util/LinkedNode;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$1;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$2;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$3;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$4;",
"Lcom/fasterxml/jackson/databind/util/NameTransformer$Chained;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer$Node;",
"Lcom/fasterxml/jackson/databind/util/ObjectBuffer;",
"Lcom/fasterxml/jackson/databind/util/PrimitiveArrayBuilder$Node;",
"Lcom/fasterxml/jackson/databind/util/RootNameLookup;",
"Lcom/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition;",
"Lcom/fasterxml/jackson/databind/util/StdDateFormat;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$1;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Parser;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer$Segment;",
"Lcom/fasterxml/jackson/databind/util/TokenBuffer;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Empty;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Multi;",
"Lcom/fasterxml/jackson/databind/util/ViewMatcher$Single;",
"Lcom/ford/syncV4/a/a;",
"Lcom/ford/syncV4/b/a;",
"Lcom/ford/syncV4/b/b;",
"Lcom/ford/syncV4/b/c;",
"Lcom/ford/syncV4/b/d;",
"Lcom/ford/syncV4/b/e$1;",
"Lcom/ford/syncV4/b/e;",
"Lcom/ford/syncV4/c/a;",
"Lcom/ford/syncV4/d/a;",
"Lcom/ford/syncV4/protocol/c;",
"Lcom/ford/syncV4/transport/f;",
"Lcom/ford/syncV4/d/b;",
"Lcom/ford/syncV4/d/c;",
"Lcom/ford/syncV4/protocol/a/c;",
"Lcom/ford/syncV4/d/d;",
"Lcom/ford/syncV4/exception/SyncException;",
"Lcom/ford/syncV4/exception/SyncExceptionCause;",
"Lcom/ford/syncV4/protocol/a/a$1;",
"Lcom/ford/syncV4/protocol/a/a$2;",
"Lcom/ford/syncV4/protocol/a/b;",
"Lcom/ford/syncV4/protocol/a/a;",
"Lcom/ford/syncV4/protocol/a;",
"Lcom/ford/syncV4/protocol/b;",
"Lcom/ford/syncV4/protocol/d;",
"Lcom/ford/syncV4/protocol/e;",
"Lcom/ford/syncV4/protocol/enums/FunctionID$1;",
"Lcom/ford/syncV4/protocol/enums/MessageType;",
"Lcom/ford/syncV4/util/b;",
"Lcom/ford/syncV4/protocol/enums/a;",
"Lcom/ford/syncV4/protocol/enums/b;",
"Lcom/ford/syncV4/protocol/enums/c;",
"Lcom/ford/syncV4/protocol/enums/d;",
"Lcom/ford/syncV4/protocol/f;",
"Lcom/ford/syncV4/protocol/g;",
"Lcom/ford/syncV4/protocol/h;",
"Lcom/ford/syncV4/proxy/a/a;",
"Lcom/ford/syncV4/proxy/a/b;",
"Lcom/ford/syncV4/proxy/a/c;",
"Lcom/ford/syncV4/proxy/b/b;",
"Lcom/ford/syncV4/proxy/a;",
"Lcom/ford/syncV4/proxy/b/a;",
"Lcom/ford/syncV4/proxy/b;",
"Lcom/ford/syncV4/proxy/h;",
"Lcom/ford/syncV4/proxy/c;",
"Lcom/ford/syncV4/proxy/d;",
"Lcom/ford/syncV4/proxy/e;",
"Lcom/ford/syncV4/proxy/f;",
"Lcom/ford/syncV4/proxy/g;",
"Lcom/ford/syncV4/proxy/j;",
"Lcom/ford/syncV4/proxy/i;",
"Lcom/ford/syncV4/proxy/j$10;",
"Lcom/ford/syncV4/proxy/j$11;",
"Lcom/ford/syncV4/proxy/j$12;",
"Lcom/ford/syncV4/proxy/j$13;",
"Lcom/ford/syncV4/proxy/j$14;",
"Lcom/ford/syncV4/proxy/j$15;",
"Lcom/ford/syncV4/proxy/j$16;",
"Lcom/ford/syncV4/proxy/j$17;",
"Lcom/ford/syncV4/proxy/j$18;",
"Lcom/ford/syncV4/proxy/j$19;",
"Lcom/ford/syncV4/proxy/j$1;",
"Lcom/ford/syncV4/proxy/j$20;",
"Lcom/ford/syncV4/proxy/j$21;",
"Lcom/ford/syncV4/proxy/j$22;",
"Lcom/ford/syncV4/proxy/j$23;",
"Lcom/ford/syncV4/proxy/j$24;",
"Lcom/ford/syncV4/proxy/j$25;",
"Lcom/ford/syncV4/proxy/j$26;",
"Lcom/ford/syncV4/proxy/j$27;",
"Lcom/ford/syncV4/proxy/j$28;",
"Lcom/ford/syncV4/proxy/j$29;",
"Lcom/ford/syncV4/proxy/j$2;",
"Lcom/ford/syncV4/proxy/j$30;",
"Lcom/ford/syncV4/proxy/j$31;",
"Lcom/ford/syncV4/proxy/j$32;",
"Lcom/ford/syncV4/proxy/j$33;",
"Lcom/ford/syncV4/proxy/j$34;",
"Lcom/ford/syncV4/proxy/j$35;",
"Lcom/ford/syncV4/proxy/j$36;",
"Lcom/ford/syncV4/proxy/j$37;",
"Lcom/ford/syncV4/proxy/j$38;",
"Lcom/ford/syncV4/proxy/j$39;",
"Lcom/ford/syncV4/proxy/j$3;",
"Lcom/ford/syncV4/proxy/j$40;",
"Lcom/ford/syncV4/proxy/j$41;",
"Lcom/ford/syncV4/proxy/j$42;",
"Lcom/ford/syncV4/proxy/j$43;",
"Lcom/ford/syncV4/proxy/j$44;",
"Lcom/ford/syncV4/proxy/j$45;",
"Lcom/ford/syncV4/proxy/j$46;",
"Lcom/ford/syncV4/proxy/j$47;",
"Lcom/ford/syncV4/proxy/j$48;",
"Lcom/ford/syncV4/proxy/j$49;",
"Lcom/ford/syncV4/proxy/j$4;",
"Lcom/ford/syncV4/proxy/j$50;",
"Lcom/ford/syncV4/proxy/j$51;",
"Lcom/ford/syncV4/proxy/j$52;",
"Lcom/ford/syncV4/proxy/j$53;",
"Lcom/ford/syncV4/proxy/j$54;",
"Lcom/ford/syncV4/proxy/j$55;",
"Lcom/ford/syncV4/proxy/j$56;",
"Lcom/ford/syncV4/proxy/j$57;",
"Lcom/ford/syncV4/proxy/j$58;",
"Lcom/ford/syncV4/proxy/j$59;",
"Lcom/ford/syncV4/proxy/j$5;",
"Lcom/ford/syncV4/proxy/j$60;",
"Lcom/ford/syncV4/proxy/j$61;",
"Lcom/ford/syncV4/proxy/j$62;",
"Lcom/ford/syncV4/proxy/j$63;",
"Lcom/ford/syncV4/proxy/j$64;",
"Lcom/ford/syncV4/proxy/j$6;",
"Lcom/ford/syncV4/proxy/j$7;",
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn DVM -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn DVM -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.ChainedScript import ChainedScript
from androlyze.model.script.impl.ClassDetails import ClassDetails
from androlyze.model.script.impl.ClassListing import ClassListing
from androlyze.model.script.impl.DecompileClassesText import DecompileClassesText
class DVM(ChainedScript):
''' List classes as well as their details (methods and fields) and create Disassembly '''
VERSION = "0.1"
############################################################
#---ChainedScript options
############################################################
def chain_scripts(self):
return [ClassListing(), ClassDetails(), DecompileClassesText()]
def continue_on_script_failure(self):
''' Specify if the analysis shall continue if a script encounters an error '''
return True
def log_script_failure_exception(self):
''' If true, write the exception into the result file'''
return True
def create_script_stats(self):
''' If true, create some script statistics and
write them into the `ResultObject` (at least if used)'''
return True
if __name__ == '__main__':
from androlyze.model.script.AndroScript import AndroScript
for res in AndroScript.test(DVM, ["../../../../testenv/apks/a2dp.Vol.apk"]):
# get result object
print res
print
# get json
print res.write_to_json()
DecompileClasses¶
This is an autogenerated documentation file for the script: DecompileClasses
Run it¶
$ ./androanalyze scripts_builtin/DecompileClasses.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn DecompileClasses -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn DecompileClasses -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn DecompileClasses -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androguard.decompiler.dad import decompile
from androlyze.log.Log import log
from androlyze.model.script.AndroScript import AndroScript
CAT_DECOMPILE = "decompiled_classes"
class DecompileClasses(AndroScript):
''' Get the source code from the apk for each class. '''
VERSION = "0.2"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
''' This sample code is taken from `androguard` and has been modified!
See Also
--------
http://code.google.com/p/androguard/wiki/RE#Source_Code
'''
res = self.res
# androguard.core.bytecodes.dvm.ClassDefItem
for clazz in dalvik_vm_format.get_classes():
try:
key = clazz.get_name()
# skip android classes due to mongo db document limit
if key.find("Landroid") != -1:
continue
# allows querying for package name
res.register_keys([key], CAT_DECOMPILE)
res.log(key, clazz.get_source().split("\n"), CAT_DECOMPILE)
except Exception as e:
log.exception(e)
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
DecompileClassesText¶
This is an autogenerated documentation file for the script: DecompileClassesText
Run it¶
$ ./androanalyze scripts_builtin/DecompileClassesText.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn DecompileClassesText -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn DecompileClassesText -pn com.spotify.music -nd
{
"chunkSize": 261120,
"filename": "com.spotify.music_2.2.0.636_DecompileClassesText.java",
"length": 12011520,
"uploadDate": "2015-06-26T17:31:14.699000",
"md5": "ecab0172ceaccb5a85f96f579af01573",
"metadata": {
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "DecompileClassesText",
"sha256": "fb5ecf5b3d21d304d12908035b9be2e5488f98a280831c518f1f7f505fa4f940",
"analysis date": "2015-06-26T17:13:38.530000",
"version": "0.1"
},
"decompiled_classes": null
}
}
View the raw data:
$ ./androquery result -sn DecompileClassesText -pn com.spotify.music -nd -r
package com.spotify.mobile.android.util.ui;
public class d implements android.view.Window$Callback {
private android.view.Window$Callback a;
public d(android.view.Window$Callback p1)
{
this.a = p1;
return;
}
public boolean dispatchGenericMotionEvent(android.view.MotionEvent p2)
{
return this.a.dispatchGenericMotionEvent(p2);
}
public boolean dispatchKeyEvent(android.view.KeyEvent p2)
{
return this.a.dispatchKeyEvent(p2);
}
public boolean dispatchKeyShortcutEvent(android.view.KeyEvent p2)
{
return this.a.dispatchKeyShortcutEvent(p2);
}
public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent p2)
{
return this.a.dispatchPopulateAccessibilityEvent(p2);
}
public boolean dispatchTouchEvent(android.view.MotionEvent p2)
{
return this.a.dispatchTouchEvent(p2);
}
public boolean dispatchTrackballEvent(android.view.MotionEvent p2)
{
return this.a.dispatchTrackballEvent(p2);
}
public void onActionModeFinished(android.view.ActionMode p2)
{
this.a.onActionModeFinished(p2);
return;
}
public void onActionModeStarted(android.view.ActionMode p2)
{
this.a.onActionModeStarted(p2);
return;
}
public void onAttachedToWindow()
{
this.a.onAttachedToWindow();
return;
}
public void onContentChanged()
{
this.a.onContentChanged();
return;
}
public boolean onCreatePanelMenu(int p2, android.view.Menu p3)
{
return this.a.onCreatePanelMenu(p2, p3);
}
public android.view.View onCreatePanelView(int p2)
{
return this.a.onCreatePanelView(p2);
}
public void onDetachedFromWindow()
{
this.a.onDetachedFromWindow();
return;
}
public boolean onMenuItemSelected(int p2, android.view.MenuItem p3)
{
return this.a.onMenuItemSelected(p2, p3);
}
public boolean onMenuOpened(int p2, android.view.Menu p3)
{
return this.a.onMenuOpened(p2, p3);
}
public void onPanelClosed(int p2, android.view.Menu p3)
{
this.a.onPanelClosed(p2, p3);
return;
}
public boolean onPreparePanel(int p2, android.view.View p3, android.view.Menu p4)
{
return this.a.onPreparePanel(p2, p3, p4);
}
public boolean onSearchRequested()
{
return this.a.onSearchRequested();
}
public void onWindowAttributesChanged(android.view.WindowManager$LayoutParams p2)
{
this.a.onWindowAttributesChanged(p2);
return;
}
public void onWindowFocusChanged(boolean p2)
{
this.a.onWindowFocusChanged(p2);
return;
}
public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback p2)
{
return this.a.onWindowStartingActionMode(p2);
}
}
package com.a.a.a;
public interface a implements android.os.IInterface {
public abstract int a();
public abstract android.os.Bundle a();
public abstract android.os.Bundle a();
public abstract android.os.Bundle a();
public abstract int b();
}
package com.a.a.a;
public abstract class b extends android.os.Binder implements com.a.a.a.a {
public static com.a.a.a.a a(android.os.IBinder p2)
{
com.a.a.a.a v0_3;
if (p2 != null) {
com.a.a.a.a v0_1 = p2.queryLocalInterface("com.android.vending.billing.IInAppBillingService");
if ((v0_1 == null) || (!(v0_1 instanceof com.a.a.a.a))) {
v0_3 = new com.a.a.a.c(p2);
} else {
v0_3 = ((com.a.a.a.a) v0_1);
}
} else {
v0_3 = 0;
}
return v0_3;
}
public boolean onTransact(int p9, android.os.Parcel p10, android.os.Parcel p11, int p12)
{
int v0_1;
switch (p9) {
case 1:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_19 = this.a(p10.readInt(), p10.readString(), p10.readString());
p11.writeNoException();
p11.writeInt(v0_19);
v0_1 = 1;
break;
case 2:
int v0_13;
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
String v1_3 = p10.readInt();
String v2_3 = p10.readString();
String v3_2 = p10.readString();
if (p10.readInt() == 0) {
v0_13 = 0;
} else {
v0_13 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(p10));
}
int v0_16 = this.a(v1_3, v2_3, v3_2, v0_13);
p11.writeNoException();
if (v0_16 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_16.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 3:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_10 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString(), p10.readString());
p11.writeNoException();
if (v0_10 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_10.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 4:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_7 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString());
p11.writeNoException();
if (v0_7 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_7.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 5:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_4 = this.b(p10.readInt(), p10.readString(), p10.readString());
p11.writeNoException();
p11.writeInt(v0_4);
v0_1 = 1;
break;
case 1598968902:
p11.writeString("com.android.vending.billing.IInAppBillingService");
v0_1 = 1;
break;
default:
v0_1 = super.onTransact(p9, p10, p11, p12);
}
return v0_1;
}
}
package com.a.a.a;
final class c implements com.a.a.a.a {
private android.os.IBinder a;
c(android.os.IBinder p1)
{
this.a = p1;
return;
}
public final int a(int p6, String p7, String p8)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
this.a.transact(1, v1, v2, 0);
v2.readException();
Throwable v0_2 = v2.readInt();
v2.recycle();
v1.recycle();
return v0_2;
} catch (Throwable v0_3) {
v2.recycle();
v1.recycle();
throw v0_3;
}
}
public final android.os.Bundle a(int p6, String p7, String p8, android.os.Bundle p9)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
} catch (int v0_9) {
v2.recycle();
v1.recycle();
throw v0_9;
}
if (p9 == null) {
v1.writeInt(0);
} else {
v1.writeInt(1);
p9.writeToParcel(v1, 0);
}
int v0_6;
this.a.transact(2, v1, v2, 0);
v2.readException();
if (v2.readInt() == 0) {
v0_6 = 0;
} else {
v0_6 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_6;
}
public final android.os.Bundle a(int p6, String p7, String p8, String p9)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
int v0_3;
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
v1.writeString(p9);
this.a.transact(4, v1, v2, 0);
v2.readException();
} catch (int v0_6) {
v2.recycle();
v1.recycle();
throw v0_6;
}
if (v2.readInt() == 0) {
v0_3 = 0;
} else {
v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_3;
}
public final android.os.Bundle a(int p6, String p7, String p8, String p9, String p10)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
int v0_3;
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
v1.writeString(p9);
v1.writeString(p10);
this.a.transact(3, v1, v2, 0);
v2.readException();
} catch (int v0_6) {
v2.recycle();
v1.recycle();
throw v0_6;
}
if (v2.readInt() == 0) {
v0_3 = 0;
} else {
v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_3;
}
public final android.os.IBinder asBinder()
{
return this.a;
}
public final int b(int p6, String p7, String p8)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
this.a.transact(5, v1, v2, 0);
v2.readException();
Throwable v0_2 = v2.readInt();
v2.recycle();
v1.recycle();
return v0_2;
} catch (Throwable v0_3) {
v2.recycle();
v1.recycle();
throw v0_3;
}
}
}
package com.b.a;
final class a$1 implements java.util.concurrent.Callable {
final synthetic com.b.a.a a;
a$1(com.b.a.a p1)
{
this.a = p1;
return;
}
private Void a()
{
try {
if (com.b.a.a.a(this.a) != null) {
com.b.a.a.b(this.a);
if (com.b.a.a.c(this.a)) {
com.b.a.a.d(this.a);
com.b.a.a.e(this.a);
}
} else {
}
} catch (com.b.a.a v0_7) {
throw v0_7;
}
return 0;
}
public final synthetic Object call()
{
return this.a();
}
}
package com.b.a;
final class a$2 extends java.io.OutputStream {
a$2()
{
return;
}
public final void write(int p1)
{
return;
}
}
package com.b.a;
public final class a implements java.io.Closeable {
static final java.util.regex.Pattern a;
private static final java.io.OutputStream p;
final java.util.concurrent.ThreadPoolExecutor b;
private final java.io.File c;
private final java.io.File d;
private final java.io.File e;
private final java.io.File f;
private final int g;
private long h;
private final int i;
private long j;
private java.io.Writer k;
private final java.util.LinkedHashMap l;
private int m;
private long n;
private final java.util.concurrent.Callable o;
static a()
{
com.b.a.a.a = java.util.regex.Pattern.compile("[a-z0-9_-]{1,64}");
com.b.a.a.p = new com.b.a.a$2();
return;
}
private a(java.io.File p9)
{
this.j = 0;
this.l = new java.util.LinkedHashMap(0, 1061158912, 1);
this.n = 0;
this.b = new java.util.concurrent.ThreadPoolExecutor(0, 1, 60, java.util.concurrent.TimeUnit.SECONDS, new java.util.concurrent.LinkedBlockingQueue());
this.o = new com.b.a.a$1(this);
this.c = p9;
this.g = 1;
this.d = new java.io.File(p9, "journal");
this.e = new java.io.File(p9, "journal.tmp");
this.f = new java.io.File(p9, "journal.bkp");
this.i = 1;
this.h = 10485760;
return;
}
public static com.b.a.a a(java.io.File p6)
{
if (10485760 > 0) {
void v0_3 = new java.io.File(p6, "journal.bkp");
if (v0_3.exists()) {
String v1_3 = new java.io.File(p6, "journal");
if (!v1_3.exists()) {
com.b.a.a.a(v0_3, v1_3, 0);
} else {
v0_3.delete();
}
}
void v0_7;
void v0_5 = new com.b.a.a(p6);
if (!v0_5.d.exists()) {
p6.mkdirs();
v0_7 = new com.b.a.a(p6).e();
} else {
try {
v0_7 = v0_5.c().d();
v0_7.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(v0_7.d, 1), com.b.a.g.a));
} catch (String v1_8) {
System.out.println(new StringBuilder("DiskLruCache ").append(p6).append(" is corrupt: ").append(v1_8.getMessage()).append(", removing").toString());
v0_7.i();
}
}
return v0_7;
} else {
throw new IllegalArgumentException("maxSize <= 0");
}
}
static synthetic java.io.Writer a(com.b.a.a p1)
{
return p1.k;
}
static synthetic void a(com.b.a.a p0, com.b.a.b p1, boolean p2)
{
p0.a(p1, p2);
return;
}
private declared_synchronized void a(com.b.a.b p11, boolean p12)
{
java.util.concurrent.ThreadPoolExecutor v0_0 = 0;
try {
StringBuilder v2_0 = p11.a;
} catch (java.util.concurrent.ThreadPoolExecutor v0_20) {
throw v0_20;
}
if (v2_0.d == p11) {
if ((!p12) || (v2_0.c)) {
while (v0_0 < this.i) {
int v1_17 = v2_0.b(v0_0);
if (!p12) {
com.b.a.a.b(v1_17);
} else {
if (v1_17.exists()) {
boolean v3_7 = v2_0.a(v0_0);
v1_17.renameTo(v3_7);
long v4_2 = v2_0.b[v0_0];
long v6 = v3_7.length();
v2_0.b[v0_0] = v6;
this.j = ((this.j - v4_2) + v6);
}
}
v0_0++;
}
this.m = (this.m + 1);
v2_0.d = 0;
if ((v2_0.c | p12) == 0) {
this.l.remove(v2_0.a);
this.k.write(new StringBuilder("REMOVE ").append(v2_0.a).append(10).toString());
} else {
v2_0.c = 1;
this.k.write(new StringBuilder("CLEAN ").append(v2_0.a).append(v2_0.a()).append(10).toString());
if (p12) {
java.util.concurrent.ThreadPoolExecutor v0_10 = this.n;
this.n = (1 + v0_10);
v2_0.e = v0_10;
}
}
this.k.flush();
if ((this.j > this.h) || (this.f())) {
this.b.submit(this.o);
}
} else {
int v1_2 = 0;
while (v1_2 < this.i) {
if (p11.b[v1_2]) {
if (v2_0.b(v1_2).exists()) {
v1_2++;
} else {
p11.c();
}
} else {
p11.c();
throw new IllegalStateException(new StringBuilder("Newly created entry didn\'t create value for index ").append(v1_2).toString());
}
}
}
return;
} else {
throw new IllegalStateException();
}
}
private static void a(java.io.File p1, java.io.File p2, boolean p3)
{
if (p3) {
com.b.a.a.b(p2);
}
if (p1.renameTo(p2)) {
return;
} else {
throw new java.io.IOException();
}
}
static synthetic java.io.OutputStream b()
{
return com.b.a.a.p;
}
static synthetic void b(com.b.a.a p0)
{
p0.h();
return;
}
private static void b(java.io.File p1)
{
if ((!p1.exists()) || (p1.delete())) {
return;
} else {
throw new java.io.IOException();
}
}
private void c()
{
com.b.a.f v1_1 = new com.b.a.f(new java.io.FileInputStream(this.d), com.b.a.g.a);
try {
int v0_2 = v1_1.a();
int v2_2 = v1_1.a();
boolean v3_0 = v1_1.a();
String v4 = v1_1.a();
String v5 = v1_1.a();
} catch (int v0_14) {
com.b.a.g.a(v1_1);
throw v0_14;
}
if (("libcore.io.DiskLruCache".equals(v0_2)) && (("1".equals(v2_2)) && ((Integer.toString(this.g).equals(v3_0)) && ((Integer.toString(this.i).equals(v4)) && ("".equals(v5)))))) {
int v0_3 = 0;
try {
while(true) {
this.d(v1_1.a());
v0_3++;
}
} catch (int v2) {
this.m = (v0_3 - this.l.size());
com.b.a.g.a(v1_1);
return;
}
} else {
throw new java.io.IOException(new StringBuilder("unexpected journal header: [").append(v0_2).append(", ").append(v2_2).append(", ").append(v4).append(", ").append(v5).append("]").toString());
}
}
static synthetic boolean c(com.b.a.a p1)
{
return p1.f();
}
private void d()
{
com.b.a.a.b(this.e);
java.util.Iterator v3 = this.l.values().iterator();
while (v3.hasNext()) {
com.b.a.d v0_5 = ((com.b.a.d) v3.next());
if (v0_5.d != null) {
v0_5.d = 0;
int v1_2 = 0;
while (v1_2 < this.i) {
com.b.a.a.b(v0_5.a(v1_2));
com.b.a.a.b(v0_5.b(v1_2));
v1_2++;
}
v3.remove();
} else {
int v1_3 = 0;
while (v1_3 < this.i) {
this.j = (this.j + v0_5.b[v1_3]);
v1_3++;
}
}
}
return;
}
static synthetic void d(com.b.a.a p0)
{
p0.e();
return;
}
private void d(String p9)
{
String v2_0 = p9.indexOf(32);
if (v2_0 != -1) {
com.b.a.b v1_1;
boolean v0_0 = (v2_0 + 1);
int v3 = p9.indexOf(32, v0_0);
if (v3 != -1) {
v1_1 = p9.substring(v0_0, v3);
boolean v0_5 = ((com.b.a.d) this.l.get(v1_1));
if (!v0_5) {
v0_5 = new com.b.a.d(this, v1_1, 0);
this.l.put(v1_1, v0_5);
}
if ((v3 == -1) || ((v2_0 != 5) || (!p9.startsWith("CLEAN")))) {
if ((v3 != -1) || ((v2_0 != 5) || (!p9.startsWith("DIRTY")))) {
if ((v3 != -1) || ((v2_0 != 4) || (!p9.startsWith("READ")))) {
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
}
} else {
v0_5.d = new com.b.a.b(this, v0_5, 0);
}
} else {
com.b.a.b v1_17 = p9.substring((v3 + 1)).split(" ");
v0_5.c = 1;
v0_5.d = 0;
v0_5.a(v1_17);
}
} else {
boolean v0_2 = p9.substring(v0_0);
if ((v2_0 != 6) || (!p9.startsWith("REMOVE"))) {
v1_1 = v0_2;
} else {
this.l.remove(v0_2);
}
}
return;
} else {
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
}
}
static synthetic int e(com.b.a.a p1)
{
p1.m = 0;
return 0;
}
private declared_synchronized void e()
{
try {
if (this.k != null) {
this.k.close();
}
} catch (java.io.BufferedWriter v0_32) {
throw v0_32;
}
java.io.OutputStreamWriter v1_1 = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.e), com.b.a.g.a));
try {
v1_1.write("libcore.io.DiskLruCache");
v1_1.write("\n");
v1_1.write("1");
v1_1.write("\n");
v1_1.write(Integer.toString(this.g));
v1_1.write("\n");
v1_1.write(Integer.toString(this.i));
v1_1.write("\n");
v1_1.write("\n");
java.io.FileOutputStream v2_2 = this.l.values().iterator();
} catch (java.io.BufferedWriter v0_31) {
v1_1.close();
throw v0_31;
}
while (v2_2.hasNext()) {
java.io.BufferedWriter v0_26 = ((com.b.a.d) v2_2.next());
if (v0_26.d == null) {
v1_1.write(new StringBuilder("CLEAN ").append(v0_26.a).append(v0_26.a()).append(10).toString());
} else {
v1_1.write(new StringBuilder("DIRTY ").append(v0_26.a).append(10).toString());
}
}
v1_1.close();
if (this.d.exists()) {
com.b.a.a.a(this.d, this.f, 1);
}
com.b.a.a.a(this.e, this.d, 0);
this.f.delete();
this.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.d, 1), com.b.a.g.a));
return;
}
private static void e(String p3)
{
if (com.b.a.a.a.matcher(p3).matches()) {
return;
} else {
throw new IllegalArgumentException(new StringBuilder("keys must match regex [a-z0-9_-]{1,64}: \"").append(p3).append("\"").toString());
}
}
static synthetic int f(com.b.a.a p1)
{
return p1.i;
}
private boolean f()
{
if ((this.m < 2000) || (this.m < this.l.size())) {
int v0_2 = 0;
} else {
v0_2 = 1;
}
return v0_2;
}
static synthetic java.io.File g(com.b.a.a p1)
{
return p1.c;
}
private void g()
{
if (this.k != null) {
return;
} else {
throw new IllegalStateException("cache is closed");
}
}
private void h()
{
while (this.j > this.h) {
this.c(((String) ((java.util.Map$Entry) this.l.entrySet().iterator().next()).getKey()));
}
return;
}
private void i()
{
this.close();
com.b.a.g.a(this.c);
return;
}
public final declared_synchronized com.b.a.e a(String p10)
{
com.b.a.e v1_0 = 0;
try {
this.g();
com.b.a.a.e(p10);
int v0_2 = ((com.b.a.d) this.l.get(p10));
} catch (int v0_4) {
throw v0_4;
}
if ((v0_2 != 0) && (v0_2.c)) {
java.io.InputStream[] v6 = new java.io.InputStream[this.i];
String v3_2 = 0;
try {
while (v3_2 < this.i) {
v6[v3_2] = new java.io.FileInputStream(v0_2.a(v3_2));
v3_2++;
}
} catch (int v0) {
int v0_3 = 0;
}
this.m = (this.m + 1);
this.k.append(new StringBuilder("READ ").append(p10).append(10).toString());
if (this.f()) {
this.b.submit(this.o);
}
v1_0 = new com.b.a.e(this, p10, v0_2.e, v6, v0_2.b, 0);
}
return v1_0;
}
public final declared_synchronized void a()
{
try {
this.g();
this.h();
this.k.flush();
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized com.b.a.b b(String p7)
{
try {
java.io.Writer v0_3;
this.g();
com.b.a.a.e(p7);
java.io.Writer v0_2 = ((com.b.a.d) this.l.get(p7));
} catch (java.io.Writer v0_6) {
throw v0_6;
}
if ((-1 == -1) || ((v0_2 != null) && (v0_2.e == -1))) {
java.io.Writer v1_1;
if (v0_2 != null) {
if (v0_2.d == null) {
v1_1 = v0_2;
} else {
v0_3 = 0;
return v0_3;
}
} else {
java.io.Writer v0_5 = new com.b.a.d(this, p7, 0);
this.l.put(p7, v0_5);
v1_1 = v0_5;
}
v0_3 = new com.b.a.b(this, v1_1, 0);
v1_1.d = v0_3;
this.k.write(new StringBuilder("DIRTY ").append(p7).append(10).toString());
this.k.flush();
} else {
v0_3 = 0;
}
return v0_3;
}
public final declared_synchronized boolean c(String p7)
{
String v1_0 = 0;
try {
java.io.IOException v0_9;
this.g();
com.b.a.a.e(p7);
java.io.IOException v0_2 = ((com.b.a.d) this.l.get(p7));
} catch (java.io.IOException v0_12) {
throw v0_12;
}
if ((v0_2 != null) && (v0_2.d == null)) {
while (v1_0 < this.i) {
long[] v2_4 = v0_2.a(v1_0);
if ((!v2_4.exists()) || (v2_4.delete())) {
this.j = (this.j - v0_2.b[v1_0]);
v0_2.b[v1_0] = 0;
v1_0++;
} else {
throw new java.io.IOException(new StringBuilder("failed to delete ").append(v2_4).toString());
}
}
this.m = (this.m + 1);
this.k.append(new StringBuilder("REMOVE ").append(p7).append(10).toString());
this.l.remove(p7);
if (this.f()) {
this.b.submit(this.o);
}
v0_9 = 1;
} else {
v0_9 = 0;
}
return v0_9;
}
public final declared_synchronized void close()
{
try {
if (this.k != null) {
java.util.Iterator v1_2 = new java.util.ArrayList(this.l.values()).iterator();
while (v1_2.hasNext()) {
com.b.a.b v0_7 = ((com.b.a.d) v1_2.next());
if (v0_7.d != null) {
v0_7.d.c();
}
}
this.h();
this.k.close();
this.k = 0;
}
} catch (com.b.a.b v0_8) {
throw v0_8;
}
return;
}
}
package com.b.a;
public final class b {
final com.b.a.d a;
final boolean[] b;
boolean c;
final synthetic com.b.a.a d;
private boolean e;
private b(com.b.a.a p2, com.b.a.d p3)
{
boolean[] v0_2;
this.d = p2;
this.a = p3;
if (!p3.c) {
v0_2 = new boolean[com.b.a.a.f(p2)];
} else {
v0_2 = 0;
}
this.b = v0_2;
return;
}
synthetic b(com.b.a.a p1, com.b.a.d p2, byte p3)
{
this(p1, p2);
return;
}
public final java.io.OutputStream a()
{
try {
if (this.a.d == this) {
if (!this.a.c) {
this.b[0] = 1;
}
java.io.FileOutputStream v1_3 = new java.io.FileOutputStream(this.a.b(0));
java.io.OutputStream v0_12 = new com.b.a.c(this, v1_3, 0);
return v0_12;
} else {
throw new IllegalStateException();
}
} catch (java.io.OutputStream v0_16) {
throw v0_16;
}
}
public final void b()
{
if (!this.c) {
com.b.a.a.a(this.d, this, 1);
} else {
com.b.a.a.a(this.d, this, 0);
this.d.c(this.a.a);
}
this.e = 1;
return;
}
public final void c()
{
com.b.a.a.a(this.d, this, 0);
return;
}
}
package com.b.a;
final class c extends java.io.FilterOutputStream {
final synthetic com.b.a.b a;
private c(com.b.a.b p1, java.io.OutputStream p2)
{
this.a = p1;
this(p2);
return;
}
synthetic c(com.b.a.b p1, java.io.OutputStream p2, byte p3)
{
this(p1, p2);
return;
}
public final void close()
{
try {
this.out.close();
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
public final void flush()
{
try {
this.out.flush();
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
public final void write(int p3)
{
try {
this.out.write(p3);
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
public final void write(byte[] p3, int p4, int p5)
{
try {
this.out.write(p3, p4, p5);
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
}
package com.b.a;
final class d {
final String a;
final long[] b;
boolean c;
com.b.a.b d;
long e;
final synthetic com.b.a.a f;
private d(com.b.a.a p2, String p3)
{
this.f = p2;
this.a = p3;
long[] v0_1 = new long[com.b.a.a.f(p2)];
this.b = v0_1;
return;
}
synthetic d(com.b.a.a p1, String p2, byte p3)
{
this(p1, p2);
return;
}
private static java.io.IOException b(String[] p3)
{
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(java.util.Arrays.toString(p3)).toString());
}
public final java.io.File a(int p5)
{
return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).toString());
}
public final String a()
{
StringBuilder v1_1 = new StringBuilder();
long[] v2 = this.b;
int v3 = v2.length;
String v0_0 = 0;
while (v0_0 < v3) {
v1_1.append(32).append(v2[v0_0]);
v0_0++;
}
return v1_1.toString();
}
final void a(String[] p5)
{
if (p5.length == com.b.a.a.f(this.f)) {
int v0_1 = 0;
try {
while (v0_1 < p5.length) {
this.b[v0_1] = Long.parseLong(p5[v0_1]);
v0_1++;
}
} catch (int v0) {
throw com.b.a.d.b(p5);
}
return;
} else {
throw com.b.a.d.b(p5);
}
}
public final java.io.File b(int p5)
{
return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).append(".tmp").toString());
}
}
package com.b.a;
public final class e implements java.io.Closeable {
public final java.io.InputStream[] a;
final synthetic com.b.a.a b;
private final String c;
private final long d;
private final long[] e;
private e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7)
{
this.b = p2;
this.c = p3;
this.d = p4;
this.a = p6;
this.e = p7;
return;
}
synthetic e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7, byte p8)
{
this(p2, p3, p4, p6, p7);
return;
}
public final void close()
{
java.io.InputStream[] v1 = this.a;
int v2 = v1.length;
int v0 = 0;
while (v0 < v2) {
com.b.a.g.a(v1[v0]);
v0++;
}
return;
}
}
package com.b.a;
final class f$1 extends java.io.ByteArrayOutputStream {
final synthetic com.b.a.f a;
f$1(com.b.a.f p1, int p2)
{
this.a = p1;
this(p2);
return;
}
public final String toString()
{
if ((this.count <= 0) || (this.buf[(this.count - 1)] != 13)) {
java.io.UnsupportedEncodingException v0_3 = this.count;
} else {
v0_3 = (this.count - 1);
}
try {
return new String(this.buf, 0, v0_3, this.a.a.name());
} catch (java.io.UnsupportedEncodingException v0_5) {
throw new AssertionError(v0_5);
}
}
}
package com.b.a;
final class f implements java.io.Closeable {
final java.nio.charset.Charset a;
private final java.io.InputStream b;
private byte[] c;
private int d;
private int e;
public f(java.io.InputStream p2, java.nio.charset.Charset p3)
{
this(p2, p3, 0);
return;
}
private f(java.io.InputStream p3, java.nio.charset.Charset p4, byte p5)
{
if ((p3 != null) && (p4 != null)) {
if (p4.equals(com.b.a.g.a)) {
this.b = p3;
this.a = p4;
byte[] v0_3 = new byte[8192];
this.c = v0_3;
return;
} else {
throw new IllegalArgumentException("Unsupported encoding");
}
} else {
throw new NullPointerException();
}
}
private void b()
{
java.io.EOFException v0_1 = this.b.read(this.c, 0, this.c.length);
if (v0_1 != -1) {
this.d = 0;
this.e = v0_1;
return;
} else {
throw new java.io.EOFException();
}
}
public final String a()
{
try {
if (this.c != null) {
if (this.d >= this.e) {
this.b();
}
byte[] v2_0 = this.d;
while (v2_0 != this.e) {
if (this.c[v2_0] != 10) {
v2_0++;
} else {
if ((v2_0 == this.d) || (this.c[(v2_0 - 1)] != 13)) {
int v1_5 = v2_0;
} else {
v1_5 = (v2_0 - 1);
}
String v0_10 = new String(this.c, this.d, (v1_5 - this.d), this.a.name());
this.d = (v2_0 + 1);
}
return v0_10;
}
int v1_2 = new com.b.a.f$1(this, ((this.e - this.d) + 80));
while(true) {
v1_2.write(this.c, this.d, (this.e - this.d));
this.e = -1;
this.b();
String v0_8 = this.d;
if (v0_8 != this.e) {
if (this.c[v0_8] != 10) {
v0_8++;
while (v0_8 == this.e) {
}
} else {
if (v0_8 != this.d) {
v1_2.write(this.c, this.d, (v0_8 - this.d));
}
this.d = (v0_8 + 1);
v0_10 = v1_2.toString();
}
}
return v0_10;
}
} else {
throw new java.io.IOException("LineReader is closed");
}
} catch (String v0_20) {
throw v0_20;
}
}
public final void close()
{
try {
if (this.c != null) {
this.c = 0;
this.b.close();
}
} catch (java.io.InputStream v0_3) {
throw v0_3;
}
return;
}
}
package com.b.a;
public final class g {
static final java.nio.charset.Charset a;
static final java.nio.charset.Charset b;
static g()
{
com.b.a.g.a = java.nio.charset.Charset.forName("US-ASCII");
com.b.a.g.b = java.nio.charset.Charset.forName("UTF-8");
return;
}
static void a(java.io.Closeable p1)
{
if (p1 != null) {
try {
p1.close();
} catch (Exception v0) {
throw v0;
} catch (Exception v0) {
}
}
return;
}
static void a(java.io.File p5)
{
String v1_0 = p5.listFiles();
if (v1_0 != null) {
String v2_0 = v1_0.length;
int v0_0 = 0;
while (v0_0 < v2_0) {
String v3 = v1_0[v0_0];
if (v3.isDirectory()) {
com.b.a.g.a(v3);
}
if (v3.delete()) {
v0_0++;
} else {
throw new java.io.IOException(new StringBuilder("failed to delete file: ").append(v3).toString());
}
}
return;
} else {
throw new java.io.IOException(new StringBuilder("not a readable directory: ").append(p5).toString());
}
}
}
package com.c;
public final class a {
private javax.crypto.spec.IvParameterSpec a;
private javax.crypto.spec.SecretKeySpec b;
private javax.crypto.Cipher c;
public a(String p4, String p5)
{
this.a = new javax.crypto.spec.IvParameterSpec(p5.getBytes());
this.b = new javax.crypto.spec.SecretKeySpec(p4.getBytes(), "AES");
try {
this.c = javax.crypto.Cipher.getInstance("AES/CBC/NoPadding");
} catch (javax.crypto.NoSuchPaddingException v0_7) {
v0_7.printStackTrace();
} catch (javax.crypto.NoSuchPaddingException v0_6) {
v0_6.printStackTrace();
}
return;
}
public static String a(byte[] p6)
{
String v0_1;
if (p6 != null) {
int v2 = p6.length;
v0_1 = "";
int v1_1 = 0;
while (v1_1 < v2) {
if ((p6[v1_1] & 255) >= 16) {
v0_1 = new StringBuilder().append(v0_1).append(Integer.toHexString((p6[v1_1] & 255))).toString();
} else {
v0_1 = new StringBuilder().append(v0_1).append("0").append(Integer.toHexString((p6[v1_1] & 255))).toString();
}
v1_1++;
}
} else {
v0_1 = 0;
}
return v0_1;
}
private static String b(String p4)
{
int v1 = (16 - (p4.length() % 16));
int v0_2 = 0;
while (v0_2 < v1) {
p4 = new StringBuilder().append(p4).append(32).toString();
v0_2++;
}
return p4;
}
public final byte[] a(String p5)
{
if ((p5 != null) && (p5.length() != 0)) {
try {
this.c.init(1, this.b, this.a);
return this.c.doFinal(com.c.a.b(p5).getBytes());
} catch (String v0_4) {
throw new Exception(new StringBuilder("[encrypt] ").append(v0_4.getMessage()).toString());
}
} else {
throw new Exception("Empty string");
}
}
}
package com.c;
public final class b {
private static long d;
private android.content.SharedPreferences a;
private java.util.concurrent.Semaphore b;
private com.c.g c;
static b()
{
com.c.b.d = 0;
return;
}
public b(android.content.Context p4, com.c.g p5)
{
this.a = p4.getSharedPreferences("mat_queue", 0);
this.b = new java.util.concurrent.Semaphore(1, 1);
this.c = p5;
return;
}
static synthetic long a(long p0)
{
com.c.b.d = p0;
return p0;
}
static synthetic java.util.concurrent.Semaphore a(com.c.b p1)
{
return p1.b;
}
static synthetic long b()
{
return com.c.b.d;
}
static synthetic com.c.g b(com.c.b p1)
{
return p1.c;
}
protected final declared_synchronized int a()
{
try {
return this.a.getInt("queuesize", 0);
} catch (Throwable v0_2) {
throw v0_2;
}
}
protected final declared_synchronized void a(int p3)
{
try {
Throwable v0_1 = this.a.edit();
} catch (Throwable v0_2) {
throw v0_2;
}
if (p3 < 0) {
p3 = 0;
}
v0_1.putInt("queuesize", p3);
v0_1.commit();
return;
}
protected final declared_synchronized void a(String p2)
{
try {
this.a((this.a() - 1));
Throwable v0_3 = this.a.edit();
v0_3.remove(p2);
v0_3.commit();
return;
} catch (Throwable v0_4) {
throw v0_4;
}
}
protected final declared_synchronized void a(org.json.JSONObject p3, String p4)
{
try {
Throwable v0_1 = this.a.edit();
v0_1.putString(p4, p3.toString());
v0_1.commit();
return;
} catch (Throwable v0_2) {
throw v0_2;
}
}
protected final declared_synchronized String b(String p3)
{
try {
return this.a.getString(p3, 0);
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
package com.c;
public final class c implements java.lang.Runnable {
final synthetic com.c.b a;
private String b;
private String c;
private org.json.JSONObject d;
private boolean e;
protected c(com.c.b p2, String p3, String p4, org.json.JSONObject p5, boolean p6)
{
this.a = p2;
this.b = 0;
this.c = 0;
this.d = 0;
this.e = 0;
this.b = p3;
this.c = p4;
this.d = p5;
this.e = p6;
return;
}
public final void run()
{
try {
com.c.b.a(this.a).acquire();
java.util.concurrent.Semaphore v0_3 = new org.json.JSONObject();
try {
v0_3.put("link", this.b);
v0_3.put("data", this.c);
v0_3.put("post_body", this.d);
v0_3.put("first_session", this.e);
} catch (java.util.concurrent.Semaphore v0_4) {
android.util.Log.w("MobileAppTracker", "Failed creating event for queueing");
v0_4.printStackTrace();
com.c.b.a(this.a).release();
return;
}
String v1_7 = (this.a.a() + 1);
this.a.a(v1_7);
this.a.a(v0_3, Integer.toString(v1_7));
com.c.b.a(this.a).release();
return;
} catch (java.util.concurrent.Semaphore v0_9) {
android.util.Log.w("MobileAppTracker", "Interrupted adding event to queue");
v0_9.printStackTrace();
com.c.b.a(this.a).release();
return;
} catch (java.util.concurrent.Semaphore v0_12) {
com.c.b.a(this.a).release();
throw v0_12;
}
}
}
package com.c;
public final class d implements java.lang.Runnable {
final synthetic com.c.b a;
protected d(com.c.b p1)
{
this.a = p1;
return;
}
public final void run()
{
int v3 = this.a.a();
if (v3 != 0) {
try {
com.c.b.a(this.a).acquire();
int v0_3 = 1;
} catch (int v0_15) {
com.c.b.a(this.a).release();
throw v0_15;
} catch (int v0_12) {
v0_12.printStackTrace();
com.c.b.a(this.a).release();
}
if (v3 > 50) {
v0_3 = ((v3 - 50) + 1);
}
while (v0_3 <= v3) {
long v4_0 = Integer.toString(v0_3);
String v5_0 = this.a.b(v4_0);
if (v5_0 == null) {
android.util.Log.d("MobileAppTracker", "Null request skipped from queue");
this.a.a(v4_0);
} else {
try {
org.json.JSONException v1_5 = new org.json.JSONObject(v5_0);
long v6_0 = v1_5.getString("link");
org.json.JSONObject v2_3 = v1_5.getString("data");
StringBuilder v7_1 = v1_5.getJSONObject("post_body");
} catch (int v0_7) {
v0_7.printStackTrace();
this.a.a(v4_0);
com.c.b.a(this.a).release();
return;
}
if (v1_5.getBoolean("first_session")) {
com.c.b.b(this.a);
try {
com.c.b.b(this.a).l.wait(60000);
} catch (int v0_11) {
throw v0_11;
}
}
if (com.c.b.b(this.a) == null) {
android.util.Log.d("MobileAppTracker", "Dropping queued request because no MAT object was found");
this.a.a(v4_0);
} else {
if (!com.c.b.b(this.a).a(v6_0, v2_3, v7_1)) {
v0_3--;
org.json.JSONObject v2_5 = v6_0.indexOf("&sdk_retry_attempt=");
if (v2_5 > null) {
org.json.JSONException v1_17 = -1;
StringBuilder v7_2 = (v2_5 + 19);
org.json.JSONObject v2_6 = (v7_2 + 1);
try {
while(true) {
try {
v1_17 = Integer.parseInt(v6_0.substring(v7_2, v2_6));
v2_6++;
} catch (org.json.JSONObject v2) {
org.json.JSONException v1_21 = v6_0.replaceFirst("&sdk_retry_attempt=\\d+", new StringBuilder("&sdk_retry_attempt=").append((v1_17 + 1)).toString());
try {
org.json.JSONObject v2_9 = new org.json.JSONObject(v5_0);
v2_9.put("link", v1_21);
this.a.a(v2_9, v4_0);
} catch (org.json.JSONException v1_23) {
v1_23.printStackTrace();
}
}
}
} catch (org.json.JSONObject v2) {
}
}
if (com.c.b.b() != 0) {
if (com.c.b.b() > 30) {
if (com.c.b.b() > 90) {
if (com.c.b.b() > 600) {
if (com.c.b.b() > 3600) {
com.c.b.a(86400);
} else {
com.c.b.a(21600);
}
} else {
com.c.b.a(3600);
}
} else {
com.c.b.a(600);
}
} else {
com.c.b.a(90);
}
} else {
com.c.b.a(30);
}
try {
Thread.sleep(((long) (((1.0 + (0.1 * Math.random())) * ((double) com.c.b.b())) * 1000.0)));
} catch (org.json.JSONException v1) {
}
} else {
this.a.a(v4_0);
com.c.b.a(0);
}
}
}
v0_3++;
}
com.c.b.a(this.a).release();
}
return;
}
}
package com.c;
public interface e {
}
package com.c;
public interface f {
}
package com.c;
public final class g {
private static volatile com.c.g t;
protected com.c.e a;
protected com.c.f b;
protected boolean c;
protected boolean d;
protected boolean e;
protected boolean f;
protected boolean g;
protected boolean h;
protected android.content.BroadcastReceiver i;
protected com.c.h j;
protected android.content.Context k;
protected java.util.concurrent.ExecutorService l;
protected java.util.concurrent.ExecutorService m;
protected com.c.b n;
private final String o;
private com.c.r p;
private com.c.a q;
private boolean r;
private boolean s;
static g()
{
com.c.g.t = 0;
return;
}
protected g()
{
this.o = "heF9BATUfWuISyO8";
return;
}
public static declared_synchronized com.c.g a()
{
try {
return com.c.g.t;
} catch (Throwable v1_1) {
throw v1_1;
}
}
public static void a(android.content.Context p2, String p3, String p4)
{
void v0_1 = new com.c.g();
com.c.g.t = v0_1;
v0_1.k = p2.getApplicationContext();
com.c.g.t.m = java.util.concurrent.Executors.newSingleThreadExecutor();
com.c.g.t.a(p3, p4);
return;
}
static synthetic void a(com.c.g p0, Object p1, String p2, String p3)
{
p0.a(p1, p2, p3);
return;
}
private declared_synchronized void a(Object p7, String p8, String p9)
{
try {
if (this.d) {
this.b();
this.j.a("conversion");
com.c.h v0_3 = new java.util.Date();
if (!(p7 instanceof String)) {
if (!(p7 instanceof Integer)) {
android.util.Log.d("MobileAppTracker", "Received invalid event name or id value, not measuring event");
} else {
this.j.c(Integer.toString(((Integer) p7).intValue()));
}
} else {
if (p7.equals("close")) {
} else {
if ((!p7.equals("open")) && ((!p7.equals("install")) && ((!p7.equals("update")) && (!p7.equals("session"))))) {
this.j.d(((String) p7));
} else {
this.j.a("session");
new java.util.Date((v0_3.getTime() + 60000));
}
}
}
this.j.m(Double.toString(0));
this.j.b(p8);
this.j.l(p9);
com.c.h v0_12 = com.c.m.a(this.r, this.s);
boolean v1_19 = com.c.m.a();
org.json.JSONObject v2_4 = com.c.m.b();
if (this.b != null) {
}
this.a(v0_12, v1_19, v2_4, this.g);
this.g = 0;
this.b();
if (this.a != null) {
}
this.j.b();
}
} catch (com.c.h v0_15) {
throw v0_15;
}
return;
}
private void a(String p6, String p7)
{
com.c.h.a(this.k, p6);
this.j = com.c.h.a();
this.l = java.util.concurrent.Executors.newSingleThreadExecutor();
this.p = new com.c.r();
this.q = new com.c.a(p7.trim(), "heF9BATUfWuISyO8");
this.g = 1;
this.d = 0;
this.c = 0;
this.r = 0;
this.s = 0;
this.n = new com.c.b(this.k, this);
this.b();
this.i = new com.c.s(this);
if (this.c) {
try {
this.k.unregisterReceiver(this.i);
} catch (IllegalArgumentException v0) {
}
this.c = 0;
}
this.k.registerReceiver(this.i, new android.content.IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
this.c = 1;
this.d = 1;
return;
}
private void a(String p8, String p9, org.json.JSONObject p10, boolean p11)
{
java.util.concurrent.ExecutorService v6 = this.l;
com.c.b v1 = this.n;
v1.getClass();
v6.execute(new com.c.c(v1, p8, p9, p10, p11));
return;
}
private static boolean a(android.content.Context p1)
{
int v0_5;
int v0_3 = ((android.net.ConnectivityManager) p1.getSystemService("connectivity")).getActiveNetworkInfo();
if ((v0_3 == 0) || (!v0_3.isConnected())) {
v0_5 = 0;
} else {
v0_5 = 1;
}
return v0_5;
}
static synthetic boolean a(com.c.g p0, boolean p1)
{
p0.r = p1;
return p1;
}
public final void a(String p3)
{
this.m.execute(new com.c.u(this, p3));
return;
}
public final void a(String p4, boolean p5)
{
int v0;
if (!p5) {
v0 = 0;
} else {
v0 = 1;
}
this.m.execute(new com.c.j(this, p4, v0));
return;
}
public final void a(boolean p3)
{
this.m.execute(new com.c.i(this, p3));
return;
}
protected final boolean a(String p6, String p7, org.json.JSONObject p8)
{
boolean v1_0 = 1;
com.c.e v0_0 = 0;
if (this.r) {
android.util.Log.d("MobileAppTracker", "Sending event to server...");
}
com.c.h v2_6 = this.p.a(new StringBuilder().append(p6).append("&data=").append(com.c.m.a(p7, this.q)).toString(), p8, this.r);
if (v2_6 != null) {
if (v2_6.has("success")) {
if (this.a != null) {
try {
if (v2_6.getString("success").equals("true")) {
v0_0 = 1;
}
} catch (boolean v1_1) {
v1_1.printStackTrace();
v1_0 = 0;
return v1_0;
}
// Both branches of the condition point to the same code.
// if (v0_0 == null) {
// }
}
try {
if (v2_6.getString("site_event_type").equals("open")) {
com.c.e v0_5 = v2_6.getString("log_id");
if (this.j.ac().equals("")) {
this.j.j(v0_5);
}
this.j.i(v0_5);
}
} catch (com.c.e v0) {
}
} else {
if (this.r) {
android.util.Log.d("MobileAppTracker", "Request failed, event will remain in queue");
}
v1_0 = 0;
}
} else {
// Both branches of the condition point to the same code.
// if (this.a == null) {
// }
}
return v1_0;
}
protected final void b()
{
if (com.c.g.a(this.k)) {
java.util.concurrent.ExecutorService v0_2 = this.l;
com.c.b v2 = this.n;
v2.getClass();
v0_2.execute(new com.c.d(v2));
}
return;
}
public final void b(String p3)
{
this.m.execute(new com.c.k(this, p3));
return;
}
public final void c()
{
this.m.execute(new com.c.t(this));
return;
}
public final void c(String p3)
{
this.m.execute(new com.c.l(this, p3));
return;
}
public final String d()
{
return this.j.n();
}
public final void d(String p3)
{
this.m.execute(new com.c.n(this, p3));
return;
}
public final String e()
{
return this.j.aj();
}
public final void e(String p3)
{
this.m.execute(new com.c.o(this, p3));
return;
}
public final void f()
{
this.m.execute(new com.c.p(this));
return;
}
}
package com.c;
public final class h {
private static com.c.h b;
private String A;
private String B;
private String C;
private String D;
private String E;
private String F;
private String G;
private String H;
private String I;
private String J;
private String K;
private String L;
private String M;
private String N;
private String O;
private String P;
private String Q;
private String R;
private String S;
private android.location.Location T;
private String U;
private String V;
private String W;
private String X;
private String Y;
private String Z;
private android.content.Context a;
private String aA;
private String aB;
private String aC;
private String aD;
private String aE;
private String aF;
private String aG;
private String aH;
private String aa;
private String ab;
private String ac;
private String ad;
private String ae;
private String af;
private String ag;
private String ah;
private String ai;
private String aj;
private String ak;
private String al;
private String am;
private String an;
private String ao;
private String ap;
private String aq;
private String ar;
private String as;
private String at;
private String au;
private String av;
private String aw;
private String ax;
private String ay;
private String az;
private String c;
private String d;
private String e;
private String f;
private String g;
private String h;
private String i;
private String j;
private String k;
private String l;
private String m;
private String n;
private String o;
private String p;
private String q;
private String r;
private String s;
private String t;
private String u;
private String v;
private String w;
private String x;
private String y;
private String z;
static h()
{
com.c.h.b = 0;
return;
}
public h()
{
this.c = 0;
this.d = 0;
this.e = 0;
this.f = 0;
this.g = 0;
this.h = 0;
this.i = 0;
this.j = 0;
this.k = 0;
this.l = 0;
this.m = 0;
this.n = 0;
this.o = 0;
this.p = 0;
this.q = 0;
this.r = 0;
this.s = 0;
this.t = 0;
this.u = 0;
this.v = 0;
this.w = 0;
this.x = 0;
this.y = 0;
this.z = 0;
this.A = 0;
this.B = 0;
this.C = 0;
this.D = 0;
this.E = 0;
this.F = 0;
this.G = 0;
this.H = 0;
this.I = 0;
this.J = 0;
this.K = 0;
this.L = 0;
this.M = 0;
this.N = 0;
this.O = 0;
this.P = 0;
this.Q = 0;
this.R = 0;
this.S = 0;
this.T = 0;
this.U = 0;
this.V = 0;
this.W = 0;
this.X = 0;
this.Y = 0;
this.Z = 0;
this.aa = 0;
this.ab = 0;
this.ac = 0;
this.ad = 0;
this.ae = 0;
this.af = 0;
this.ag = 0;
this.ah = 0;
this.ai = 0;
this.aj = 0;
this.ak = 0;
this.al = 0;
this.am = 0;
this.an = 0;
this.ao = 0;
this.ap = 0;
this.aq = 0;
this.ar = 0;
this.as = 0;
this.at = 0;
this.au = 0;
this.av = 0;
this.aw = 0;
this.ax = 0;
this.ay = 0;
this.az = 0;
this.aA = 0;
this.aB = 0;
this.aC = 0;
this.aD = 0;
this.aE = 0;
this.aF = 0;
this.aG = 0;
this.aH = 0;
return;
}
private declared_synchronized void A(String p2)
{
try {
this.R = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void B(String p3)
{
try {
this.a("mat_id", "mat_id", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void C(String p2)
{
try {
this.W = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void D(String p2)
{
try {
this.X = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void E(String p2)
{
try {
this.Y = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void F(String p2)
{
try {
this.ag = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void G(String p2)
{
try {
this.ah = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void H(String p2)
{
try {
this.ai = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public static com.c.h a()
{
return com.c.h.b;
}
private declared_synchronized String a(String p3, String p4)
{
try {
return this.a.getSharedPreferences(p3, 0).getString(p4, "");
} catch (Throwable v0_3) {
throw v0_3;
}
}
public static void a(android.content.Context p1, String p2)
{
if (com.c.h.b == null) {
com.c.h v0_2 = new com.c.h();
com.c.h.b = v0_2;
v0_2.a = p1;
com.c.h.b.b(p1, p2);
}
return;
}
static synthetic void a(com.c.h p0, String p1)
{
p0.an = p1;
return;
}
private declared_synchronized void a(String p3, String p4, String p5)
{
try {
this.a.getSharedPreferences(p3, 0).edit().putString(p4, p5).commit();
return;
} catch (Throwable v0_4) {
throw v0_4;
}
}
private declared_synchronized void aS()
{
try {
this.u = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aT()
{
try {
this.v = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aU()
{
try {
this.w = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aV()
{
try {
this.x = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aW()
{
try {
this.y = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aX()
{
try {
this.z = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aY()
{
try {
this.A = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void aZ()
{
try {
this.B = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized boolean b(android.content.Context p9, String p10)
{
try {
this.p(p10.trim());
this.b("USD");
new android.os.Handler(android.os.Looper.getMainLooper()).post(new com.c.q(this, this.a));
IndexOutOfBoundsException v0_5 = this.a.getPackageName();
this.k(v0_5);
String v3_4 = this.a.getPackageManager();
try {
this.q(v3_4.getApplicationLabel(v3_4.getApplicationInfo(v0_5, 0)).toString());
this.y(Long.toString((new java.util.Date(new java.io.File(v3_4.getApplicationInfo(v0_5, 0).sourceDir).lastModified()).getTime() / 1000)));
} catch (int v4) {
}
try {
this.r(Integer.toString(v3_4.getPackageInfo(v0_5, 0).versionCode));
} catch (int v4) {
this.r("0");
}
String v3_7;
IndexOutOfBoundsException v0_20;
this.z(v3_4.getInstallerPackageName(v0_5));
this.x(android.os.Build.MODEL);
this.u(android.os.Build.MANUFACTURER);
this.w(System.getProperty("os.arch"));
this.E(android.os.Build$VERSION.RELEASE);
this.F(Float.toString(p9.getResources().getDisplayMetrics().density));
IndexOutOfBoundsException v0_18 = ((android.view.WindowManager) p9.getSystemService("window"));
if (android.os.Build$VERSION.SDK_INT < 13) {
v3_7 = v0_18.getDefaultDisplay().getWidth();
v0_20 = v0_18.getDefaultDisplay().getHeight();
} else {
int v4_19 = new android.graphics.Point();
v0_18.getDefaultDisplay().getSize(v4_19);
v3_7 = v4_19.x;
v0_20 = v4_19.y;
}
this.H(Integer.toString(v3_7));
this.G(Integer.toString(v0_20));
if (!((android.net.ConnectivityManager) this.a.getSystemService("connectivity")).getNetworkInfo(1).isConnected()) {
this.s("mobile");
} else {
this.s("WIFI");
}
this.A(java.util.Locale.getDefault().getDisplayLanguage(java.util.Locale.US));
IndexOutOfBoundsException v0_34 = ((android.telephony.TelephonyManager) this.a.getSystemService("phone"));
if (v0_34 == null) {
this.t(java.util.Locale.getDefault().getCountry());
} else {
if (v0_34.getNetworkCountryIso() != null) {
this.t(v0_34.getNetworkCountryIso());
}
this.v(v0_34.getNetworkOperatorName());
IndexOutOfBoundsException v0_37 = v0_34.getNetworkOperator();
if (v0_37 != null) {
try {
String v3_17 = v0_37.substring(0, 3);
IndexOutOfBoundsException v0_38 = v0_37.substring(3);
this.C(v3_17);
this.D(v0_38);
} catch (IndexOutOfBoundsException v0) {
}
}
}
IndexOutOfBoundsException v0_39 = this.Z();
if ((v0_39 == null) || (v0_39.length() == 0)) {
this.B(java.util.UUID.randomUUID().toString());
}
IndexOutOfBoundsException v0_44 = 1;
return v0_44;
} catch (IndexOutOfBoundsException v0_43) {
android.util.Log.d("MobileAppTracker", "MobileAppTracker initialization failed");
v0_43.printStackTrace();
v0_44 = 0;
return v0_44;
} catch (IndexOutOfBoundsException v0_45) {
throw v0_45;
}
}
private declared_synchronized void ba()
{
try {
this.C = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bb()
{
try {
this.E = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bc()
{
try {
this.G = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bd()
{
try {
this.H = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void be()
{
try {
this.I = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bf()
{
try {
this.ao = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bg()
{
try {
this.ap = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bh()
{
try {
this.aq = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bi()
{
try {
this.ar = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bj()
{
try {
this.as = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bk()
{
try {
this.at = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bl()
{
try {
this.au = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bm()
{
try {
this.av = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bn()
{
try {
this.aw = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bo()
{
try {
this.ax = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bp()
{
try {
this.ay = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bq()
{
try {
this.az = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void br()
{
try {
this.aA = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bs()
{
try {
this.aB = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bt()
{
try {
this.aC = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bu()
{
try {
this.aD = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bv()
{
try {
this.aE = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bw()
{
try {
this.aF = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void bx()
{
try {
this.aG = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void by()
{
try {
this.aH = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
private declared_synchronized void p(String p2)
{
try {
this.d = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void q(String p2)
{
try {
this.j = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void r(String p2)
{
try {
this.k = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void s(String p2)
{
try {
this.l = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void t(String p2)
{
try {
this.m = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void u(String p2)
{
try {
this.o = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void v(String p2)
{
try {
this.p = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void w(String p2)
{
try {
this.q = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void x(String p2)
{
try {
this.t = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void y(String p2)
{
try {
this.P = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
private declared_synchronized void z(String p2)
{
try {
this.Q = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String A()
{
try {
return this.A;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String B()
{
try {
return this.B;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String C()
{
try {
return this.C;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String D()
{
try {
return this.D;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String E()
{
try {
return this.E;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String F()
{
try {
return this.F;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String G()
{
try {
return this.G;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String H()
{
try {
return this.H;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String I()
{
try {
return this.I;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String J()
{
try {
return this.J;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String K()
{
try {
return this.K;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String L()
{
try {
return this.L;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String M()
{
try {
return this.M;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String N()
{
try {
return this.N;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String O()
{
try {
return this.O;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String P()
{
try {
return this.P;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String Q()
{
try {
return this.Q;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String R()
{
try {
return this.a("mat_log_id_install", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String S()
{
try {
return this.a("mat_referrer", "referrer");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String T()
{
try {
return this.a("mat_is_paying_user", "mat_is_paying_user");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String U()
{
try {
return this.R;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String V()
{
try {
return this.a("mat_log_id_last_open", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String W()
{
try {
return this.S;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String X()
{
try {
return this.U;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String Y()
{
try {
return this.V;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String Z()
{
try {
return this.a("mat_id", "mat_id");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized void a(String p2)
{
try {
this.c = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String aA()
{
try {
return this.aq;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aB()
{
try {
return this.ar;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aC()
{
try {
return this.as;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aD()
{
try {
return this.at;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aE()
{
try {
return this.au;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aF()
{
try {
return this.av;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aG()
{
try {
return this.aw;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aH()
{
try {
return this.ax;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aI()
{
try {
return this.ay;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aJ()
{
try {
return this.az;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aK()
{
try {
return this.aA;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aL()
{
try {
return this.aB;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aM()
{
try {
return this.aC;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aN()
{
try {
return this.aD;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aO()
{
try {
return this.aE;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aP()
{
try {
return this.aF;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aQ()
{
try {
return this.aG;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aR()
{
try {
return this.aH;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aa()
{
try {
return this.W;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ab()
{
try {
return this.X;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ac()
{
try {
return this.a("mat_log_id_open", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String ad()
{
try {
return this.Y;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ae()
{
try {
return this.Z;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String af()
{
try {
return this.aa;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ag()
{
try {
return this.ab;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ah()
{
try {
return this.ac;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ai()
{
try {
return this.ad;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aj()
{
try {
return this.ae;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ak()
{
try {
return this.af;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String al()
{
try {
return this.ag;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String am()
{
try {
return this.ah;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String an()
{
try {
return this.ai;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ao()
{
try {
return "3.4.2";
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ap()
{
try {
return this.aj;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String aq()
{
try {
return this.ak;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String ar()
{
try {
return this.al;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String as()
{
try {
return this.am;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String at()
{
try {
return this.a("mat_log_id_update", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String au()
{
try {
return this.an;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String av()
{
try {
return this.a("mat_user_ids", "user_email");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String aw()
{
try {
return this.a("mat_user_ids", "user_id");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String ax()
{
try {
return this.a("mat_user_ids", "user_name");
} catch (Throwable v0_2) {
throw v0_2;
}
}
public final declared_synchronized String ay()
{
try {
return this.ao;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String az()
{
try {
return this.ap;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void b()
{
try {
this.c(0);
this.d(0);
this.m(0);
this.b("USD");
this.l(0);
this.aY();
this.aX();
this.bb();
this.bc();
this.be();
this.bd();
this.aZ();
this.ba();
this.aS();
this.aT();
this.aU();
this.aV();
this.aW();
this.bg();
this.bf();
this.bh();
this.bu();
this.bv();
this.bw();
this.bx();
this.by();
this.bs();
this.br();
this.bq();
this.bt();
this.bo();
this.bp();
this.bm();
this.bl();
this.bk();
this.bn();
this.bi();
this.bj();
return;
} catch (Throwable v0_5) {
throw v0_5;
}
}
public final declared_synchronized void b(String p2)
{
try {
this.n = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String c()
{
try {
return this.c;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void c(String p2)
{
try {
this.D = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String d()
{
try {
return this.d;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void d(String p2)
{
try {
this.F = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String e()
{
try {
return this.e;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void e(String p2)
{
try {
this.J = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String f()
{
try {
return this.f;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void f(String p2)
{
try {
this.M = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String g()
{
try {
return this.g;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void g(String p2)
{
try {
this.N = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String h()
{
try {
return this.h;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void h(String p3)
{
try {
this.a("mat_referrer", "referrer", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String i()
{
try {
return this.i;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void i(String p3)
{
try {
this.a("mat_log_id_last_open", "logId", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String j()
{
try {
return this.j;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void j(String p3)
{
try {
this.a("mat_log_id_open", "logId", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String k()
{
try {
return this.k;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void k(String p2)
{
try {
this.Z = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String l()
{
try {
return this.l;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void l(String p2)
{
try {
this.ae = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String m()
{
try {
return this.m;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void m(String p2)
{
try {
this.af = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String n()
{
try {
return this.n;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void n(String p2)
{
try {
this.aj = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
public final declared_synchronized String o()
{
try {
return this.o;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized void o(String p3)
{
try {
this.a("mat_user_ids", "user_id", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String p()
{
try {
return this.p;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String q()
{
try {
return this.q;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String r()
{
try {
return this.r;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String s()
{
try {
return this.s;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String t()
{
try {
return this.t;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String u()
{
try {
return this.u;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String v()
{
try {
return this.v;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String w()
{
try {
return this.w;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String x()
{
try {
return this.x;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String y()
{
try {
return this.y;
} catch (Throwable v0_1) {
throw v0_1;
}
}
public final declared_synchronized String z()
{
try {
return this.z;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
package com.c;
final class i implements java.lang.Runnable {
final synthetic boolean a;
final synthetic com.c.g b;
i(com.c.g p1, boolean p2)
{
this.b = p1;
this.a = p2;
return;
}
public final void run()
{
if (!this.a) {
this.b.j.e(Integer.toString(0));
} else {
this.b.j.e(Integer.toString(1));
}
return;
}
}
package com.c;
final class j implements java.lang.Runnable {
final synthetic String a;
final synthetic int b;
final synthetic com.c.g c;
j(com.c.g p1, String p2, int p3)
{
this.c = p1;
this.a = p2;
this.b = p3;
return;
}
public final void run()
{
this.c.j.f(this.a);
this.c.j.g(Integer.toString(this.b));
this.c.e = 1;
if ((this.c.f) && (!this.c.h)) {
try {
this.c.l.notifyAll();
this.c.h = 1;
} catch (Throwable v0_13) {
throw v0_13;
}
}
return;
}
}
package com.c;
final class k implements java.lang.Runnable {
final synthetic String a;
final synthetic com.c.g b;
k(com.c.g p1, String p2)
{
this.b = p1;
this.a = p2;
return;
}
public final void run()
{
this.b.j.h(this.a);
return;
}
}
package com.c;
final class l implements java.lang.Runnable {
final synthetic String a;
final synthetic com.c.g b;
l(com.c.g p1, String p2)
{
this.b = p1;
this.a = p2;
return;
}
public final void run()
{
if ((this.a != null) && (!this.a.equals(""))) {
this.b.j.k(this.a);
} else {
this.b.j.k(this.b.k.getPackageName());
}
return;
}
}
package com.c;
final class m {
private static com.c.h a;
public static declared_synchronized String a()
{
try {
com.c.m.a = com.c.h.a();
Throwable v0_2 = new StringBuilder();
v0_2.append(new StringBuilder("connection_type=").append(com.c.m.a.l()).toString());
com.c.m.a(v0_2, "age", com.c.m.a.e());
com.c.m.a(v0_2, "altitude", com.c.m.a.g());
com.c.m.a(v0_2, "android_id", com.c.m.a.h());
com.c.m.a(v0_2, "app_ad_tracking", com.c.m.a.i());
com.c.m.a(v0_2, "app_name", com.c.m.a.j());
com.c.m.a(v0_2, "app_version", com.c.m.a.k());
com.c.m.a(v0_2, "country_code", com.c.m.a.m());
com.c.m.a(v0_2, "currency_code", com.c.m.a.n());
com.c.m.a(v0_2, "device_brand", com.c.m.a.o());
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
from androlyze.log.Log import log
CAT_DECOMPILE = "decompiled_classes"
class DecompileClassesText(AndroScript):
''' Get the source code from the apk for each class. '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
''' This sample code is taken from `androguard` and has been modified!
See Also
--------
http://code.google.com/p/androguard/wiki/RE#Source_Code
'''
res = self.res
res.register_keys([CAT_DECOMPILE])
# androguard.core.bytecodes.dvm.ClassDefItem
for clazz in dalvik_vm_format.get_classes():
try:
key = clazz.get_name()
# skip android classes
if key.find("Landroid") != -1:
continue
self.cres += clazz.get_source()
except Exception as e:
log.exception(e)
def custom_result_object(self):
return ("", "java")
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
DecompileMethods¶
This is an autogenerated documentation file for the script: DecompileMethods
Run it¶
$ ./androanalyze scripts_builtin/DecompileMethods.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn DecompileMethods -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn DecompileMethods -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn DecompileMethods -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androguard.decompiler.dad import decompile
from androlyze.model.script.AndroScript import AndroScript
CAT_DECOMPILE = "decompiled_methods"
class DecompileMethods(AndroScript):
''' Get the source code from the apk for each method. '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
''' This sample code is taken from `androguard` and has been modified!
See Also
--------
http://code.google.com/p/androguard/wiki/RE#Source_Code
'''
res = self.res
res.register_keys([CAT_DECOMPILE])
# CFG
for method in dalvik_vm_format.get_methods():
mx = vm_analysis.get_method(method)
if method.get_code() == None:
continue
try:
classname, methodname, method_descriptor = method.get_class_name(), method.get_name(), method.get_descriptor()
# skip android classes
if classname.find("Landroid") != -1:
continue
CAT = (CAT_DECOMPILE, classname, methodname)
res.register_keys([method_descriptor], *CAT)
ms = decompile.DvMethod(mx)
# process to the decompilation
ms.process()
# get the source !
res.log(method_descriptor, ms.get_source().split("\n"), *CAT)
except:
pass
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
DecompileMethodsText¶
This is an autogenerated documentation file for the script: DecompileMethodsText
Run it¶
$ ./androanalyze scripts_builtin/DecompileMethodsText.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn DecompileMethodsText -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn DecompileMethodsText -pn com.spotify.music -nd
{
"chunkSize": 261120,
"filename": "com.spotify.music_2.2.0.636_DecompileMethodsText.java",
"length": 17215574,
"uploadDate": "2015-06-22T20:30:07.726000",
"md5": "bbd0987644eb64cef4a1f03c86bb145a",
"metadata": {
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "DecompileMethodsText",
"sha256": "bafebe22b09d8b06302b5b46ff6411d8a8bb7d1ed06e953ce1e97d2cdeef92b7",
"analysis date": "2015-06-22T20:27:41.333000",
"version": "0.1"
}
}
}
View the raw data:
$ ./androquery result -sn DecompileMethodsText -pn com.spotify.music -nd -r
Lcom/spotify/mobile/android/util/ui/d;.<init>(Landroid/view/Window$Callback;)V {
public d(android.view.Window$Callback p1)
{
this.a = p1;
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z {
public boolean dispatchGenericMotionEvent(android.view.MotionEvent p2)
{
return this.a.dispatchGenericMotionEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchKeyEvent(Landroid/view/KeyEvent;)Z {
public boolean dispatchKeyEvent(android.view.KeyEvent p2)
{
return this.a.dispatchKeyEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z {
public boolean dispatchKeyShortcutEvent(android.view.KeyEvent p2)
{
return this.a.dispatchKeyShortcutEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z {
public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent p2)
{
return this.a.dispatchPopulateAccessibilityEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchTouchEvent(Landroid/view/MotionEvent;)Z {
public boolean dispatchTouchEvent(android.view.MotionEvent p2)
{
return this.a.dispatchTouchEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.dispatchTrackballEvent(Landroid/view/MotionEvent;)Z {
public boolean dispatchTrackballEvent(android.view.MotionEvent p2)
{
return this.a.dispatchTrackballEvent(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onActionModeFinished(Landroid/view/ActionMode;)V {
public void onActionModeFinished(android.view.ActionMode p2)
{
this.a.onActionModeFinished(p2);
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onActionModeStarted(Landroid/view/ActionMode;)V {
public void onActionModeStarted(android.view.ActionMode p2)
{
this.a.onActionModeStarted(p2);
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onAttachedToWindow()V {
public void onAttachedToWindow()
{
this.a.onAttachedToWindow();
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onContentChanged()V {
public void onContentChanged()
{
this.a.onContentChanged();
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onCreatePanelMenu(I Landroid/view/Menu;)Z {
public boolean onCreatePanelMenu(int p2, android.view.Menu p3)
{
return this.a.onCreatePanelMenu(p2, p3);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onCreatePanelView(I)Landroid/view/View; {
public android.view.View onCreatePanelView(int p2)
{
return this.a.onCreatePanelView(p2);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onDetachedFromWindow()V {
public void onDetachedFromWindow()
{
this.a.onDetachedFromWindow();
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onMenuItemSelected(I Landroid/view/MenuItem;)Z {
public boolean onMenuItemSelected(int p2, android.view.MenuItem p3)
{
return this.a.onMenuItemSelected(p2, p3);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onMenuOpened(I Landroid/view/Menu;)Z {
public boolean onMenuOpened(int p2, android.view.Menu p3)
{
return this.a.onMenuOpened(p2, p3);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onPanelClosed(I Landroid/view/Menu;)V {
public void onPanelClosed(int p2, android.view.Menu p3)
{
this.a.onPanelClosed(p2, p3);
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onPreparePanel(I Landroid/view/View; Landroid/view/Menu;)Z {
public boolean onPreparePanel(int p2, android.view.View p3, android.view.Menu p4)
{
return this.a.onPreparePanel(p2, p3, p4);
}
}
Lcom/spotify/mobile/android/util/ui/d;.onSearchRequested()Z {
public boolean onSearchRequested()
{
return this.a.onSearchRequested();
}
}
Lcom/spotify/mobile/android/util/ui/d;.onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V {
public void onWindowAttributesChanged(android.view.WindowManager$LayoutParams p2)
{
this.a.onWindowAttributesChanged(p2);
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onWindowFocusChanged(Z)V {
public void onWindowFocusChanged(boolean p2)
{
this.a.onWindowFocusChanged(p2);
return;
}
}
Lcom/spotify/mobile/android/util/ui/d;.onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode; {
public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode$Callback p2)
{
return this.a.onWindowStartingActionMode(p2);
}
}
Lcom/a/a/a/b;.a(Landroid/os/IBinder;)Lcom/a/a/a/a; {
public static com.a.a.a.a a(android.os.IBinder p2)
{
com.a.a.a.a v0_3;
if (p2 != null) {
com.a.a.a.a v0_1 = p2.queryLocalInterface("com.android.vending.billing.IInAppBillingService");
if ((v0_1 == null) || (!(v0_1 instanceof com.a.a.a.a))) {
v0_3 = new com.a.a.a.c(p2);
} else {
v0_3 = ((com.a.a.a.a) v0_1);
}
} else {
v0_3 = 0;
}
return v0_3;
}
}
Lcom/a/a/a/b;.onTransact(I Landroid/os/Parcel; Landroid/os/Parcel; I)Z {
public boolean onTransact(int p9, android.os.Parcel p10, android.os.Parcel p11, int p12)
{
int v0_1;
switch (p9) {
case 1:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_19 = this.a(p10.readInt(), p10.readString(), p10.readString());
p11.writeNoException();
p11.writeInt(v0_19);
v0_1 = 1;
break;
case 2:
int v0_13;
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
String v1_3 = p10.readInt();
String v2_3 = p10.readString();
String v3_2 = p10.readString();
if (p10.readInt() == 0) {
v0_13 = 0;
} else {
v0_13 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(p10));
}
int v0_16 = this.a(v1_3, v2_3, v3_2, v0_13);
p11.writeNoException();
if (v0_16 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_16.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 3:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_10 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString(), p10.readString());
p11.writeNoException();
if (v0_10 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_10.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 4:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_7 = this.a(p10.readInt(), p10.readString(), p10.readString(), p10.readString());
p11.writeNoException();
if (v0_7 == 0) {
p11.writeInt(0);
} else {
p11.writeInt(1);
v0_7.writeToParcel(p11, 1);
}
v0_1 = 1;
break;
case 5:
p10.enforceInterface("com.android.vending.billing.IInAppBillingService");
int v0_4 = this.b(p10.readInt(), p10.readString(), p10.readString());
p11.writeNoException();
p11.writeInt(v0_4);
v0_1 = 1;
break;
case 1598968902:
p11.writeString("com.android.vending.billing.IInAppBillingService");
v0_1 = 1;
break;
default:
v0_1 = super.onTransact(p9, p10, p11, p12);
}
return v0_1;
}
}
Lcom/a/a/a/c;.<init>(Landroid/os/IBinder;)V {
c(android.os.IBinder p1)
{
this.a = p1;
return;
}
}
Lcom/a/a/a/c;.a(I Ljava/lang/String; Ljava/lang/String;)I {
public final int a(int p6, String p7, String p8)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
this.a.transact(1, v1, v2, 0);
v2.readException();
Throwable v0_2 = v2.readInt();
v2.recycle();
v1.recycle();
return v0_2;
} catch (Throwable v0_3) {
v2.recycle();
v1.recycle();
throw v0_3;
}
}
}
Lcom/a/a/a/c;.a(I Ljava/lang/String; Ljava/lang/String; Landroid/os/Bundle;)Landroid/os/Bundle; {
public final android.os.Bundle a(int p6, String p7, String p8, android.os.Bundle p9)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
} catch (int v0_9) {
v2.recycle();
v1.recycle();
throw v0_9;
}
if (p9 == null) {
v1.writeInt(0);
} else {
v1.writeInt(1);
p9.writeToParcel(v1, 0);
}
int v0_6;
this.a.transact(2, v1, v2, 0);
v2.readException();
if (v2.readInt() == 0) {
v0_6 = 0;
} else {
v0_6 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_6;
}
}
Lcom/a/a/a/c;.a(I Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Landroid/os/Bundle; {
public final android.os.Bundle a(int p6, String p7, String p8, String p9)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
int v0_3;
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
v1.writeString(p9);
this.a.transact(4, v1, v2, 0);
v2.readException();
} catch (int v0_6) {
v2.recycle();
v1.recycle();
throw v0_6;
}
if (v2.readInt() == 0) {
v0_3 = 0;
} else {
v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_3;
}
}
Lcom/a/a/a/c;.a(I Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Landroid/os/Bundle; {
public final android.os.Bundle a(int p6, String p7, String p8, String p9, String p10)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
int v0_3;
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
v1.writeString(p9);
v1.writeString(p10);
this.a.transact(3, v1, v2, 0);
v2.readException();
} catch (int v0_6) {
v2.recycle();
v1.recycle();
throw v0_6;
}
if (v2.readInt() == 0) {
v0_3 = 0;
} else {
v0_3 = ((android.os.Bundle) android.os.Bundle.CREATOR.createFromParcel(v2));
}
v2.recycle();
v1.recycle();
return v0_3;
}
}
Lcom/a/a/a/c;.asBinder()Landroid/os/IBinder; {
public final android.os.IBinder asBinder()
{
return this.a;
}
}
Lcom/a/a/a/c;.b(I Ljava/lang/String; Ljava/lang/String;)I {
public final int b(int p6, String p7, String p8)
{
android.os.Parcel v1 = android.os.Parcel.obtain();
android.os.Parcel v2 = android.os.Parcel.obtain();
try {
v1.writeInterfaceToken("com.android.vending.billing.IInAppBillingService");
v1.writeInt(p6);
v1.writeString(p7);
v1.writeString(p8);
this.a.transact(5, v1, v2, 0);
v2.readException();
Throwable v0_2 = v2.readInt();
v2.recycle();
v1.recycle();
return v0_2;
} catch (Throwable v0_3) {
v2.recycle();
v1.recycle();
throw v0_3;
}
}
}
Lcom/b/a/a$1;.<init>(Lcom/b/a/a;)V {
a$1(com.b.a.a p1)
{
this.a = p1;
return;
}
}
Lcom/b/a/a$1;.a()Ljava/lang/Void; {
private Void a()
{
try {
if (com.b.a.a.a(this.a) != null) {
com.b.a.a.b(this.a);
if (com.b.a.a.c(this.a)) {
com.b.a.a.d(this.a);
com.b.a.a.e(this.a);
}
} else {
}
} catch (com.b.a.a v0_7) {
throw v0_7;
}
return 0;
}
}
Lcom/b/a/a$1;.call()Ljava/lang/Object; {
public final synthetic Object call()
{
return this.a();
}
}
Lcom/b/a/a$2;.<init>()V {
a$2()
{
return;
}
}
Lcom/b/a/a$2;.write(I)V {
public final void write(int p1)
{
return;
}
}
Lcom/b/a/a;.<clinit>()V {
static a()
{
com.b.a.a.a = java.util.regex.Pattern.compile("[a-z0-9_-]{1,64}");
com.b.a.a.p = new com.b.a.a$2();
return;
}
}
Lcom/b/a/a;.<init>(Ljava/io/File;)V {
private a(java.io.File p9)
{
this.j = 0;
this.l = new java.util.LinkedHashMap(0, 1061158912, 1);
this.n = 0;
this.b = new java.util.concurrent.ThreadPoolExecutor(0, 1, 60, java.util.concurrent.TimeUnit.SECONDS, new java.util.concurrent.LinkedBlockingQueue());
this.o = new com.b.a.a$1(this);
this.c = p9;
this.g = 1;
this.d = new java.io.File(p9, "journal");
this.e = new java.io.File(p9, "journal.tmp");
this.f = new java.io.File(p9, "journal.bkp");
this.i = 1;
this.h = 10485760;
return;
}
}
Lcom/b/a/a;.a(Ljava/io/File;)Lcom/b/a/a; {
public static com.b.a.a a(java.io.File p6)
{
if (10485760 > 0) {
void v0_3 = new java.io.File(p6, "journal.bkp");
if (v0_3.exists()) {
String v1_3 = new java.io.File(p6, "journal");
if (!v1_3.exists()) {
com.b.a.a.a(v0_3, v1_3, 0);
} else {
v0_3.delete();
}
}
void v0_7;
void v0_5 = new com.b.a.a(p6);
if (!v0_5.d.exists()) {
p6.mkdirs();
v0_7 = new com.b.a.a(p6).e();
} else {
try {
v0_7 = v0_5.c().d();
v0_7.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(v0_7.d, 1), com.b.a.g.a));
} catch (String v1_8) {
System.out.println(new StringBuilder("DiskLruCache ").append(p6).append(" is corrupt: ").append(v1_8.getMessage()).append(", removing").toString());
v0_7.i();
}
}
return v0_7;
} else {
throw new IllegalArgumentException("maxSize <= 0");
}
}
}
Lcom/b/a/a;.a(Lcom/b/a/a;)Ljava/io/Writer; {
static synthetic java.io.Writer a(com.b.a.a p1)
{
return p1.k;
}
}
Lcom/b/a/a;.a(Lcom/b/a/a; Lcom/b/a/b; Z)V {
static synthetic void a(com.b.a.a p0, com.b.a.b p1, boolean p2)
{
p0.a(p1, p2);
return;
}
}
Lcom/b/a/a;.a(Lcom/b/a/b; Z)V {
private declared_synchronized void a(com.b.a.b p11, boolean p12)
{
java.util.concurrent.ThreadPoolExecutor v0_0 = 0;
try {
StringBuilder v2_0 = p11.a;
} catch (java.util.concurrent.ThreadPoolExecutor v0_20) {
throw v0_20;
}
if (v2_0.d == p11) {
if ((!p12) || (v2_0.c)) {
while (v0_0 < this.i) {
int v1_17 = v2_0.b(v0_0);
if (!p12) {
com.b.a.a.b(v1_17);
} else {
if (v1_17.exists()) {
boolean v3_7 = v2_0.a(v0_0);
v1_17.renameTo(v3_7);
long v4_2 = v2_0.b[v0_0];
long v6 = v3_7.length();
v2_0.b[v0_0] = v6;
this.j = ((this.j - v4_2) + v6);
}
}
v0_0++;
}
this.m = (this.m + 1);
v2_0.d = 0;
if ((v2_0.c | p12) == 0) {
this.l.remove(v2_0.a);
this.k.write(new StringBuilder("REMOVE ").append(v2_0.a).append(10).toString());
} else {
v2_0.c = 1;
this.k.write(new StringBuilder("CLEAN ").append(v2_0.a).append(v2_0.a()).append(10).toString());
if (p12) {
java.util.concurrent.ThreadPoolExecutor v0_10 = this.n;
this.n = (1 + v0_10);
v2_0.e = v0_10;
}
}
this.k.flush();
if ((this.j > this.h) || (this.f())) {
this.b.submit(this.o);
}
} else {
int v1_2 = 0;
while (v1_2 < this.i) {
if (p11.b[v1_2]) {
if (v2_0.b(v1_2).exists()) {
v1_2++;
} else {
p11.c();
}
} else {
p11.c();
throw new IllegalStateException(new StringBuilder("Newly created entry didn\'t create value for index ").append(v1_2).toString());
}
}
}
return;
} else {
throw new IllegalStateException();
}
}
}
Lcom/b/a/a;.a(Ljava/io/File; Ljava/io/File; Z)V {
private static void a(java.io.File p1, java.io.File p2, boolean p3)
{
if (p3) {
com.b.a.a.b(p2);
}
if (p1.renameTo(p2)) {
return;
} else {
throw new java.io.IOException();
}
}
}
Lcom/b/a/a;.b()Ljava/io/OutputStream; {
static synthetic java.io.OutputStream b()
{
return com.b.a.a.p;
}
}
Lcom/b/a/a;.b(Lcom/b/a/a;)V {
static synthetic void b(com.b.a.a p0)
{
p0.h();
return;
}
}
Lcom/b/a/a;.b(Ljava/io/File;)V {
private static void b(java.io.File p1)
{
if ((!p1.exists()) || (p1.delete())) {
return;
} else {
throw new java.io.IOException();
}
}
}
Lcom/b/a/a;.c()V {
private void c()
{
com.b.a.f v1_1 = new com.b.a.f(new java.io.FileInputStream(this.d), com.b.a.g.a);
try {
int v0_2 = v1_1.a();
int v2_2 = v1_1.a();
boolean v3_0 = v1_1.a();
String v4 = v1_1.a();
String v5 = v1_1.a();
} catch (int v0_14) {
com.b.a.g.a(v1_1);
throw v0_14;
}
if (("libcore.io.DiskLruCache".equals(v0_2)) && (("1".equals(v2_2)) && ((Integer.toString(this.g).equals(v3_0)) && ((Integer.toString(this.i).equals(v4)) && ("".equals(v5)))))) {
int v0_3 = 0;
try {
while(true) {
this.d(v1_1.a());
v0_3++;
}
} catch (int v2) {
this.m = (v0_3 - this.l.size());
com.b.a.g.a(v1_1);
return;
}
} else {
throw new java.io.IOException(new StringBuilder("unexpected journal header: [").append(v0_2).append(", ").append(v2_2).append(", ").append(v4).append(", ").append(v5).append("]").toString());
}
}
}
Lcom/b/a/a;.c(Lcom/b/a/a;)Z {
static synthetic boolean c(com.b.a.a p1)
{
return p1.f();
}
}
Lcom/b/a/a;.d()V {
private void d()
{
com.b.a.a.b(this.e);
java.util.Iterator v3 = this.l.values().iterator();
while (v3.hasNext()) {
com.b.a.d v0_5 = ((com.b.a.d) v3.next());
if (v0_5.d != null) {
v0_5.d = 0;
int v1_2 = 0;
while (v1_2 < this.i) {
com.b.a.a.b(v0_5.a(v1_2));
com.b.a.a.b(v0_5.b(v1_2));
v1_2++;
}
v3.remove();
} else {
int v1_3 = 0;
while (v1_3 < this.i) {
this.j = (this.j + v0_5.b[v1_3]);
v1_3++;
}
}
}
return;
}
}
Lcom/b/a/a;.d(Lcom/b/a/a;)V {
static synthetic void d(com.b.a.a p0)
{
p0.e();
return;
}
}
Lcom/b/a/a;.d(Ljava/lang/String;)V {
private void d(String p9)
{
String v2_0 = p9.indexOf(32);
if (v2_0 != -1) {
com.b.a.b v1_1;
boolean v0_0 = (v2_0 + 1);
int v3 = p9.indexOf(32, v0_0);
if (v3 != -1) {
v1_1 = p9.substring(v0_0, v3);
boolean v0_5 = ((com.b.a.d) this.l.get(v1_1));
if (!v0_5) {
v0_5 = new com.b.a.d(this, v1_1, 0);
this.l.put(v1_1, v0_5);
}
if ((v3 == -1) || ((v2_0 != 5) || (!p9.startsWith("CLEAN")))) {
if ((v3 != -1) || ((v2_0 != 5) || (!p9.startsWith("DIRTY")))) {
if ((v3 != -1) || ((v2_0 != 4) || (!p9.startsWith("READ")))) {
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
}
} else {
v0_5.d = new com.b.a.b(this, v0_5, 0);
}
} else {
com.b.a.b v1_17 = p9.substring((v3 + 1)).split(" ");
v0_5.c = 1;
v0_5.d = 0;
v0_5.a(v1_17);
}
} else {
boolean v0_2 = p9.substring(v0_0);
if ((v2_0 != 6) || (!p9.startsWith("REMOVE"))) {
v1_1 = v0_2;
} else {
this.l.remove(v0_2);
}
}
return;
} else {
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(p9).toString());
}
}
}
Lcom/b/a/a;.e(Lcom/b/a/a;)I {
static synthetic int e(com.b.a.a p1)
{
p1.m = 0;
return 0;
}
}
Lcom/b/a/a;.e()V {
private declared_synchronized void e()
{
try {
if (this.k != null) {
this.k.close();
}
} catch (java.io.BufferedWriter v0_32) {
throw v0_32;
}
java.io.OutputStreamWriter v1_1 = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.e), com.b.a.g.a));
try {
v1_1.write("libcore.io.DiskLruCache");
v1_1.write("\n");
v1_1.write("1");
v1_1.write("\n");
v1_1.write(Integer.toString(this.g));
v1_1.write("\n");
v1_1.write(Integer.toString(this.i));
v1_1.write("\n");
v1_1.write("\n");
java.io.FileOutputStream v2_2 = this.l.values().iterator();
} catch (java.io.BufferedWriter v0_31) {
v1_1.close();
throw v0_31;
}
while (v2_2.hasNext()) {
java.io.BufferedWriter v0_26 = ((com.b.a.d) v2_2.next());
if (v0_26.d == null) {
v1_1.write(new StringBuilder("CLEAN ").append(v0_26.a).append(v0_26.a()).append(10).toString());
} else {
v1_1.write(new StringBuilder("DIRTY ").append(v0_26.a).append(10).toString());
}
}
v1_1.close();
if (this.d.exists()) {
com.b.a.a.a(this.d, this.f, 1);
}
com.b.a.a.a(this.e, this.d, 0);
this.f.delete();
this.k = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.FileOutputStream(this.d, 1), com.b.a.g.a));
return;
}
}
Lcom/b/a/a;.e(Ljava/lang/String;)V {
private static void e(String p3)
{
if (com.b.a.a.a.matcher(p3).matches()) {
return;
} else {
throw new IllegalArgumentException(new StringBuilder("keys must match regex [a-z0-9_-]{1,64}: \"").append(p3).append("\"").toString());
}
}
}
Lcom/b/a/a;.f(Lcom/b/a/a;)I {
static synthetic int f(com.b.a.a p1)
{
return p1.i;
}
}
Lcom/b/a/a;.f()Z {
private boolean f()
{
if ((this.m < 2000) || (this.m < this.l.size())) {
int v0_2 = 0;
} else {
v0_2 = 1;
}
return v0_2;
}
}
Lcom/b/a/a;.g(Lcom/b/a/a;)Ljava/io/File; {
static synthetic java.io.File g(com.b.a.a p1)
{
return p1.c;
}
}
Lcom/b/a/a;.g()V {
private void g()
{
if (this.k != null) {
return;
} else {
throw new IllegalStateException("cache is closed");
}
}
}
Lcom/b/a/a;.h()V {
private void h()
{
while (this.j > this.h) {
this.c(((String) ((java.util.Map$Entry) this.l.entrySet().iterator().next()).getKey()));
}
return;
}
}
Lcom/b/a/a;.i()V {
private void i()
{
this.close();
com.b.a.g.a(this.c);
return;
}
}
Lcom/b/a/a;.a(Ljava/lang/String;)Lcom/b/a/e; {
public final declared_synchronized com.b.a.e a(String p10)
{
com.b.a.e v1_0 = 0;
try {
this.g();
com.b.a.a.e(p10);
int v0_2 = ((com.b.a.d) this.l.get(p10));
} catch (int v0_4) {
throw v0_4;
}
if ((v0_2 != 0) && (v0_2.c)) {
java.io.InputStream[] v6 = new java.io.InputStream[this.i];
String v3_2 = 0;
try {
while (v3_2 < this.i) {
v6[v3_2] = new java.io.FileInputStream(v0_2.a(v3_2));
v3_2++;
}
} catch (int v0) {
int v0_3 = 0;
}
this.m = (this.m + 1);
this.k.append(new StringBuilder("READ ").append(p10).append(10).toString());
if (this.f()) {
this.b.submit(this.o);
}
v1_0 = new com.b.a.e(this, p10, v0_2.e, v6, v0_2.b, 0);
}
return v1_0;
}
}
Lcom/b/a/a;.a()V {
public final declared_synchronized void a()
{
try {
this.g();
this.h();
this.k.flush();
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/b/a/a;.b(Ljava/lang/String;)Lcom/b/a/b; {
public final declared_synchronized com.b.a.b b(String p7)
{
try {
java.io.Writer v0_3;
this.g();
com.b.a.a.e(p7);
java.io.Writer v0_2 = ((com.b.a.d) this.l.get(p7));
} catch (java.io.Writer v0_6) {
throw v0_6;
}
if ((-1 == -1) || ((v0_2 != null) && (v0_2.e == -1))) {
java.io.Writer v1_1;
if (v0_2 != null) {
if (v0_2.d == null) {
v1_1 = v0_2;
} else {
v0_3 = 0;
return v0_3;
}
} else {
java.io.Writer v0_5 = new com.b.a.d(this, p7, 0);
this.l.put(p7, v0_5);
v1_1 = v0_5;
}
v0_3 = new com.b.a.b(this, v1_1, 0);
v1_1.d = v0_3;
this.k.write(new StringBuilder("DIRTY ").append(p7).append(10).toString());
this.k.flush();
} else {
v0_3 = 0;
}
return v0_3;
}
}
Lcom/b/a/a;.c(Ljava/lang/String;)Z {
public final declared_synchronized boolean c(String p7)
{
String v1_0 = 0;
try {
java.io.IOException v0_9;
this.g();
com.b.a.a.e(p7);
java.io.IOException v0_2 = ((com.b.a.d) this.l.get(p7));
} catch (java.io.IOException v0_12) {
throw v0_12;
}
if ((v0_2 != null) && (v0_2.d == null)) {
while (v1_0 < this.i) {
long[] v2_4 = v0_2.a(v1_0);
if ((!v2_4.exists()) || (v2_4.delete())) {
this.j = (this.j - v0_2.b[v1_0]);
v0_2.b[v1_0] = 0;
v1_0++;
} else {
throw new java.io.IOException(new StringBuilder("failed to delete ").append(v2_4).toString());
}
}
this.m = (this.m + 1);
this.k.append(new StringBuilder("REMOVE ").append(p7).append(10).toString());
this.l.remove(p7);
if (this.f()) {
this.b.submit(this.o);
}
v0_9 = 1;
} else {
v0_9 = 0;
}
return v0_9;
}
}
Lcom/b/a/a;.close()V {
public final declared_synchronized void close()
{
try {
if (this.k != null) {
java.util.Iterator v1_2 = new java.util.ArrayList(this.l.values()).iterator();
while (v1_2.hasNext()) {
com.b.a.b v0_7 = ((com.b.a.d) v1_2.next());
if (v0_7.d != null) {
v0_7.d.c();
}
}
this.h();
this.k.close();
this.k = 0;
}
} catch (com.b.a.b v0_8) {
throw v0_8;
}
return;
}
}
Lcom/b/a/b;.<init>(Lcom/b/a/a; Lcom/b/a/d;)V {
private b(com.b.a.a p2, com.b.a.d p3)
{
boolean[] v0_2;
this.d = p2;
this.a = p3;
if (!p3.c) {
v0_2 = new boolean[com.b.a.a.f(p2)];
} else {
v0_2 = 0;
}
this.b = v0_2;
return;
}
}
Lcom/b/a/b;.<init>(Lcom/b/a/a; Lcom/b/a/d; B)V {
synthetic b(com.b.a.a p1, com.b.a.d p2, byte p3)
{
this(p1, p2);
return;
}
}
Lcom/b/a/b;.a()Ljava/io/OutputStream; {
public final java.io.OutputStream a()
{
try {
if (this.a.d == this) {
if (!this.a.c) {
this.b[0] = 1;
}
java.io.FileOutputStream v1_3 = new java.io.FileOutputStream(this.a.b(0));
java.io.OutputStream v0_12 = new com.b.a.c(this, v1_3, 0);
return v0_12;
} else {
throw new IllegalStateException();
}
} catch (java.io.OutputStream v0_16) {
throw v0_16;
}
}
}
Lcom/b/a/b;.b()V {
public final void b()
{
if (!this.c) {
com.b.a.a.a(this.d, this, 1);
} else {
com.b.a.a.a(this.d, this, 0);
this.d.c(this.a.a);
}
this.e = 1;
return;
}
}
Lcom/b/a/b;.c()V {
public final void c()
{
com.b.a.a.a(this.d, this, 0);
return;
}
}
Lcom/b/a/c;.<init>(Lcom/b/a/b; Ljava/io/OutputStream;)V {
private c(com.b.a.b p1, java.io.OutputStream p2)
{
this.a = p1;
this(p2);
return;
}
}
Lcom/b/a/c;.<init>(Lcom/b/a/b; Ljava/io/OutputStream; B)V {
synthetic c(com.b.a.b p1, java.io.OutputStream p2, byte p3)
{
this(p1, p2);
return;
}
}
Lcom/b/a/c;.close()V {
public final void close()
{
try {
this.out.close();
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
}
Lcom/b/a/c;.flush()V {
public final void flush()
{
try {
this.out.flush();
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
}
Lcom/b/a/c;.write(I)V {
public final void write(int p3)
{
try {
this.out.write(p3);
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
}
Lcom/b/a/c;.write([B I I)V {
public final void write(byte[] p3, int p4, int p5)
{
try {
this.out.write(p3, p4, p5);
} catch (com.b.a.b v0) {
this.a.c = 1;
}
return;
}
}
Lcom/b/a/d;.<init>(Lcom/b/a/a; Ljava/lang/String;)V {
private d(com.b.a.a p2, String p3)
{
this.f = p2;
this.a = p3;
long[] v0_1 = new long[com.b.a.a.f(p2)];
this.b = v0_1;
return;
}
}
Lcom/b/a/d;.<init>(Lcom/b/a/a; Ljava/lang/String; B)V {
synthetic d(com.b.a.a p1, String p2, byte p3)
{
this(p1, p2);
return;
}
}
Lcom/b/a/d;.b([Ljava/lang/String;)Ljava/io/IOException; {
private static java.io.IOException b(String[] p3)
{
throw new java.io.IOException(new StringBuilder("unexpected journal line: ").append(java.util.Arrays.toString(p3)).toString());
}
}
Lcom/b/a/d;.a(I)Ljava/io/File; {
public final java.io.File a(int p5)
{
return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).toString());
}
}
Lcom/b/a/d;.a()Ljava/lang/String; {
public final String a()
{
StringBuilder v1_1 = new StringBuilder();
long[] v2 = this.b;
int v3 = v2.length;
String v0_0 = 0;
while (v0_0 < v3) {
v1_1.append(32).append(v2[v0_0]);
v0_0++;
}
return v1_1.toString();
}
}
Lcom/b/a/d;.a([Ljava/lang/String;)V {
final void a(String[] p5)
{
if (p5.length == com.b.a.a.f(this.f)) {
int v0_1 = 0;
try {
while (v0_1 < p5.length) {
this.b[v0_1] = Long.parseLong(p5[v0_1]);
v0_1++;
}
} catch (int v0) {
throw com.b.a.d.b(p5);
}
return;
} else {
throw com.b.a.d.b(p5);
}
}
}
Lcom/b/a/d;.b(I)Ljava/io/File; {
public final java.io.File b(int p5)
{
return new java.io.File(com.b.a.a.g(this.f), new StringBuilder().append(this.a).append(".").append(p5).append(".tmp").toString());
}
}
Lcom/b/a/e;.<init>(Lcom/b/a/a; Ljava/lang/String; J [Ljava/io/InputStream; [J)V {
private e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7)
{
this.b = p2;
this.c = p3;
this.d = p4;
this.a = p6;
this.e = p7;
return;
}
}
Lcom/b/a/e;.<init>(Lcom/b/a/a; Ljava/lang/String; J [Ljava/io/InputStream; [J B)V {
synthetic e(com.b.a.a p2, String p3, long p4, java.io.InputStream[] p6, long[] p7, byte p8)
{
this(p2, p3, p4, p6, p7);
return;
}
}
Lcom/b/a/e;.close()V {
public final void close()
{
java.io.InputStream[] v1 = this.a;
int v2 = v1.length;
int v0 = 0;
while (v0 < v2) {
com.b.a.g.a(v1[v0]);
v0++;
}
return;
}
}
Lcom/b/a/f$1;.<init>(Lcom/b/a/f; I)V {
f$1(com.b.a.f p1, int p2)
{
this.a = p1;
this(p2);
return;
}
}
Lcom/b/a/f$1;.toString()Ljava/lang/String; {
public final String toString()
{
if ((this.count <= 0) || (this.buf[(this.count - 1)] != 13)) {
java.io.UnsupportedEncodingException v0_3 = this.count;
} else {
v0_3 = (this.count - 1);
}
try {
return new String(this.buf, 0, v0_3, this.a.a.name());
} catch (java.io.UnsupportedEncodingException v0_5) {
throw new AssertionError(v0_5);
}
}
}
Lcom/b/a/f;.<init>(Ljava/io/InputStream; Ljava/nio/charset/Charset;)V {
public f(java.io.InputStream p2, java.nio.charset.Charset p3)
{
this(p2, p3, 0);
return;
}
}
Lcom/b/a/f;.<init>(Ljava/io/InputStream; Ljava/nio/charset/Charset; B)V {
private f(java.io.InputStream p3, java.nio.charset.Charset p4, byte p5)
{
if ((p3 != null) && (p4 != null)) {
if (p4.equals(com.b.a.g.a)) {
this.b = p3;
this.a = p4;
byte[] v0_3 = new byte[8192];
this.c = v0_3;
return;
} else {
throw new IllegalArgumentException("Unsupported encoding");
}
} else {
throw new NullPointerException();
}
}
}
Lcom/b/a/f;.b()V {
private void b()
{
java.io.EOFException v0_1 = this.b.read(this.c, 0, this.c.length);
if (v0_1 != -1) {
this.d = 0;
this.e = v0_1;
return;
} else {
throw new java.io.EOFException();
}
}
}
Lcom/b/a/f;.a()Ljava/lang/String; {
public final String a()
{
try {
if (this.c != null) {
if (this.d >= this.e) {
this.b();
}
byte[] v2_0 = this.d;
while (v2_0 != this.e) {
if (this.c[v2_0] != 10) {
v2_0++;
} else {
if ((v2_0 == this.d) || (this.c[(v2_0 - 1)] != 13)) {
int v1_5 = v2_0;
} else {
v1_5 = (v2_0 - 1);
}
String v0_10 = new String(this.c, this.d, (v1_5 - this.d), this.a.name());
this.d = (v2_0 + 1);
}
return v0_10;
}
int v1_2 = new com.b.a.f$1(this, ((this.e - this.d) + 80));
do {
v1_2.write(this.c, this.d, (this.e - this.d));
this.e = -1;
this.b();
String v0_8 = this.d;
if (v0_8 != this.e) {
break;
}
} while(v0_8 != this.e);
if (this.c[v0_8] != 10) {
v0_8++;
while (v0_8 == this.e) {
}
} else {
if (v0_8 != this.d) {
v1_2.write(this.c, this.d, (v0_8 - this.d));
}
this.d = (v0_8 + 1);
v0_10 = v1_2.toString();
}
return v0_10;
} else {
throw new java.io.IOException("LineReader is closed");
}
} catch (String v0_20) {
throw v0_20;
}
}
}
Lcom/b/a/f;.close()V {
public final void close()
{
try {
if (this.c != null) {
this.c = 0;
this.b.close();
}
} catch (java.io.InputStream v0_3) {
throw v0_3;
}
return;
}
}
Lcom/b/a/g;.<clinit>()V {
static g()
{
com.b.a.g.a = java.nio.charset.Charset.forName("US-ASCII");
com.b.a.g.b = java.nio.charset.Charset.forName("UTF-8");
return;
}
}
Lcom/b/a/g;.a(Ljava/io/Closeable;)V {
static void a(java.io.Closeable p1)
{
if (p1 != null) {
try {
p1.close();
} catch (Exception v0) {
throw v0;
} catch (Exception v0) {
}
}
return;
}
}
Lcom/b/a/g;.a(Ljava/io/File;)V {
static void a(java.io.File p5)
{
String v1_0 = p5.listFiles();
if (v1_0 != null) {
String v2_0 = v1_0.length;
int v0_0 = 0;
while (v0_0 < v2_0) {
String v3 = v1_0[v0_0];
if (v3.isDirectory()) {
com.b.a.g.a(v3);
}
if (v3.delete()) {
v0_0++;
} else {
throw new java.io.IOException(new StringBuilder("failed to delete file: ").append(v3).toString());
}
}
return;
} else {
throw new java.io.IOException(new StringBuilder("not a readable directory: ").append(p5).toString());
}
}
}
Lcom/c/a;.<init>(Ljava/lang/String; Ljava/lang/String;)V {
public a(String p4, String p5)
{
this.a = new javax.crypto.spec.IvParameterSpec(p5.getBytes());
this.b = new javax.crypto.spec.SecretKeySpec(p4.getBytes(), "AES");
try {
this.c = javax.crypto.Cipher.getInstance("AES/CBC/NoPadding");
} catch (javax.crypto.NoSuchPaddingException v0_7) {
v0_7.printStackTrace();
} catch (javax.crypto.NoSuchPaddingException v0_6) {
v0_6.printStackTrace();
}
return;
}
}
Lcom/c/a;.a([B)Ljava/lang/String; {
public static String a(byte[] p6)
{
String v0_1;
if (p6 != null) {
int v2 = p6.length;
v0_1 = "";
int v1_1 = 0;
while (v1_1 < v2) {
if ((p6[v1_1] & 255) >= 16) {
v0_1 = new StringBuilder().append(v0_1).append(Integer.toHexString((p6[v1_1] & 255))).toString();
} else {
v0_1 = new StringBuilder().append(v0_1).append("0").append(Integer.toHexString((p6[v1_1] & 255))).toString();
}
v1_1++;
}
} else {
v0_1 = 0;
}
return v0_1;
}
}
Lcom/c/a;.b(Ljava/lang/String;)Ljava/lang/String; {
private static String b(String p4)
{
int v1 = (16 - (p4.length() % 16));
int v0_2 = 0;
while (v0_2 < v1) {
p4 = new StringBuilder().append(p4).append(32).toString();
v0_2++;
}
return p4;
}
}
Lcom/c/a;.a(Ljava/lang/String;)[B {
public final byte[] a(String p5)
{
if ((p5 != null) && (p5.length() != 0)) {
try {
this.c.init(1, this.b, this.a);
return this.c.doFinal(com.c.a.b(p5).getBytes());
} catch (String v0_4) {
throw new Exception(new StringBuilder("[encrypt] ").append(v0_4.getMessage()).toString());
}
} else {
throw new Exception("Empty string");
}
}
}
Lcom/c/b;.<clinit>()V {
static b()
{
com.c.b.d = 0;
return;
}
}
Lcom/c/b;.<init>(Landroid/content/Context; Lcom/c/g;)V {
public b(android.content.Context p4, com.c.g p5)
{
this.a = p4.getSharedPreferences("mat_queue", 0);
this.b = new java.util.concurrent.Semaphore(1, 1);
this.c = p5;
return;
}
}
Lcom/c/b;.a(J)J {
static synthetic long a(long p0)
{
com.c.b.d = p0;
return p0;
}
}
Lcom/c/b;.a(Lcom/c/b;)Ljava/util/concurrent/Semaphore; {
static synthetic java.util.concurrent.Semaphore a(com.c.b p1)
{
return p1.b;
}
}
Lcom/c/b;.b()J {
static synthetic long b()
{
return com.c.b.d;
}
}
Lcom/c/b;.b(Lcom/c/b;)Lcom/c/g; {
static synthetic com.c.g b(com.c.b p1)
{
return p1.c;
}
}
Lcom/c/b;.a()I {
protected final declared_synchronized int a()
{
try {
return this.a.getInt("queuesize", 0);
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/b;.a(I)V {
protected final declared_synchronized void a(int p3)
{
try {
Throwable v0_1 = this.a.edit();
} catch (Throwable v0_2) {
throw v0_2;
}
if (p3 < 0) {
p3 = 0;
}
v0_1.putInt("queuesize", p3);
v0_1.commit();
return;
}
}
Lcom/c/b;.a(Ljava/lang/String;)V {
protected final declared_synchronized void a(String p2)
{
try {
this.a((this.a() - 1));
Throwable v0_3 = this.a.edit();
v0_3.remove(p2);
v0_3.commit();
return;
} catch (Throwable v0_4) {
throw v0_4;
}
}
}
Lcom/c/b;.a(Lorg/json/JSONObject; Ljava/lang/String;)V {
protected final declared_synchronized void a(org.json.JSONObject p3, String p4)
{
try {
Throwable v0_1 = this.a.edit();
v0_1.putString(p4, p3.toString());
v0_1.commit();
return;
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/b;.b(Ljava/lang/String;)Ljava/lang/String; {
protected final declared_synchronized String b(String p3)
{
try {
return this.a.getString(p3, 0);
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/c;.<init>(Lcom/c/b; Ljava/lang/String; Ljava/lang/String; Lorg/json/JSONObject; Z)V {
protected c(com.c.b p2, String p3, String p4, org.json.JSONObject p5, boolean p6)
{
this.a = p2;
this.b = 0;
this.c = 0;
this.d = 0;
this.e = 0;
this.b = p3;
this.c = p4;
this.d = p5;
this.e = p6;
return;
}
}
Lcom/c/c;.run()V {
public final void run()
{
try {
com.c.b.a(this.a).acquire();
java.util.concurrent.Semaphore v0_3 = new org.json.JSONObject();
try {
v0_3.put("link", this.b);
v0_3.put("data", this.c);
v0_3.put("post_body", this.d);
v0_3.put("first_session", this.e);
} catch (java.util.concurrent.Semaphore v0_4) {
android.util.Log.w("MobileAppTracker", "Failed creating event for queueing");
v0_4.printStackTrace();
com.c.b.a(this.a).release();
return;
}
String v1_7 = (this.a.a() + 1);
this.a.a(v1_7);
this.a.a(v0_3, Integer.toString(v1_7));
com.c.b.a(this.a).release();
return;
} catch (java.util.concurrent.Semaphore v0_9) {
android.util.Log.w("MobileAppTracker", "Interrupted adding event to queue");
v0_9.printStackTrace();
com.c.b.a(this.a).release();
return;
} catch (java.util.concurrent.Semaphore v0_12) {
com.c.b.a(this.a).release();
throw v0_12;
}
}
}
Lcom/c/d;.<init>(Lcom/c/b;)V {
protected d(com.c.b p1)
{
this.a = p1;
return;
}
}
Lcom/c/d;.run()V {
public final void run()
{
int v3 = this.a.a();
if (v3 != 0) {
try {
com.c.b.a(this.a).acquire();
int v0_3 = 1;
} catch (int v0_15) {
com.c.b.a(this.a).release();
throw v0_15;
} catch (int v0_12) {
v0_12.printStackTrace();
com.c.b.a(this.a).release();
}
if (v3 > 50) {
v0_3 = ((v3 - 50) + 1);
}
while (v0_3 <= v3) {
long v4_0 = Integer.toString(v0_3);
String v5_0 = this.a.b(v4_0);
if (v5_0 == null) {
android.util.Log.d("MobileAppTracker", "Null request skipped from queue");
this.a.a(v4_0);
} else {
try {
org.json.JSONException v1_5 = new org.json.JSONObject(v5_0);
long v6_0 = v1_5.getString("link");
org.json.JSONObject v2_3 = v1_5.getString("data");
StringBuilder v7_1 = v1_5.getJSONObject("post_body");
} catch (int v0_7) {
v0_7.printStackTrace();
this.a.a(v4_0);
com.c.b.a(this.a).release();
return;
}
if (v1_5.getBoolean("first_session")) {
com.c.b.b(this.a);
try {
com.c.b.b(this.a).l.wait(60000);
} catch (int v0_11) {
throw v0_11;
}
}
if (com.c.b.b(this.a) == null) {
android.util.Log.d("MobileAppTracker", "Dropping queued request because no MAT object was found");
this.a.a(v4_0);
} else {
if (!com.c.b.b(this.a).a(v6_0, v2_3, v7_1)) {
v0_3--;
org.json.JSONObject v2_5 = v6_0.indexOf("&sdk_retry_attempt=");
if (v2_5 > null) {
org.json.JSONException v1_17 = -1;
StringBuilder v7_2 = (v2_5 + 19);
org.json.JSONObject v2_6 = (v7_2 + 1);
try {
while(true) {
try {
v1_17 = Integer.parseInt(v6_0.substring(v7_2, v2_6));
v2_6++;
} catch (org.json.JSONObject v2) {
org.json.JSONException v1_21 = v6_0.replaceFirst("&sdk_retry_attempt=\\d+", new StringBuilder("&sdk_retry_attempt=").append((v1_17 + 1)).toString());
try {
org.json.JSONObject v2_9 = new org.json.JSONObject(v5_0);
v2_9.put("link", v1_21);
this.a.a(v2_9, v4_0);
} catch (org.json.JSONException v1_23) {
v1_23.printStackTrace();
}
}
}
} catch (org.json.JSONObject v2) {
}
}
if (com.c.b.b() != 0) {
if (com.c.b.b() > 30) {
if (com.c.b.b() > 90) {
if (com.c.b.b() > 600) {
if (com.c.b.b() > 3600) {
com.c.b.a(86400);
} else {
com.c.b.a(21600);
}
} else {
com.c.b.a(3600);
}
} else {
com.c.b.a(600);
}
} else {
com.c.b.a(90);
}
} else {
com.c.b.a(30);
}
try {
Thread.sleep(((long) (((1.0 + (0.1 * Math.random())) * ((double) com.c.b.b())) * 1000.0)));
} catch (org.json.JSONException v1) {
}
} else {
this.a.a(v4_0);
com.c.b.a(0);
}
}
}
v0_3++;
}
com.c.b.a(this.a).release();
}
return;
}
}
Lcom/c/g;.<clinit>()V {
static g()
{
com.c.g.t = 0;
return;
}
}
Lcom/c/g;.<init>()V {
protected g()
{
this.o = "heF9BATUfWuISyO8";
return;
}
}
Lcom/c/g;.a()Lcom/c/g; {
public static declared_synchronized com.c.g a()
{
try {
return com.c.g.t;
} catch (Throwable v1_1) {
throw v1_1;
}
}
}
Lcom/c/g;.a(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V {
public static void a(android.content.Context p2, String p3, String p4)
{
void v0_1 = new com.c.g();
com.c.g.t = v0_1;
v0_1.k = p2.getApplicationContext();
com.c.g.t.m = java.util.concurrent.Executors.newSingleThreadExecutor();
com.c.g.t.a(p3, p4);
return;
}
}
Lcom/c/g;.a(Lcom/c/g; Ljava/lang/Object; Ljava/lang/String; Ljava/lang/String;)V {
static synthetic void a(com.c.g p0, Object p1, String p2, String p3)
{
p0.a(p1, p2, p3);
return;
}
}
Lcom/c/g;.a(Ljava/lang/Object; Ljava/lang/String; Ljava/lang/String;)V {
private declared_synchronized void a(Object p7, String p8, String p9)
{
try {
if (this.d) {
this.b();
this.j.a("conversion");
com.c.h v0_3 = new java.util.Date();
if (!(p7 instanceof String)) {
if (!(p7 instanceof Integer)) {
android.util.Log.d("MobileAppTracker", "Received invalid event name or id value, not measuring event");
} else {
this.j.c(Integer.toString(((Integer) p7).intValue()));
}
} else {
if (p7.equals("close")) {
} else {
if ((!p7.equals("open")) && ((!p7.equals("install")) && ((!p7.equals("update")) && (!p7.equals("session"))))) {
this.j.d(((String) p7));
} else {
this.j.a("session");
new java.util.Date((v0_3.getTime() + 60000));
}
}
}
this.j.m(Double.toString(0));
this.j.b(p8);
this.j.l(p9);
com.c.h v0_12 = com.c.m.a(this.r, this.s);
boolean v1_19 = com.c.m.a();
org.json.JSONObject v2_4 = com.c.m.b();
if (this.b != null) {
}
this.a(v0_12, v1_19, v2_4, this.g);
this.g = 0;
this.b();
if (this.a != null) {
}
this.j.b();
}
} catch (com.c.h v0_15) {
throw v0_15;
}
return;
}
}
Lcom/c/g;.a(Ljava/lang/String; Ljava/lang/String;)V {
private void a(String p6, String p7)
{
com.c.h.a(this.k, p6);
this.j = com.c.h.a();
this.l = java.util.concurrent.Executors.newSingleThreadExecutor();
this.p = new com.c.r();
this.q = new com.c.a(p7.trim(), "heF9BATUfWuISyO8");
this.g = 1;
this.d = 0;
this.c = 0;
this.r = 0;
this.s = 0;
this.n = new com.c.b(this.k, this);
this.b();
this.i = new com.c.s(this);
if (this.c) {
try {
this.k.unregisterReceiver(this.i);
} catch (IllegalArgumentException v0) {
}
this.c = 0;
}
this.k.registerReceiver(this.i, new android.content.IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));
this.c = 1;
this.d = 1;
return;
}
}
Lcom/c/g;.a(Ljava/lang/String; Ljava/lang/String; Lorg/json/JSONObject; Z)V {
private void a(String p8, String p9, org.json.JSONObject p10, boolean p11)
{
java.util.concurrent.ExecutorService v6 = this.l;
com.c.b v1 = this.n;
v1.getClass();
v6.execute(new com.c.c(v1, p8, p9, p10, p11));
return;
}
}
Lcom/c/g;.a(Landroid/content/Context;)Z {
private static boolean a(android.content.Context p1)
{
int v0_5;
int v0_3 = ((android.net.ConnectivityManager) p1.getSystemService("connectivity")).getActiveNetworkInfo();
if ((v0_3 == 0) || (!v0_3.isConnected())) {
v0_5 = 0;
} else {
v0_5 = 1;
}
return v0_5;
}
}
Lcom/c/g;.a(Lcom/c/g; Z)Z {
static synthetic boolean a(com.c.g p0, boolean p1)
{
p0.r = p1;
return p1;
}
}
Lcom/c/g;.a(Ljava/lang/String;)V {
public final void a(String p3)
{
this.m.execute(new com.c.u(this, p3));
return;
}
}
Lcom/c/g;.a(Ljava/lang/String; Z)V {
public final void a(String p4, boolean p5)
{
int v0;
if (!p5) {
v0 = 0;
} else {
v0 = 1;
}
this.m.execute(new com.c.j(this, p4, v0));
return;
}
}
Lcom/c/g;.a(Z)V {
public final void a(boolean p3)
{
this.m.execute(new com.c.i(this, p3));
return;
}
}
Lcom/c/g;.a(Ljava/lang/String; Ljava/lang/String; Lorg/json/JSONObject;)Z {
protected final boolean a(String p6, String p7, org.json.JSONObject p8)
{
boolean v1_0 = 1;
com.c.e v0_0 = 0;
if (this.r) {
android.util.Log.d("MobileAppTracker", "Sending event to server...");
}
com.c.h v2_6 = this.p.a(new StringBuilder().append(p6).append("&data=").append(com.c.m.a(p7, this.q)).toString(), p8, this.r);
if (v2_6 != null) {
if (v2_6.has("success")) {
if (this.a != null) {
try {
if (v2_6.getString("success").equals("true")) {
v0_0 = 1;
}
} catch (boolean v1_1) {
v1_1.printStackTrace();
v1_0 = 0;
return v1_0;
}
// Both branches of the condition point to the same code.
// if (v0_0 == null) {
// }
}
try {
if (v2_6.getString("site_event_type").equals("open")) {
com.c.e v0_5 = v2_6.getString("log_id");
if (this.j.ac().equals("")) {
this.j.j(v0_5);
}
this.j.i(v0_5);
}
} catch (com.c.e v0) {
}
} else {
if (this.r) {
android.util.Log.d("MobileAppTracker", "Request failed, event will remain in queue");
}
v1_0 = 0;
}
} else {
// Both branches of the condition point to the same code.
// if (this.a == null) {
// }
}
return v1_0;
}
}
Lcom/c/g;.b()V {
protected final void b()
{
if (com.c.g.a(this.k)) {
java.util.concurrent.ExecutorService v0_2 = this.l;
com.c.b v2 = this.n;
v2.getClass();
v0_2.execute(new com.c.d(v2));
}
return;
}
}
Lcom/c/g;.b(Ljava/lang/String;)V {
public final void b(String p3)
{
this.m.execute(new com.c.k(this, p3));
return;
}
}
Lcom/c/g;.c()V {
public final void c()
{
this.m.execute(new com.c.t(this));
return;
}
}
Lcom/c/g;.c(Ljava/lang/String;)V {
public final void c(String p3)
{
this.m.execute(new com.c.l(this, p3));
return;
}
}
Lcom/c/g;.d()Ljava/lang/String; {
public final String d()
{
return this.j.n();
}
}
Lcom/c/g;.d(Ljava/lang/String;)V {
public final void d(String p3)
{
this.m.execute(new com.c.n(this, p3));
return;
}
}
Lcom/c/g;.e()Ljava/lang/String; {
public final String e()
{
return this.j.aj();
}
}
Lcom/c/g;.e(Ljava/lang/String;)V {
public final void e(String p3)
{
this.m.execute(new com.c.o(this, p3));
return;
}
}
Lcom/c/g;.f()V {
public final void f()
{
this.m.execute(new com.c.p(this));
return;
}
}
Lcom/c/h;.<clinit>()V {
static h()
{
com.c.h.b = 0;
return;
}
}
Lcom/c/h;.<init>()V {
public h()
{
this.c = 0;
this.d = 0;
this.e = 0;
this.f = 0;
this.g = 0;
this.h = 0;
this.i = 0;
this.j = 0;
this.k = 0;
this.l = 0;
this.m = 0;
this.n = 0;
this.o = 0;
this.p = 0;
this.q = 0;
this.r = 0;
this.s = 0;
this.t = 0;
this.u = 0;
this.v = 0;
this.w = 0;
this.x = 0;
this.y = 0;
this.z = 0;
this.A = 0;
this.B = 0;
this.C = 0;
this.D = 0;
this.E = 0;
this.F = 0;
this.G = 0;
this.H = 0;
this.I = 0;
this.J = 0;
this.K = 0;
this.L = 0;
this.M = 0;
this.N = 0;
this.O = 0;
this.P = 0;
this.Q = 0;
this.R = 0;
this.S = 0;
this.T = 0;
this.U = 0;
this.V = 0;
this.W = 0;
this.X = 0;
this.Y = 0;
this.Z = 0;
this.aa = 0;
this.ab = 0;
this.ac = 0;
this.ad = 0;
this.ae = 0;
this.af = 0;
this.ag = 0;
this.ah = 0;
this.ai = 0;
this.aj = 0;
this.ak = 0;
this.al = 0;
this.am = 0;
this.an = 0;
this.ao = 0;
this.ap = 0;
this.aq = 0;
this.ar = 0;
this.as = 0;
this.at = 0;
this.au = 0;
this.av = 0;
this.aw = 0;
this.ax = 0;
this.ay = 0;
this.az = 0;
this.aA = 0;
this.aB = 0;
this.aC = 0;
this.aD = 0;
this.aE = 0;
this.aF = 0;
this.aG = 0;
this.aH = 0;
return;
}
}
Lcom/c/h;.A(Ljava/lang/String;)V {
private declared_synchronized void A(String p2)
{
try {
this.R = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.B(Ljava/lang/String;)V {
private declared_synchronized void B(String p3)
{
try {
this.a("mat_id", "mat_id", p3);
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.C(Ljava/lang/String;)V {
private declared_synchronized void C(String p2)
{
try {
this.W = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.D(Ljava/lang/String;)V {
private declared_synchronized void D(String p2)
{
try {
this.X = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.E(Ljava/lang/String;)V {
private declared_synchronized void E(String p2)
{
try {
this.Y = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.F(Ljava/lang/String;)V {
private declared_synchronized void F(String p2)
{
try {
this.ag = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.G(Ljava/lang/String;)V {
private declared_synchronized void G(String p2)
{
try {
this.ah = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.H(Ljava/lang/String;)V {
private declared_synchronized void H(String p2)
{
try {
this.ai = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.a()Lcom/c/h; {
public static com.c.h a()
{
return com.c.h.b;
}
}
Lcom/c/h;.a(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String; {
private declared_synchronized String a(String p3, String p4)
{
try {
return this.a.getSharedPreferences(p3, 0).getString(p4, "");
} catch (Throwable v0_3) {
throw v0_3;
}
}
}
Lcom/c/h;.a(Landroid/content/Context; Ljava/lang/String;)V {
public static void a(android.content.Context p1, String p2)
{
if (com.c.h.b == null) {
com.c.h v0_2 = new com.c.h();
com.c.h.b = v0_2;
v0_2.a = p1;
com.c.h.b.b(p1, p2);
}
return;
}
}
Lcom/c/h;.a(Lcom/c/h; Ljava/lang/String;)V {
static synthetic void a(com.c.h p0, String p1)
{
p0.an = p1;
return;
}
}
Lcom/c/h;.a(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V {
private declared_synchronized void a(String p3, String p4, String p5)
{
try {
this.a.getSharedPreferences(p3, 0).edit().putString(p4, p5).commit();
return;
} catch (Throwable v0_4) {
throw v0_4;
}
}
}
Lcom/c/h;.aS()V {
private declared_synchronized void aS()
{
try {
this.u = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aT()V {
private declared_synchronized void aT()
{
try {
this.v = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aU()V {
private declared_synchronized void aU()
{
try {
this.w = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aV()V {
private declared_synchronized void aV()
{
try {
this.x = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aW()V {
private declared_synchronized void aW()
{
try {
this.y = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aX()V {
private declared_synchronized void aX()
{
try {
this.z = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aY()V {
private declared_synchronized void aY()
{
try {
this.A = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aZ()V {
private declared_synchronized void aZ()
{
try {
this.B = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.b(Landroid/content/Context; Ljava/lang/String;)Z {
private declared_synchronized boolean b(android.content.Context p9, String p10)
{
try {
this.p(p10.trim());
this.b("USD");
new android.os.Handler(android.os.Looper.getMainLooper()).post(new com.c.q(this, this.a));
IndexOutOfBoundsException v0_5 = this.a.getPackageName();
this.k(v0_5);
String v3_4 = this.a.getPackageManager();
try {
this.q(v3_4.getApplicationLabel(v3_4.getApplicationInfo(v0_5, 0)).toString());
this.y(Long.toString((new java.util.Date(new java.io.File(v3_4.getApplicationInfo(v0_5, 0).sourceDir).lastModified()).getTime() / 1000)));
} catch (int v4) {
}
try {
this.r(Integer.toString(v3_4.getPackageInfo(v0_5, 0).versionCode));
} catch (int v4) {
this.r("0");
}
String v3_7;
IndexOutOfBoundsException v0_20;
this.z(v3_4.getInstallerPackageName(v0_5));
this.x(android.os.Build.MODEL);
this.u(android.os.Build.MANUFACTURER);
this.w(System.getProperty("os.arch"));
this.E(android.os.Build$VERSION.RELEASE);
this.F(Float.toString(p9.getResources().getDisplayMetrics().density));
IndexOutOfBoundsException v0_18 = ((android.view.WindowManager) p9.getSystemService("window"));
if (android.os.Build$VERSION.SDK_INT < 13) {
v3_7 = v0_18.getDefaultDisplay().getWidth();
v0_20 = v0_18.getDefaultDisplay().getHeight();
} else {
int v4_19 = new android.graphics.Point();
v0_18.getDefaultDisplay().getSize(v4_19);
v3_7 = v4_19.x;
v0_20 = v4_19.y;
}
this.H(Integer.toString(v3_7));
this.G(Integer.toString(v0_20));
if (!((android.net.ConnectivityManager) this.a.getSystemService("connectivity")).getNetworkInfo(1).isConnected()) {
this.s("mobile");
} else {
this.s("WIFI");
}
this.A(java.util.Locale.getDefault().getDisplayLanguage(java.util.Locale.US));
IndexOutOfBoundsException v0_34 = ((android.telephony.TelephonyManager) this.a.getSystemService("phone"));
if (v0_34 == null) {
this.t(java.util.Locale.getDefault().getCountry());
} else {
if (v0_34.getNetworkCountryIso() != null) {
this.t(v0_34.getNetworkCountryIso());
}
this.v(v0_34.getNetworkOperatorName());
IndexOutOfBoundsException v0_37 = v0_34.getNetworkOperator();
if (v0_37 != null) {
try {
String v3_17 = v0_37.substring(0, 3);
IndexOutOfBoundsException v0_38 = v0_37.substring(3);
this.C(v3_17);
this.D(v0_38);
} catch (IndexOutOfBoundsException v0) {
}
}
}
IndexOutOfBoundsException v0_39 = this.Z();
if ((v0_39 == null) || (v0_39.length() == 0)) {
this.B(java.util.UUID.randomUUID().toString());
}
IndexOutOfBoundsException v0_44 = 1;
return v0_44;
} catch (IndexOutOfBoundsException v0_45) {
throw v0_45;
} catch (IndexOutOfBoundsException v0_43) {
android.util.Log.d("MobileAppTracker", "MobileAppTracker initialization failed");
v0_43.printStackTrace();
v0_44 = 0;
return v0_44;
}
}
}
Lcom/c/h;.ba()V {
private declared_synchronized void ba()
{
try {
this.C = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bb()V {
private declared_synchronized void bb()
{
try {
this.E = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bc()V {
private declared_synchronized void bc()
{
try {
this.G = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bd()V {
private declared_synchronized void bd()
{
try {
this.H = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.be()V {
private declared_synchronized void be()
{
try {
this.I = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bf()V {
private declared_synchronized void bf()
{
try {
this.ao = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bg()V {
private declared_synchronized void bg()
{
try {
this.ap = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bh()V {
private declared_synchronized void bh()
{
try {
this.aq = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bi()V {
private declared_synchronized void bi()
{
try {
this.ar = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bj()V {
private declared_synchronized void bj()
{
try {
this.as = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bk()V {
private declared_synchronized void bk()
{
try {
this.at = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bl()V {
private declared_synchronized void bl()
{
try {
this.au = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bm()V {
private declared_synchronized void bm()
{
try {
this.av = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bn()V {
private declared_synchronized void bn()
{
try {
this.aw = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bo()V {
private declared_synchronized void bo()
{
try {
this.ax = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bp()V {
private declared_synchronized void bp()
{
try {
this.ay = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bq()V {
private declared_synchronized void bq()
{
try {
this.az = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.br()V {
private declared_synchronized void br()
{
try {
this.aA = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bs()V {
private declared_synchronized void bs()
{
try {
this.aB = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bt()V {
private declared_synchronized void bt()
{
try {
this.aC = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bu()V {
private declared_synchronized void bu()
{
try {
this.aD = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bv()V {
private declared_synchronized void bv()
{
try {
this.aE = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bw()V {
private declared_synchronized void bw()
{
try {
this.aF = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.bx()V {
private declared_synchronized void bx()
{
try {
this.aG = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.by()V {
private declared_synchronized void by()
{
try {
this.aH = 0;
return;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.p(Ljava/lang/String;)V {
private declared_synchronized void p(String p2)
{
try {
this.d = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.q(Ljava/lang/String;)V {
private declared_synchronized void q(String p2)
{
try {
this.j = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.r(Ljava/lang/String;)V {
private declared_synchronized void r(String p2)
{
try {
this.k = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.s(Ljava/lang/String;)V {
private declared_synchronized void s(String p2)
{
try {
this.l = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.t(Ljava/lang/String;)V {
private declared_synchronized void t(String p2)
{
try {
this.m = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.u(Ljava/lang/String;)V {
private declared_synchronized void u(String p2)
{
try {
this.o = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.v(Ljava/lang/String;)V {
private declared_synchronized void v(String p2)
{
try {
this.p = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.w(Ljava/lang/String;)V {
private declared_synchronized void w(String p2)
{
try {
this.q = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.x(Ljava/lang/String;)V {
private declared_synchronized void x(String p2)
{
try {
this.t = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.y(Ljava/lang/String;)V {
private declared_synchronized void y(String p2)
{
try {
this.P = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.z(Ljava/lang/String;)V {
private declared_synchronized void z(String p2)
{
try {
this.Q = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.A()Ljava/lang/String; {
public final declared_synchronized String A()
{
try {
return this.A;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.B()Ljava/lang/String; {
public final declared_synchronized String B()
{
try {
return this.B;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.C()Ljava/lang/String; {
public final declared_synchronized String C()
{
try {
return this.C;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.D()Ljava/lang/String; {
public final declared_synchronized String D()
{
try {
return this.D;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.E()Ljava/lang/String; {
public final declared_synchronized String E()
{
try {
return this.E;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.F()Ljava/lang/String; {
public final declared_synchronized String F()
{
try {
return this.F;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.G()Ljava/lang/String; {
public final declared_synchronized String G()
{
try {
return this.G;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.H()Ljava/lang/String; {
public final declared_synchronized String H()
{
try {
return this.H;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.I()Ljava/lang/String; {
public final declared_synchronized String I()
{
try {
return this.I;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.J()Ljava/lang/String; {
public final declared_synchronized String J()
{
try {
return this.J;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.K()Ljava/lang/String; {
public final declared_synchronized String K()
{
try {
return this.K;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.L()Ljava/lang/String; {
public final declared_synchronized String L()
{
try {
return this.L;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.M()Ljava/lang/String; {
public final declared_synchronized String M()
{
try {
return this.M;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.N()Ljava/lang/String; {
public final declared_synchronized String N()
{
try {
return this.N;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.O()Ljava/lang/String; {
public final declared_synchronized String O()
{
try {
return this.O;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.P()Ljava/lang/String; {
public final declared_synchronized String P()
{
try {
return this.P;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.Q()Ljava/lang/String; {
public final declared_synchronized String Q()
{
try {
return this.Q;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.R()Ljava/lang/String; {
public final declared_synchronized String R()
{
try {
return this.a("mat_log_id_install", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.S()Ljava/lang/String; {
public final declared_synchronized String S()
{
try {
return this.a("mat_referrer", "referrer");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.T()Ljava/lang/String; {
public final declared_synchronized String T()
{
try {
return this.a("mat_is_paying_user", "mat_is_paying_user");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.U()Ljava/lang/String; {
public final declared_synchronized String U()
{
try {
return this.R;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.V()Ljava/lang/String; {
public final declared_synchronized String V()
{
try {
return this.a("mat_log_id_last_open", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.W()Ljava/lang/String; {
public final declared_synchronized String W()
{
try {
return this.S;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.X()Ljava/lang/String; {
public final declared_synchronized String X()
{
try {
return this.U;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.Y()Ljava/lang/String; {
public final declared_synchronized String Y()
{
try {
return this.V;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.Z()Ljava/lang/String; {
public final declared_synchronized String Z()
{
try {
return this.a("mat_id", "mat_id");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.a(Ljava/lang/String;)V {
public final declared_synchronized void a(String p2)
{
try {
this.c = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.aA()Ljava/lang/String; {
public final declared_synchronized String aA()
{
try {
return this.aq;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aB()Ljava/lang/String; {
public final declared_synchronized String aB()
{
try {
return this.ar;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aC()Ljava/lang/String; {
public final declared_synchronized String aC()
{
try {
return this.as;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aD()Ljava/lang/String; {
public final declared_synchronized String aD()
{
try {
return this.at;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aE()Ljava/lang/String; {
public final declared_synchronized String aE()
{
try {
return this.au;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aF()Ljava/lang/String; {
public final declared_synchronized String aF()
{
try {
return this.av;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aG()Ljava/lang/String; {
public final declared_synchronized String aG()
{
try {
return this.aw;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aH()Ljava/lang/String; {
public final declared_synchronized String aH()
{
try {
return this.ax;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aI()Ljava/lang/String; {
public final declared_synchronized String aI()
{
try {
return this.ay;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aJ()Ljava/lang/String; {
public final declared_synchronized String aJ()
{
try {
return this.az;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aK()Ljava/lang/String; {
public final declared_synchronized String aK()
{
try {
return this.aA;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aL()Ljava/lang/String; {
public final declared_synchronized String aL()
{
try {
return this.aB;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aM()Ljava/lang/String; {
public final declared_synchronized String aM()
{
try {
return this.aC;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aN()Ljava/lang/String; {
public final declared_synchronized String aN()
{
try {
return this.aD;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aO()Ljava/lang/String; {
public final declared_synchronized String aO()
{
try {
return this.aE;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aP()Ljava/lang/String; {
public final declared_synchronized String aP()
{
try {
return this.aF;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aQ()Ljava/lang/String; {
public final declared_synchronized String aQ()
{
try {
return this.aG;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aR()Ljava/lang/String; {
public final declared_synchronized String aR()
{
try {
return this.aH;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aa()Ljava/lang/String; {
public final declared_synchronized String aa()
{
try {
return this.W;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ab()Ljava/lang/String; {
public final declared_synchronized String ab()
{
try {
return this.X;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ac()Ljava/lang/String; {
public final declared_synchronized String ac()
{
try {
return this.a("mat_log_id_open", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.ad()Ljava/lang/String; {
public final declared_synchronized String ad()
{
try {
return this.Y;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ae()Ljava/lang/String; {
public final declared_synchronized String ae()
{
try {
return this.Z;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.af()Ljava/lang/String; {
public final declared_synchronized String af()
{
try {
return this.aa;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ag()Ljava/lang/String; {
public final declared_synchronized String ag()
{
try {
return this.ab;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ah()Ljava/lang/String; {
public final declared_synchronized String ah()
{
try {
return this.ac;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ai()Ljava/lang/String; {
public final declared_synchronized String ai()
{
try {
return this.ad;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aj()Ljava/lang/String; {
public final declared_synchronized String aj()
{
try {
return this.ae;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ak()Ljava/lang/String; {
public final declared_synchronized String ak()
{
try {
return this.af;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.al()Ljava/lang/String; {
public final declared_synchronized String al()
{
try {
return this.ag;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.am()Ljava/lang/String; {
public final declared_synchronized String am()
{
try {
return this.ah;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.an()Ljava/lang/String; {
public final declared_synchronized String an()
{
try {
return this.ai;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ao()Ljava/lang/String; {
public final declared_synchronized String ao()
{
try {
return "3.4.2";
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ap()Ljava/lang/String; {
public final declared_synchronized String ap()
{
try {
return this.aj;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.aq()Ljava/lang/String; {
public final declared_synchronized String aq()
{
try {
return this.ak;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.ar()Ljava/lang/String; {
public final declared_synchronized String ar()
{
try {
return this.al;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.as()Ljava/lang/String; {
public final declared_synchronized String as()
{
try {
return this.am;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.at()Ljava/lang/String; {
public final declared_synchronized String at()
{
try {
return this.a("mat_log_id_update", "logId");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.au()Ljava/lang/String; {
public final declared_synchronized String au()
{
try {
return this.an;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.av()Ljava/lang/String; {
public final declared_synchronized String av()
{
try {
return this.a("mat_user_ids", "user_email");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.aw()Ljava/lang/String; {
public final declared_synchronized String aw()
{
try {
return this.a("mat_user_ids", "user_id");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.ax()Ljava/lang/String; {
public final declared_synchronized String ax()
{
try {
return this.a("mat_user_ids", "user_name");
} catch (Throwable v0_2) {
throw v0_2;
}
}
}
Lcom/c/h;.ay()Ljava/lang/String; {
public final declared_synchronized String ay()
{
try {
return this.ao;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.az()Ljava/lang/String; {
public final declared_synchronized String az()
{
try {
return this.ap;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.b()V {
public final declared_synchronized void b()
{
try {
this.c(0);
this.d(0);
this.m(0);
this.b("USD");
this.l(0);
this.aY();
this.aX();
this.bb();
this.bc();
this.be();
this.bd();
this.aZ();
this.ba();
this.aS();
this.aT();
this.aU();
this.aV();
this.aW();
this.bg();
this.bf();
this.bh();
this.bu();
this.bv();
this.bw();
this.bx();
this.by();
this.bs();
this.br();
this.bq();
this.bt();
this.bo();
this.bp();
this.bm();
this.bl();
this.bk();
this.bn();
this.bi();
this.bj();
return;
} catch (Throwable v0_5) {
throw v0_5;
}
}
}
Lcom/c/h;.b(Ljava/lang/String;)V {
public final declared_synchronized void b(String p2)
{
try {
this.n = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.c()Ljava/lang/String; {
public final declared_synchronized String c()
{
try {
return this.c;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.c(Ljava/lang/String;)V {
public final declared_synchronized void c(String p2)
{
try {
this.D = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.d()Ljava/lang/String; {
public final declared_synchronized String d()
{
try {
return this.d;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.d(Ljava/lang/String;)V {
public final declared_synchronized void d(String p2)
{
try {
this.F = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.e()Ljava/lang/String; {
public final declared_synchronized String e()
{
try {
return this.e;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.e(Ljava/lang/String;)V {
public final declared_synchronized void e(String p2)
{
try {
this.J = p2;
return;
} catch (Throwable v0) {
throw v0;
}
}
}
Lcom/c/h;.f()Ljava/lang/String; {
public final declared_synchronized String f()
{
try {
return this.f;
} catch (Throwable v0_1) {
throw v0_1;
}
}
}
Lcom/c/h;.f(Ljava/lang/String;)V {
public final declar
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androguard.decompiler.dad import decompile
from androlyze.model.script.AndroScript import AndroScript
class DecompileMethodsText(AndroScript):
''' Get the source code from the apk for each method. '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
# CFG
for method in dalvik_vm_format.get_methods():
try:
mx = vm_analysis.get_method(method)
if method.get_code() == None:
continue
classname, methodname, method_descriptor = method.get_class_name(), method.get_name(), method.get_descriptor()
# skip android classes due to mongo db document limit
if classname.find("Landroid") != -1:
continue
ms = decompile.DvMethod(mx)
# process to the decompilation
ms.process()
self.cres += '''%s.%s%s {
%s
}
''' % (classname, methodname, method_descriptor, ms.get_source())
except:
pass
def custom_result_object(self):
return ("", "java")
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True
Files¶
This is an autogenerated documentation file for the script: Files
Run it¶
$ ./androanalyze scripts_builtin/Files.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Files -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Files",
"sha256": "858b0feb41ffb5f871926a22f868d3cb248916aeaa86e1f6405841846a5b00e7",
"analysis date": "2015-06-22T20:29:33.561000",
"version": "0.1"
},
"files": [
"META-INF/MANIFEST.MF",
"META-INF/RELEASE.SF",
"META-INF/RELEASE.RSA",
"META-INF/services/com.fasterxml.jackson.core.ObjectCodec",
"AndroidManifest.xml",
"assets/ProximaNova-Regular.otf",
"assets/ProximaNova-RegularT100.otf",
"assets/ProximaNova-RegularT50.otf",
"assets/ProximaNova-SemiBold.otf",
"assets/ProximaNova-SemiBoldT100.otf",
"assets/ProximaNova-SemiBoldT50.otf",
"assets/crashlytics-build.properties",
"assets/licenses.xhtml",
"assets/spoticon.ttf",
"assets/transfer.png",
"assets/unplaylable-local-file.xhtml",
"assets/unplaylable-local-file_es.xhtml",
"assets/unplaylable-local-file_fr.xhtml",
"res/anim/abc_fade_in.xml",
"res/anim/abc_fade_out.xml",
"res/anim/abc_slide_in_bottom.xml",
"res/anim/abc_slide_in_top.xml",
"res/anim/abc_slide_out_bottom.xml",
"res/anim/abc_slide_out_top.xml",
"res/anim/anim_in_left.xml",
"res/anim/anim_in_right.xml",
"res/anim/anim_out_left.xml",
"res/anim/anim_out_right.xml",
"res/anim/anim_scale_down_play_button.xml",
"res/anim/anim_scale_up_play_button.xml",
"res/anim/button_transition_in.xml",
"res/anim/button_transition_out.xml",
"res/color/abc_background_cache_hint_selector_material_dark.xml",
"res/color/abc_background_cache_hint_selector_material_light.xml",
"res/color/abc_primary_text_disable_only_material_dark.xml",
"res/color/abc_primary_text_disable_only_material_light.xml",
"res/color/abc_primary_text_material_dark.xml",
"res/color/abc_primary_text_material_light.xml",
"res/color/abc_search_url_text.xml",
"res/color/abc_secondary_text_material_dark.xml",
"res/color/abc_secondary_text_material_light.xml",
"res/color/btn_now_playing_gray.xml",
"res/color/btn_now_playing_gray_checkable.xml",
"res/color/btn_now_playing_gray_disabled.xml",
"res/color/btn_now_playing_thumb_down.xml",
"res/color/btn_now_playing_thumb_up.xml",
"res/color/btn_now_playing_white.xml",
"res/color/btn_share_connect_icon.xml",
"res/color/cat_accessory.xml",
"res/color/cat_button_border.xml",
"res/color/cat_button_info_dialog_text.xml",
"res/color/cat_button_info_text.xml",
"res/color/cat_button_primary_text.xml",
"res/color/cat_button_text.xml",
"res/color/cat_dialog_button_negative_text.xml",
"res/color/cat_dialog_button_positive_text.xml",
"res/color/cat_navigationitem_icon.xml",
"res/color/cat_navigationitem_text.xml",
"res/color/cat_profile_panel.xml",
"res/color/cat_signup_panel.xml",
"res/color/cat_tab_text.xml",
"res/color/cat_text_primary.xml",
"res/color/cat_text_primary_muted.xml",
"res/color/cat_text_secondary.xml",
"res/color/cat_text_secondary_muted.xml",
"res/color/common_signin_btn_text_dark.xml",
"res/color/common_signin_btn_text_light.xml",
"res/color/txt_btn_facebook.xml",
"res/color/txt_button_light.xml",
"res/color/txt_cell_cover_subtitle.xml",
"res/color/txt_cell_cover_title.xml",
"res/color/txt_cell_navigation.xml",
"res/color/txt_cell_queue_subtitle.xml",
"res/color/txt_cell_queue_title.xml",
"res/color/txt_cell_subtitle.xml",
"res/color/txt_cell_title.xml",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-hdpi-v4/album_covers_splash.png",
"res/drawable-hdpi-v4/background_icon.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_focused.9.png",
"res/drawable-hdpi-v4/bg_actionbar_tab_pressed.9.png",
"res/drawable-hdpi-v4/bg_bubble.9.png",
"res/drawable-hdpi-v4/bg_dark_albums.jpg",
"res/drawable-hdpi-v4/bg_header_placeholder.png",
"res/drawable-hdpi-v4/bg_holiday_offer_upsell_interstitial_top.png",
"res/drawable-hdpi-v4/bg_premium_upsell_interstitial_top.jpg",
"res/drawable-hdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-hdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_primary.9.png",
"res/drawable-hdpi-v4/btn_big_primary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_big_primary_pressed.9.png",
"res/drawable-hdpi-v4/btn_big_secondary_for_dark_bg.9.png",
"res/drawable-hdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-hdpi-v4/btn_facebook_normal.9.png",
"res/drawable-hdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-hdpi-v4/btn_g_icon.png",
"res/drawable-hdpi-v4/btn_overlay_pause.png",
"res/drawable-hdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-hdpi-v4/btn_overlay_play.png",
"res/drawable-hdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-hdpi-v4/btn_player_in_collection_checked.png",
"res/drawable-hdpi-v4/cat_navigation_background.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-hdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background.png",
"res/drawable-hdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-hdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-hdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-hdpi-v4/com_facebook_close.png",
"res/drawable-hdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-hdpi-v4/com_facebook_logo.png",
"res/drawable-hdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-hdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-hdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-hdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-hdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-hdpi-v4/common_full_open_on_phone.png",
"res/drawable-hdpi-v4/common_ic_googleplayservices.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-hdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-hdpi-v4/connect_device_type_computer.png",
"res/drawable-hdpi-v4/connect_device_type_receiver.png",
"res/drawable-hdpi-v4/connect_device_type_smartphone.png",
"res/drawable-hdpi-v4/connect_device_type_speaker.png",
"res/drawable-hdpi-v4/connect_device_type_tablet.png",
"res/drawable-hdpi-v4/connect_device_type_tv.png",
"res/drawable-hdpi-v4/connect_header_img.png",
"res/drawable-hdpi-v4/connect_showcase.png",
"res/drawable-hdpi-v4/fastscroll_default.png",
"res/drawable-hdpi-v4/fastscroll_pressed.png",
"res/drawable-hdpi-v4/genesis_new_releases.png",
"res/drawable-hdpi-v4/genesis_recommended_for_you.png",
"res/drawable-hdpi-v4/genesis_toplists.png",
"res/drawable-hdpi-v4/highlights.png",
"res/drawable-hdpi-v4/hlv_overscroll_edge.png",
"res/drawable-hdpi-v4/hlv_overscroll_glow.png",
"res/drawable-hdpi-v4/ic_action_navigation_menu.png",
"res/drawable-hdpi-v4/ic_menu_info_details.png",
"res/drawable-hdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-hdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-hdpi-v4/icn_add_to_collection.png",
"res/drawable-hdpi-v4/icn_add_to_playlist.png",
"res/drawable-hdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-hdpi-v4/icn_download_header_waiting.png",
"res/drawable-hdpi-v4/icn_download_waiting.png",
"res/drawable-hdpi-v4/icn_facebook.png",
"res/drawable-hdpi-v4/icn_mft_home_back.png",
"res/drawable-hdpi-v4/icn_mft_home_logo.png",
"res/drawable-hdpi-v4/icn_notification.png",
"res/drawable-hdpi-v4/icn_notification_add_to.png",
"res/drawable-hdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-hdpi-v4/icn_notification_dismiss.png",
"res/drawable-hdpi-v4/icn_notification_next_disabled.png",
"res/drawable-hdpi-v4/icn_notification_next_normal.png",
"res/drawable-hdpi-v4/icn_notification_pause_normal.png",
"res/drawable-hdpi-v4/icn_notification_play_normal.png",
"res/drawable-hdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-hdpi-v4/icn_notification_prev_normal.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-hdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-hdpi-v4/icn_playlist.png",
"res/drawable-hdpi-v4/icn_playlist_collaborative.png",
"res/drawable-hdpi-v4/icn_quickact_album.png",
"res/drawable-hdpi-v4/icn_quickact_artist.png",
"res/drawable-hdpi-v4/icn_quickact_delete.png",
"res/drawable-hdpi-v4/icn_quickact_queue.png",
"res/drawable-hdpi-v4/icn_quickact_radio.png",
"res/drawable-hdpi-v4/icn_quickact_share.png",
"res/drawable-hdpi-v4/icn_quickact_star.png",
"res/drawable-hdpi-v4/icn_radio.png",
"res/drawable-hdpi-v4/icn_radio_added_to_liked.png",
"res/drawable-hdpi-v4/icn_radio_checkmark.png",
"res/drawable-hdpi-v4/icn_radio_offline.png",
"res/drawable-hdpi-v4/icn_remove_from_collection.png",
"res/drawable-hdpi-v4/icn_share.png",
"res/drawable-hdpi-v4/icn_sort.png",
"res/drawable-hdpi-v4/icn_spotify_login.png",
"res/drawable-hdpi-v4/icon.png",
"res/drawable-hdpi-v4/img_spotify_logo_text.png",
"res/drawable-hdpi-v4/img_trial_started.png",
"res/drawable-hdpi-v4/logo_smaller.png",
"res/drawable-hdpi-v4/mft_home_background1.jpg",
"res/drawable-hdpi-v4/mft_home_background2.jpg",
"res/drawable-hdpi-v4/mft_home_background3.jpg",
"res/drawable-hdpi-v4/mobile_artist_concert_header.png",
"res/drawable-hdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-hdpi-v4/nav_icon.png",
"res/drawable-hdpi-v4/nav_icon_gray.png",
"res/drawable-hdpi-v4/notification_feature_announcement.jpg",
"res/drawable-hdpi-v4/powered_by_google_dark.png",
"res/drawable-hdpi-v4/powered_by_google_light.png",
"res/drawable-hdpi-v4/profile_panel_invitation_codes_panel.9.png",
"res/drawable-hdpi-v4/psn_icon.png",
"res/drawable-hdpi-v4/small_icon.png",
"res/drawable-hdpi-v4/socialchart_showcase.png",
"res/drawable-hdpi-v4/sp_logo.png",
"res/drawable-hdpi-v4/spinner_white.png",
"res/drawable-hdpi-v4/widget_bg.9.png",
"res/drawable-hdpi-v4/widget_next_disabled.png",
"res/drawable-hdpi-v4/widget_next_normal.png",
"res/drawable-hdpi-v4/widget_pause_disabled.png",
"res/drawable-hdpi-v4/widget_pause_normal.png",
"res/drawable-hdpi-v4/widget_play_disabled.png",
"res/drawable-hdpi-v4/widget_play_normal.png",
"res/drawable-hdpi-v4/widget_prev_disabled.png",
"res/drawable-hdpi-v4/widget_prev_normal.png",
"res/drawable-hdpi-v4/widget_preview.png",
"res/drawable-land-hdpi-v4/mft_home_background1.jpg",
"res/drawable-land-hdpi-v4/mft_home_background2.jpg",
"res/drawable-land-hdpi-v4/mft_home_background3.jpg",
"res/drawable-land-mdpi-v4/mft_home_background1.jpg",
"res/drawable-land-mdpi-v4/mft_home_background2.jpg",
"res/drawable-land-mdpi-v4/mft_home_background3.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-land-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-ldpi-v4/bg_header_placeholder.png",
"res/drawable-ldpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-ldpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-ldpi-v4/btn_facebook_disabled.9.png",
"res/drawable-ldpi-v4/btn_facebook_normal.9.png",
"res/drawable-ldpi-v4/btn_facebook_pressed.9.png",
"res/drawable-ldpi-v4/btn_g_icon.png",
"res/drawable-ldpi-v4/btn_overlay_pause.png",
"res/drawable-ldpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-ldpi-v4/btn_overlay_play.png",
"res/drawable-ldpi-v4/btn_overlay_play_pressed.png",
"res/drawable-ldpi-v4/com_facebook_close.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-ldpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-ldpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-ldpi-v4/com_mixpanel_android_logo.png",
"res/drawable-ldpi-v4/connect_header_img.png",
"res/drawable-ldpi-v4/connect_showcase.png",
"res/drawable-ldpi-v4/hlv_overscroll_edge.png",
"res/drawable-ldpi-v4/hlv_overscroll_glow.png",
"res/drawable-ldpi-v4/icn_facebook.png",
"res/drawable-ldpi-v4/icn_notification.png",
"res/drawable-ldpi-v4/icon.png",
"res/drawable-ldpi-v4/socialchart_showcase.png",
"res/drawable-ldpi-v4/spinner_white.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-mdpi-v4/bg_header_placeholder.png",
"res/drawable-mdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-mdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-mdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-mdpi-v4/btn_facebook_normal.9.png",
"res/drawable-mdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-mdpi-v4/btn_g_icon.png",
"res/drawable-mdpi-v4/btn_overlay_pause.png",
"res/drawable-mdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-mdpi-v4/btn_overlay_play.png",
"res/drawable-mdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-mdpi-v4/cat_navigation_background.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-mdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-mdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-mdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-mdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-mdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-mdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-mdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-mdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-mdpi-v4/connect_header_img.png",
"res/drawable-mdpi-v4/connect_showcase.png",
"res/drawable-mdpi-v4/fastscroll_default.png",
"res/drawable-mdpi-v4/fastscroll_pressed.png",
"res/drawable-mdpi-v4/hlv_overscroll_edge.png",
"res/drawable-mdpi-v4/hlv_overscroll_glow.png",
"res/drawable-mdpi-v4/ic_action_navigation_menu.png",
"res/drawable-mdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-mdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-mdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-mdpi-v4/icn_facebook.png",
"res/drawable-mdpi-v4/icn_ford_logo.png",
"res/drawable-mdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-mdpi-v4/icn_mft_home_back.png",
"res/drawable-mdpi-v4/icn_mft_home_logo.png",
"res/drawable-mdpi-v4/icn_notification.png",
"res/drawable-mdpi-v4/icon.png",
"res/drawable-mdpi-v4/img_spotify_logo_text.png",
"res/drawable-mdpi-v4/logo_smaller.png",
"res/drawable-mdpi-v4/mft_home_background1.jpg",
"res/drawable-mdpi-v4/mft_home_background2.jpg",
"res/drawable-mdpi-v4/mft_home_background3.jpg",
"res/drawable-mdpi-v4/mobile_artist_concert_header.png",
"res/drawable-mdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-mdpi-v4/nav_icon.png",
"res/drawable-mdpi-v4/nav_icon_gray.png",
"res/drawable-mdpi-v4/powered_by_google_dark.png",
"res/drawable-mdpi-v4/powered_by_google_light.png",
"res/drawable-mdpi-v4/psn_icon.png",
"res/drawable-mdpi-v4/socialchart_showcase.png",
"res/drawable-mdpi-v4/sp_logo.png",
"res/drawable-mdpi-v4/spinner_white.png",
"res/drawable-nodpi-v4/cat_placeholder_album.png",
"res/drawable-nodpi-v4/cat_placeholder_artist.png",
"res/drawable-nodpi-v4/cat_placeholder_flag.png",
"res/drawable-nodpi-v4/cat_placeholder_genre.png",
"res/drawable-nodpi-v4/cat_placeholder_inbox.png",
"res/drawable-nodpi-v4/cat_placeholder_offline.png",
"res/drawable-nodpi-v4/cat_placeholder_playlist.png",
"res/drawable-nodpi-v4/cat_placeholder_podcast.png",
"res/drawable-nodpi-v4/cat_placeholder_search.png",
"res/drawable-nodpi-v4/cat_placeholder_star.png",
"res/drawable-nodpi-v4/cat_placeholder_toplist.png",
"res/drawable-nodpi-v4/cat_placeholder_track.png",
"res/drawable-nodpi-v4/cat_placeholder_user.png",
"res/drawable-nodpi-v4/cat_placeholder_warning.png",
"res/drawable-nodpi-v4/placeholder_annotate.png",
"res/drawable-nodpi-v4/placeholder_artist.png",
"res/drawable-nodpi-v4/placeholder_genre.png",
"res/drawable-nodpi-v4/placeholder_playlist.png",
"res/drawable-nodpi-v4/placeholder_user.png",
"res/drawable-small-ldpi-v4/icn_radio_offline.png",
"res/drawable-tvdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-tvdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-v11/cat_dialog_button_left.xml",
"res/drawable-v11/cat_dialog_button_right.xml",
"res/drawable-v11/cat_listitem_background.xml",
"res/drawable-v11/cat_listitem_background_activated.xml",
"res/drawable-v21/abc_cab_background_top_material.xml",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xhdpi-v4/abc_menu_dropdown_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_holo_dark.9.png",
"res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xhdpi-v4/background_icon.png",
"res/drawable-xhdpi-v4/bg_header_placeholder.png",
"res/drawable-xhdpi-v4/bg_login_browse.jpg",
"res/drawable-xhdpi-v4/bg_login_landing.jpg",
"res/drawable-xhdpi-v4/bg_login_radio.jpg",
"res/drawable-xhdpi-v4/bg_login_search.jpg",
"res/drawable-xhdpi-v4/bg_login_yourmusic.jpg",
"res/drawable-xhdpi-v4/bg_upsell_banner_normal.9.png",
"res/drawable-xhdpi-v4/bg_upsell_banner_pressed.9.png",
"res/drawable-xhdpi-v4/bg_upsell_carousel.jpg",
"res/drawable-xhdpi-v4/btn_facebook_disabled.9.png",
"res/drawable-xhdpi-v4/btn_facebook_normal.9.png",
"res/drawable-xhdpi-v4/btn_facebook_pressed.9.png",
"res/drawable-xhdpi-v4/btn_g_icon.png",
"res/drawable-xhdpi-v4/btn_overlay_pause.png",
"res/drawable-xhdpi-v4/btn_overlay_pause_pressed.png",
"res/drawable-xhdpi-v4/btn_overlay_play.png",
"res/drawable-xhdpi-v4/btn_overlay_play_pressed.png",
"res/drawable-xhdpi-v4/cat_edit_background_activated.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_dialog_default.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_disabled_focused.9.png",
"res/drawable-xhdpi-v4/cat_edit_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_feedback_image.png",
"res/drawable-xhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xhdpi-v4/cat_navigationitem_background_active.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_default.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_disabled.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_focused.9.png",
"res/drawable-xhdpi-v4/cat_spinner_background_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_blue_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_focused.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_normal.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_grey_pressed.9.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xhdpi-v4/com_facebook_close.png",
"res/drawable-xhdpi-v4/com_facebook_inverse_icon.png",
"res/drawable-xhdpi-v4/com_facebook_logo.png",
"res/drawable-xhdpi-v4/com_facebook_picker_magnifier.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_black_xout.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_background.9.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_bottomnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_topnub.png",
"res/drawable-xhdpi-v4/com_facebook_tooltip_blue_xout.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xhdpi-v4/connect_header_img.png",
"res/drawable-xhdpi-v4/connect_showcase.png",
"res/drawable-xhdpi-v4/contextmenu_placeholder.png",
"res/drawable-xhdpi-v4/fastscroll_default.png",
"res/drawable-xhdpi-v4/fastscroll_pressed.png",
"res/drawable-xhdpi-v4/find_friends.jpg",
"res/drawable-xhdpi-v4/globe_telecom_flair_1.png",
"res/drawable-xhdpi-v4/globe_telecom_flair_2.png",
"res/drawable-xhdpi-v4/globe_telecom_logo.png",
"res/drawable-xhdpi-v4/hlv_overscroll_edge.png",
"res/drawable-xhdpi-v4/hlv_overscroll_glow.png",
"res/drawable-xhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xhdpi-v4/icn_ads.png",
"res/drawable-xhdpi-v4/icn_ads_large.png",
"res/drawable-xhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xhdpi-v4/icn_device_picker_volume.png",
"res/drawable-xhdpi-v4/icn_facebook.png",
"res/drawable-xhdpi-v4/icn_ford_logo.png",
"res/drawable-xhdpi-v4/icn_ford_spotify_logo.png",
"res/drawable-xhdpi-v4/icn_mft_home_back.png",
"res/drawable-xhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xhdpi-v4/icn_notification.png",
"res/drawable-xhdpi-v4/icn_notification_add_to.png",
"res/drawable-xhdpi-v4/icn_notification_add_to_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_dismiss.png",
"res/drawable-xhdpi-v4/icn_notification_next_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_next_normal.png",
"res/drawable-xhdpi-v4/icn_notification_pause_normal.png",
"res/drawable-xhdpi-v4/icn_notification_play_normal.png",
"res/drawable-xhdpi-v4/icn_notification_prev_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_prev_normal.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_down_selected.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_default.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_disabled.png",
"res/drawable-xhdpi-v4/icn_notification_thumb_up_selected.png",
"res/drawable-xhdpi-v4/icn_right_point_caret.png",
"res/drawable-xhdpi-v4/icon.png",
"res/drawable-xhdpi-v4/img_spotify_logo_text.png",
"res/drawable-xhdpi-v4/logo_smaller.png",
"res/drawable-xhdpi-v4/mediaservice_pause.png",
"res/drawable-xhdpi-v4/mediaservice_play.png",
"res/drawable-xhdpi-v4/mediaservice_save.png",
"res/drawable-xhdpi-v4/mediaservice_save_enabled.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle.png",
"res/drawable-xhdpi-v4/mediaservice_shuffle_checked.png",
"res/drawable-xhdpi-v4/mediaservice_skip_next.png",
"res/drawable-xhdpi-v4/mediaservice_skip_previous.png",
"res/drawable-xhdpi-v4/mediaservice_start_radio_black.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_down.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up.png",
"res/drawable-xhdpi-v4/mediaservice_thumbs_up_selected.png",
"res/drawable-xhdpi-v4/mft_home_background1.jpg",
"res/drawable-xhdpi-v4/mft_home_background2.jpg",
"res/drawable-xhdpi-v4/mft_home_background3.jpg",
"res/drawable-xhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xhdpi-v4/nav_icon.png",
"res/drawable-xhdpi-v4/nav_icon_gray.png",
"res/drawable-xhdpi-v4/powered_by_google_dark.png",
"res/drawable-xhdpi-v4/powered_by_google_light.png",
"res/drawable-xhdpi-v4/premium_upsell_icon.png",
"res/drawable-xhdpi-v4/psn_icon.png",
"res/drawable-xhdpi-v4/small_icon.png",
"res/drawable-xhdpi-v4/socialchart_showcase.png",
"res/drawable-xhdpi-v4/sp_logo.png",
"res/drawable-xhdpi-v4/spinner_16_inner_holo.png",
"res/drawable-xhdpi-v4/spinner_16_outer_holo.png",
"res/drawable-xhdpi-v4/spinner_white.png",
"res/drawable-xhdpi-v4/widget_next_disabled.png",
"res/drawable-xhdpi-v4/widget_next_normal.png",
"res/drawable-xhdpi-v4/widget_pause_disabled.png",
"res/drawable-xhdpi-v4/widget_pause_normal.png",
"res/drawable-xhdpi-v4/widget_play_disabled.png",
"res/drawable-xhdpi-v4/widget_play_normal.png",
"res/drawable-xhdpi-v4/widget_prev_disabled.png",
"res/drawable-xhdpi-v4/widget_prev_normal.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png",
"res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png",
"res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png",
"res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png",
"res/drawable-xxhdpi-v4/background_icon.png",
"res/drawable-xxhdpi-v4/btn_g_icon.png",
"res/drawable-xxhdpi-v4/cat_navigation_background.9.png",
"res/drawable-xxhdpi-v4/cat_overflow_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_background_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_icon_selected.png",
"res/drawable-xxhdpi-v4/com_facebook_button_like_pressed.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowleft_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_arrowright_faded.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_checkmark.png",
"res/drawable-xxhdpi-v4/com_mixpanel_android_logo.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_focus_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_normal_light.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_dark.9.png",
"res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_light.9.png",
"res/drawable-xxhdpi-v4/connect_header_img.png",
"res/drawable-xxhdpi-v4/fastscroll_default.png",
"res/drawable-xxhdpi-v4/fastscroll_pressed.png",
"res/drawable-xxhdpi-v4/ic_action_navigation_menu.png",
"res/drawable-xxhdpi-v4/ic_plusone_medium_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_small_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_standard_off_client.png",
"res/drawable-xxhdpi-v4/ic_plusone_tall_off_client.png",
"res/drawable-xxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxhdpi-v4/icn_facebook.png",
"res/drawable-xxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxhdpi-v4/icon.png",
"res/drawable-xxhdpi-v4/logo_smaller.png",
"res/drawable-xxhdpi-v4/mediaservice_albums.png",
"res/drawable-xxhdpi-v4/mediaservice_artists.png",
"res/drawable-xxhdpi-v4/mediaservice_browse.png",
"res/drawable-xxhdpi-v4/mediaservice_newreleases.png",
"res/drawable-xxhdpi-v4/mediaservice_playlists.png",
"res/drawable-xxhdpi-v4/mediaservice_radio.png",
"res/drawable-xxhdpi-v4/mediaservice_starred.png",
"res/drawable-xxhdpi-v4/mediaservice_yourmusic.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_header.png",
"res/drawable-xxhdpi-v4/mobile_artist_concert_songkick.png",
"res/drawable-xxhdpi-v4/nav_icon.png",
"res/drawable-xxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxhdpi-v4/powered_by_google_dark.png",
"res/drawable-xxhdpi-v4/powered_by_google_light.png",
"res/drawable-xxhdpi-v4/psn_icon.png",
"res/drawable-xxhdpi-v4/small_icon.png",
"res/drawable-xxhdpi-v4/sp_logo.png",
"res/drawable-xxhdpi-v4/widget_next_disabled.png",
"res/drawable-xxhdpi-v4/widget_next_normal.png",
"res/drawable-xxhdpi-v4/widget_pause_disabled.png",
"res/drawable-xxhdpi-v4/widget_pause_normal.png",
"res/drawable-xxhdpi-v4/widget_placeholder.png",
"res/drawable-xxhdpi-v4/widget_play_disabled.png",
"res/drawable-xxhdpi-v4/widget_play_normal.png",
"res/drawable-xxhdpi-v4/widget_prev_disabled.png",
"res/drawable-xxhdpi-v4/widget_prev_normal.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png",
"res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png",
"res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png",
"res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png",
"res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png",
"res/drawable-xxxhdpi-v4/connect_header_img.png",
"res/drawable-xxxhdpi-v4/icn_cosmos_search_recent_search_arrow.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_back.png",
"res/drawable-xxxhdpi-v4/icn_mft_home_logo.png",
"res/drawable-xxxhdpi-v4/icon.png",
"res/drawable-xxxhdpi-v4/logo_smaller.png",
"res/drawable-xxxhdpi-v4/nav_icon.png",
"res/drawable-xxxhdpi-v4/nav_icon_gray.png",
"res/drawable-xxxhdpi-v4/psn_icon.png",
"res/drawable-xxxhdpi-v4/sp_logo.png",
"res/drawable/abc_btn_check_material.xml",
"res/drawable/abc_btn_radio_material.xml",
"res/drawable/abc_cab_background_internal_bg.xml",
"res/drawable/abc_cab_background_top_material.xml",
"res/drawable/abc_edit_text_material.xml",
"res/drawable/abc_item_background_holo_dark.xml",
"res/drawable/abc_item_background_holo_light.xml",
"res/drawable/abc_list_selector_background_transition_holo_dark.xml",
"res/drawable/abc_list_selector_background_transition_holo_light.xml",
"res/drawable/abc_list_selector_holo_dark.xml",
"res/drawable/abc_list_selector_holo_light.xml",
"res/drawable/abc_switch_thumb_material.xml",
"res/drawable/abc_tab_indicator_material.xml",
"res/drawable/abc_textfield_search_material.xml",
"res/drawable/bg_actionbar_item.xml",
"res/drawable/bg_actionbar_tab.xml",
"res/drawable/bg_activity_card.xml",
"res/drawable/bg_browse_header.xml",
"res/drawable/bg_browse_start_fragment_header.xml",
"res/drawable/bg_button_dialog_bottom_left_light.xml",
"res/drawable/bg_button_dialog_bottom_light.xml",
"res/drawable/bg_button_dialog_bottom_right_light.xml",
"res/drawable/bg_button_light.xml",
"res/drawable/bg_button_queue.xml",
"res/drawable/bg_cat_login_field.xml",
"res/drawable/bg_cell.xml",
"res/drawable/bg_connect_playing_from_bar_cat.xml",
"res/drawable/bg_dialog_button_divider.xml",
"res/drawable/bg_discover.xml",
"res/drawable/bg_globe_telecom_premium_activation.xml",
"res/drawable/bg_header.xml",
"res/drawable/bg_notification_button.xml",
"res/drawable/bg_placeholder_album.xml",
"res/drawable/bg_placeholder_annotate_image.xml",
"res/drawable/bg_placeholder_artist.xml",
"res/drawable/bg_placeholder_artist_black.xml",
"res/drawable/bg_placeholder_playlist.xml",
"res/drawable/bg_placeholder_user.xml",
"res/drawable/bg_popup.xml",
"res/drawable/bg_popup_outside.xml",
"res/drawable/bg_premium_upsell_interstitial_reason.xml",
"res/drawable/bg_settings_bubble.xml",
"res/drawable/bg_share_connect_icon_facebook.xml",
"res/drawable/bg_share_connect_icon_tumblr.xml",
"res/drawable/bg_share_connect_icon_twitter.xml",
"res/drawable/bg_toast.xml",
"res/drawable/bg_upsell_banner.xml",
"res/drawable/bg_widget_button.xml",
"res/drawable/btn_cat_login_button_facebook.xml",
"res/drawable/btn_cat_login_button_google.xml",
"res/drawable/btn_cat_login_button_later.xml",
"res/drawable/btn_cat_login_button_primary.xml",
"res/drawable/btn_cat_login_button_secondary.xml",
"res/drawable/btn_cat_nav_upsell_button.xml",
"res/drawable/btn_facebook.xml",
"res/drawable/btn_header_overlay_pause.xml",
"res/drawable/btn_header_overlay_play.xml",
"res/drawable/btn_intro_primary.xml",
"res/drawable/btn_twitter.xml",
"res/drawable/button_download.xml",
"res/drawable/cat_actionbar_background.xml",
"res/drawable/cat_actionbar_background_split.xml",
"res/drawable/cat_back_dummy.xml",
"res/drawable/cat_button.xml",
"res/drawable/cat_button_danger.xml",
"res/drawable/cat_button_info.xml",
"res/drawable/cat_button_info_small.xml",
"res/drawable/cat_button_info_small_state_default.xml",
"res/drawable/cat_button_info_small_state_disabled.xml",
"res/drawable/cat_button_info_small_state_focused.xml",
"res/drawable/cat_button_info_small_state_pressed.xml",
"res/drawable/cat_button_info_state_default.xml",
"res/drawable/cat_button_info_state_disabled.xml",
"res/drawable/cat_button_info_state_focused.xml",
"res/drawable/cat_button_info_state_pressed.xml",
"res/drawable/cat_button_primary.xml",
"res/drawable/cat_button_primary_small.xml",
"res/drawable/cat_button_primary_small_state_default.xml",
"res/drawable/cat_button_primary_small_state_disabled.xml",
"res/drawable/cat_button_primary_small_state_focused.xml",
"res/drawable/cat_button_primary_small_state_pressed.xml",
"res/drawable/cat_button_primary_state_default.xml",
"res/drawable/cat_button_primary_state_disabled.xml",
"res/drawable/cat_button_primary_state_focused.xml",
"res/drawable/cat_button_primary_state_pressed.xml",
"res/drawable/cat_button_small.xml",
"res/drawable/cat_button_small_state_checked.xml",
"res/drawable/cat_button_small_state_default.xml",
"res/drawable/cat_button_small_state_disabled.xml",
"res/drawable/cat_button_small_state_focused.xml",
"res/drawable/cat_button_small_state_pressed.xml",
"res/drawable/cat_button_state_checked.xml",
"res/drawable/cat_button_state_default.xml",
"res/drawable/cat_button_state_disabled.xml",
"res/drawable/cat_button_state_focused.xml",
"res/drawable/cat_button_state_pressed.xml",
"res/drawable/cat_card_background.xml",
"res/drawable/cat_card_foreground.xml",
"res/drawable/cat_checkbox.xml",
"res/drawable/cat_dialog_background.xml",
"res/drawable/cat_dialog_button_bar_background.xml",
"res/drawable/cat_dialog_button_left.xml",
"res/drawable/cat_dialog_button_right.xml",
"res/drawable/cat_dialog_button_single_negative.xml",
"res/drawable/cat_dialog_button_single_positive.xml",
"res/drawable/cat_dropdown_list_divider.xml",
"res/drawable/cat_edit_background.xml",
"res/drawable/cat_edit_background_dialog.xml",
"res/drawable/cat_filter_list_background.xml",
"res/drawable/cat_filter_list_divider.xml",
"res/drawable/cat_list_divider.xml",
"res/drawable/cat_list_divider_light.xml",
"res/drawable/cat_list_divider_vertical.xml",
"res/drawable/cat_list_popup_filter_selector.xml",
"res/drawable/cat_list_selector.xml",
"res/drawable/cat_list_selector_default.xml",
"res/drawable/cat_list_selector_focused.xml",
"res/drawable/cat_list_selector_focused_no_margin.xml",
"res/drawable/cat_list_selector_light.xml",
"res/drawable/cat_list_selector_light_focused.xml",
"res/drawable/cat_list_selector_light_pressed.xml",
"res/drawable/cat_list_selector_no_margin.xml",
"res/drawable/cat_list_selector_pressed.xml",
"res/drawable/cat_list_selector_pressed_no_margin.xml",
"res/drawable/cat_listitem_background.xml",
"res/drawable/cat_listitem_background_default.xml",
"res/drawable/cat_navigation_list_divider.xml",
"res/drawable/cat_navigationitem_background.xml",
"res/drawable/cat_notificationbadge_background.xml",
"res/drawable/cat_progress.xml",
"res/drawable/cat_seekbar_thumb.xml",
"res/drawable/cat_seekbar_thumb_default.xml",
"res/drawable/cat_spinner_background.xml",
"res/drawable/cat_switch.xml",
"res/drawable/cat_switch_default.xml",
"res/drawable/cat_switch_disabled.xml",
"res/drawable/cat_switch_focused.xml",
"res/drawable/cat_switch_thumb.xml",
"res/drawable/cat_switch_thumb_default.xml",
"res/drawable/cat_switch_thumb_disabled.xml",
"res/drawable/cat_text_background_explicit.xml",
"res/drawable/com_facebook_button_blue.xml",
"res/drawable/com_facebook_button_blue_focused.9.png",
"res/drawable/com_facebook_button_blue_normal.9.png",
"res/drawable/com_facebook_button_blue_pressed.9.png",
"res/drawable/com_facebook_button_check.xml",
"res/drawable/com_facebook_button_check_off.png",
"res/drawable/com_facebook_button_check_on.png",
"res/drawable/com_facebook_button_grey_focused.9.png",
"res/drawable/com_facebook_button_grey_normal.9.png",
"res/drawable/com_facebook_button_grey_pressed.9.png",
"res/drawable/com_facebook_button_like.xml",
"res/drawable/com_facebook_button_like_background.png",
"res/drawable/com_facebook_button_like_background_selected.png",
"res/drawable/com_facebook_button_like_icon.png",
"res/drawable/com_facebook_button_like_icon_selected.png",
"res/drawable/com_facebook_button_like_pressed.png",
"res/drawable/com_facebook_button_like_selected.xml",
"res/drawable/com_facebook_close.png",
"res/drawable/com_facebook_inverse_icon.png",
"res/drawable/com_facebook_list_divider.9.png",
"res/drawable/com_facebook_list_section_header_background.9.png",
"res/drawable/com_facebook_loginbutton_silver.xml",
"res/drawable/com_facebook_logo.png",
"res/drawable/com_facebook_picker_item_background.xml",
"res/drawable/com_facebook_picker_list_focused.9.png",
"res/drawable/com_facebook_picker_list_longpressed.9.png",
"res/drawable/com_facebook_picker_list_pressed.9.png",
"res/drawable/com_facebook_picker_list_selector.xml",
"res/drawable/com_facebook_picker_list_selector_background_transition.xml",
"res/drawable/com_facebook_picker_list_selector_disabled.9.png",
"res/drawable/com_facebook_picker_top_button.xml",
"res/drawable/com_facebook_place_default_icon.png",
"res/drawable/com_facebook_profile_default_icon.png",
"res/drawable/com_facebook_profile_picture_blank_portrait.png",
"res/drawable/com_facebook_profile_picture_blank_square.png",
"res/drawable/com_facebook_top_background.xml",
"res/drawable/com_facebook_top_button.xml",
"res/drawable/com_facebook_usersettingsfragment_background_gradient.xml",
"res/drawable/com_mixpanel_android_arrowleft_insets.xml",
"res/drawable/com_mixpanel_android_arrowleft_states.xml",
"res/drawable/com_mixpanel_android_arrowright_insets.xml",
"res/drawable/com_mixpanel_android_arrowright_states.xml",
"res/drawable/com_mixpanel_android_checkmark_states.xml",
"res/drawable/com_mixpanel_android_choice_first_states.xml",
"res/drawable/com_mixpanel_android_choice_last_states.xml",
"res/drawable/com_mixpanel_android_choice_middle_states.xml",
"res/drawable/com_mixpanel_android_nocolor_list.xml",
"res/drawable/com_mixpanel_android_rounded_bottom.9.png",
"res/drawable/com_mixpanel_android_rounded_bottom_selected.9.png",
"res/drawable/com_mixpanel_android_rounded_top.9.png",
"res/drawable/com_mixpanel_android_rounded_top_selected.9.png",
"res/drawable/com_mixpanel_android_square.9.png",
"res/drawable/com_mixpanel_android_square_selected.9.png",
"res/drawable/com_mixpanel_android_text_answer_border.xml",
"res/drawable/common_signin_btn_icon_dark.xml",
"res/drawable/common_signin_btn_icon_light.xml",
"res/drawable/common_signin_btn_text_dark.xml",
"res/drawable/common_signin_btn_text_light.xml",
"res/drawable/fastscroll_selector.xml",
"res/drawable/icn_loading_indicator.xml",
"res/drawable/img_end_of_trial.xml",
"res/drawable/indicator_bar.xml",
"res/drawable/mft_home_cell_border.xml",
"res/drawable/player_progress_thumb.xml",
"res/drawable/profile_panel_badge_background.xml",
"res/drawable/progress_small.xml",
"res/drawable/progress_small_holo.xml",
"res/drawable/socialchart_list_divider.xml",
"res/drawable/socialchart_remaining_shape.xml",
"res/drawable/transparent.xml",
"res/layout-land/fragment_mft2_home.xml",
"res/layout-land/list.xml",
"res/layout-land/list_with_overlay.xml",
"res/layout-land/mobile_artist_bio.xml",
"res/layout-land/player.xml",
"res/layout-land/player_content_view.xml",
"res/layout-land/player_controls.xml",
"res/layout-v11/abc_screen_content_include.xml",
"res/layout-v21/abc_screen_toolbar.xml",
"res/layout/abc_action_bar_title_item.xml",
"res/layout/abc_action_bar_up_container.xml",
"res/layout/abc_action_bar_view_list_nav_layout.xml",
"res/layout/abc_action_menu_item_layout.xml",
"res/layout/abc_action_menu_layout.xml",
"res/layout/abc_action_mode_bar.xml",
"res/layout/abc_action_mode_close_item_material.xml",
"res/layout/abc_activity_chooser_view.xml",
"res/layout/abc_activity_chooser_view_include.xml",
"res/layout/abc_activity_chooser_view_list_item.xml",
"res/layout/abc_expanded_menu_layout.xml",
"res/layout/abc_list_menu_item_checkbox.xml",
"res/layout/abc_list_menu_item_icon.xml",
"res/layout/abc_list_menu_item_layout.xml",
"res/layout/abc_list_menu_item_radio.xml",
"res/layout/abc_popup_menu_item_layout.xml",
"res/layout/abc_screen_content_include.xml",
"res/layout/abc_screen_simple.xml",
"res/layout/abc_screen_simple_overlay_action_mode.xml",
"res/layout/abc_screen_toolbar.xml",
"res/layout/abc_search_dropdown_item_icons_2line.xml",
"res/layout/abc_search_view.xml",
"res/layout/abc_simple_dropdown_hint.xml",
"res/layout/actionbar_search.xml",
"res/layout/activity_annotate_playlist.xml",
"res/layout/activity_cover_image.xml",
"res/layout/activity_default.xml",
"res/layout/activity_device.xml",
"res/layout/activity_disable_offline_mode.xml",
"res/layout/activity_facebook_webview.xml",
"res/layout/activity_general_message_radio_and_premium.xml",
"res/layout/activity_globe_premium_activation.xml",
"res/layout/activity_holiday_offer_upsell_interstitial.xml",
"res/layout/activity_lockscreen.xml",
"res/layout/activity_marketing_opt_in_body.xml",
"res/layout/activity_notification_webview.xml",
"res/layout/activity_open.xml",
"res/layout/activity_player.xml",
"res/layout/activity_premium_signup.xml",
"res/layout/activity_premium_upsell_interstitial.xml",
"res/layout/activity_reset_password.xml",
"res/layout/activity_showcase.xml",
"res/layout/activity_tos_text.xml",
"res/layout/activity_two_buttons_dialog.xml",
"res/layout/activity_uninstall_old_app.xml",
"res/layout/activity_upsell_dialog.xml",
"res/layout/activity_video_player.xml",
"res/layout/additional_info_bar.xml",
"res/layout/biography_image_view.xml",
"res/layout/browse_cover_card.xml",
"res/layout/browse_new_releases_header.xml",
"res/layout/cardview.xml",
"res/layout/cat_listtile_1.xml",
"res/layout/cat_listtile_1_image.xml",
"res/layout/cat_listtile_1_image_small.xml",
"res/layout/cat_listtile_1_small.xml",
"res/layout/cat_listtile_2.xml",
"res/layout/cat_listtile_2_image.xml",
"res/layout/cat_listtile_2_image_muted.xml",
"res/layout/cat_listtile_2_muted.xml",
"res/layout/cat_listtile_2_number.xml",
"res/layout/cat_listtile_2_number_muted.xml",
"res/layout/cat_listtile_multiline.xml",
"res/layout/cell_activity_story.xml",
"res/layout/cell_artist_portrait.xml",
"res/layout/cell_browse_genre.xml",
"res/layout/cell_browse_playlist.xml",
"res/layout/cell_browse_playlist_horizontal_list.xml",
"res/layout/cell_browse_trending_artist.xml",
"res/layout/cell_copyright.xml",
"res/layout/cell_mft_home.xml",
"res/layout/cell_navigation.xml",
"res/layout/cell_square_image.xml",
"res/layout/cell_track_cover.xml",
"res/layout/cell_tracks_sample.xml",
"res/layout/collection_show_all.xml",
"res/layout/com_facebook_friendpickerfragment.xml",
"res/layout/com_facebook_login_activity_layout.xml",
"res/layout/com_facebook_picker_activity_circle_row.xml",
"res/layout/com_facebook_picker_checkbox.xml",
"res/layout/com_facebook_picker_image.xml",
"res/layout/com_facebook_picker_list_row.xml",
"res/layout/com_facebook_picker_list_section_header.xml",
"res/layout/com_facebook_picker_search_box.xml",
"res/layout/com_facebook_picker_title_bar.xml",
"res/layout/com_facebook_picker_title_bar_stub.xml",
"res/layout/com_facebook_placepickerfragment.xml",
"res/layout/com_facebook_placepickerfragment_list_row.xml",
"res/layout/com_facebook_search_bar_layout.xml",
"res/layout/com_facebook_tooltip_bubble.xml",
"res/layout/com_facebook_usersettingsfragment.xml",
"res/layout/com_mixpanel_android_activity_survey.xml",
"res/layout/com_mixpanel_android_first_choice_answer.xml",
"res/layout/com_mixpanel_android_last_choice_answer.xml",
"res/layout/com_mixpanel_android_middle_choice_answer.xml",
"res/layout/com_mixpanel_android_question_card.xml",
"res/layout/connect_playing_from_bar.xml",
"res/layout/context_menu.xml",
"res/layout/cosmos_search_cell_mft_appears_on.xml",
"res/layout/cosmos_search_footer_loading.xml",
"res/layout/cosmos_search_playlist_row.xml",
"res/layout/discover_grouped_card.xml",
"res/layout/discover_story.xml",
"res/layout/display_banner_ad.xml",
"res/layout/findfriends_header.xml",
"res/layout/footer_loading.xml",
"res/layout/fragment_activity_list_view.xml",
"res/layout/fragment_add_to_playlist.xml",
"res/layout/fragment_arsenal_ask_login.xml",
"res/layout/fragment_arsenal_dywla.xml",
"res/layout/fragment_arsenal_feedback.xml",
"res/layout/fragment_arsenal_linking.xml",
"res/layout/fragment_arsenal_sso.xml",
"res/layout/fragment_browse_default_list_view.xml",
"res/layout/fragment_browse_default_list_view_cat.xml",
"res/layout/fragment_browse_header_background.xml",
"res/layout/fragment_browse_header_text.xml",
"res/layout/fragment_collection.xml",
"res/layout/fragment_context_recognition.xml",
"res/layout/fragment_cosmos_test.xml",
"res/layout/fragment_device.xml",
"res/layout/fragment_discover.xml",
"res/layout/fragment_inbox.xml",
"res/layout/fragment_login_new.xml",
"res/layout/fragment_login_splash.xml",
"res/layout/fragment_login_welcome.xml",
"res/layout/fragment_mft2_home.xml",
"res/layout/fragment_not_available.xml",
"res/layout/fragment_offline_bar.xml",
"res/layout/fragment_open_access.xml",
"res/layout/fragment_profile_panel.xml",
"res/layout/fragment_push_notification_settings.xml",
"res/layout/fragment_radio.xml",
"res/layout/fragment_relatedartists_cat.xml",
"res/layout/fragment_settings.xml",
"res/layout/fragment_share_dialog_connect_facebook.xml",
"res/layout/fragment_share_post.xml",
"res/layout/fragment_show_licenses.xml",
"res/layout/fragment_showcase.xml",
"res/layout/fragment_signup_new.xml",
"res/layout/fragment_sso_login.xml",
"res/layout/fragment_start.xml",
"res/layout/fragment_webview.xml",
"res/layout/fragment_with_recycler_view.xml",
"res/layout/fragment_x_promo_welcome.xml",
"res/layout/generic_dialog_header.xml",
"res/layout/generic_dialog_two_buttons.xml",
"res/layout/header_devices.xml",
"res/layout/header_download.xml",
"res/layout/header_filter.xml",
"res/layout/header_info_2_lines_page.xml",
"res/layout/header_info_page.xml",
"res/layout/header_pretty_subtitle.xml",
"res/layout/include_start_login_buttons_anonymous.xml",
"res/layout/include_start_login_buttons_normal.xml",
"res/layout/list.xml",
"res/layout/list_discovery.xml",
"res/layout/list_frame.xml",
"res/layout/list_popup.xml",
"res/layout/list_with_emptyview.xml",
"res/layout/list_with_overlay.xml",
"res/layout/loading_view.xml",
"res/layout/login_content.xml",
"res/layout/main.xml",
"res/layout/main_debug_overlay.xml",
"res/layout/material_listtile_1.xml",
"res/layout/material_listtile_1_image.xml",
"res/layout/material_listtile_1_image_small.xml",
"res/layout/material_listtile_1_small.xml",
"res/layout/material_listtile_2.xml",
"res/layout/material_listtile_2_image.xml",
"res/layout/material_listtile_2_image_muted.xml",
"res/layout/material_listtile_2_muted.xml",
"res/layout/material_listtile_2_number.xml",
"res/layout/material_listtile_2_number_muted.xml",
"res/layout/material_listtile_multiline.xml",
"res/layout/media_controller.xml",
"res/layout/mobile_artist_bio.xml",
"res/layout/mobile_artist_calendar_sheet_cat.xml",
"res/layout/mobile_artist_concert_cat.xml",
"res/layout/mobile_artist_fragment_base.xml",
"res/layout/mobile_artist_header.xml",
"res/layout/mobile_artist_header_single_image.xml",
"res/layout/mobile_artist_page_indicator.xml",
"res/layout/mobile_artist_portrait.xml",
"res/layout/navigation.xml",
"res/layout/notification_big_player.xml",
"res/layout/notification_big_player_radio.xml",
"res/layout/notification_coverart_and_text.xml",
"res/layout/notification_next.xml",
"res/layout/notification_play_pause.xml",
"res/layout/notification_small_player.xml",
"res/layout/page_debug_single_button.xml",
"res/layout/page_player_done.xml",
"res/layout/page_player_improving.xml",
"res/layout/page_player_liked_list.xml",
"res/layout/page_player_progress.xml",
"res/layout/page_player_skips_left.xml",
"res/layout/page_player_suggested_song.xml",
"res/layout/page_player_text.xml",
"res/layout/page_upsell_item.xml",
"res/layout/paste_dialog.xml",
"res/layout/paste_divider_wrapper.xml",
"res/layout/paste_empty.xml",
"res/layout/paste_header.xml",
"res/layout/paste_listitem.xml",
"res/layout/paste_match_parent_width.xml",
"res/layout/paste_navigationitem.xml",
"res/layout/paste_sectionheader.xml",
"res/layout/paste_wrap_content.xml",
"res/layout/placeholder_title.xml",
"res/layout/play_button_view.xml",
"res/layout/play_history.xml",
"res/layout/player.xml",
"res/layout/player_content_view.xml",
"res/layout/player_controls.xml",
"res/layout/player_new.xml",
"res/layout/player_preview.xml",
"res/layout/player_preview_item.xml",
"res/layout/playlist_annotate_overlay.xml",
"res/layout/popup_gender_select.xml",
"res/layout/preview_progress_button.xml",
"res/layout/profile_counts_subheader.xml",
"res/layout/queue.xml",
"res/layout/radio_cover_card.xml",
"res/layout/search.xml",
"res/layout/section_link_cat.xml",
"res/layout/settings_basic_row.xml",
"res/layout/settings_crossfade_row.xml",
"res/layout/settings_facebook_row.xml",
"res/layout/settings_spinner_row.xml",
"res/layout/settings_toggle_button_row.xml",
"res/layout/share_header.xml",
"res/layout/simple_text_view.xml",
"res/layout/socialchart_header2.xml",
"res/layout/socialchart_smallfriendicon.xml",
"res/layout/socialchart_trackrow.xml",
"res/layout/sticky_header_shuffle_play.xml",
"res/layout/support_simple_spinner_dropdown_item.xml",
"res/layout/tinkerbell_banner.xml",
"res/layout/toast.xml",
"res/layout/tooltip_content.xml",
"res/layout/update.xml",
"res/layout/upsell_premium_only.xml",
"res/layout/view_inboxitem.xml",
"res/layout/view_volume_widget.xml",
"res/layout/widget.xml",
"res/raw/gtm_analytics",
"res/raw/moments.mp4",
"res/raw/scene_frag.glsl",
"res/raw/scene_vert.glsl",
"res/xml/automotive_app_desc.xml",
"res/xml/widget_info.xml",
"resources.arsc",
"classes.dex",
"com/fasterxml/jackson/databind/cfg/VERSION.txt",
"com/fasterxml_uz/jackson/core/json/VERSION.txt",
"com/fasterxml/jackson/core/json/VERSION.txt",
"lib/armeabi-v7a/liborbit-jni-spotify.so"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Files -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Files -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
class Files(AndroScript):
''' List the files of the .apk '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
#categories
CAT_FILES = "files"
res = self.res
res.register_keys([CAT_FILES])
# files
res.log(CAT_FILES, apk.get_files())
GVMAnalysisExample¶
This is an autogenerated documentation file for the script: GVMAnalysisExample
Run it¶
$ ./androanalyze scripts_builtin/GVMAnalysisExample.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn GVMAnalysisExample -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn GVMAnalysisExample -pn com.spotify.music -nd
{
"chunkSize": 261120,
"filename": "com.spotify.music_2.2.0.636_GVMAnalysisExample.gexf",
"length": 17514850,
"uploadDate": "2015-06-26T17:31:16.878000",
"md5": "73b03cd1de03f65df5c92692b78e3c1d",
"metadata": {
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "GVMAnalysisExample",
"sha256": "798a640e6decd9cbfd9d16c3471a84476659e67d24c2383740aa3df0a373341c",
"analysis date": "2015-06-26T17:15:36.969000",
"version": "0.1"
}
}
}
View the raw data:
$ ./androquery result -sn GVMAnalysisExample -pn com.spotify.music -nd -r
<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gephi.org/gexf" xmlns:viz="http://www.gephi.org/gexf/viz">
<graph type="static">
<attributes class="node" type="static">
<attribute default="normal" id="0" title="type" type="string"/>
<attribute id="1" title="class_name" type="string"/>
<attribute id="2" title="method_name" type="string"/>
<attribute id="3" title="descriptor" type="string"/>
<attribute default="0" id="4" title="permissions" type="integer"/>
<attribute default="normal" id="5" title="permissions_level" type="string"/>
<attribute default="false" id="6" title="dynamic_code" type="boolean"/>
</attributes>
<nodes>
<node id="0" label="Lcom/spotify/music/MainActivity; onCreate (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onCreate"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="1" label="Lcom/spotify/mobile/android/util/ay; <init> (Lcom/spotify/mobile/android/ui/g;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/util/ay;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/g;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="2" label="Lcom/google/android/gms/maps/StreetViewPanoramaOptions; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/StreetViewPanoramaOptions;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="3" label="Lcom/google/android/gms/maps/e; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/e;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="4" label="Lcom/google/android/gms/maps/StreetViewPanoramaOptions; writeToParcel (Landroid/os/Parcel; I)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/StreetViewPanoramaOptions;"/>
<attvalue id="2" value="writeToParcel"/>
<attvalue id="3" value="(Landroid/os/Parcel; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="5" label="Lcom/google/android/gms/maps/e; a (Lcom/google/android/gms/maps/StreetViewPanoramaOptions; Landroid/os/Parcel; I)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/e;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/google/android/gms/maps/StreetViewPanoramaOptions; Landroid/os/Parcel; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="6" label="Lcom/google/android/gms/maps/e; createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/e;"/>
<attvalue id="2" value="createFromParcel"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Ljava/lang/Object;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="7" label="Lcom/google/android/gms/maps/e; a (Landroid/os/Parcel;)Lcom/google/android/gms/maps/StreetViewPanoramaOptions;">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/e;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Lcom/google/android/gms/maps/StreetViewPanoramaOptions;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="8" label="Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager; <init> (Lcom/spotify/mobile/android/spotlets/search/b; Lcom/spotify/mobile/android/spotlets/search/model/d; Lcom/spotify/mobile/android/spotlets/search/e; Lcom/spotify/mobile/android/spotlets/search/view/h;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/search/b; Lcom/spotify/mobile/android/spotlets/search/model/d; Lcom/spotify/mobile/android/spotlets/search/e; Lcom/spotify/mobile/android/spotlets/search/view/h;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="9" label="Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager$6; <init> (Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager$6;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/search/view/SearchViewsManager;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="10" label="Lcom/spotify/mobile/android/util/l; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/util/l;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="11" label="Lcom/spotify/mobile/android/util/o; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/util/o;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="12" label="Lcom/squareup/okhttp/internal/http/p; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/p;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="13" label="Lcom/squareup/okhttp/internal/http/al; a (Lcom/squareup/okhttp/internal/http/u;)Lcom/squareup/okhttp/internal/a/o;">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/squareup/okhttp/internal/http/u;)Lcom/squareup/okhttp/internal/a/o;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="14" label="Lcom/squareup/okhttp/internal/http/p; i ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/p;"/>
<attvalue id="2" value="i"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="15" label="Lcom/squareup/okhttp/internal/http/al; c ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="16" label="Lcom/squareup/okhttp/internal/http/p; j ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/p;"/>
<attvalue id="2" value="j"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="17" label="Lcom/squareup/okhttp/internal/http/al; a (Lcom/squareup/okhttp/internal/http/p;)V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/squareup/okhttp/internal/http/p;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="18" label="Lcom/squareup/okhttp/internal/http/p; k ()Lcom/squareup/okhttp/g;">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/p;"/>
<attvalue id="2" value="k"/>
<attvalue id="3" value="()Lcom/squareup/okhttp/g;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="19" label="Lcom/squareup/okhttp/internal/http/al; d ()Z">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="d"/>
<attvalue id="3" value="()Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="20" label="Lcom/squareup/okhttp/internal/http/p; m ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/p;"/>
<attvalue id="2" value="m"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="21" label="Lcom/squareup/okhttp/internal/http/al; b (Lcom/squareup/okhttp/internal/http/u;)V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Lcom/squareup/okhttp/internal/http/u;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="22" label="Lcom/squareup/okhttp/internal/http/al; a (Lcom/squareup/okhttp/internal/http/ag;)V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/squareup/okhttp/internal/http/ag;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="23" label="Lcom/squareup/okhttp/internal/http/al; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="24" label="Lcom/squareup/okhttp/internal/http/al; b ()Lcom/squareup/okhttp/internal/http/ab;">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()Lcom/squareup/okhttp/internal/http/ab;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="25" label="Lcom/squareup/okhttp/internal/http/al; e ()V">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="e"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="26" label="Lcom/squareup/okhttp/internal/http/al; a (Ljava/net/CacheRequest;)Lcom/squareup/okhttp/internal/a/p;">
<attvalues>
<attvalue id="1" value="Lcom/squareup/okhttp/internal/http/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/net/CacheRequest;)Lcom/squareup/okhttp/internal/a/p;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="27" label="Landroid/support/v7/app/e; a (Landroid/support/v7/b/b;)Landroid/support/v7/b/a;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/e;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/b;)Landroid/support/v7/b/a;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="28" label="Landroid/support/v7/b/b; a (Landroid/support/v7/b/a; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/b/b;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="29" label="Landroid/support/v7/app/g; a (Landroid/support/v7/b/a;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/g;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="30" label="Landroid/support/v7/b/b; a (Landroid/support/v7/b/a;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/b/b;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="31" label="Landroid/support/v7/app/g; a (Landroid/support/v7/b/a; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/g;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="32" label="Landroid/support/v7/app/g; a (Landroid/support/v7/b/a; Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/g;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="33" label="Landroid/support/v7/b/b; a (Landroid/support/v7/b/a; Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/b/b;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="34" label="Landroid/support/v7/app/g; b (Landroid/support/v7/b/a; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/g;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="35" label="Landroid/support/v7/b/b; b (Landroid/support/v7/b/a; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/b/b;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Landroid/support/v7/b/a; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="36" label="Landroid/support/v7/internal/a/g; h ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/a/g;"/>
<attvalue id="2" value="h"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="37" label="Landroid/support/v7/internal/a/h; a (Landroid/support/v7/internal/view/menu/i; Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/a/h;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/internal/view/menu/i; Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="38" label="Landroid/support/v7/internal/a/h; b ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/a/h;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="39" label="Landroid/support/v7/internal/a/h; c ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/a/h;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="40" label="Landroid/support/v7/internal/a/h; d ()Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/a/h;"/>
<attvalue id="2" value="d"/>
<attvalue id="3" value="()Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="41" label="Landroid/support/v7/internal/view/b; a (Landroid/support/v7/internal/view/menu/i; Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/view/b;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/internal/view/menu/i; Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="42" label="Landroid/support/v7/internal/view/b; b ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/view/b;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="43" label="Landroid/support/v7/internal/view/b; c ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/view/b;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="44" label="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5; onResolved (Lcom/spotify/cosmos/router/Response; Ljava/lang/Object;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response; Ljava/lang/Object;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="45" label="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5; a (Lcom/spotify/mobile/android/spotlets/user/ProfileV2VolatileModel;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/user/ProfileV2VolatileModel;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="46" label="Lcom/spotify/mobile/android/spotlets/user/f; K ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/user/f;"/>
<attvalue id="2" value="K"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="47" label="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5; <init> (Lcom/spotify/mobile/android/spotlets/user/f; Landroid/os/Handler; Ljava/lang/Class;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/user/ProfileFragment$5;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/user/f; Landroid/os/Handler; Ljava/lang/Class;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="48" label="Lcom/google/android/gms/internal/mr; a (Lcom/google/android/gms/internal/oe; Lcom/google/android/gms/maps/model/LatLngBounds; Ljava/util/List; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/mr;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/google/android/gms/internal/oe; Lcom/google/android/gms/maps/model/LatLngBounds; Ljava/util/List; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="49" label="Lcom/google/android/gms/maps/model/LatLngBounds; writeToParcel (Landroid/os/Parcel; I)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/model/LatLngBounds;"/>
<attvalue id="2" value="writeToParcel"/>
<attvalue id="3" value="(Landroid/os/Parcel; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="50" label="Lcom/google/android/gms/internal/mr; a (Lcom/google/android/gms/maps/model/LatLngBounds; I Lcom/google/android/gms/internal/nu; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/mr;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/google/android/gms/maps/model/LatLngBounds; I Lcom/google/android/gms/internal/nu; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="51" label="Lcom/google/android/gms/internal/mr; a (Lcom/google/android/gms/maps/model/LatLngBounds; I Ljava/lang/String; Lcom/google/android/gms/internal/nu; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/mr;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/google/android/gms/maps/model/LatLngBounds; I Ljava/lang/String; Lcom/google/android/gms/internal/nu; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="52" label="Lcom/google/android/gms/internal/mr; a (Ljava/lang/String; Lcom/google/android/gms/maps/model/LatLngBounds; Lcom/google/android/gms/internal/nq; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/mr;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/lang/String; Lcom/google/android/gms/maps/model/LatLngBounds; Lcom/google/android/gms/internal/nq; Lcom/google/android/gms/internal/oh; Lcom/google/android/gms/internal/nh;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="53" label="Lcom/google/android/gms/maps/model/e; a (Landroid/os/Parcel;)Lcom/google/android/gms/maps/model/LatLngBounds;">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/model/e;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Lcom/google/android/gms/maps/model/LatLngBounds;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="54" label="Lcom/google/android/gms/maps/model/LatLngBounds; <init> (I Lcom/google/android/gms/maps/model/LatLng; Lcom/google/android/gms/maps/model/LatLng;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/model/LatLngBounds;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(I Lcom/google/android/gms/maps/model/LatLng; Lcom/google/android/gms/maps/model/LatLng;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="55" label="Lcom/spotify/mobile/android/service/media/browser/d; a (Ljava/lang/String; Lcom/spotify/mobile/android/service/media/browser/e;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/service/media/browser/d;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/lang/String; Lcom/spotify/mobile/android/service/media/browser/e;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="56" label="Lcom/spotify/mobile/android/service/media/browser/d$1; <init> (Lcom/spotify/mobile/android/service/media/browser/d; Lcom/spotify/mobile/android/service/media/browser/g; Ljava/lang/String; Lcom/spotify/mobile/android/service/media/browser/e;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/service/media/browser/d$1;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/service/media/browser/d; Lcom/spotify/mobile/android/service/media/browser/g; Ljava/lang/String; Lcom/spotify/mobile/android/service/media/browser/e;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="57" label="Lcom/spotify/mobile/android/service/flow/login/a/f; <init> (Lcom/spotify/mobile/android/util/bf;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/service/flow/login/a/f;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/util/bf;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="58" label="Lcom/spotify/mobile/android/service/flow/login/a/a; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/service/flow/login/a/a;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="59" label="Landroid/support/v7/app/v; onCreate (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onCreate"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="60" label="Landroid/support/v7/app/v; getWindow ()Landroid/view/Window;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="getWindow"/>
<attvalue id="3" value="()Landroid/view/Window;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="61" label="Lcom/spotify/mobile/android/spotlets/mft/a; n ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/mft/a;"/>
<attvalue id="2" value="n"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="62" label="Landroid/support/v7/app/v; r_ ()Landroid/support/v7/app/ActionBar;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="r_"/>
<attvalue id="3" value="()Landroid/support/v7/app/ActionBar;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="63" label="Lcom/spotify/mobile/android/spotlets/mft/a; o ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/mft/a;"/>
<attvalue id="2" value="o"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="64" label="Lcom/spotify/mobile/android/spotlets/share/PostActivity; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/share/PostActivity;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="65" label="Landroid/support/v7/app/v; <init> ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="66" label="Lcom/spotify/mobile/android/spotlets/share/PostActivity; onBackPressed ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/share/PostActivity;"/>
<attvalue id="2" value="onBackPressed"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="67" label="Landroid/support/v7/app/v; onBackPressed ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onBackPressed"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="68" label="Lcom/spotify/mobile/android/spotlets/share/PostActivity; onCreate (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/share/PostActivity;"/>
<attvalue id="2" value="onCreate"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="69" label="Lcom/spotify/mobile/android/spotlets/share/PostActivity; onResume ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/share/PostActivity;"/>
<attvalue id="2" value="onResume"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="70" label="Landroid/support/v7/app/v; onResume ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onResume"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="71" label="Lcom/spotify/music/MainActivity; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="72" label="Lcom/spotify/music/MainActivity; n_ ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="n_"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="73" label="Landroid/support/v7/app/v; n_ ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="n_"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="74" label="Lcom/spotify/music/MainActivity; onConfigurationChanged (Landroid/content/res/Configuration;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onConfigurationChanged"/>
<attvalue id="3" value="(Landroid/content/res/Configuration;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="75" label="Landroid/support/v7/app/v; onConfigurationChanged (Landroid/content/res/Configuration;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onConfigurationChanged"/>
<attvalue id="3" value="(Landroid/content/res/Configuration;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="76" label="Lcom/spotify/music/MainActivity; onDestroy ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onDestroy"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="77" label="Landroid/support/v7/app/v; onDestroy ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onDestroy"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="78" label="Lcom/spotify/music/MainActivity; onKeyDown (I Landroid/view/KeyEvent;)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onKeyDown"/>
<attvalue id="3" value="(I Landroid/view/KeyEvent;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="79" label="Landroid/support/v7/app/v; onKeyDown (I Landroid/view/KeyEvent;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onKeyDown"/>
<attvalue id="3" value="(I Landroid/view/KeyEvent;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="80" label="Lcom/spotify/music/MainActivity; onOptionsItemSelected (Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onOptionsItemSelected"/>
<attvalue id="3" value="(Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="81" label="Landroid/support/v7/app/v; onOptionsItemSelected (Landroid/view/MenuItem;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onOptionsItemSelected"/>
<attvalue id="3" value="(Landroid/view/MenuItem;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="82" label="Lcom/spotify/music/MainActivity; onPause ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onPause"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="83" label="Landroid/support/v7/app/v; onPause ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onPause"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="84" label="Lcom/spotify/music/MainActivity; onPostCreate (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onPostCreate"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="85" label="Landroid/support/v7/app/v; onPostCreate (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onPostCreate"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="86" label="Lcom/spotify/music/MainActivity; onPreparePanel (I Landroid/view/View; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onPreparePanel"/>
<attvalue id="3" value="(I Landroid/view/View; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="87" label="Landroid/support/v7/app/v; onPreparePanel (I Landroid/view/View; Landroid/view/Menu;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onPreparePanel"/>
<attvalue id="3" value="(I Landroid/view/View; Landroid/view/Menu;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="88" label="Lcom/spotify/music/MainActivity; onResume ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onResume"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="89" label="Lcom/spotify/music/MainActivity; onSaveInstanceState (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onSaveInstanceState"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="90" label="Landroid/support/v7/app/v; onSaveInstanceState (Landroid/os/Bundle;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onSaveInstanceState"/>
<attvalue id="3" value="(Landroid/os/Bundle;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="91" label="Lcom/spotify/music/MainActivity; onStart ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onStart"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="92" label="Landroid/support/v7/app/v; onStart ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onStart"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="93" label="Lcom/spotify/music/MainActivity; onStop ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onStop"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="94" label="Landroid/support/v7/app/v; onStop ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onStop"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="95" label="Lcom/spotify/music/MainActivity; onUserLeaveHint ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/MainActivity;"/>
<attvalue id="2" value="onUserLeaveHint"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="96" label="Landroid/support/v7/app/v; onUserLeaveHint ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/app/v;"/>
<attvalue id="2" value="onUserLeaveHint"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="97" label="Landroid/support/v4/view/ah; a (Landroid/view/MenuItem; Landroid/view/View;)Landroid/view/MenuItem;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/ah;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem; Landroid/view/View;)Landroid/view/MenuItem;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="98" label="Landroid/support/v4/view/al; a (Landroid/view/MenuItem; Landroid/view/View;)Landroid/view/MenuItem;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem; Landroid/view/View;)Landroid/view/MenuItem;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="99" label="Landroid/support/v4/view/ah; a (Landroid/view/MenuItem;)Landroid/view/View;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/ah;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem;)Landroid/view/View;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="100" label="Landroid/support/v4/view/al; a (Landroid/view/MenuItem;)Landroid/view/View;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem;)Landroid/view/View;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="101" label="Landroid/support/v4/view/ah; a (Landroid/view/MenuItem; I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/ah;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="102" label="Landroid/support/v4/view/al; a (Landroid/view/MenuItem; I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/al;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/MenuItem; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="103" label="Landroid/support/v4/view/ah; b (Landroid/view/MenuItem; I)Landroid/view/MenuItem;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/ah;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Landroid/view/MenuItem; I)Landroid/view/MenuItem;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="104" label="Landroid/support/v4/view/al; b (Landroid/view/MenuItem; I)Landroid/view/MenuItem;">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/view/al;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Landroid/view/MenuItem; I)Landroid/view/MenuItem;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="105" label="Lcom/spotify/mobile/android/f/h$1; a (Z Z)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h$1;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Z Z)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="106" label="Lcom/spotify/mobile/android/f/h; m_ ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h;"/>
<attvalue id="2" value="m_"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="107" label="Lcom/spotify/mobile/android/f/h; c ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="108" label="Lcom/spotify/mobile/android/f/h$1; c ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h$1;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="109" label="Lcom/spotify/mobile/android/f/r; <init> (Lcom/spotify/mobile/android/service/SpotifyService; Lcom/spotify/mobile/android/service/managers/g; Lcom/spotify/mobile/android/f/t; Lcom/spotify/mobile/android/f/q; Lcom/spotify/mobile/android/service/am; Lcom/spotify/mobile/android/service/al; Lcom/spotify/mobile/android/service/managers/ConnectManager; Lcom/spotify/mobile/android/service/managers/i;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/r;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/service/SpotifyService; Lcom/spotify/mobile/android/service/managers/g; Lcom/spotify/mobile/android/f/t; Lcom/spotify/mobile/android/f/q; Lcom/spotify/mobile/android/service/am; Lcom/spotify/mobile/android/service/al; Lcom/spotify/mobile/android/service/managers/ConnectManager; Lcom/spotify/mobile/android/service/managers/i;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="110" label="Lcom/spotify/mobile/android/f/h; a (Lcom/spotify/mobile/android/f/s;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/f/s;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="111" label="Lcom/spotify/mobile/android/f/t; <init> (Lcom/spotify/mobile/android/f/q;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/t;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/f/q;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="112" label="Lcom/spotify/mobile/android/f/h; <init> (Lcom/spotify/mobile/android/f/q;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/f/q;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="113" label="Lcom/spotify/mobile/android/f/t; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/t;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="114" label="Lcom/spotify/mobile/android/f/h; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/h;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="115" label="Landroid/support/v4/content/q; a (Landroid/content/Intent;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/content/q;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/content/Intent;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="116" label="Landroid/support/v4/content/r; <init> (Landroid/content/Intent; Ljava/util/ArrayList;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v4/content/r;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Landroid/content/Intent; Ljava/util/ArrayList;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="117" label="Lcom/fasterxml/jackson/databind/AnnotationIntrospector; findNameForDeserialization (Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/AnnotationIntrospector;"/>
<attvalue id="2" value="findNameForDeserialization"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="118" label="Lcom/fasterxml/jackson/databind/PropertyName; <init> (Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="119" label="Lcom/fasterxml/jackson/databind/AnnotationIntrospector; findNameForSerialization (Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/AnnotationIntrospector;"/>
<attvalue id="2" value="findNameForSerialization"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="120" label="Lcom/fasterxml/jackson/databind/PropertyName; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="121" label="Lcom/fasterxml/jackson/databind/PropertyName; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="122" label="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory; _addDeserializerConstructors (Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;"/>
<attvalue id="2" value="_addDeserializerConstructors"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="123" label="Lcom/fasterxml/jackson/databind/PropertyName; getSimpleName ()Ljava/lang/String;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="2" value="getSimpleName"/>
<attvalue id="3" value="()Ljava/lang/String;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="124" label="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory; _addDeserializerFactoryMethods (Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;"/>
<attvalue id="2" value="_addDeserializerFactoryMethods"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="125" label="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory; _handleSingleArgumentConstructor (Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector; Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor; Z Z)Z">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/deser/BasicDeserializerFactory;"/>
<attvalue id="2" value="_handleSingleArgumentConstructor"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/DeserializationContext; Lcom/fasterxml/jackson/databind/BeanDescription; Lcom/fasterxml/jackson/databind/introspect/VisibilityChecker; Lcom/fasterxml/jackson/databind/AnnotationIntrospector; Lcom/fasterxml/jackson/databind/deser/impl/CreatorCollector; Lcom/fasterxml/jackson/databind/introspect/AnnotatedConstructor; Z Z)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="126" label="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector; findNameForDeserialization (Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;"/>
<attvalue id="2" value="findNameForDeserialization"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="127" label="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector; findNameForSerialization (Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;"/>
<attvalue id="2" value="findNameForSerialization"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/Annotated;)Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="128" label="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector; findRootName (Lcom/fasterxml/jackson/databind/introspect/AnnotatedClass;)Lcom/fasterxml/jackson/databind/PropertyName;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector;"/>
<attvalue id="2" value="findRootName"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/AnnotatedClass;)Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="129" label="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector; _addCreators ()V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;"/>
<attvalue id="2" value="_addCreators"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="130" label="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector; _addFields ()V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;"/>
<attvalue id="2" value="_addFields"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="131" label="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector; _addGetterMethod (Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod; Lcom/fasterxml/jackson/databind/AnnotationIntrospector;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;"/>
<attvalue id="2" value="_addGetterMethod"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod; Lcom/fasterxml/jackson/databind/AnnotationIntrospector;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="132" label="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector; _addSetterMethod (Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod; Lcom/fasterxml/jackson/databind/AnnotationIntrospector;)V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;"/>
<attvalue id="2" value="_addSetterMethod"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod; Lcom/fasterxml/jackson/databind/AnnotationIntrospector;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="133" label="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector; _renameWithWrappers ()V">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/introspect/POJOPropertiesCollector;"/>
<attvalue id="2" value="_renameWithWrappers"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="134" label="Lcom/fasterxml/jackson/databind/PropertyName; hasSimpleName ()Z">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/PropertyName;"/>
<attvalue id="2" value="hasSimpleName"/>
<attvalue id="3" value="()Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="135" label="Lcom/fasterxml/jackson/databind/util/RootNameLookup; findRootName (Ljava/lang/Class; Lcom/fasterxml/jackson/databind/cfg/MapperConfig;)Lcom/fasterxml/jackson/core/io/SerializedString;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/util/RootNameLookup;"/>
<attvalue id="2" value="findRootName"/>
<attvalue id="3" value="(Ljava/lang/Class; Lcom/fasterxml/jackson/databind/cfg/MapperConfig;)Lcom/fasterxml/jackson/core/io/SerializedString;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="136" label="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1; createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1;"/>
<attvalue id="2" value="createFromParcel"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Ljava/lang/Object;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="137" label="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1; a (Landroid/os/Parcel;)Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="138" label="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="139" label="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/spotlets/discover/model/DiscoverStoryModel$1;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="140" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="141" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$4; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$4;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="142" label="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2; onError (Landroid/media/MediaPlayer; I I)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Landroid/media/MediaPlayer; I I)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="143" label="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2; a (Landroid/media/MediaPlayer; I I)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/media/MediaPlayer; I I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="144" label="Lcom/spotify/mobile/android/spotlets/openaccess/util/d; <init> (Landroid/content/Context; Landroid/media/MediaPlayer; Landroid/media/MediaPlayer;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/openaccess/util/d;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Landroid/content/Context; Landroid/media/MediaPlayer; Landroid/media/MediaPlayer;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="145" label="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2; <init> (Lcom/spotify/mobile/android/spotlets/openaccess/util/d;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/openaccess/util/d$2;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/openaccess/util/d;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="146" label="Landroid/support/v7/internal/widget/ab; a (Landroid/support/v7/app/a;)Landroid/support/v7/internal/widget/ad;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ab;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/app/a;)Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="147" label="Landroid/support/v7/internal/widget/ad; <init> (Landroid/support/v7/internal/widget/ab; Landroid/content/Context; Landroid/support/v7/app/a;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Landroid/support/v7/internal/widget/ab; Landroid/content/Context; Landroid/support/v7/app/a;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="148" label="Landroid/support/v7/internal/widget/ad; setBackgroundDrawable (Landroid/graphics/drawable/Drawable;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="setBackgroundDrawable"/>
<attvalue id="3" value="(Landroid/graphics/drawable/Drawable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="149" label="Landroid/support/v7/internal/widget/ad; setLayoutParams (Landroid/view/ViewGroup$LayoutParams;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="setLayoutParams"/>
<attvalue id="3" value="(Landroid/view/ViewGroup$LayoutParams;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="150" label="Landroid/support/v7/internal/widget/ac; getView (I Landroid/view/View; Landroid/view/ViewGroup;)Landroid/view/View;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ac;"/>
<attvalue id="2" value="getView"/>
<attvalue id="3" value="(I Landroid/view/View; Landroid/view/ViewGroup;)Landroid/view/View;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="151" label="Landroid/support/v7/internal/widget/ad; a (Landroid/support/v7/app/a;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/support/v7/app/a;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="152" label="Landroid/support/v7/internal/widget/ad; b (I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="153" label="Landroid/support/v7/internal/widget/ad; a ()V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="154" label="Landroid/support/v7/internal/widget/ad; addView (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="addView"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="155" label="Landroid/support/v7/internal/widget/ad; removeView (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="removeView"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="156" label="Landroid/support/v7/internal/widget/ad; getContext ()Landroid/content/Context;">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="getContext"/>
<attvalue id="3" value="()Landroid/content/Context;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="157" label="Landroid/support/v7/internal/widget/ad; addView (Landroid/view/View; I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="addView"/>
<attvalue id="3" value="(Landroid/view/View; I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="158" label="Landroid/support/v7/internal/widget/ad; setOnLongClickListener (Landroid/view/View$OnLongClickListener;)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="setOnLongClickListener"/>
<attvalue id="3" value="(Landroid/view/View$OnLongClickListener;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="159" label="Landroid/support/v7/internal/widget/ad; setLongClickable (Z)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="setLongClickable"/>
<attvalue id="3" value="(Z)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="160" label="Landroid/support/v7/internal/widget/ad; onLongClick (Landroid/view/View;)Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="onLongClick"/>
<attvalue id="3" value="(Landroid/view/View;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="161" label="Landroid/support/v7/internal/widget/ad; getLocationOnScreen ([I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="getLocationOnScreen"/>
<attvalue id="3" value="([I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="162" label="Landroid/support/v7/internal/widget/ad; getWidth ()I">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="getWidth"/>
<attvalue id="3" value="()I"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="163" label="Landroid/support/v7/internal/widget/ad; getHeight ()I">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="getHeight"/>
<attvalue id="3" value="()I"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="164" label="Landroid/support/v7/internal/widget/ad; onMeasure (I I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="onMeasure"/>
<attvalue id="3" value="(I I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="165" label="Landroid/support/v7/internal/widget/ad; getMeasuredWidth ()I">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="getMeasuredWidth"/>
<attvalue id="3" value="()I"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="166" label="Landroid/support/v7/internal/widget/ad; setSelected (Z)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="setSelected"/>
<attvalue id="3" value="(Z)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="167" label="Landroid/support/v7/internal/widget/ad; isSelected ()Z">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="isSelected"/>
<attvalue id="3" value="()Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="168" label="Landroid/support/v7/internal/widget/ad; sendAccessibilityEvent (I)V">
<attvalues>
<attvalue id="1" value="Landroid/support/v7/internal/widget/ad;"/>
<attvalue id="2" value="sendAccessibilityEvent"/>
<attvalue id="3" value="(I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="169" label="Lcom/spotify/mobile/android/ui/contextmenu/h; a (Ljava/lang/String; Ljava/lang/String; I Lcom/spotify/mobile/android/ui/fragments/logic/Flags;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/contextmenu/h;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String; I Lcom/spotify/mobile/android/ui/fragments/logic/Flags;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="170" label="Lcom/spotify/mobile/android/ui/contextmenu/h$6; <init> (Lcom/spotify/mobile/android/ui/contextmenu/h; Lcom/spotify/mobile/android/ui/fragments/logic/Flags; Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/contextmenu/h$6;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/contextmenu/h; Lcom/spotify/mobile/android/ui/fragments/logic/Flags; Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="171" label="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d; a (D D)D">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(D D)D"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="172" label="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d; a (D)I">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(D)I"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="173" label="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d; a (Lcom/spotify/mobile/android/ui/view/snowglobe/a/e; D D)D">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/view/snowglobe/a/d;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/view/snowglobe/a/e; D D)D"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="174" label="Lcom/spotify/mobile/android/ui/view/snowglobe/d; a (I)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/view/snowglobe/d;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(I)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="175" label="Lcom/spotify/mobile/android/spotlets/collection/fragments/b; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/collection/fragments/b;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="176" label="Lcom/spotify/mobile/android/spotlets/collection/fragments/b$10; <init> (Lcom/spotify/mobile/android/spotlets/collection/fragments/b;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/collection/fragments/b$10;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/spotlets/collection/fragments/b;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="177" label="Lcom/google/android/gms/maps/model/i; a (Landroid/os/Parcel;)Lcom/google/android/gms/maps/model/StreetViewPanoramaCamera;">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/model/i;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/os/Parcel;)Lcom/google/android/gms/maps/model/StreetViewPanoramaCamera;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="178" label="Lcom/google/android/gms/maps/model/StreetViewPanoramaCamera; <init> (I F F F)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/maps/model/StreetViewPanoramaCamera;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(I F F F)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="179" label="Lcom/spotify/mobile/android/f/e$1; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/e$1;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="180" label="Lcom/spotify/mobile/android/spotlets/ads/c; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="181" label="Lcom/spotify/mobile/android/f/e$1; b ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/e$1;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="182" label="Lcom/spotify/mobile/android/spotlets/ads/c; b ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="183" label="Lcom/spotify/mobile/android/f/e$2; a ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/e$2;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="184" label="Lcom/spotify/mobile/android/spotlets/ads/c; c ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="185" label="Lcom/spotify/mobile/android/f/e$2; b ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/f/e$2;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="186" label="Lcom/spotify/mobile/android/spotlets/ads/c; d ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="d"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="187" label="Lcom/spotify/mobile/android/spotlets/ads/c; e ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="e"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="188" label="Lcom/spotify/music/a$6; b ()Lcom/spotify/mobile/android/spotlets/ads/c;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/music/a$6;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="()Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="189" label="Lcom/spotify/mobile/android/spotlets/ads/c; <init> (Landroid/content/Context;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/spotlets/ads/c;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Landroid/content/Context;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="190" label="Lcom/fasterxml/jackson/databind/type/TypeFactory; _constructType (Ljava/lang/reflect/Type; Lcom/fasterxml/jackson/databind/type/TypeBindings;)Lcom/fasterxml/jackson/databind/JavaType;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/type/TypeFactory;"/>
<attvalue id="2" value="_constructType"/>
<attvalue id="3" value="(Ljava/lang/reflect/Type; Lcom/fasterxml/jackson/databind/type/TypeBindings;)Lcom/fasterxml/jackson/databind/JavaType;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="191" label="Lcom/fasterxml/jackson/databind/type/TypeModifier; modifyType (Lcom/fasterxml/jackson/databind/JavaType; Ljava/lang/reflect/Type; Lcom/fasterxml/jackson/databind/type/TypeBindings; Lcom/fasterxml/jackson/databind/type/TypeFactory;)Lcom/fasterxml/jackson/databind/JavaType;">
<attvalues>
<attvalue id="1" value="Lcom/fasterxml/jackson/databind/type/TypeModifier;"/>
<attvalue id="2" value="modifyType"/>
<attvalue id="3" value="(Lcom/fasterxml/jackson/databind/JavaType; Ljava/lang/reflect/Type; Lcom/fasterxml/jackson/databind/type/TypeBindings; Lcom/fasterxml/jackson/databind/type/TypeFactory;)Lcom/fasterxml/jackson/databind/JavaType;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="192" label="Lcom/google/android/gms/internal/fn; a (Landroid/os/IBinder;)Lcom/google/android/gms/internal/fm;">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/fn;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/os/IBinder;)Lcom/google/android/gms/internal/fm;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="193" label="Lcom/google/android/gms/internal/fo; <init> (Landroid/os/IBinder;)V">
<attvalues>
<attvalue id="1" value="Lcom/google/android/gms/internal/fo;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Landroid/os/IBinder;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="194" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; <init> (Ljava/lang/String; I Ljava/lang/String; B)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; I Ljava/lang/String; B)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="195" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; <init> (Ljava/lang/String; I Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; I Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="196" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$1; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$1;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="197" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$2; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$2;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="198" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$3; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$3;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="199" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$5; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$5;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="200" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$6; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$6;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="201" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$7; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$7;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="202" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$8; <init> (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory$8;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="203" label="Lcom/spotify/android/paste/app/FontSupport; <clinit> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport;"/>
<attvalue id="2" value="<clinit>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="204" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; values ()[Lcom/spotify/android/paste/app/FontSupport$ViewFactory;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="values"/>
<attvalue id="3" value="()[Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="205" label="Lcom/spotify/android/paste/app/FontSupport; onCreateView (Ljava/lang/String; Landroid/content/Context; Landroid/util/AttributeSet;)Landroid/view/View;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport;"/>
<attvalue id="2" value="onCreateView"/>
<attvalue id="3" value="(Ljava/lang/String; Landroid/content/Context; Landroid/util/AttributeSet;)Landroid/view/View;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="206" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; a (Landroid/content/Context; Landroid/util/AttributeSet;)Landroid/widget/TextView;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/content/Context; Landroid/util/AttributeSet;)Landroid/widget/TextView;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="207" label="Lcom/spotify/android/paste/app/FontSupport$ViewFactory; a ()I">
<attvalues>
<attvalue id="1" value="Lcom/spotify/android/paste/app/FontSupport$ViewFactory;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="()I"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="208" label="Lcom/spotify/mobile/android/ui/e; a (Lcom/spotify/mobile/android/util/SpotifyLink; Landroid/content/Intent; Ljava/lang/String; Ljava/lang/String; Z Ljava/lang/String; Lcom/spotify/mobile/android/ui/fragments/logic/Flags;)Lcom/spotify/mobile/android/ui/fragments/e;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/e;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/util/SpotifyLink; Landroid/content/Intent; Ljava/lang/String; Ljava/lang/String; Z Ljava/lang/String; Lcom/spotify/mobile/android/ui/fragments/logic/Flags;)Lcom/spotify/mobile/android/ui/fragments/e;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="209" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; <init> ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="<init>"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="210" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$10; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$10;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="211" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; f (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="f"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="212" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$11; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$11;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="213" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; g (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="g"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="214" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$12; onItemSelected (Landroid/widget/AdapterView; Landroid/view/View; I J)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$12;"/>
<attvalue id="2" value="onItemSelected"/>
<attvalue id="3" value="(Landroid/widget/AdapterView; Landroid/view/View; I J)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="215" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; b (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Z)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Z)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="216" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$13; a (Lcom/spotify/mobile/android/cosmos/player/v1/PlayerState;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$13;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/cosmos/player/v1/PlayerState;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="217" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="218" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="219" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$13; onError (Ljava/lang/Throwable; Lcom/spotify/mobile/android/cosmos/ParsingCallbackReceiver$ErrorCause;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$13;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable; Lcom/spotify/mobile/android/cosmos/ParsingCallbackReceiver$ErrorCause;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="220" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$14; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$14;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="221" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$14; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$14;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="222" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$15; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$15;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="223" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$15; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$15;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="224" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$16; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$16;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="225" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$16; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$16;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="226" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$17; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$17;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="227" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$17; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$17;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="228" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$18; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$18;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="229" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$18; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$18;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="230" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$19; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$19;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="231" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$19; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$19;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="232" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$20; onError (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$20;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="233" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$20; onResolved (Lcom/spotify/cosmos/router/Response;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$20;"/>
<attvalue id="2" value="onResolved"/>
<attvalue id="3" value="(Lcom/spotify/cosmos/router/Response;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="234" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$21; onItemSelected (Landroid/widget/AdapterView; Landroid/view/View; I J)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$21;"/>
<attvalue id="2" value="onItemSelected"/>
<attvalue id="3" value="(Landroid/widget/AdapterView; Landroid/view/View; I J)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="235" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; h (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="h"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="236" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; i (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="i"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="237" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$22; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$22;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="238" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; j (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="j"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="239" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$2; a (Lcom/spotify/mobile/android/cosmos/player/v1/PlayerState;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$2;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/cosmos/player/v1/PlayerState;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="240" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Z)Z">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Z)Z"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="241" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; c (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Landroid/widget/Button;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="c"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Landroid/widget/Button;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="242" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Ljava/lang/String;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Ljava/lang/String;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="243" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; b (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Ljava/lang/String;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="b"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Ljava/lang/String;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="244" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$2; onError (Ljava/lang/Throwable; Lcom/spotify/mobile/android/cosmos/ParsingCallbackReceiver$ErrorCause;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$2;"/>
<attvalue id="2" value="onError"/>
<attvalue id="3" value="(Ljava/lang/Throwable; Lcom/spotify/mobile/android/cosmos/ParsingCallbackReceiver$ErrorCause;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="245" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$3; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$3;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="246" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; k (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="k"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="247" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$4; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$4;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="248" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; l (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="l"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="249" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$5; onCheckedChanged (Landroid/widget/CompoundButton; Z)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$5;"/>
<attvalue id="2" value="onCheckedChanged"/>
<attvalue id="3" value="(Landroid/widget/CompoundButton; Z)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="250" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$6; run ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$6;"/>
<attvalue id="2" value="run"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="251" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; m (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Landroid/widget/ScrollView;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="m"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)Landroid/widget/ScrollView;"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="252" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$8; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$8;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="253" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; d (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="d"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="254" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$9; onClick (Landroid/view/View;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment$9;"/>
<attvalue id="2" value="onClick"/>
<attvalue id="3" value="(Landroid/view/View;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="255" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; e (Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="e"/>
<attvalue id="3" value="(Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="256" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; J ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="J"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="257" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; K ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="K"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="258" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; L ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="L"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="259" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; M ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="M"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="260" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; P ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="P"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="261" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; N ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="N"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="262" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; O ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="O"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="263" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Ljava/lang/String; Ljava/lang/String;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/lang/String; Ljava/lang/String;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="264" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Ljava/lang/Throwable;)V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Ljava/lang/Throwable;)V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="265" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; G ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="G"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="266" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; F ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="F"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="267" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; R ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="R"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="268" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; Q ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="Q"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="269" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; S ()V">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="S"/>
<attvalue id="3" value="()V"/>
<attvalue id="6" value="false"/>
</attvalues>
</node>
<node id="270" label="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment; a (Landroid/view/LayoutInflater; Landroid/view/ViewGroup; Landroid/os/Bundle;)Landroid/view/View;">
<attvalues>
<attvalue id="1" value="Lcom/spotify/mobile/android/ui/fragments/CosmosTestFragment;"/>
<attvalue id="2" value="a"/>
<attvalue id="3" value="(Landroid/view/LayoutInflater; Landroid/view/ViewGroup; Landroid/os/Bundle;)Landroid/view/View;"/>
<attvalue id="6" value=
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
class GVMAnalysisExample(AndroScript):
''' Example that uses the `GVMAnalysis` object from `androguard` to create a graph '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
self.cres = gvm_analysis.export_to_gexf()
def custom_result_object(self):
'''
Overwrite this method, if you want to use your own result logging framework/object,
You can supply it here and access it via `self.cres`.
E.g. you could return ("", "txt") for simply logging with a string to a .txt file.
Returns
-------
tuple<object, str>
First argument is the result object you want to use,
the second is the file name extension used for storage (without a leading point)
'''
# Simply use str for logging
# The first parameter isn't needed at all,
# because we only set the result at the end of the _analyze method
return ("", "gexf")
def needs_gvmanalysis(self):
return True
Intents¶
This is an autogenerated documentation file for the script: Intents
Run it¶
$ ./androanalyze scripts_builtin/Intents.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Intents -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Intents",
"sha256": "db68305576534261d6bde5ce8d13f15a695a074e539c2a6cd42160bab598bbe4",
"analysis date": "2015-06-22T20:29:33.878000",
"version": "0.1"
},
"intents": {
"services": {
"com_spotify_mobile_android_androidauto_SpotifyMediaBrowserService": {
"action": [
"android.media.browse.MediaBrowserService"
]
},
"com_spotify_mobile_android_service_RemoteNativeRouterProxy": {
"action": [
"com.spotify.mobile.service.action.COSMOS_PROXY"
]
}
},
"activities": {
"com_spotify_mobile_android_ui_activity_TosTextActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_sony_snei_np_android_account_oauth_BrowserRedirectReceiverActivity": {
"action": [
"android.intent.action.VIEW"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_music_MainActivity": {
"action": [
"android.intent.action.MAIN",
"android.intent.action.MUSIC_PLAYER",
"android.nfc.action.NDEF_DISCOVERED",
"android.intent.action.SEARCH",
"android.intent.action.VIEW",
"com.facebook.application.174829003346",
"android.media.action.MEDIA_PLAY_FROM_SEARCH",
"com.sonymobile.media.dashboard.ACTION_VIEW_MUSIC_TILE"
],
"category": [
"android.intent.category.LAUNCHER",
"android.intent.category.DEFAULT",
"android.intent.category.APP_MUSIC",
"android.intent.category.BROWSABLE"
]
},
"com_spotify_mobile_android_service_LoginActivity": {
"action": [
"com.spotify.mobile.android.service.action.session.LOGIN"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_arsenal_ArsenalSSOBrowserActivity": {
"action": [
"com.spotify.music.NPAM_ACTION_BROWSER"
],
"category": [
"android.intent.category.DEFAULT",
"android.intent.category.LAUNCHER"
]
}
},
"content providers": {},
"broadcast receivers": {
"com_mixpanel_android_mpmetrics_InstallReferrerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
},
"com_spotify_music_spotlets_optintrial_TrialAlarmBroadcastReceiver": {
"action": [
"com.spotify.music.spotlets.optintrial.action.TRIAL_REMINDER"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_mobile_android_spotlets_collection_receiver_ConnectionStateChangedReceiver": {
"action": [
"com.spotify.mobile.android.service.broadcast.session.CONNECTION_STATE_CHANGED"
]
},
"com_spotify_music_spotlets_widget_SpotifyWidget": {
"action": [
"android.appwidget.action.APPWIDGET_UPDATE",
"com.spotify.mobile.android.ui.widget.PREVIOUS",
"com.spotify.mobile.android.ui.widget.PLAY",
"com.spotify.mobile.android.ui.widget.NEXT"
]
},
"com_spotify_music_internal_receiver_LoggerReceiver": {
"action": [
"com.spotify.music.internal.receiver.CACHE_LOG"
],
"category": [
"android.intent.category.DEFAULT"
]
},
"com_spotify_music_internal_receiver_MediaButtonReceiver": {
"action": [
"android.intent.action.MEDIA_BUTTON"
]
},
"com_spotify_mobile_android_applink_AppLinkBluetoothManager": {
"action": [
"android.bluetooth.adapter.action.STATE_CHANGED",
"android.bluetooth.device.action.ACL_CONNECTED",
"android.bluetooth.device.action.ACL_DISCONNECTED"
]
},
"com_spotify_music_spotlets_gcm_GcmBroadcastReceiver": {
"action": [
"com.google.android.c2dm.intent.RECEIVE"
],
"category": [
"com.spotify.music"
]
},
"com_spotify_music_spotlets_mobileapptracker_MobileAppTrackerReceiver": {
"action": [
"com.android.vending.INSTALL_REFERRER"
]
}
}
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Intents -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Intents -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
from androlyze.model.script.impl.manifest.components import get_components_cache, \
component_key_2_intent_key
CAT_INTENTS = "intents"
class Intents(AndroScript):
''' Get intents '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
components_cache = get_components_cache(apk)
# intents
for k, package_names in components_cache.items():
intents = {}
for package_name in package_names:
# get intent filter for activity, service or receiver
intent_key = component_key_2_intent_key(k)
package_intents = apk.get_intent_filters(intent_key, package_name)
if package_intents:
intents[package_name] = package_intents
res.register_keys([k], CAT_INTENTS)
res.log(k, intents, CAT_INTENTS)
Libs¶
This is an autogenerated documentation file for the script: Libs
Run it¶
$ ./androanalyze scripts_builtin/Libs.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Libs -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Libs",
"sha256": "0b9f2891de2b7ff87eaf4da7588618984f19542c6cac6e3899d3c69cf508518a",
"analysis date": "2015-06-22T20:29:33.907000",
"version": "0.1"
},
"libraries": []
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Libs -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Libs -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
class Libs(AndroScript):
''' List the libraries '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
#categories
CAT_LIBS = "libraries"
res = self.res
# libs
res.register_keys([CAT_LIBS])
res.log(CAT_LIBS, apk.get_libraries())
Manifest¶
This is an autogenerated documentation file for the script: Manifest
Run it¶
$ ./androanalyze scripts_builtin/Manifest.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Manifest -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Manifest",
"sha256": "a5c3aacd2a44b935a3d2628f2e552c57e8b580b42ac4b5bd37559aa3dd300252",
"analysis date": "2015-06-22T20:29:33.907000",
"version": "0.2"
},
"Manifest": [
"<?xml version=\"1.0\" ?>",
"<manifest android:versionCode=\"3934069\" android:versionName=\"2.2.0.636\" package=\"com.spotify.music\" platformBuildVersionCode=\"21\" platformBuildVersionName=\"5.0.1-1624448\" xmlns:android=\"http://schemas.android.com/apk/res/android\">",
" ",
" <uses-sdk android:minSdkVersion=\"15\" android:targetSdkVersion=\"21\">",
"</uses-sdk>",
" ",
" <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BROADCAST_STICKY\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.GET_ACCOUNTS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.INTERNET\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.NFC\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.READ_PHONE_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.WAKE_LOCK\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.android.vending.BILLING\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\">",
"</uses-permission>",
" ",
" <permission android:name=\"com.spotify.music.permission.C2D_MESSAGE\" android:protectionLevel=\"0x00000002\">",
"</permission>",
" ",
" <uses-permission android:name=\"com.spotify.music.permission.C2D_MESSAGE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BLUETOOTH\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.USE_CREDENTIALS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.MANAGE_ACCOUNTS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.sony.snei.np.android.account.provider.permission.DUID_READ_PROVIDER\">",
"</uses-permission>",
" ",
" <uses-feature android:name=\"android.hardware.bluetooth\" android:required=\"false\">",
"</uses-feature>",
" ",
" <supports-screens android:anyDensity=\"true\" android:largeScreens=\"true\" android:normalScreens=\"true\" android:smallScreens=\"true\">",
"</supports-screens>",
" ",
" <application android:allowBackup=\"false\" android:hardwareAccelerated=\"true\" android:icon=\"@7F02019A\" android:label=\"@7F070051\" android:name=\"com.spotify.music.SpotifyApplication\" android:theme=\"@7F100115\">",
" ",
" <meta-data android:name=\"com.spotify.music.core.version\" android:value=\"0.0.0.999.g5bf8943d\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.spotify.music.githash\" android:value=\"g951e8dfd\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.facebook.sdk.ApplicationId\" android:value=\"@7F070249\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.google.android.gms.version\" android:value=\"@7F0E0007\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.google.android.gms.car.application\" android:resource=\"@7F050000\">",
"</meta-data>",
" ",
" <activity android:configChanges=\"0x00000020\" android:launchMode=\"2\" android:name=\"com.spotify.music.MainActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000020\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MAIN\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.LAUNCHER\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MAIN\">",
"</action>",
" ",
" <action android:name=\"android.intent.action.MUSIC_PLAYER\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.APP_MUSIC\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.nfc.action.NDEF_DISCOVERED\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"http\">",
"</data>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.facebook.application.174829003346\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"http\">",
"</data>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"www.spotify.com\" android:pathPrefix=\"/redirect/get-premium/\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.action.MEDIA_PLAY_FROM_SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.action.MEDIA_PLAY_FROM_SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.BACKGROUND_ICON\" android:resource=\"@7F020036\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.TITLE\" android:resource=\"@7F070051\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.SMALL_ICON\" android:resource=\"@7F0201CB\">",
"</meta-data>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.sonymobile.media.dashboard.ACTION_VIEW_MUSIC_TILE\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:configChanges=\"0x00000020\" android:exported=\"false\" android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.service.LoginActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011F\" android:windowSoftInputMode=\"0x00000010\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.android.service.action.session.LOGIN\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.PlayerActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.CoverImageActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100121\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.service.TermsOfServiceChangedActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100118\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PermissionsActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:exported=\"false\" android:name=\"com.spotify.mobile.android.ui.activity.TosTextActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"com.spotify.mobile.android.tos\">",
"</data>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.UpdateActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.spotlets.share.PostActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100115\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShareActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100117\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShareToSpotifyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.FacebookPlaceholderActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.share.ConnectFacebookActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.FacebookWebPermissionsActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AddToPlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100117\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.ui.activity.DeviceActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ConfirmDeletionActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.CreateRenamePlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DisableOfflineModeActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.TrialReminderActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.PremiumUpsellInterstitialActivity\" android:screenOrientation=\"1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.HolidayOfferUpsellInterstitialActivity\" android:screenOrientation=\"1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.OfflineSyncErrorActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000012\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DiskAlmostFullActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.UpsellDialogActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.UpsellPremiumOnlyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.PremiumSignupActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.NotificationWebViewActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AppRaterActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlayQueueActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlayHistoryActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiOnlyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiMftGroup3NoMoreTimeActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.RemotePlaybackActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.ConnectOnboardingActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.SoundEffectsWarningActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsConfirmationActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AnnotateDiscardChangesActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.LastFmLoginDialog\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000020\" android:name=\"com.spotify.mobile.android.ui.activity.DeletingCacheDialogActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.util.ViewTesterActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:exported=\"false\" android:name=\"com.spotify.mobile.android.util.FragmentTesterActivity\" android:screenOrientation=\"-1\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:name=\"com.facebook.LoginActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.TrialStartedActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.suggestedtweet.SuggestedTweetActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShowcaseActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.spotlets.openaccess.OpenAccessActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.UninstallOldAppActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.ui.activity.VolumeWidgetActivity\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000480\" android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.spotlets.video.BackgroundableVideoPlayerActivity\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.MarketingOptInActivity\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.service.ResetPasswordActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.LockScreenActivity\" android:screenOrientation=\"7\" android:theme=\"@7F10011E\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.music.spotlets.networkoperatorpremiumactivation.PremiumActivationOptInDialog\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.ads.BannerAdActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100122\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000FB0\" android:name=\"com.google.android.gms.ads.AdActivity\" android:theme=\"@android:0103000F\">",
"</activity>",
" ",
" <activity android:excludeFromRecents=\"true\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.arsenal.ArsenalSSOBrowserActivity\" android:windowSoftInputMode=\"0x00000003\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.music.NPAM_ACTION_BROWSER\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.LAUNCHER\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:exported=\"true\" android:name=\"com.sony.snei.np.android.account.oauth.BrowserRedirectReceiverActivity\" android:windowSoftInputMode=\"0x00000003\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"redirect\" android:scheme=\"com.spotify.music.npam\">",
"</data>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039D\" android:name=\"com.spotify.mobile.android.service.SpotifyService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.video.VideoService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.MetadataManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.ConnectManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.SessionManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.RemoteNativeRouterProxy\" android:process=\"com.spotify.music.service\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.service.action.COSMOS_PROXY\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.MonitorService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.util.tracking.TrackingService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerIntentService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.DeviceIdentifierLoggerIntentService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.internal.service.DeleteCacheService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.video.BackgroundableVideoService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.internal.service.DeleteOldCacheLocationsService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.service.AnnotateService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.service.RecentlyPlayedService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.cosmos.service.CollectionService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.offline.service.OfflineService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.podcast.service.PlayedStateService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.ads.VideoAdService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.VideoPlayerManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.situationalcontent.loggers.activityrecognition.ActivityRecognitionIntentService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.radio.service.RadioActionsService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.player.PlayerStateService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.session.SessionStateService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.media.MediaService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.applink.service.AppLinkService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.feature.FeatureService\">",
"</service>",
" ",
" <service android:exported=\"true\" android:label=\"Android Auto Spotify\" android:name=\"com.spotify.mobile.android.androidauto.SpotifyMediaBrowserService\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.browse.MediaBrowserService\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </service>",
" ",
" <receiver android:name=\"com.spotify.music.internal.receiver.MediaButtonReceiver\" android:process=\"com.spotify.music.service\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MEDIA_BUTTON\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"false\" android:name=\"com.spotify.music.spotlets.optintrial.TrialAlarmBroadcastReceiver\" android:process=\"com.spotify.music\">",
" ",
" <intent-filter>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <action android:name=\"com.spotify.music.spotlets.optintrial.action.TRIAL_REMINDER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:label=\"Spotify Home Screen Widget\" android:name=\"com.spotify.music.spotlets.widget.SpotifyWidget\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.appwidget.action.APPWIDGET_UPDATE\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.PREVIOUS\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.PLAY\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.NEXT\">",
"</action>",
" ",
" </intent-filter>",
" ",
" <meta-data android:name=\"android.appwidget.provider\" android:resource=\"@7F050001\">",
"</meta-data>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.android.vending.INSTALL_REFERRER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.music.spotlets.gcm.GcmBroadcastReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.google.android.c2dm.intent.RECEIVE\">",
"</action>",
" ",
" <category android:name=\"com.spotify.music\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.mobile.android.applink.AppLinkBluetoothManager\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.bluetooth.adapter.action.STATE_CHANGED\">",
"</action>",
" ",
" <action android:name=\"android.bluetooth.device.action.ACL_CONNECTED\">",
"</action>",
" ",
" <action android:name=\"android.bluetooth.device.action.ACL_DISCONNECTED\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"false\" android:name=\"com.spotify.music.internal.receiver.LoggerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.music.internal.receiver.CACHE_LOG\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:enabled=\"false\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.spotlets.collection.receiver.ConnectionStateChangedReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.android.service.broadcast.session.CONNECTION_STATE_CHANGED\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <provider android:authorities=\"com.spotify.music\" android:exported=\"false\" android:multiprocess=\"true\" android:name=\"com.spotify.music.internal.provider.SpotifyProvider\">",
"</provider>",
" ",
" <provider android:authorities=\"com.spotify.music.logger\" android:exported=\"false\" android:name=\"com.spotify.music.internal.provider.LoggerProvider\" android:process=\"com.spotify.music.service\">",
"</provider>",
" ",
" <provider android:authorities=\"com.spotify.music.prefs\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.util.prefs.PrefsProvider\">",
"</provider>",
" ",
" <provider android:authorities=\"@7F0702B0\" android:exported=\"true\" android:name=\"com.spotify.mobile.android.service.media.provider.MediaProvider\">",
"</provider>",
" ",
" <meta-data android:name=\"com.crashlytics.ApiKey\" android:value=\"ed79a89851fe4ae8eb60f37284a088b1055997d8\">",
"</meta-data>",
" ",
" <activity android:label=\"RecyclerViewTestActivity\" android:name=\"android.support.v7.widget.TestActivity\">",
"</activity>",
" ",
" <activity android:name=\"com.mixpanel.android.surveys.SurveyActivity\">",
"</activity>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.mixpanel.android.mpmetrics.InstallReferrerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.android.vending.INSTALL_REFERRER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" </application>",
" ",
"</manifest>",
""
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Manifest -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Manifest -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
import re
from androlyze.model.script.AndroScript import AndroScript
class Manifest(AndroScript):
''' Extract the android manifest file (XML) '''
VERSION = "0.2"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
# register key
KEY = "Manifest"
res.register_keys([KEY])
# faster way
# # get manifest
# manifest_xml = ""
# for i in apk.zip.namelist():
# if i == "AndroidManifest.xml":
# apk.axml[i] = AXMLPrinter(apk.zip.read(i))
# try:
# manifest_xml = apk.axml[i].get_buff()
# except:
# pass
# more convenient way with pretty priting, but also slower
manifest_str = apk.xml.items()[0][1].toprettyxml(indent=" " * 2)
# replace multiple \n and split into list for better representation in json
manifest_str = re.sub("\n+", "\n", manifest_str)
manifest_list = manifest_str.split("\n")
res.log(KEY, manifest_list)
# if manifest_xml:
# res.log(KEY, manifest_xml.split("\n"))
if __name__ == '__main__':
for res in AndroScript.test(Manifest, ["../../../../../../androguard_playground/apks/ipcinetcall.apk"]):
print res.write_to_json()
Permissions¶
This is an autogenerated documentation file for the script: Permissions
Run it¶
$ ./androanalyze scripts_builtin/Permissions.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Permissions -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Permissions",
"sha256": "84a794c66096f83a4b96673974de5990d21cc1d1af66db9f14810c80ed959237",
"analysis date": "2015-06-22T20:29:33.912000",
"version": "0.1"
},
"permissions": [
"android.permission.ACCESS_NETWORK_STATE",
"android.permission.ACCESS_WIFI_STATE",
"android.permission.BLUETOOTH",
"android.permission.BLUETOOTH_ADMIN",
"android.permission.BROADCAST_STICKY",
"android.permission.GET_ACCOUNTS",
"android.permission.INTERNET",
"android.permission.MANAGE_ACCOUNTS",
"android.permission.MODIFY_AUDIO_SETTINGS",
"android.permission.NFC",
"android.permission.READ_PHONE_STATE",
"android.permission.USE_CREDENTIALS",
"android.permission.WAKE_LOCK",
"android.permission.WRITE_EXTERNAL_STORAGE",
"com.android.vending.BILLING",
"com.google.android.c2dm.permission.RECEIVE",
"com.sony.snei.np.android.account.provider.permission.DUID_READ_PROVIDER",
"com.spotify.music.permission.C2D_MESSAGE"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Permissions -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Permissions -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
class Permissions(AndroScript):
''' List the permissions '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
#categories
CAT_PERMISSIONS = "permissions"
res = self.res
res.register_keys([CAT_PERMISSIONS])
# permissions
res.log(CAT_PERMISSIONS, sorted(apk.get_permissions()))
PublicContentProviders¶
This is an autogenerated documentation file for the script: PublicContentProviders
Run it¶
$ ./androanalyze scripts_builtin/PublicContentProviders.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn PublicContentProviders -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "PublicContentProviders",
"sha256": "7e216f32317ead92ad2e43962b82a5eb460e691a47e46753632d3e8fe518f4fa",
"analysis date": "2015-06-22T20:29:33.912000",
"version": "0.1"
},
"public_content_providers": [
"com.spotify.mobile.android.service.media.provider.MediaProvider"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn PublicContentProviders -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn PublicContentProviders -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
CAT = "public_content_providers"
class PublicContentProviders(AndroScript):
''' Lists all public content providers '''
VERSION = "0.1"
def register_structure(self, res):
# register keys
res.register_enum_keys([CAT])
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
'''
Parameters
----------
apk: EAndroApk
dalvik_vm_format: DalvikVMFormat
Parsed .dex file.
Only available if `needs_dalvik_vm_format` returns True.
vm_analysis: VMAnalysis
Dex analyzer.
Only available if `needs_vmanalysis` returns True.
gvm_analysis : GVMAnalysis
'''
res = self.res
self.register_structure(res)
public_components = apk.get_manifest_public_components()
for cp in apk.get_providers():
if cp in public_components:
res.log_append_to_enum(CAT, cp)
# testing code
if __name__ == '__main__':
for res in AndroScript.test(PublicContentProviders, ["../../../../../../../androguard_playground/apks/sql_injection.apk", "../../../../../../../androguard_playground/apks/public_content_provider.apk"]):
print res.write_to_json()
PublicContentProviders_Manifest¶
This is an autogenerated documentation file for the script: PublicContentProviders_Manifest
Run it¶
$ ./androanalyze scripts_builtin/PublicContentProviders_Manifest.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn PublicContentProviders_Manifest -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "PublicContentProviders_Manifest",
"sha256": "cd96bae2e4c69c2b257070016a42ca029871cb2cdc4dfb926217f7382bcb362a",
"analysis date": "2015-06-22T20:29:33.990000",
"version": "0.1"
},
"ContentProviderStuff": {
"public_content_providers": [
"com.spotify.mobile.android.service.media.provider.MediaProvider"
],
"content providers": [
"com.spotify.music.internal.provider.SpotifyProvider",
"com.spotify.music.internal.provider.LoggerProvider",
"com.spotify.mobile.android.util.prefs.PrefsProvider",
"com.spotify.mobile.android.service.media.provider.MediaProvider"
],
"Manifest": [
"<?xml version=\"1.0\" ?>",
"<manifest android:versionCode=\"3934069\" android:versionName=\"2.2.0.636\" package=\"com.spotify.music\" platformBuildVersionCode=\"21\" platformBuildVersionName=\"5.0.1-1624448\" xmlns:android=\"http://schemas.android.com/apk/res/android\">",
" ",
" <uses-sdk android:minSdkVersion=\"15\" android:targetSdkVersion=\"21\">",
"</uses-sdk>",
" ",
" <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BROADCAST_STICKY\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.GET_ACCOUNTS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.INTERNET\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.NFC\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.READ_PHONE_STATE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.WAKE_LOCK\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.android.vending.BILLING\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\">",
"</uses-permission>",
" ",
" <permission android:name=\"com.spotify.music.permission.C2D_MESSAGE\" android:protectionLevel=\"0x00000002\">",
"</permission>",
" ",
" <uses-permission android:name=\"com.spotify.music.permission.C2D_MESSAGE\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BLUETOOTH\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.USE_CREDENTIALS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"android.permission.MANAGE_ACCOUNTS\">",
"</uses-permission>",
" ",
" <uses-permission android:name=\"com.sony.snei.np.android.account.provider.permission.DUID_READ_PROVIDER\">",
"</uses-permission>",
" ",
" <uses-feature android:name=\"android.hardware.bluetooth\" android:required=\"false\">",
"</uses-feature>",
" ",
" <supports-screens android:anyDensity=\"true\" android:largeScreens=\"true\" android:normalScreens=\"true\" android:smallScreens=\"true\">",
"</supports-screens>",
" ",
" <application android:allowBackup=\"false\" android:hardwareAccelerated=\"true\" android:icon=\"@7F02019A\" android:label=\"@7F070051\" android:name=\"com.spotify.music.SpotifyApplication\" android:theme=\"@7F100115\">",
" ",
" <meta-data android:name=\"com.spotify.music.core.version\" android:value=\"0.0.0.999.g5bf8943d\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.spotify.music.githash\" android:value=\"g951e8dfd\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.facebook.sdk.ApplicationId\" android:value=\"@7F070249\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.google.android.gms.version\" android:value=\"@7F0E0007\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.google.android.gms.car.application\" android:resource=\"@7F050000\">",
"</meta-data>",
" ",
" <activity android:configChanges=\"0x00000020\" android:launchMode=\"2\" android:name=\"com.spotify.music.MainActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000020\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MAIN\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.LAUNCHER\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MAIN\">",
"</action>",
" ",
" <action android:name=\"android.intent.action.MUSIC_PLAYER\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.APP_MUSIC\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.nfc.action.NDEF_DISCOVERED\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"http\">",
"</data>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.facebook.application.174829003346\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"http\">",
"</data>",
" ",
" <data android:host=\"open.spotify.com\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"www.spotify.com\" android:pathPrefix=\"/redirect/get-premium/\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.action.MEDIA_PLAY_FROM_SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.action.MEDIA_PLAY_FROM_SEARCH\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"spotify\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" <data android:host=\"r.spotify.com\" android:pathPattern=\"/.*/.*/.*/.*/.*/.*/.*/app_android/.*\" android:scheme=\"https\">",
"</data>",
" ",
" </intent-filter>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.BACKGROUND_ICON\" android:resource=\"@7F020036\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.TITLE\" android:resource=\"@7F070051\">",
"</meta-data>",
" ",
" <meta-data android:name=\"com.sonymobile.media.dashboard.SMALL_ICON\" android:resource=\"@7F0201CB\">",
"</meta-data>",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.sonymobile.media.dashboard.ACTION_VIEW_MUSIC_TILE\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:configChanges=\"0x00000020\" android:exported=\"false\" android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.service.LoginActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011F\" android:windowSoftInputMode=\"0x00000010\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.android.service.action.session.LOGIN\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.PlayerActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.CoverImageActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100121\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.service.TermsOfServiceChangedActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100118\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PermissionsActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:exported=\"false\" android:name=\"com.spotify.mobile.android.ui.activity.TosTextActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:scheme=\"com.spotify.mobile.android.tos\">",
"</data>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.UpdateActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.spotlets.share.PostActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100115\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShareActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100117\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShareToSpotifyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.FacebookPlaceholderActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.share.ConnectFacebookActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.FacebookWebPermissionsActivity\" android:screenOrientation=\"-1\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AddToPlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100117\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.ui.activity.DeviceActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ConfirmDeletionActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.CreateRenamePlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DisableOfflineModeActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.TrialReminderActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.PremiumUpsellInterstitialActivity\" android:screenOrientation=\"1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.HolidayOfferUpsellInterstitialActivity\" android:screenOrientation=\"1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.OfflineSyncErrorActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AnnotatePlaylistActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000012\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DiskAlmostFullActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.UpsellDialogActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.UpsellPremiumOnlyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.PremiumSignupActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.NotificationWebViewActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AppRaterActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlayQueueActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlayHistoryActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiOnlyActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.PlaybackErrorWifiMftGroup3NoMoreTimeActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.RemotePlaybackActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.ui.activity.ConnectOnboardingActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.SoundEffectsWarningActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.DeleteCacheAndSettingsConfirmationActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.AnnotateDiscardChangesActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.LastFmLoginDialog\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000020\" android:name=\"com.spotify.mobile.android.ui.activity.DeletingCacheDialogActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100116\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.util.ViewTesterActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:exported=\"false\" android:name=\"com.spotify.mobile.android.util.FragmentTesterActivity\" android:screenOrientation=\"-1\" android:windowSoftInputMode=\"0x00000020\">",
"</activity>",
" ",
" <activity android:name=\"com.facebook.LoginActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.dialog.TrialStartedActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.suggestedtweet.SuggestedTweetActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.ShowcaseActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.spotlets.openaccess.OpenAccessActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.UninstallOldAppActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.ui.activity.VolumeWidgetActivity\" android:theme=\"@7F100119\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000480\" android:launchMode=\"1\" android:name=\"com.spotify.mobile.android.spotlets.video.BackgroundableVideoPlayerActivity\" android:theme=\"@7F10011D\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.upsell.MarketingOptInActivity\" android:theme=\"@7F100119\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:launchMode=\"2\" android:name=\"com.spotify.mobile.android.service.ResetPasswordActivity\" android:screenOrientation=\"1\" android:theme=\"@7F10011D\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.ui.activity.LockScreenActivity\" android:screenOrientation=\"7\" android:theme=\"@7F10011E\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.music.spotlets.networkoperatorpremiumactivation.PremiumActivationOptInDialog\" android:screenOrientation=\"-1\" android:theme=\"@7F100120\">",
"</activity>",
" ",
" <activity android:name=\"com.spotify.mobile.android.spotlets.ads.BannerAdActivity\" android:screenOrientation=\"-1\" android:theme=\"@7F100122\" android:windowSoftInputMode=\"0x00000010\">",
"</activity>",
" ",
" <activity android:configChanges=\"0x00000FB0\" android:name=\"com.google.android.gms.ads.AdActivity\" android:theme=\"@android:0103000F\">",
"</activity>",
" ",
" <activity android:excludeFromRecents=\"true\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.arsenal.ArsenalSSOBrowserActivity\" android:windowSoftInputMode=\"0x00000003\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.music.NPAM_ACTION_BROWSER\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.LAUNCHER\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <activity android:exported=\"true\" android:name=\"com.sony.snei.np.android.account.oauth.BrowserRedirectReceiverActivity\" android:windowSoftInputMode=\"0x00000003\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.VIEW\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <category android:name=\"android.intent.category.BROWSABLE\">",
"</category>",
" ",
" <data android:host=\"redirect\" android:scheme=\"com.spotify.music.npam\">",
"</data>",
" ",
" </intent-filter>",
" ",
" </activity>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039D\" android:name=\"com.spotify.mobile.android.service.SpotifyService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.video.VideoService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.MetadataManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.ConnectManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.SessionManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.RemoteNativeRouterProxy\" android:process=\"com.spotify.music.service\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.service.action.COSMOS_PROXY\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.MonitorService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.util.tracking.TrackingService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerIntentService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.DeviceIdentifierLoggerIntentService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.internal.service.DeleteCacheService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.video.BackgroundableVideoService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.internal.service.DeleteOldCacheLocationsService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.service.AnnotateService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.service.RecentlyPlayedService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.collection.cosmos.service.CollectionService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.offline.service.OfflineService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.podcast.service.PlayedStateService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.spotlets.ads.VideoAdService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.VideoPlayerManagerProxy\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.situationalcontent.loggers.activityrecognition.ActivityRecognitionIntentService\" android:process=\"com.spotify.music.service\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.music.spotlets.radio.service.RadioActionsService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.player.PlayerStateService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.session.SessionStateService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.media.MediaService\">",
"</service>",
" ",
" <service android:enabled=\"true\" android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.applink.service.AppLinkService\">",
"</service>",
" ",
" <service android:exported=\"false\" android:label=\"@7F07039C\" android:name=\"com.spotify.mobile.android.service.feature.FeatureService\">",
"</service>",
" ",
" <service android:exported=\"true\" android:label=\"Android Auto Spotify\" android:name=\"com.spotify.mobile.android.androidauto.SpotifyMediaBrowserService\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.media.browse.MediaBrowserService\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </service>",
" ",
" <receiver android:name=\"com.spotify.music.internal.receiver.MediaButtonReceiver\" android:process=\"com.spotify.music.service\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.intent.action.MEDIA_BUTTON\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"false\" android:name=\"com.spotify.music.spotlets.optintrial.TrialAlarmBroadcastReceiver\" android:process=\"com.spotify.music\">",
" ",
" <intent-filter>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" <action android:name=\"com.spotify.music.spotlets.optintrial.action.TRIAL_REMINDER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:label=\"Spotify Home Screen Widget\" android:name=\"com.spotify.music.spotlets.widget.SpotifyWidget\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.appwidget.action.APPWIDGET_UPDATE\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.PREVIOUS\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.PLAY\">",
"</action>",
" ",
" <action android:name=\"com.spotify.mobile.android.ui.widget.NEXT\">",
"</action>",
" ",
" </intent-filter>",
" ",
" <meta-data android:name=\"android.appwidget.provider\" android:resource=\"@7F050001\">",
"</meta-data>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.android.vending.INSTALL_REFERRER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.music.spotlets.gcm.GcmBroadcastReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.google.android.c2dm.intent.RECEIVE\">",
"</action>",
" ",
" <category android:name=\"com.spotify.music\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.spotify.mobile.android.applink.AppLinkBluetoothManager\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"android.bluetooth.adapter.action.STATE_CHANGED\">",
"</action>",
" ",
" <action android:name=\"android.bluetooth.device.action.ACL_CONNECTED\">",
"</action>",
" ",
" <action android:name=\"android.bluetooth.device.action.ACL_DISCONNECTED\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:exported=\"false\" android:name=\"com.spotify.music.internal.receiver.LoggerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.music.internal.receiver.CACHE_LOG\">",
"</action>",
" ",
" <category android:name=\"android.intent.category.DEFAULT\">",
"</category>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <receiver android:enabled=\"false\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.spotlets.collection.receiver.ConnectionStateChangedReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.spotify.mobile.android.service.broadcast.session.CONNECTION_STATE_CHANGED\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" <provider android:authorities=\"com.spotify.music\" android:exported=\"false\" android:multiprocess=\"true\" android:name=\"com.spotify.music.internal.provider.SpotifyProvider\">",
"</provider>",
" ",
" <provider android:authorities=\"com.spotify.music.logger\" android:exported=\"false\" android:name=\"com.spotify.music.internal.provider.LoggerProvider\" android:process=\"com.spotify.music.service\">",
"</provider>",
" ",
" <provider android:authorities=\"com.spotify.music.prefs\" android:exported=\"false\" android:name=\"com.spotify.mobile.android.util.prefs.PrefsProvider\">",
"</provider>",
" ",
" <provider android:authorities=\"@7F0702B0\" android:exported=\"true\" android:name=\"com.spotify.mobile.android.service.media.provider.MediaProvider\">",
"</provider>",
" ",
" <meta-data android:name=\"com.crashlytics.ApiKey\" android:value=\"ed79a89851fe4ae8eb60f37284a088b1055997d8\">",
"</meta-data>",
" ",
" <activity android:label=\"RecyclerViewTestActivity\" android:name=\"android.support.v7.widget.TestActivity\">",
"</activity>",
" ",
" <activity android:name=\"com.mixpanel.android.surveys.SurveyActivity\">",
"</activity>",
" ",
" <receiver android:exported=\"true\" android:name=\"com.mixpanel.android.mpmetrics.InstallReferrerReceiver\">",
" ",
" <intent-filter>",
" ",
" <action android:name=\"com.android.vending.INSTALL_REFERRER\">",
"</action>",
" ",
" </intent-filter>",
" ",
" </receiver>",
" ",
" </application>",
" ",
"</manifest>",
""
]
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn PublicContentProviders_Manifest -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn PublicContentProviders_Manifest -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
from androlyze.model.script.ChainedScript import ChainedScript
from androlyze.model.script.impl.manifest.Manifest import Manifest
from androlyze.model.script.impl.manifest.components.ContentProviders import ContentProviders
from androlyze.model.script.impl.manifest.components.PublicContentProviders import PublicContentProviders
class PublicContentProviders_Manifest(ChainedScript):
''' Additionally to `PublicContentProviders` also show all content providers and the manifest '''
VERSION = "0.1"
def chain_scripts(self):
# use the chained_script function to do further grouping
return [PublicContentProviders(), ContentProviders(), Manifest()]
def root_categories(self):
return ('ContentProviderStuff', )
def log_chained_script_meta_infos(self):
return False
# testing code
if __name__ == '__main__':
for res in AndroScript.test(PublicContentProviders_Manifest, ["../../../../../../../androguard_playground/apks/public_content_provider.apk"]):
print res.write_to_json()
SSL¶
This is an autogenerated documentation file for the script: SSL
Run it¶
$ ./androanalyze scripts_builtin/SSL.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn SSL -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "SSL",
"sha256": "9658ac81fa84afd9f7d2a796c2a78bfd0e687fd592ff64621acbd4a38cf4535d",
"analysis date": "2015-06-26T17:15:37.547000",
"version": "0.1"
},
"code loading": {
"dynamic": true,
"native": true
},
"SSL": {
"ssl_error_handler": true,
"plain_socket": true,
"plain_socket_factory": false,
"ssl_socket_std": true,
"ssl_socket_apache": true,
"ssl_socket_factory_std": true,
"ssl_socket_factory_apache": true,
"ssl_socket_factory_easy": false,
"air_ssl_dialog": false,
"hostname_verifier_allow_all": false,
"hostname_verifier_browser_compat": false,
"hostname_verifier_strict": false,
"hostname_verifier_x509": false,
"url_connection_https": true,
"url_connection_http": true,
"certificate_code_std": false,
"certificate_code_air": false,
"google_ad_sense": true,
"adobe_air_runtime": false
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn SSL -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn SSL -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Lars Baumgärtner, Nils Schmidt"
__email__ = "{lbaumgaerner,schmidt89} at informatik.uni-marburg.de"
from androlyze import is_dyn_code, is_native_code
from androlyze.model.script.AndroScript import AndroScript
CAT_SSL = "SSL"
CAT_CODE_LOADING = "code loading"
CODE_LOADING_DYN = "dynamic"
CODE_LOADING_NATIVE = "native"
class SSL(AndroScript):
''' SSL Checks '''
VERSION = "0.1"
CHECKS = [
("Landroid/webkit/SslErrorHandler", "SSL_ERROR_HANDLER"),
("Ljava/net/Socket", "PLAIN_SOCKET"),
("Ljava/net/SocketFactory", "PLAIN_SOCKET_FACTORY"),
("Ljavax/net/ssl/SSLSocket", "SSL_SOCKET_STD"),
("Lorg/apache/http/conn/ssl/SSLSocket", "SSL_SOCKET_APACHE"),
("Ljavax/net/ssl/SSLSocketFactory", "SSL_SOCKET_FACTORY_STD"),
("Lorg/apache/http/conn/ssl/SSLSocketFactory", "SSL_SOCKET_FACTORY_APACHE"),
("EasySSLSocketFactory", "SSL_SOCKET_FACTORY_EASY"),
("Lcom/adobe/air/SSLSecurityDialog", "AIR_SSL_DIALOG"),
("Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier", "HOSTNAME_VERIFIER_ALLOW_ALL"),
("Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier", "HOSTNAME_VERIFIER_BROWSER_COMPAT"),
("Lorg/apache/http/conn/ssl/StrictHostnameVerifier", "HOSTNAME_VERIFIER_STRICT"),
("Lorg/apache/http/conn/ssl/X509HostnameVerifier", "HOSTNAME_VERIFIER_X509"),
("Ljavax/net/ssl/HttpsURLConnection", "URL_CONNECTION_HTTPS"),
("Ljava/net/HttpURLConnection", "URL_CONNECTION_HTTP"),
("Landroid/net/http/SslCertificate", "CERTIFICATE_CODE_STD"),
("Lcom/adobe/air/Certificate", "CERTIFICATE_CODE_AIR"),
("Lcom/google/ads/AdRequest", "GOOGLE_AD_SENSE"),
("Lcom/adobe/air", "ADOBE_AIR_RUNTIME")
]
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
'''
Overwrite this function in apk subclass to build your own script!
Use the `ResultObject` for logging.
Parameters
----------
apk: EAndroApk
dalvik_vm_format: DalvikVMFormat
Parsed .dex file.
Only available if `needs_dalvik_vm_format` returns True.
vm_analysis: VMAnalysis
Dex analyzer.
Only available if `needs_vmanalysis` returns True.
gvm_analysis : GVMAnalysis
'''
res = self.res
# register key
res.register_bool_keys([CODE_LOADING_DYN, CODE_LOADING_NATIVE], CAT_CODE_LOADING)
res.register_bool_keys(map(lambda t: t[1].lower(), self.CHECKS), CAT_SSL)
# do checks
self.do_usage_checks(vm_analysis)
def do_usage_checks(self, dx):
res = self.res
def log(key):
''' convenience function for logging '''
res.log_true(key, CAT_SSL)
# run ssl checks
for check_val, check_name in self.CHECKS:
if dx.tainted_packages.search_packages(check_val) != []:
# log
log(check_name.lower())
if is_dyn_code(dx):
res.log_true(CODE_LOADING_DYN, CAT_CODE_LOADING)
if is_native_code(dx):
res.log_true(CODE_LOADING_NATIVE, CAT_CODE_LOADING)
return res
############################################################
#---Script requirements
############################################################
def needs_xref(self):
''' Create cross references '''
return True
def get_DynCode(dx):
return dx.tainted_packages.search_packages( "Ldalvik/system/DexClassLoader")
if __name__ == '__main__':
for res in AndroScript.test(SSL, ["../../../../testenv/apks/a2dp.Vol.apk"]):
print res
print res.write_to_json()
Services¶
This is an autogenerated documentation file for the script: Services
Run it¶
$ ./androanalyze scripts_builtin/Services.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn Services -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "Services",
"sha256": "4289c76adce3be0efb678529cf6c6960b85594f410756e236bf25a821e018397",
"analysis date": "2015-06-22T20:29:34.177000",
"version": "0.1"
},
"services": [
"com.spotify.mobile.android.service.SpotifyService",
"com.spotify.mobile.android.video.VideoService",
"com.spotify.mobile.android.service.MetadataManagerProxy",
"com.spotify.mobile.android.service.ConnectManagerProxy",
"com.spotify.mobile.android.service.SessionManagerProxy",
"com.spotify.mobile.android.service.RemoteNativeRouterProxy",
"com.spotify.mobile.android.service.MonitorService",
"com.spotify.mobile.android.util.tracking.TrackingService",
"com.spotify.music.spotlets.mobileapptracker.MobileAppTrackerIntentService",
"com.spotify.mobile.android.service.DeviceIdentifierLoggerIntentService",
"com.spotify.music.internal.service.DeleteCacheService",
"com.spotify.mobile.android.spotlets.video.BackgroundableVideoService",
"com.spotify.music.internal.service.DeleteOldCacheLocationsService",
"com.spotify.mobile.android.spotlets.collection.service.AnnotateService",
"com.spotify.mobile.android.spotlets.collection.service.RecentlyPlayedService",
"com.spotify.mobile.android.spotlets.collection.cosmos.service.CollectionService",
"com.spotify.mobile.android.spotlets.offline.service.OfflineService",
"com.spotify.mobile.android.spotlets.podcast.service.PlayedStateService",
"com.spotify.mobile.android.spotlets.ads.VideoAdService",
"com.spotify.mobile.android.service.VideoPlayerManagerProxy",
"com.spotify.music.spotlets.situationalcontent.loggers.activityrecognition.ActivityRecognitionIntentService",
"com.spotify.music.spotlets.radio.service.RadioActionsService",
"com.spotify.mobile.android.service.player.PlayerStateService",
"com.spotify.mobile.android.service.session.SessionStateService",
"com.spotify.mobile.android.service.media.MediaService",
"com.spotify.mobile.android.applink.service.AppLinkService",
"com.spotify.mobile.android.service.feature.FeatureService",
"com.spotify.mobile.android.androidauto.SpotifyMediaBrowserService"
]
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn Services -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn Services -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
#categories
CAT_SERVICES = "services"
class Services(AndroScript):
''' Read services from manifest '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
res.register_keys([CAT_SERVICES])
# services
res.log(CAT_SERVICES, apk.get_services())
ShowLoggingFuncs¶
This is an autogenerated documentation file for the script: ShowLoggingFuncs
Run it¶
$ ./androanalyze scripts_builtin/ShowLoggingFuncs.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ShowLoggingFuncs -pn com.spotify.music
{
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ShowLoggingFuncs",
"sha256": "4298a7ac3a603e91692798c0c373d93c7a9d5d4d3f082714d0daa413b0a64470",
"analysis date": "2015-06-22T20:29:34.178000",
"version": "0.1"
},
"category1": {
"category2": {
"logged": {
"normal": "some value",
"bool": true,
"enum": [
"list element"
]
},
"unlogged": {
"normal": null,
"bool": false,
"enum": []
}
}
}
}
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ShowLoggingFuncs -pn com.spotify.music -nd
Empty
View the raw data:
$ ./androquery result -sn ShowLoggingFuncs -pn com.spotify.music -nd -r
Empty
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from androlyze.model.script.AndroScript import AndroScript
#categories
CAT_CLASS_DETAILS = "class details"
CAT_METHODS = "methods"
CAT_FIELDS = "fields"
class ShowLoggingFuncs(AndroScript):
''' Example for demonstrating available logging options and to do some query checks '''
VERSION = "0.1"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
res = self.res
CAT_UNLOGGED = "category1", "category2", "unlogged"
CAT_LOGGED = "category1", "category2", "logged"
res.register_keys(["normal"], *CAT_LOGGED)
res.register_keys(["normal"], *CAT_UNLOGGED)
res.register_bool_keys(["bool"], *CAT_LOGGED)
res.register_bool_keys(["bool"], *CAT_UNLOGGED)
res.register_enum_keys(["enum"], *CAT_LOGGED)
res.register_enum_keys(["enum"], *CAT_UNLOGGED)
res.log("normal", "some value", *CAT_LOGGED)
res.log_true("bool", *CAT_LOGGED)
res.log_append_to_enum("enum", "list element", *CAT_LOGGED)
Getting APKs¶
AndroLyze has an easy way to download APKs from the PlayStore through GooglePlayCrawler.
Requirements¶
The docker image has not initialized this git submodule by default. So we need to do this first:
$ worker@f6a8d4e49d39:/home/worker/androlyze$ git submodule update --init google-play-crawler
$ worker@f6a8d4e49d39:/home/worker/androlyze$ ln -s google-play-crawler/googleplay/googleplaycrawler-0.3.jar googleplaycrawler.jar
$ worker@f6a8d4e49d39:/home/worker/androlyze$ cp google-play-crawler/googleplay/crawler.conf conf/crawler.conf
Be sure you have done the following steps before using the google play crawler:
- Set email and password in conf/crawler.conf
- Get androidid via “java -jar googleplaycrawler.jar -f conf/crawler.conf checkin” and set in in the config file
Download¶
Check that the crawler is working by listing all categories in Google Play
worker@f6a8d4e49d39:/home/worker/androlyze$ ./playstore.py list
GAME
BOOKS_AND_REFERENCE
BUSINESS
COMICS
COMMUNICATION
EDUCATION
ENTERTAINMENT
FINANCE
HEALTH_AND_FITNESS
LIBRARIES_AND_DEMO
LIFESTYLE
APP_WALLPAPER
MEDIA_AND_VIDEO
MEDICAL
MUSIC_AND_AUDIO
NEWS_AND_MAGAZINES
PERSONALIZATION
PHOTOGRAPHY
PRODUCTIVITY
SHOPPING
SOCIAL
SPORTS
TOOLS
TRANSPORTATION
TRAVEL_AND_LOCAL
WEATHER
APP_WIDGETS
Download an APK by name:
worker@f6a8d4e49d39:/home/worker/androlyze$ ./playstore.py download_pn com.facebook.katana
Download the top free 500 applications from every category:
worker@f6a8d4e49d39:/home/worker/androlyze$ ./playstore.py download_top_all_categories 500
Downloading the apps_topselling_free apks from category: GAME
Downloading: com.gamehivecorp.taptitans, com.vg.citybussimulator2015, com.uu.generaladaptiveapps, br.com.tapps.cowevolution, com.king.alphabettysaga, air.com.puffballsunited.escapingtheprison, com.studio7775.BeatMP3v2, com.miniclip.eightballpool, com.rovio.angrybirdsfight, com.tabtale.crazypoolparty, com.ea.game.simpsons4_row, com.Seriously.BestFiends, com.supercell.hayday, com.rovio.angrybirds, com.bigkraken.thelastwar, com.ea.games.simsfreeplay_row, com.prettysimple.criminalcaseandroid, com.aim.racing, com.boombit.Spider, com.rr.generaladaptiveapps, com.scimob.ninetyfour.percent, se.feomedia.quizkampen.de.lite, com.pinkpointer.wordsearch, com.SimgeSimulation.Woodball, com.king.farmheroessaga, com.nenoff.followthelinefree, com.halfbrick.fruitninjafree, com.ea.game.tetris2011_row, com.supercell.boombeach, com.midasplayer.apps.bubblewitchsaga2, com.glu.t5, com.ea.game.pvzfree_row, com.ping9games.grabtheauto3, com.sometimeswefly.littlealchemy, com.ammonite.dotmuncher, com.halfbrick.jetpackjoyride, com.aa.generaladaptiveapps, com.machinezone.gow, com.bigfishgames.gummydropgoogle, com.fgol.HungrySharkEvolution, com.snailgameusa.tp, com.ff.generaladaptiveapps, com.explorationbase.ExplorationLite, com.mangoogames.emojiquiz, com.ea.games.r3_row, multicraft.worldcraft.world, com.hugogames.superskater, com.Artibus.CircleMaster, com.netmarble.mherosgb, com.robtopx.geometryjumplite, com.squareenix.relicrun, com.mobirix.slideking, com.ea.game.fifa15_row, com.uken.BingoPop, com.roostergames.hillclimbtruckracing3, com.blizzard.wtcg.hearthstone, com.outfit7.mytalkingtomfree, com.ssc.fitfat, org.orangenose.games, com.yangyu.realskate, com.zynga.farmarcade, com.zynga.FarmVille2CountryEscape, com.natenai.glowhockey, com.lego.ninjago.toe, com.fingersoft.hillclimb, com.platogo.pmp, com.imangi.templerun2, com.lima.doodlejump, com.nordcurrent.canteenhd, com.wagawin.android2, com.hugogames.hugotrollrace, com.hcg.cok.gp, block.city.game, com.gameloft.android.ANMP.GloftDMHM, com.iwin.dond, com.doubleugames.DoubleUCasino, fr.x_studios.x_laser_2, com.kiloo.subwaysurf, software.simplicial.nebulous, com.ovilex.bussimulator2015, com.yodo1.crossyroad, com.game.wer.wird.millionaer, com.mangolee.amazon.free.card.cuteslots, com.king.candycrushsodasaga, de.lotum.whatsinthefoto.de, com.degoo.android.pregnantdoctor, com.BitofGame.MiniGolfRetro, com.supercell.clashofclans, com.tp.android.plasticsurgery, com.hammerhead.furious7, com.notdoppler.earntodie2, com.miniclip.dudeperfect, jp.gree.warofnationsbeta, me.pou.app, com.outfit7.mytalkingangelafree, com.fireflygames.rushofheroes, com.king.candycrushsaga, com.igg.castleclash_de, br.com.tapps.giraffeevolution, com.umbrella.boomdots
Downloading...com.gamehivecorp.taptitans : 61881468 bytes
Update Database¶
Update all APKs with a newer version available in the PlayStore :
worker@f6a8d4e49d39:/home/worker/androlyze$ ./androquery -idb dbs/test.idb import package-names | ./androupdate.py dbs/test.idb
The first command lists all package names from the import database. The seconds reads them from stdin and checks each for a newer version. If this is the case, it gets downloaded.
Manual¶
worker@f6a8d4e49d39:/home/worker/androlyze$ ./playstore.py
Usage: ./playstore.py <list
|download_new_all_categories <number>
|download_top_all_categories <number>
|download <category> <subcategory> <number>
|download_pn <package_name>
>
The script relies on google-play-crawler.
Be sure you have done the following steps before using this script!
1) Get it from here: https://github.com/Akdeniz/google-play-crawler
and place this script inside the googleplay directory after it has been build.
2) Set email and password in crawler.conf
3) Get androidid via "java -jar googleplaycrawler.jar -f crawler.conf checkin" and set in in the config file
4) playstore.py benutzen ;)
Example: ./playstore.py download WEATHER apps_topselling_new_free 2
Example: ./playstore.py download_pn a2dp.Vol
Example: ./playstore.py list
Example: ./playstore.py download_new_all_categories 10
Example: ./playstore.py download_top_all_categories 10
Possible subcategories are:
apps_topselling_paid
apps_topselling_free
apps_topgrossing
apps_topselling_new_paid
apps_topselling_new_free
Monitoring / Management¶
AndroLyze has a few ways to monitor the current analysis. First of all you can use a simple bash script to the check status of each worker which is currently registered at the message queue:
worker@fba930455a9c:/home/worker/androlyze$ sh management/check_status.sh
INFO: appending "androguard/" to sys.path
-> celery@6d94b9fdaccc: OK
- empty -
-> celery@fba930455a9c: OK
- empty -
-> celery@27575180f00d: OK
- empty -
-> celery@16ce2eddb337: OK
- empty -
The monitoring includes also the tasks the workers are executing at the moment.
-> celery@6d94b9fdaccc: OK
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'd1c01f118eb0e0d3edfed46db1e1cd609e95ad9e19d2e4042e42f633f6e05ae7', True, FastApk(com.freeletics.lite, 2.5, d1c01f118eb0e0d3edfed46db1e1cd609e95ad9e19d2e4042e42f633f6e05ae7, 2015-06-17 17:43:07.129660, None, 2015-03-02 09:35:20))", u'time_start': 93154.336766429, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@6d94b9fdaccc', u'acknowledged': False, u'kwargs': u'{}', u'id': u'14c1b604-2bf0-47f9-be98-61cef5931345', u'worker_pid': 97}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'43bf774b2795459bbcdfa0a5c40843dc2485000a20dad3dda4c41b08df057fc9', True, FastApk(com.microsoft.office.outlook, 1.0.5, 43bf774b2795459bbcdfa0a5c40843dc2485000a20dad3dda4c41b08df057fc9, 2015-06-17 17:43:15.148223, None, 2015-02-17 10:37:32))", u'time_start': 93154.294892248, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@6d94b9fdaccc', u'acknowledged': False, u'kwargs': u'{}', u'id': u'7eb50c9b-533a-4078-b60d-e575173eed1f', u'worker_pid': 94}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'9e6bf1cb31f5cff3a3d8e39a16ca8c34590ad68ae840b4bb7995f185af0f0994', True, FastApk(com.ebay.mobile, 2.8.2.1, 9e6bf1cb31f5cff3a3d8e39a16ca8c34590ad68ae840b4bb7995f185af0f0994, 2015-06-17 17:43:16.024391, None, 2014-11-12 09:57:38))", u'time_start': 93154.267301966, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@6d94b9fdaccc', u'acknowledged': False, u'kwargs': u'{}', u'id': u'198742d5-f8c0-490f-ad98-068a6938b1de', u'worker_pid': 96}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'a9fc9e0d5d2da6f24b945b31b6053ff6a96b9cbbc1eb5600b69c4c5651fd8efd', True, FastApk(com.snapchat.android, 9.2.0.0, a9fc9e0d5d2da6f24b945b31b6053ff6a96b9cbbc1eb5600b69c4c5651fd8efd, 2015-06-17 17:43:14.931758, None, 2015-02-24 08:13:54))", u'time_start': 93154.378777605, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@6d94b9fdaccc', u'acknowledged': False, u'kwargs': u'{}', u'id': u'2c77637a-4b06-42d4-b6ee-e39b451b0312', u'worker_pid': 95}
-> celery@fba930455a9c: OK
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'2d7a934f2fb8a60b9c690bfbd8884f47611ed3cb073805a3bcc35825806886fb', True, FastApk(com.shazam.android, 5.3.1-15022714, 2d7a934f2fb8a60b9c690bfbd8884f47611ed3cb073805a3bcc35825806886fb, 2015-06-17 17:43:06.956667, None, 2015-02-27 14:35:44))", u'time_start': 93154.309475294, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@fba930455a9c', u'acknowledged': False, u'kwargs': u'{}', u'id': u'6b35e1a9-7068-4729-979a-8eecea9c6183', u'worker_pid': 101}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'6b4d5f2b0db9e955ddc0cc5ddf58d3ada5f0097f4d65a372125ccdbd0f420cf2', True, FastApk(com.runtastic.android, 5.7.1, 6b4d5f2b0db9e955ddc0cc5ddf58d3ada5f0097f4d65a372125ccdbd0f420cf2, 2015-06-17 17:43:03.427886, None, 2015-02-17 10:55:24))", u'time_start': 93154.285464962, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@fba930455a9c', u'acknowledged': False, u'kwargs': u'{}', u'id': u'26db058e-65de-4147-96f7-68f2a52dd292', u'worker_pid': 102}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'd28c4d3f2e757beef6234601c6f5bfc462699a656aa53573541bb41527dd3cae', True, FastApk(com.infraware.office.link, 6.0.9, d28c4d3f2e757beef6234601c6f5bfc462699a656aa53573541bb41527dd3cae, 2015-06-17 17:42:56.857422, None, 2015-02-13 03:27:20))", u'time_start': 93154.260862799, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@fba930455a9c', u'acknowledged': False, u'kwargs': u'{}', u'id': u'8fb6cfc7-beca-478f-9375-17874cb90b3b', u'worker_pid': 100}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'5db7f91524a5e8eeb6398f8f2a3189393d5ed7cce457c1d07d7a2754487c4330', True, FastApk(com.yodo1.crossyroad, 1.0.3, 5db7f91524a5e8eeb6398f8f2a3189393d5ed7cce457c1d07d7a2754487c4330, 2015-06-17 17:43:01.521850, None, 2015-02-09 18:11:06))", u'time_start': 93154.368736285, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@fba930455a9c', u'acknowledged': False, u'kwargs': u'{}', u'id': u'08ac588d-a1ea-457d-891c-f3df5d176583', u'worker_pid': 99}
-> celery@16ce2eddb337: OK
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'86c6f9ca30f40f03ddff9c06dd30f7ec31420e214c4ae77a364ca5c74ecb8cbf', True, FastApk(com.amazon.mShop.android.shopping, 5.2.3, 86c6f9ca30f40f03ddff9c06dd30f7ec31420e214c4ae77a364ca5c74ecb8cbf, 2015-06-17 17:43:12.076072, None, 2014-12-10 06:31:52))", u'time_start': 93154.341224899, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@16ce2eddb337', u'acknowledged': False, u'kwargs': u'{}', u'id': u'7379d06d-9a86-4fec-87c1-b8c55ee0e65f', u'worker_pid': 98}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'9152cbac4c37551d653ec4f21b6146ab7c89b0125929b5ba8b618b610b523a8e', True, FastApk(de.motain.iliga, 6.0.8, 9152cbac4c37551d653ec4f21b6146ab7c89b0125929b5ba8b618b610b523a8e, 2015-06-17 17:43:15.866802, None, 2015-02-24 08:42:10))", u'time_start': 93154.302233582, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@16ce2eddb337', u'acknowledged': False, u'kwargs': u'{}', u'id': u'56717233-16b6-478f-9101-56bd8daf8e76', u'worker_pid': 95}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'32523ddf6a7c512bd5e99ca538da33b4aad4d0329bf7f6fd19e48f015da61cb4', True, FastApk(com.amazon.kindle, 4.9.0.158, 32523ddf6a7c512bd5e99ca538da33b4aad4d0329bf7f6fd19e48f015da61cb4, 2015-06-17 17:42:55.212787, None, 2015-02-04 16:38:34))", u'time_start': 93154.273260892, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@16ce2eddb337', u'acknowledged': False, u'kwargs': u'{}', u'id': u'7f0dcc7a-aaad-4c5d-a8b0-520b244d70bd', u'worker_pid': 97}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'ef52e4ba18c54f82bad12e39b807df9753162caec73eaeb6f25c4d18ef679f68', True, FastApk(de.kaufda.android, 7.0.1, ef52e4ba18c54f82bad12e39b807df9753162caec73eaeb6f25c4d18ef679f68, 2015-06-17 17:42:53.989841, None, 2015-02-16 14:49:04))", u'time_start': 93154.394055117, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@16ce2eddb337', u'acknowledged': False, u'kwargs': u'{}', u'id': u'7721aff1-29fd-42ff-a12b-4eb167847bc8', u'worker_pid': 96}
-> celery@27575180f00d: OK
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'0270160f6ec17cb3f3055e686fc273f8afa3f2236330bac66e12ef539e6fc5d8', True, FastApk(com.picsart.studio, 5.0.0.14, 0270160f6ec17cb3f3055e686fc273f8afa3f2236330bac66e12ef539e6fc5d8, 2015-06-17 17:42:53.466250, None, 2014-12-29 15:30:12))", u'time_start': 93154.351653813, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@27575180f00d', u'acknowledged': False, u'kwargs': u'{}', u'id': u'ec390a9f-735e-473e-ac65-873e1cc36f6e', u'worker_pid': 99}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'e7d3ebfdd88d3605de3fb7d3a1717524cfad4aedad002998bf6ef1d3af8a790d', True, FastApk(de.postbank.finanzassistent, 2.0.2, e7d3ebfdd88d3605de3fb7d3a1717524cfad4aedad002998bf6ef1d3af8a790d, 2015-06-17 17:43:00.248399, None, 2014-12-16 10:53:38))", u'time_start': 93154.306459678, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@27575180f00d', u'acknowledged': False, u'kwargs': u'{}', u'id': u'70048002-ab33-48bb-9306-bcb043c0f567', u'worker_pid': 96}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'4d2afc03880795a561e8eb762314d135d7a777d50daa72fafbcb64b1cbb7ae4d', True, FastApk(com.myfitnesspal.android, 3.7.3, 4d2afc03880795a561e8eb762314d135d7a777d50daa72fafbcb64b1cbb7ae4d, 2015-06-17 17:43:03.627133, None, 2015-02-09 07:47:10))", u'time_start': 93154.281455697, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@27575180f00d', u'acknowledged': False, u'kwargs': u'{}', u'id': u'ac152fe6-cc09-44fa-a41b-88de315ea3f7', u'worker_pid': 98}
* {u'args': u"(['scripts_builtin.ChainedApkInfos'], (False, False, False, False, False), ['8ed360626c750f35e620192e00002b87dd3f35c46fced015aa7f8f2c093fb6ae'], u'bc0cd6fd5b57b75150cbc30727bec88da4e842c2590cc235ceadb7aa43b0877d', True, FastApk(com.eisterhues_media_2, 3.0.4, bc0cd6fd5b57b75150cbc30727bec88da4e842c2590cc235ceadb7aa43b0877d, 2015-06-17 17:43:14.607490, None, 2015-02-20 13:32:16))", u'time_start': 93154.407142263, u'name': u'androlyze.analyze.distributed.tasks.AnalyzeTask.AnalyzeTask', u'delivery_info': {u'priority': None, u'redelivered': False, u'routing_key': u'analyze_apk', u'exchange': u'celery'}, u'hostname': u'celery@27575180f00d', u'acknowledged': False, u'kwargs': u'{}', u'id': u'd5605555-74f6-4e7c-87b8-6bf1df6bc0f5', u'worker_pid': 97}
There are also two graphical monitoring tools included in the Docker distribution of AndroLyze.
- The first is celery flower which can be accessed at port 5555 on the docker host system (no https!).



- The second is the management plugin of RabbitMQ which can be accessed at port 15672 on the docker host system (https !).


Task Revocation¶
By default tasks are revoked in the distributed mode when the user aborts the analysis. This means that all tasks are marked as “revoked” and all workers killed with “SIGKILL”. If a worker consumes this flagged task it won’t get executed.
If task revocation is disabled in the config, there is still a way to do the task revocation by hand (without killing the workers)
worker@06f5e795c279:/home/worker/androlyze$ sh management/purge_tasks.sh
INFO: appending "androguard/" to sys.path
-> connecting to amqp://androlyze:**@172.17.0.2:5671/androlyze_vhost.
-> connected.
ok. 88 messages deleted.
INFO: appending "androguard/" to sys.path
-> connecting to amqp://androlyze:**@172.17.0.2:5671/androlyze_vhost.
-> connected.
ok. 0 messages deleted.