diff --git a/.gitignore b/.gitignore
index af2f8a7..0275f1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,6 @@ __pycache__/
/config/*.ipynb
/statistical_analysis/*.ipynb
/machine_learning/intermediate_results/
-/data
+/data/features/
+/data/baseline/
+/data/*input*.csv
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..8ecc6c8
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "rapids"]
+ path = rapids
+ url = https://repo.ijs.si/junoslukan/rapids.git
+ branch = master
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8962e54..b6b261d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,4 +4,17 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/snakemake-settings.xml b/.idea/snakemake-settings.xml
new file mode 100644
index 0000000..d7d964d
--- /dev/null
+++ b/.idea/snakemake-settings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..dbf83cf 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/README.md b/README.md
index ff7f95f..99972cc 100644
--- a/README.md
+++ b/README.md
@@ -32,4 +32,130 @@ To install:
```
DB_PASSWORD=database-password
- ```
\ No newline at end of file
+ ```
+
+# RAPIDS
+
+To install RAPIDS, follow the [instructions on their webpage](https://www.rapids.science/1.6/setup/installation/).
+
+Here, I include additional information related to the installation and specific to the STRAW2analysis project.
+The installation was tested on Windows using Ubuntu 20.04 on Windows Subsystem for Linux ([WSL2](https://docs.microsoft.com/en-us/windows/wsl/install)).
+
+## Custom configuration
+### Credentials
+
+As mentioned under [Database in RAPIDS documentation](https://www.rapids.science/1.6/snippets/database/), a `credentials.yaml` file is needed to connect to a database.
+It should contain:
+
+```yaml
+PSQL_STRAW:
+ database: staw
+ host: 212.235.208.113
+ password: password
+ port: 5432
+ user: staw_db
+```
+
+where`password` needs to be specified as well.
+
+## Possible installation issues
+### Missing dependencies for RPostgres
+
+To install `RPostgres` R package (used to connect to the PostgreSQL database), an error might occur:
+
+```text
+------------------------- ANTICONF ERROR ---------------------------
+Configuration failed because libpq was not found. Try installing:
+ * deb: libpq-dev (Debian, Ubuntu, etc)
+ * rpm: postgresql-devel (Fedora, EPEL)
+ * rpm: postgreql8-devel, psstgresql92-devel, postgresql93-devel, or postgresql94-devel (Amazon Linux)
+ * csw: postgresql_dev (Solaris)
+ * brew: libpq (OSX)
+If libpq is already installed, check that either:
+ (i) 'pkg-config' is in your PATH AND PKG_CONFIG_PATH contains a libpq.pc file; or
+ (ii) 'pg_config' is in your PATH.
+If neither can detect , you can set INCLUDE_DIR
+and LIB_DIR manually via:
+ R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
+--------------------------[ ERROR MESSAGE ]----------------------------
+ :1:10: fatal error: libpq-fe.h: No such file or directory
+compilation terminated.
+```
+
+The library requires `libpq` for compiling from source, so install accordingly.
+
+### Timezone environment variable for tidyverse (relevant for WSL2)
+
+One of the R packages, `tidyverse` might need access to the `TZ` environment variable during the installation.
+On Ubuntu 20.04 on WSL2 this triggers the following error:
+
+```text
+> install.packages('tidyverse')
+
+ERROR: configuration failed for package ‘xml2’
+System has not been booted with systemd as init system (PID 1). Can't operate.
+Failed to create bus connection: Host is down
+Warning in system("timedatectl", intern = TRUE) :
+ running command 'timedatectl' had status 1
+Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
+ namespace ‘xml2’ 1.3.1 is already loaded, but >= 1.3.2 is required
+Calls: ... namespaceImportFrom -> asNamespace -> loadNamespace
+Execution halted
+ERROR: lazy loading failed for package ‘tidyverse’
+```
+
+This happens because WSL2 does not use the `timedatectl` service, which provides this variable.
+
+```bash
+~$ timedatectl
+System has not been booted with systemd as init system (PID 1). Can't operate.
+Failed to create bus connection: Host is down
+```
+
+and later
+
+```bash
+Warning message:
+In system("timedatectl", intern = TRUE) :
+ running command 'timedatectl' had status 1
+Execution halted
+```
+
+This can be amended by setting the environment variable manually before attempting to install `tidyverse`:
+
+```bash
+export TZ='Europe/Ljubljana'
+```
+
+## Possible runtime issues
+### Unix end of line characters
+
+Upon running rapids, an error might occur:
+
+```bash
+/usr/bin/env: ‘python3\r’: No such file or directory
+```
+
+This is due to Windows style end of line characters.
+To amend this, I added a `.gitattributes` files to force `git` to checkout `rapids` using Unix EOL characters.
+If this still fails, `dos2unix` can be used to change them.
+
+### System has not been booted with systemd as init system (PID 1)
+
+See [the installation issue above](#Timezone-environment-variable-for-tidyverse-(relevant-for-WSL2)).
+
+## Update RAPIDS
+
+To update RAPIDS, first pull and merge [origin]( https://github.com/carissalow/rapids), such as with:
+
+```commandline
+git fetch --progress "origin" refs/heads/master
+git merge --no-ff origin/master
+```
+
+Next, update the conda and R virtual environment.
+
+```bash
+R -e 'renv::restore(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"))'
+```
+
diff --git a/data/app_categories.csv b/data/app_categories.csv
new file mode 100644
index 0000000..d8d7bbb
--- /dev/null
+++ b/data/app_categories.csv
@@ -0,0 +1,1019 @@
+package_hash,genre
+98a5c1a9c7717f791cb4083199ff5c91a958df844a47dc89c7319b2bb824ac94,Personalization
+c9112978f6b1c96c767496a15a6dbb9c8dccabe847c31ecc9e5f706de24342a6,Communication
+650ab12d7007ee573df2291f3a9207442e3897a9a5b2f5068ad685c0d04751ea,Tools
+8db84bf3fb1474b01e941f35d174af58b2d3218f3e4bcf730234fd228844fd6f,System
+8105f0dc3f0baac316e2838cff7921eb4073c8c8536ae894f6fbc4bc4d037115,System
+c774e39b03f686a78a6f65aff913372ca3a1bdafa4eeb85633fc3698040f0343,STRAW
+f84d48902dec00970431f98add7d7dcb2b644aa8124c862467cf9dfa46cf4ce4,Communication
+44f8434eab1eea5e2db280eb44a7f3568ab9de265a6ab6266663e9283be0ce48,Communication
+bcab68738fa9580b8091c60d3ce0ae8c021ea966a7bcfa3bfe08216a0eea3916,System
+7833ab7495c58f6d1ccbea7c7d7c8bc57f2d5454cbdca075c596476affb30921,Photography
+d72459862971b43ded9e70be192ad2e010bef98c879e3dac3701c2ce7db68b77,System
+98df04be309e6ad9edd212752dab681b387b3923de8dbc78c5f4330c0a82bdb1,System
+6ab6ce46c88b64a800cdbd86b74b9925be92d659351ab51c7af38059ab3f57dd,System
+8dfa94906826eef06c9618ddc3944ac5fc8bb3bc45b45379084dac2a7a81eb6d,System
+2a757de4fa47b9ad3a1e86f878f56e9406f1b2e987f2a3e643e4185c6adf688c,System
+ecfacb11fde40d0a4bbfe44c8854f2675ee5601b5a2765efb77c4a6afd112305,Personalization
+ca3bec0c29a6d5bc2edcdffbb7e811c4382d35a50a6878e7aa9af061046f5c0e,System
+03c51c1ab54f33543b2c4cfb010eaf6e0d095421d9d17ed0fbf206be9eefa308,EducationEducation
+2dc28ec3604bfa838f9b2f2b95a6edcfbbe1aaa12b07e911ced124acead84fb9,Productivity
+55d5b7ad6a8bc474758213757670a5091fb5e5266d0c5df3b6390041c134c762,Social
+9895e706fbfbcf30e6d58ff777336e0328aad3741479b119dde6e5fb2f6b6263,System
+96511e488ccdfc2bf1d2b643410c7da2fb6211a3223cdee63bbafee50276c5f4,System
+11a54f68916ce79a18ae16a7962c92bb4168d5d26f00faf11b9588680ec9cc07,Finance
+0c0a98572623762b1d4e76b9b0a0faf768362eb9bc1c678e374289bcf7dbeaae,System
+567f81acdc74c8d46c3028435e7ed86a093f6b9bbb0814dd5ec232d1837c8628,Photography
+da79c8861f90c1f8987a749fa12cbb547ea7201704a081d43f8c6ec2a3e20518,Tools
+9ffbc57a813921014f71f03567e2b4b800a1d3d831c7ad730215d44f198c4304,System
+73ee12446c56262a89f06d591a4824a2a090a03297b36eb3525be19dba7eae62,Productivity
+74fbf0203636ffe24b9338f4d23f75f78f4e7dee3fbe064109e418cc46ae1ed2,System
+0c1dcbad859b14a2d00ccbd76dd415c8da13b7640cd899e912da171d582d1493,Video Players & Editors
+de04257ec7ede004d39839347e4958b42cbadfd96b8c83f0d5309c7fe93a7de6,System
+86464f166f629f4411665088f8a78a43e2b33677a40987f7bd89511626cc6e13,Tools
+ec30670f3cc7ca5bf379479082d45f967f86a09707d231dbabfe47f4cf63be85,System
+2fec55f7e3e157d6f32bdcb7254f0a82e6dcc487a956f3d53d3d25bd2757b480,Productivity
+8cfeddee1cac3befc1bbdc8ec24f373a1fea59ddaf2c965b2892e5b0f770b3ca,Tools
+d6eeca5eeb186e76d9b72d580c0497ddbef3884fdf29584209f437761e8a1cad,Health & Fitness
+db3b2ed1bc6ef5c92aae00bddadbed3e3229fc09d2ded40ccdb2bb85c5e63f2e,Tools
+8a1ff8a399ecdecfa5306b3c887f126841fb2216dfba84d4b76947728601965d,Music & Audio
+cca4f5538a7b3d1538aec8e8ed8b35f7693b9a20a9bbb38b9b83f0a584b9d18d,News & Magazines
+03473a3ae8cbb5fa6c5874e00a3200afa677e1da71ba67489def7deb39e77ef9,System
+4593c3bcd30df4060b8550ab6cd704c2036a7304972fcadbea84d13075523e74,Finance
+16e54aa4b56494959f583fb3d9fe1e01bcc9f8d94b2cdc4ca0b083775c40fc13,Communication
+5173dacdb8da7a8db9054ed808141abe3e38f9ab53ca6cd0d1843cf0287eb6a7,Communication
+922dc3ad6c155b919799f07135b71bcd009ffdbc6ddfb3f7ece87a16eaa613fa,System
+2e58c2b983bce4aab87d03798f7c01250ea6a2a50501988812fcc7c42fff66a8,News & Magazines
+dc2d10e89d917ecacca2d070931b2039333d54eee5caf6086481fe0660963195,Productivity
+87144f71a9f431b22adb501f20b04003be797a142138a31f6d9fb638711c1401,Productivity
+f43a6a0c91cdf0ef0bf241ebd24ccfda10fbd3d3c589b45e7f110452a69e8254,Communication
+c07fc02b11b129cbb37b939821baa4ef4a801502ff94231b0129aa636e35ecfa,Productivity
+e96123148973d6c8b239e75d7252c253f27c3ec57118e99566ffb88dd2740bee,Tools
+dd9efd001c421a802fd0e55c4712c3accf6e5a0bfae8d1500a2bfbb5a1d470b1,Communication
+1b41d2e26a3aa829d1f43be105899cfc330f1363058e21dd29fbb73fe86504df,Board
+59a7078912a4e8bb0d909a812562e049d488207ec1f2a0378024448349c34a62,Health & Fitness
+d8eadd7c668b31e934d13866ecff2f42edbbecd5cf7ba82bff03d12618518b19,Communication
+dfe575511ffb1dde963914233d192e054225d678f5773b959c6505f561814568,Communication
+2bc236b5e055871499b5168832000824f22aac047c06f86211d49d05acceaaa5,System
+bcbdd56ee284939d84a9b97a1520943dfd84cab3c63526bf0f42fde97764581e,Music & Audio
+a608a80fcea9570a9fd671f1cefd58960aed75483fe27a417b9226d8565900b4,Entertainment
+28100e1472d6a887b6899fb1db209ec631364e39303a7e8bb605eec71ca514b2,Health & Fitness
+24e53b65d8946803903a791e806ff0ee6222e36642b9f02489428788da55a7d6,Lifestyle
+e98f0db30ff159e9546d806fb5b26c41b6125eeb54fe7476c46e8d54b377a672,Medical
+8ba56fb34eaf7151c81c49ed4d62c279ee2e3dc0ef27cb708d2f748edda896b4,Communication
+b53b77869a1ecd123f26a1d662341079aa9f864cfa53782c3bdec66e0b5f82a3,Productivity
+9e4c69477bbe0b8191ec423003b246d14387cc160320cdc399eb7c686ca977eb,System
+3bcf3afed2f302a0d3ff8b53ec0dc3c410d7e10e1f085410b781017be8d3ab53,Productivity
+42af2333ae72f7f22b4e8c65201e2abf39e949d189ed84418d60a6715ad2dc72,System
+e1e7c964411e3955ed739573904035a8975b439afd91fac3e426d3c89896bc9a,System
+743d36f165fd0de9dc7a9e8196b333c38c713a2a573cc1b15c72ec55b50f1b2a,System
+ac7dbf76920dd397f41b382086ee3fc6a5c8316a036fb4cfcaafea6cac11068f,System
+58d533e92c42f32b5c670dda0459c532a26bdf4d8829b268b4c83b0dfc81e532,Communication
+8a3234cc396da5930728e3fc37733657213a889318e081b5e34b9d48904242a8,System
+067da5d7b7420c20bab61c489ddc0a165314e7dd63c063a6dfcfc562a41bfcd8,System
+9731982a710d88d1ca614e56540992406587cbeb6825185ea69db0c38130a1a9,News & Magazines
+5151bd812f4c8f9c1f0c0d9521fa6559e385a2db09fe169418aad623d2a8580a,System
+8811759ce3d0f6d242d1601d4ec23e85b60032459ca3550a0449c5d4c103019c,Social
+944ce84ab7643d90368352203cb9b0ee52a5acf6c85ec1b2dc04e59d054aa984,Entertainment
+e3c2ca6ccf608195ea76854d44e08ae4f3c9bb086cddb75683e4ac82215eedd6,Travel & Local
+08c21beb926a22c7fc58a08604a7deb4ac702f291da5c74fb86ec880161a4d30,Communication
+2dbd03e77c99d04b57b56a8f483377944790c465a017c10eeb729b914ab51945,Tools
+df2f029b4568b33050cdb1855a993df908dd59b64fff6c1a6fc4252994238bb0,System
+fee567f0dfc972c843bea462bc8568884a7197ccd02a7f65cb59cb623a7a86c7,Productivity
+a25d729fd543f30d90f715edf08a1c046a49c934d534da891e668daae61f22cc,System
+6dca07071650b6e580fa6f846f88f100df32cc6addc524d38e2157be25ee3c25,System
+6dc04b99678b1474407c56e46b3a0ec42184548bc11d163606378ffb0162274f,System
+2520fc9914e98d41b06778708515a65299160433976ac20f0b16c7693e731013,System
+7ae9282dab64407e5c9072c1c67c2a19280bd55b8148fd3ab37adf2d3a2d039d,System
+8043ed6455b0fca92894ef8921097739e51c9d704637ebd1712a7e6a41ebe53f,System
+6ba0ad813c8f6d7f5ed2ba82fc0968a3abb521cd3c15d4fa0f3faffcf224f134,Productivity
+d7acb5609d9ba261b03e77f8c31391a8dd32f5557575d27032f92725b0a98c0a,System
+9c5f13d7e05c50118353e4b18daadb10667af1aacad882c136a1ce38a6bfc893,Music & Audio
+d8f206a42d8b19a4a944810ad597cccd5eadb3a032caadca865c9aa274de0be9,System
+49a5598051645bda7012524938f2b503c671f43e4bfd00eb01f83d1bf80a9dcc,Finance
+eecb521ec2f88ea75e955b53f9c00c16d0bd84ff2440f1d3be0867902e589100,Social
+d02d069eaff29120dadbf598a032a97b27b6a6961d85906382c466aaab80c732,Business
+0dab754bb23db90fa48fd08fe074af20463e13f478457e871e3420856c63e87c,Food & Drink
+dbdaf18bc22669ecd6559e8b515b834acd1f826d17cbe044f3219d200ce37588,Shopping
+895896b6accde51a691adab3941099115bde5a3204f8174656d632e64027d276,Health & Fitness
+8e098492c21e3e9e74b5e976e2c5dc719670af37d7567918f3cec2f511c00d71,Entertainment
+49c995f38ea64489272458f83ccb85fe6c09310812442d8e2eaa0803205d16f9,System
+d63b90264e22b7f8961baa0d5265ad5fadca22323902727ee399318b0656b385,System
+4e6f0bd0ae6a1555c6b53e510c3eceb85784328280304f7151a04a6a28644027,Tools
+9fd952492888773f7241cc9b7c816a188af37b654ee3dd775919ca8bcc64a84f,System
+3cb02bd9fe680532ad911576595b891d3852b4d7c3626894f2c744d2e91876f8,System
+ee2625f2ec88603212cb85ad312496e72d68cc448a645a766c0e76f82969a81d,System
+9a4879dd72541e30dd88aac2d0c13859988d0c67912266fe17afd7176976c189,Communication
+85594c705da67aa2d3495b8d4b2d6afda7b5d8484ada8849e0ec851d37bd2c7d,Communication
+6e16ed2ae3235b70c5e9c9ffe7ec87778b1620a2db3630b7bb76fb51999fc6cf,Travel & Local
+5b87646957a397a96c128b9efe5e7fb93dd8d46a890ade3217652ae44a9e7631,Health & Fitness
+f9bad597b302cfc04ba0b3ca7367a5a900362dc7e4cfaf8da17b1c028139a27e,System
+4de945934567af2f6cac4ccf198bbcb1b889f6490a4f3ab95ac2775bbd1c389b,Music & Audio
+484f17a86919fc78e5765b3e6bde3c360d1bdd98744ed7459a410e341d4296fb,Tools
+cc1ac1893e41253c58a9304f52028364c8ff8f028fd0b708453107d64e5aaae5,Personalization
+f03f7423c49037af14592e48fad9dc0eef886220cecdeb200fe2a4fe56a8e0c5,System
+43faf2a54457e5445a703a67a548fdb5f2879bd8ae00feff6ca51f7f72baf2ed,System
+fc7f1388db7c8996e13fc00460f50817d3203527b49b6c3c56fa158c1f90da7d,System
+1ac4154694ba5ccaca7cdedfe4792824db0b750296ef67ac259a1b6eb66f7816,Health & Fitness
+5fa45c319dbc5697073cff24715bb12c27248bf8be3037b355f750e952d86457,Tools
+542fee0b4342ef6978883d27a2ff203bbe3147737f2cf726fb29917055f465b4,Other
+0b7efeadda1771a61755554e34c791dbc25d943f3d37436c65e5ddedf8ba0634,Video Players & Editors
+74887a9c8756298187d684649d6137e992b5213fb51fb9f70996a4dd205e36c4,Travel & Local
+bf31bb0065f8ea96a6b5407b80062540e60b11c574f8ba9aee64920d88e099e2,System
+c19dcf6bcdc1377bfd4c5b80a1ec8b63543e3ef6935def2e2349bf5f631ff4b4,System
+fe7c945639af7fd69efb3a0a2b76e129b5c4d3d426a3ca23cf77eab9d3d313ae,System
+ee9c4f395c32b21a16a517184708715e498e372279eba688005b975b35aa2ec3,System
+41ed6e36a4a986a9c67943b986ac0e7068d327bdbb903f014ab6bb4af366dfa6,System
+22c6ce1a473e312293c94ac803b43962a11ae1bf1a2f12eb3d1cf4d93c55978c,Travel & Local
+951ab26ed4f963f41901290c760f310222bbee0521a891021e3ef6587f844b78,Photography
+836eea4eba289df1dedfabfceae29e36dbbf84a36f1bc2dc4d58699203b98246,Maps & Navigation
+8d97a5c939287e67f7be9798f9f9bc648743e4663a9d9757d49198ab1c7e6793,System
+2c7fd0ef311e3ff5cc5787174876721bf870c32d45526b9ea6251df14bf09ebe,Finance
+da4a1ea68608a405e19595896cb764965c38c7040015f7bab06fa9e0633ec8c6,Tools
+a7031ac30cbfff88337f7d6684b948402304087f437c2b03b894973943a95eb4,Tools
+c13be9440020c69b1c1e5dfaba531df24dbe933bc41fbf3cb6f07955e15ad988,Video Players & Editors
+68073833fd1074407364a026eeffb6988085d9e3c72b1642bd0ff5a5dbe51f63,Productivity
+d0f7ca4dcd409cee3f52e4e84e7a83dbe319c1e9f9ea9cf480f549dedacf2cba,System
+763e534617c2875dda6b953cc2f03a62a2e5c125420a19b29f2032c4b348d8f9,System
+ba01818feca7dae630af1aa8c6833464d43eb0dee0c0fbea906e604585d27fda,System
+b2edded7e382120e084981d5c6f9cc039bf07d77611f58c091917152d10c6dd0,Weather
+6f98201da6c4279e0642e7afa85768ce01f03065734ad6d90e7025e576e51a85,Maps & Navigation
+25f063a8301f73e6d8c621da3ae2238edf9d24a7da2e0fb25b28868bc14f0148,System
+f2cb16bb8cf360c4b3301465ccd90607035b3413a306200102bedbea6528f028,System
+b404fd1e78a370838dcf15125ccefb94c8d781eaf8698afd15bd67a8ece9f84d,System
+a3959b9bbd85a1a0a3dd1e5b0f9f3de21c3dc34097b9a595e0b594a610f3f44d,Weather
+7dc683ce458ff6f1a6bd701e1a55d82b50ebf6e8febcf612cc1b51a1f140c5a3,Productivity
+9c46fb334d7ef720b248c7accb3ad61479076d64a9b68730d2d3149fe03442a9,System
+4f6d3b70dce5bc5e6b3d2833d3913aaaee7a23bf9933ba28cb63e69cb0e00bc0,Productivity
+1d66ae4b86d392c0412bd9f59b3fcf48be844c8c548e7acb76c849833a7bb106,System
+c3ff6f1609f929f449cb3f84f3ee3c8e0312518f9952cfd613322885ca2a77ed,Health & Fitness
+4323aefbb15372cb1e99d02a293ff653b7d5e645080232aab40a7312ae5a12ba,Tools
+baf2e6a97a57a3488c11f234e39a10eda8629694521bf2ce0084e87b4794a3a5,Business
+f0e13394b6546d7524b6f0ea690833c49b735d0e555201baf223b2b391443194,System
+8c945f6dbf7a914c898de7199bc27edf59e250c3e3902b09c2b1baf9de4740de,Travel & Local
+cf2b258cd1f4ac6e3606fda80b65f67cf4b08e6402f941fa4b384adb67ce929d,Board
+9fecd2ff54b410772ce5dac4ca80f6f2062c8389eb0185251c82064fcdb294ce,System
+17f122c199d150a88816b4c7146c6d96ca1ef817195a3e7fa7d5a09a84aa64ae,Tools
+8bc20a20cd367a546abc2ff2c3599090e6827b147b9444da24945f9eeaabb54f,Lifestyle
+6ea9ea7a32941a95f5e4c60c1c0736b599581466755992c9ced1123afd7c2b55,Tools
+0453626c59aa5a993b9a8adc086cc768d037a86e105f2b58f0540895591c3d40,Other
+816afc8b56c2df81646acea73c593f2ac3a69d358532c4750f9e2bc0f1c8c4a1,Tools
+daf48b0392bebb0619cc95fccdad95f5c1a8c2a4e54cc11d2e19edcf334c3e66,Finance
+5693f726aa15873d525636af41c111f066179e5f7c77d6f1838f5f744fd4f243,System
+959c53ab446e18f0ba71dd5fb12657b2a11c30bde3e6c4b68a0223a31f7242c3,System
+87dadb1e8fc924b7c43937b63e631528e045d43a35228e6faf876988ab1574c6,System
+26929d089daffacb46e5db8ecba3a374d49a5ad146b924e560fb0c2c5253f29e,Lifestyle
+7525ea65133eeab65147a689b1cb538ef4a66b18ac14d55596820d6a2b56e732,System
+30e45e9554058d7930e835795715c6b3637a482b6f72f75e6c699282e18896a9,System
+91ba5f6ab387b2dc3063502cdfc136d270d5039fda358ae359048e8ea89883d1,Music & Audio
+30815402abc28994103c07a7003ffcada9afb7e2c9ca7a39cb4c0ba96fe4a173,News & Magazines
+7c7c3e93ba41338451d7734287bd0b128183ef704f6cbf2a10c506516bb4a49d,Health & Fitness
+493745c0796b4b366d25789164d2a9f71c1091b158561de364190aad277135d3,News & Magazines
+6197a86a41dd0835100d2d9dc38774d9e54fa8f6dccc2b16cf014e2321601782,Finance
+48b441cffa0286aa3510764850d63e4e17499f255924df95f9e823642346b002,Social
+cb670a9dad3f8d8c48af23609b9faf1ed19ad9739b61ccd01a438a13bbebec6c,Health & Fitness
+12c7dadbe7020e080d20c93a65abf1a099d79e8682cb02c461279313ec87d682,Travel & Local
+982853054526e887194762b75fca4b32ec15ac31c795e95b1a43afea077a14e6,Maps & Navigation
+183f3fcc131e8fb8142ea9667defad11828da4ad9265d317ae5cfa000b84328a,System
+67bae57be03ca1f262b75b37ea41b7715ac63467635e9aedbf08bf153dd48a93,Shopping
+48a9ef390f74d3b2a825732f7514a66f169f7570277eff5755aa82d9052fd4bc,System
+1d7dbcc40b424956133422c7d070c23eb4c163e7c69c8fc93c5d116513edfd07,System
+20df72fe6a855644046f0f608e3debf3221581bd3d20225173cdc9a365036981,Music & Audio
+bd73e6ddd93de2a97c23911908b228e65bc2a7e34379a9bb804c7504744f94d2,News & Magazines
+45a94694535719933f686c922ffccebc67cea1b4119179697aa1e40b9b58c734,Board
+13c48b988392729f3dab5a9c9bd5d29ec42dd25a448b6d6a01ee51ee38886987,Weather
+d85bec7af0117ab02141358f8988d32a01fb8328ae644f8e42edbbddc65d8ec2,Medical
+6ead691964435ba5b1f3480b5cfe2d5fc0e463d1650f998a484bf7f8ec70516e,Music & Audio
+b864f026811428306ff2f46ac6a2cfabb7d7abbd089f758e459c8688a6aed9ad,Video Players & Editors
+0ca20ba7126a006ae590331d9f222141c9e67af775114a01b985272d2f16f97b,Productivity
+e255ac706e4e1e592d0fe5418979983a3b2818d18c2b979392649c671f560b93,Maps & Navigation
+b200a2a2a81324f91c9f75e5b87cd6a0204c8380c0f0de6d08c15aa9055a4c4f,Books & Reference
+7e6dee57757d0c4dd9e7b4c43529ff256e375831e8105fba60b6e1a0617fc16f,Productivity
+27c463649ef34fdfd44f3a511123d8bceffdb5b8c49751b4381661cb825ceb9b,Finance
+ed4bbf8fe3893f6a851e4de45d5e0bbdfa949d2783912b3095e3cc8906f70c12,Tools
+fb81068c332b9554857ff152e83f59e624e275879a94e382ddb0617a2142ecf2,Tools
+9f9bde3ab24838a052a30fba3209757eb957cd649ce9b9155c4a044f48722ab3,System
+d895ed52e5e521ea506642ca4424a179c949b846177da0594c514964f90da6a5,System
+3ccb955fb42c53d7cc66e2c7512c178fb82add4a6bcf9fe7a7a5ce85082ec179,Tools
+e401bfbc725bd9d38817dae29323d5ece666433c50d42ee5cb33386403da4c71,Music & Audio
+f1aa3f182d3af402fdf01626e9c3d8f5046e55ea6a4c9e19c313ce3f2d1a0001,Shopping
+879a9831aa2138a16f4e1f565dae9de152875b47251300fb35a06c6dc3975daf,System
+82c0440d4874846ea3c93060ad44ddc86602a23e871ec387895bd63994f01dcb,System
+b0df249df8b04f4a41bbc1090e17f37f55abdd6262800185fc3f3a32ff45368d,System
+b8cf0ea533c5d8ae3d7faad469feb13d5cba187e4a157d280bef6f666a539c12,System
+cbdd7680c30b65538088eae6c5c7a4d88158e2b1a92e41a37c19b5239bdee854,Tools
+3770f854a707ec20dc486263bb14ddcfa085c45d0b06b74951c7c070973550ec,System
+27f8340c80d11f969a569c89c2540677675c9f9b59bbf9b0cf9d8a784961353d,System
+d94fbf01e1a3a7683228a6747c1c8b55fe443e65046960ed89d2a645ab75e47b,Music & Audio
+26999a814f515d694d429a89220c618d181e513f66f32b64ec4b49416631b70d,Finance
+97f58d4ed32581a264811556ac68060dc3f1315b81227d5b8dc585d11cec99bb,Health & Fitness
+e821f28256e9ff7345d2657f5db533c631910e4ca30fe37931f1c63fcde0289c,System
+175341a273a9db227d09651a153c5ea128c5ac31ac3fef54544fe92a25eae598,System
+4160e1587aedfadd14b71ec57d957ab56a721d6618992173bc2b1cba1a3a8788,System
+425ae000845b380df40079140016d33fadd3988f403e87dc8320d0fded6b70a5,Shopping
+42612710d7deccbcfa46e974f029399634f573d5057b1df84041eeb5f0d3685b,Entertainment
+f4cbc070348c49d69d3a7e518c7fde2936527034018a042f64417c629d862e7e,Tools
+9fba02bfc237b2258a0d23aa6c210855a17661c1e661e82ffee94521f289c648,Finance
+149a602da40eea711e955e3a014f4ddfbf2e36664e18160538af9b5152edf2ab,System
+a6deadc23458b165892441e619cb7e79ebfce50e9f796ebbdbe9f4c576a3c210,Photography
+a2c332cb97e0e3b08f60d0a7285950ca9e67e290731eb71c015cf0d17934a6d9,System
+9d08423213e7be8928ba56c9e117cce70f72a774001adfba38fda1e576d87261,System
+938bcfb39c450b34e1653f52fc8ae0d29f36d612d38339c615991fef5d295837,Tools
+56fee495a43476466d8a2a61f869c86700d9e3b513240de25b5429d1fc39bb6f,System
+8f0c1c512f3fc31489b6a14362a9ec6881602daa31f59772a1d352c724ef4994,System
+f1d1be5a95088755d117a0cb639e720d26e210b8db95e0b7aab348e05119fa17,Other
+e23fbacd17a42a02426cf6c79b8eaaae8a3aff559725910ff6b22f0f89c0a02a,Lifestyle
+c00ba143041823ccf8738ec010809f3792f348ab8710ec7a3684cfdd7996b3e9,System
+8a0dc9b2aebed503d4a85672fecde9deaf1bbe18890d98a1ee7738e5f8406860,Tools
+ccfdbc5a58ac47996d154ac1a5af78663459f672d314c3699caad85ca3481e28,Lifestyle
+0b13beed35bfa1150023599edc58189c6227bb63a5db9a85f3963989eeed6e49,Food & Drink
+b78e5f7b03ebebca7e0c8b17cce9e612edd6d03e471e41072297adc0292e4a24,Food & Drink
+6edce710e1aa06f085cb09e44c5bd38690b6f990c83c7043b5e0b77e2b5809ef,Productivity
+6f1e2374f7b1bbb674fe2dd81561cfb130cf8792288cb65243bf27e1f8f63553,Health & Fitness
+b01828bbea035d8463ddddf1cf7d60db7c8040c9aa4cc3c30ab3d0ff03f81d21,Communication
+d3cff855f7de5c45d717b12b421853191e25914aff129e314c31e8c79ce2fdab,System
+4ef657b8b59cdc7e6e7d1632438749fc13feea20398cbef6abcdc47bdbdb3ec9,Video Players & Editors
+8ac357950f1acbf7ff4cdd4a71efdbd9248a18c5cdfa2d0aab8fc93b67bcf5ca,System
+9743b7e2049eeaff082601a6bcc860819e8e0a0550ecd5836085a57a89a81b90,Lifestyle
+79e8f59804c7c6261a0d4f590502dc537979ca9cb17d67b3db06408d9ba3bda4,Tools
+5afd97dffce1b6c918eb16c36b4f5f530b418d1b89108887e675bc4a52f74815,Lifestyle
+db0e04aac3e11133b25ce5653f619cb8033d9f040bdcca370719d2674b04c374,Maps & Navigation
+829dca7f6794ef14b8b150e2aa7cbcd39291945dc2178a2da822aad18dda6abc,Tools
+c7508c57c7368411ff5973bf95db188f745cc37801bd754d71e07de773704f14,System
+beddd3be2046da8046fdab91c2db42174d002e76c5d6e59f6ea465ee240c5118,Puzzle
+128eda25db736db84c2d4e99642a33d586d194abadf2717e54ef4277080f7e3d,Productivity
+106213f90c2140a41b711822caa5b835cb3c9c6de3b4a48ea1fdab5a65203d78,Card
+723f53b9413b898551560d6eedd523baeee33da785481771305a747110ba9e75,Lifestyle
+c00b541bd5254a9d0a830daeac2f8a728b8196c6520c09317434a1bed57f19fd,Entertainment
+95d4b465b5eec18969b837be94c1c745c2faca9695b282cdd8961583d432fc83,System
+55cfb6cc85c5e505602a6b8196093fb87e58fc76e0085aec6295b59fc03eafb6,Weather
+97d71ff22f3dc459b2c00cc795c216be502bd664e8dcfa665ede00dde13d61f9,Social
+2ea4c05100590ac1d41c8c1109d35ae451d1c7d76f0d04ac70f18ea8d9160613,Tools
+ccfafe967f471b87ece18d14cf5aaba696584f30a49f68c96e0201ab90273a17,Tools
+e40e4a0658add5afbac77ac6ad3fc986a50fe04be75f6e867503473ae1882cf3,Communication
+9015b14fc181c565f7665b9d7d7065aac296b79384bec5ea96e5c5252476ce1b,News & Magazines
+0090939e8d4ab9050d27abb528b3c12d3f1c520556e4d3f6059ae62e6be2387a,Other
+db37b364d209cb513f63f656f77c36c994a65930b62f455a581b2ba50b5781d7,Business
+e37d7f4b5bfbcf89bf2dfcbc69adc3cac3a48dde13a96094a8f09fc1127c2c44,Business
+f54133015ccb33ff2025d27c65c28f96457f7dc495a14513fe0e16e8789a1fd8,System
+c44169b84790983312deb324611c73a3f196baaf9fc643c68b2a12afb6d9b23c,Tools
+552b12ac33614190d62249cb6e72f3504319053858ac22d90b0fd9bed6533b06,Communication
+fd393151fdeecb273115a8e1d5def2bd8d1f63986f91aed926ef77b530fb2937,System
+ffbb594fa5b1cb2849db3820867e02819d51582f7f1207a25467464d9806dc26,System
+3766c3866bf7c35e6feda19018370220d65c2424bdf4586ef8bda9daead2e6c0,System
+519ddaefea3cc7629aeda49bc7fd0e4628253a9c0c15c3ca83b2b440c7784b68,System
+943579161cf6b310a09c3cb7ebf1786f4c10daa4ddf86b23bfca8e8307dbd6d2,Travel & Local
+3b2551617413fe273e616f5509265a1e03218c33df9e467766e5973e0306ea74,Books & Reference
+045b65630bf0b66b39ec5f12afff9d6c68e3a0095c6c32c1ab2202544b17a6d3,News & Magazines
+e5a2541646f37d983928e5e3b4c589793c8ef6c443374ac029810b8b34236283,System
+0453d1ca3595b009c4ebe75b5e323a5dc570ccdda0ff9f65e359e8672fed4850,Other
+0068e12fdf49a2054cfa7093c9b9a75b105ec7f86658a32adffc2eaa9287f129,Music & Audio
+dd8dac0f7458182f25bb2056df4f5ace24e7f44613d244da261c84282840ce60,Productivity
+7fe479492a3a6a5ec0ac48daf38d552d6d7b4483c4a74db4ed5f9dfc97db47f8,Tools
+23e923925ea5033054ff873d7b4a01eafda91296a9e78f8c6729fd56225218a3,System
+298cd557719a016b902150691138f2498ba2976f0dec22554a5a66090dfa5d81,Productivity
+2863d7851cca7086e45895af5bad97d6d2acbb2d8cda132decaf18f65cee3fd0,Tools
+06a7373ee2138ad51e79c5856f5ff1e7af37eae7221f905eb20feaf540d0ff5f,System
+1c0a6384683c27c3a217fcc3ed9a18b5d51f18a1f5abbfed39bf9d009cea9975,Entertainment
+ccaf0d86020cac43dbce8e0093edb57389264cc68e542b198d0286d9e2affa5f,Tools
+5853a25d9107647ab2892b9e9af89b75b498bf8b656a6365d16a733bfa912290,Other
+48a5be18b3767dcb96ff755822105ebd6dbaba0c769cdee2cfd8d902c267214b,Tools
+0c7fd1cf405a4d34bce01c546d4cbb06c4b8eb09d0592fde3ad4ad7a02f1b523,Other
+def6c8522b785ca7c391b8a803d14dcea66b156d4840b11c7adf856b6a17a639,Productivity
+9fdf6933386dabef16dec162d6a67e1adf69d68a4f110544a5c1e0053ad35a4d,Weather
+286f74f4228b38adf6d90a73a2a2b619b78bb88a102a8bff8de5a173b6e41b55,Social
+31270fc26f771037efcce124022cf932daf73e3d49d96e718f201e6420af6185,System
+c88b34cef0d6d1f95ae0cc049fcec406b48148a838c5158ec4270148410d5daf,System
+e696fdac8f3ada023671fe4c6c26bcf319e45bb3e0beaba3774ce845efafd296,System
+8440951f021bffbda43dcf9b0abbc5fed79d8e9a168f071b84a51bb882cb8a04,Puzzle
+44b14069cb08da9fe1f1e690cb71ecb3ca56c6cf02d0e8cede4fc669b5648f70,Finance
+6adfa4c55ad2d335b68a8bc8f22e93943d1c54f78cd880a7c919a4b0aed9d2d8,Other
+a20e5c159a7287eb18c31cd3773646a12608f5a079d340ced30054522c1336b7,Word
+8cf6eb7a514bfb6f4c4649e930109a50a32596624f766c6fe0dc35a62715e488,Other
+0780643e9c3590b30d9d92c4dc224dacb9093bc83d9a0fba17b9e85e26b76fbd,Education
+baf4048d7c31542045d848ed971695ace742dd0f2531c08b9d3b6cbc482fa980,Productivity
+71f969d58fbd8c7caa82d841637f1d9a598bf498f9d16cf284fff220c4321193,Lifestyle
+f415242f87b6da133bff7c7231107d84af0dde2b7e8fe87856675a6fab15200c,System
+0785fd39f5481e5a99bb44f8ce3873383d3130255585a5b21465824e8c566bf0,Tools
+c38b17e9220ff0b409ea1733d388ad4174f303ff586e8c9c2d57302823a6a4d4,Other
+257cca9f4b2b3d99f2a76b3265e92e2310a4f0fc48c479b913945193c3d73d49,System
+9ecc05a2e41c51431e094ab98e45dff990934a176c2278574c043d054c062b7f,Travel & Local
+9b7f014e0e888109ec29d8987425e948105dc88a5c4a84756a3226bb01c49e7f,Food & Drink
+92a9f57041f958ee4df4160ae01ea743a39776531131d50a05568c9775463161,Health & Fitness
+309cb2410f55abc6480defcb7d952f1cda08b7fc77d01eff5cf5ba95140a9f1a,Travel & Local
+fe4b9aa4f7183103b12a1ef05b2714a996c7cde85875deb39ad9428b9f2535f0,System
+f8fd27fe975edb446ecb9c78996c15d1bbcfa423877261b5052e30aeaeddd125,System
+82905bdc62cee3b06ebaf7dd5fa0232a128f39d039b201564679a314fd9aca5f,System
+c9b2c12e1d36fa65c1f1ad1c2351ef19bab49fcf2358497151c2fca3201f52b8,System
+25324054418f6289721f4bde0a18ac930308fbaa9fd8c22219fcf676a6a6874f,System
+fa7c9ecf7933b2d3ab4e78950a1c2ae83b6dc864f49196d038c4c03ab889bec2,Finance
+164158cf5aaa652aa832eaf63bc00d13706b997c9ec3b84d2e102d1bdae7d33d,System
+8d56166f824a891f862d406926a085d9d6d796965863eea3ae660e45f43a73f5,Maps & Navigation
+9dd073336b0cef8cbd9a8029de252f4ff2f5605f5b3fe38a350d3794a6de28a7,Productivity
+441d9871e3c80930e97bf7edc913cd291765eac3c92116edc8870df01461cfda,Health & Fitness
+7c10080f29f33884a279ee747d4a8a2397acdec3b56e894018a8d1c83c1b8320,Travel & Local
+a03758fbf57cddda052820aa4d0078ee38e88651d64ea393746e15244f6ef61e,Travel & Local
+1242e8fbd05baada6c5121b788f132821d69c38d905af878f7ad9216180e7008,Other
+e2fdc59cc45f2f2454109b6cef3c74dba0f503de0379a64b66b1fd399afe3b8d,Education
+00f8006320f2e55901fb37d61db0bde42d5d60eecf42e5fba466ba1d886d8fbc,System
+2bc8a4ec06c6c879e10d69b0f1e9d8d18befc5fa1988ed127cdf48100eb6644c,Lifestyle
+10f00a3dda7676a6f43a1831d89064bf4ea42fdabfadada507aced8d1359bb94,Maps & Navigation
+7920d8ae871402d61e5aa02f5f01d4d9e4ac85fa298e4826dde818e38de55f5b,Social
+59dd3a47c98b8e3f2eb9d0bff73a1a0b857cdfaae0afb884302e2ec5cbb3ba3f,Other
+4e567a1e6da950e1f58ef69ae69ac6eeaa52b3ec3ff118295b0a77f7b9de7c0c,Finance
+03aa2236b00cefd70b026262e213d33838a03898409c44ce7e8a5da910f1cda8,System
+077040fd9600d1c25bfc99661f9e061240b756891be658e07825391d61776ec4,System
+f2164a829d5682752be179f1fb025dad86a309bbd2527afad7f2054d4ab0aca4,Health & Fitness
+46012671e9ab2f6786abb9570889946ec84a62011e31ca9dbb86fe250b535f97,Other
+58587261ae25dc04bfd2677098fd9ce7e05e92754e24241f5dd3995dd36bd89b,System
+c90c2700293ddd9f5f357356826233c77ac3b8389a9af5390e1bf2e668b8cd93,Finance
+1e7242d13605178e3f6698d970488b7379a02899eee5243b37c4b77a530b7875,Other
+c9d9c783fc03bcd3626888be531e4fd0b0b4c3e930bf96501fed84850e879319,Productivity
+3bb1da0f3aec6c8e53b3dd5ad3297aa5e63ee3e82c32289c74e723d1e1a5cb01,Other
+5736bd9c3ab9bd58e680ff71a52a2a8421ae7e2ed115742fb0e1eccb0f618b55,Music & Audio
+c6d3901cf6c3ea9a1a2cbaacab400a7539ec1fbf835ef18bac99976d2adb4533,System
+5529211e2827c7c3e71b3a5fa5fe0bf322fc65347767021f22128402743fa32c,Communication
+7e0c8c53b4d7bede94fda682f090c0cd102aa923743692b298206aaaaeb086d9,Other
+03e9c2f40573e28d02073d01947b6e58571b89b494820985a77b66d43dd17211,Other
+50cd0be1ca6f4c80586d396f8b13b2d2ea2f1252625f7314fe9aa7c1a88886fd,Social
+f27070abead755d941875f336e8f0d4d2c0afe3b4ac2a80eb00803e15f0689cd,System
+cdbc2699f135e46c07979e43648f380d0baa9a3e837c0e29da1380f9b679cd6a,Productivity
+2606a5c4e14f3b3c8a30c777d10b502f992111e418118227ca3971aea8c0083d,Tools
+e03e11598900b4a71fd3962c42136ac5bd8aa87aa3fdae347641ef70472ae3cd,Education
+8a4aa62d083a7e269fee75f0079fd2c80398ff85534dd8da2df204a276546d1d,Communication
+4bb225c91570c1a53502516ca68685f7b8719f0ee998a6c5ed7f6f3ed7c8c045,Productivity
+76cf301209ded07011002940d793c47648fc228745108b80138177b3effb10d3,Tools
+c1471d74611447362b17a2393e2e3437b5f4ccab23e1717740324c344a427ddc,System
+b1df3333a2d26c8fbf4a82e05abde0b1bce24b874e62f16688a16ab70b7b16c3,Simulation
+50bb169f0080eba8e4a3bd8dc8307a39692b8c1ffd4575716efbe1dfed7a0ca7,Music & Audio
+892eb772c0c2dd7a9bbb9c6322c8c10ff6e514af9c62f5283a31d69a22d380c1,System
+536b2fa8a64c06a701e9f8cc09bbea428f38d61efbb51d3c173a9d5bedef7178,System
+d851d7ad8be92047b0c81a0d535fcba9a8d1a931f1661cadddb1e4b3683e5a8d,Shopping
+37f544f85370021f964c388e3cc0657a09e059143afa8af428b4acf983b47cf7,Books & Reference
+51c6fdacbb743e9926017c0b9c2b83937d57c3982d46c08797e9f913fbb39d68,Puzzle
+786e8887f2f42bd140feb073d5d15f3d7a4cc2e328c6b8aa09fb9b3304da60da,System
+009541d6a4ed0d99511a3b2be4039130068712f6fe38cfe387a52b1419ded4a1,System
+d40c2b1fdd0c7be850bac626d281deb27de4156383e53f3737192ac415a1e7ea,News & Magazines
+74fac20d34e2ea3ea9df3a5b13fe5d5029245c6f86a3b2c3b70e0f5af23d8f2c,Books & Reference
+80b631c9f4467f50ce334f7f8ab2e9df25539f86a723dcc2304f354f2b0a5d2a,Weather
+4ce10fe73af20772943700ecc7a0faf0ba2d78beb7d0b3a005b536a34f7ddf00,Finance
+5a2333da385dde5b9acb89bd898cf24acf668227caa373ee0c0c6aec828b5b5d,Productivity
+be239c0f6ce8d9567b3929405e4b5567ef1921b452551d1852ec5b92378e4abf,Health & Fitness
+ed2b83b756d8ce8ac4abd5f057b1b17db6ea198f1584583cb18e20674ebe465b,Business
+b590554a994f2bb5c6a5126cf648d3a4282249d7740f1274b03be153c7b3c88c,Shopping
+f814d39c2441ce3520e0d27d80fe3c02ec59b68026201fca1f24fcd281f98c36,Shopping
+7c3e5b081ab7597b391fa0c0eac49bab2fad0f41655f0b1880b49245249d676d,System
+84c44d5790af9fb1075b24539ba54b7666ec5b245b8e28144ebb4fd8789ce669,Shopping
+23ba6778cba91122a9d3515f780d4002a3664022c7dc243bcb85884f6e2d4c45,News & Magazines
+cac6d8950ecda22cdd125518cf2863ab8ae5ed2340cd2a69c8496e1e733cb920,Tools
+85b945379d421971d514af901ed1ad682f72f09302d31df30f4f940e9b348fc2,System
+50dfe95144171094d329f76d9c8baf4cc4245c347ac4fd53aea2d8e7584e12fc,Tools
+d968aac3a2c8ed8be877a2a447c5e389e41dfda8972b895daee5a179e860d0ff,Books & Reference
+e1ecf540a3af25f458ba7fd455f6029cb7d734c57eabc5541137b277c66490db,System
+2c9c3f876ee9d922ef10de38113373e624baa25330cddffcd205efc8ce55ec85,Education
+ef893b5292c900b93b0b99ed4e4df1b861d313f1cd5ca69e276f17ac8d75c056,Food & Drink
+11ab744c4877ff76e4068d788ac34bb06751133c2c604694ce523930518905c3,Finance
+49483d831adb76882a1b2144d4e3b15f37b749fac25f2a2d87b303c5482d5297,System
+64b2805372c6b797c68fa80f47730ab831239b3064dab6c33a232268db434bf8,Education
+49cfb21c1a378b11dd581ad19465ee6004b09fec6b0175754c03eb5500aeb96d,Business
+601103b9802620792163a8517b7e2faf9f17ff9055fc602473e506f97b8c4b85,Music & Audio
+e79a0c43770a8d3e7a614e21e59d69734caa6ac715ee76b154c64b275076a642,System
+9b7d2a6eacbd2371a70f47a717de05b8a331a22facd88e19b8fc54bb584542fb,Productivity
+e4dd99bf54254f09652b1509dbb4ddf4d92701ff7fc1809c13b99f31f3703b88,Business
+408698ce3efa7b76550946d34f8f459b6bb7873efd69b29db3068fffb00b1bec,System
+6d77e69903a591d9b19c48d7377168eb62a45a503bfde7adae928b2a808db177,System
+0457cc1884bf2ef597ae515fd5c0f4fa3441e9daa225963e136265f34acc00e3,Business
+386c34311a35b258f295b626bbc5cd9fc99a95b64cb6a867078aa1798b889f2a,Business
+37cad8bc26fd9d262b8db1c4883ca12833cf313fdfcf4879a5055fdda1980cf8,Music & Audio
+116db80570bbd7a3d69aca9cc38f59052ee75b4572e34587f5963e53b3249876,Productivity
+4f6066e593b6826b26e5d569f59415cbdf8b3a7aecd2e0042609f48dfb6d8318,Other
+3f4067cc00aef89c8b756fb34c2f5fb0e6e4817569ac281820be1fd162d194f7,Health & Fitness
+b5b3bd77b66c63a0e606be68652c924974e4602ff39f9bd81f589840dda8f2cb,Lifestyle
+11fce36f5bbcf82cd3d59f539ee8994f8aa7673700d272e395ca0c02b4582bd8,Shopping
+0d559bb05d85936a372c7f22af78fc44f36249a7a2b2f60db68c80fddf792501,Shopping
+243f6f8441e7f323908db8676bf00cc6e00e2fb03e6931a46f21cc04bb2e1008,Maps & Navigation
+fc127090d3eb23b589bcc9e570d8365bcb6d6332bb08cd4f22c8efe33235f0ab,System
+68ef5fd2f9d37457754cef97b6320b624bc8891ed7a99f8e370026736948a81a,Lifestyle
+20ef5789915229b0dad414f60ab5afb94bc02a1d45af240b6526a80abb8ff26f,System
+35a8447b12fc09e85196dd1b2b28e15a80f5f8afa349af66be71f4f996dca0dc,Productivity
+95465ca17dadcb298491377b4c8ba953f523e93d857c1cc8fe77572284f749c4,System
+621878f5229d96a651a5c71e3c22c006ab6eebea74d8857ea8013b607a363ae1,Health & Fitness
+b838d4e6c8c6205ab2573a02083ea39616c6c0ee3f9c9f7e4341ca83412a9553,Board
+5ac3e572f795a9adf71a2dfe97c650d4ff18d08dbb584d13c8f18f394aa73342,Tools
+395d73acee7dadd88ef84a0d5bd940eac6d36eaa656e1e5cf93d4027df08b2f4,Social
+392e9b7beed863953f96b74f105e0c924f3a3b2baaa90921c7d47a10f99043cf,System
+78f643ebc8a0914dc58ac39e3f3f848d3b3aae282111a5ffc60de9be06390b71,Other
+85e071c09408e1ce73520a91141fe6b68e4452933013fe72edd602c2d4cd4433,System
+4b2b8f031224119d5a004cce41f06ae96b49a199541cfc97a60290a9d070ebbc,Entertainment
+209ee32228a46ca37d0a96b8efa159a51d3960f1ff476b979a0d5a43ffd50d55,System
+523dc9ca395eb2024d695984670aaea80e872908f6d98dcf7b96a32628444bc8,News & Magazines
+358cb22f3edd7c7fe6fab61e3fd93350b3e4efa94cf3aa2ab199b529cc4f2fd4,Health & Fitness
+30bee31e7e88055ec499caf17474853c747e8f6679530efe31132a95cc9c0e0a,Lifestyle
+165a239302ca2974a3f3b9824c375fe318096b402204c1d694be9f150b6e4418,Music & Audio
+3e89895bd89a57ddcecc33b8abed8dc86ddde1d25b151a3ad2dd11380abd7a43,Finance
+35b76cad00359b1d48681839c49448f23119e452a9331af26013d64ad891019f,Lifestyle
+6647b15a0c21f0eeebdb0f215cc3826fbae88dabb69389143d643c7e4b589062,System
+d2c68c37dde4a401c92ba77dfe73ecc9e7ed5106a37f1a47dd525d1eace1ce1f,Auto & Vehicles
+3d0970cb4c9d3b1fd15796c0fe971d62cb9b6e73d9f5641e8278ccb8fedd63e1,System
+9425e147e821edec45333dc80ca323a1a4cbc4389307205bd61fc8e207b110b5,Productivity
+0c61e19b7752b27d9354bd218a483b792598cd892b1dd626bf054b88308092bb,System
+1b0bba024a8e2d1847acf977cb08c7c82b10db33d74f28a36b8f576d22b25c05,Other
+240368eca2f4ce2830d63cf0c33ef169184f9f956a0ae68ecd406167db783fd8,Role Playing
+9f196aba8c8717ae6066080fda6de1d9ae1dc4ae74b6f5e97bdd2d63d6411d5b,Other
+417cd6fbb489880625b7f0f3388cd63a7cec9e76b3902839eb311a6261d5d099,Other
+2df794be387c1e57c03514e7284d200cd476e8392a184a03882b45a1b9699746,Maps & Navigation
+8fce99076693fdca3b7122b3c0fac6d82262ed9d1608b9dd1128e4fbaa9f55c2,Personalization
+e5e1797403e864216f845f0ca37ba86883f4560a86b38fd0b87c8b0ab86e2dcc,Board
+e60f0a7a3402b065185ef43a796dc9e744028a960e1bbc5487e21428d35c578d,Music & Audio
+a930fa961205fdbf56ffadfb5cb69be00d4b3799f9861d62f66fe951264d1a70,System
+1725cab09332953910372940d8bef54c30f6a911f2b74b7683db95f0d315f447,System
+f1cda006453a4f7d8fa6d987e47fbf772540f99bf061f8bd79113b3dc069d514,System
+2e5a7390ede15ddfe41be5a24f67385deb28305fffe880a66d3aabb1924a054d,Tools
+e89bc28deb0ddbeba0ea1645c9a343842ef8900bef5f154bacf6e3c50c722083,Tools
+1c469b47f36c830650770dc8e3246343e17c63be6542b1f1abfcd35555255423,System
+d1a26074fb28e50c9b1cf4935f7ec36e2f49df39408088c0628a9ba5afed860f,System
+9fa4190a2976d23da3e8d73a36a2d3e5b1045c6cdea7ab45a17013a93325e0f8,Other
+12cf3a28c21a75fe5cb2e5c9a6f3d4bb3e18f2fdc49268e96d3da7193d53720d,Other
+04e16bb750a224a63b8a151064224d93cdc901151e6aa496b4ff17a7a1216f13,Productivity
+497b538a6418247fe1ff03ddbe8b039c66675efe657424b879711b3749baa2ae,System
+dfbe0ebbe402d9e40cd9d0f908df12c2b393dff63b20a5a58cc923040357b52c,Finance
+8f4104d4f89af1947efd445c1da4ab9ea86e58535f481b7b796c32ac73ed4756,Finance
+bdfa4ec33844a61a9bb099ce2c933b68431a14c66701d47c8bf74e0e05b00614,System
+fb7cda82d5d831a28afdcf6b7f54422258b4f3c1e09d230244311ba4d3188c08,Entertainment
+747cd18f4f05e53517b5aaea7cbb40375e5a994dec71c9cb44340d4f1d802472,Health & Fitness
+980a5344eae9d5874550e082a6ed90b802df0272270b453b2dd210d0cd0f8818,System
+1e3b96b484571c020a49cc931ed15ad260c34c15a8710bd36bd8d32744af314c,Music & Audio
+efb20169736754372eaa46ef31668eb66d3e6b7486f10cc641270d4d79a04e00,System
+be737b201fae9f5fcb789a6c9dab2dd7adee49ebf618bbb057491805bdb5e46b,Music & Audio
+2b77b82e6b369d598630f4858faf1b86e7c0fad39d5f311f3de23266255aca90,Card
+9788d80af21a717b9366c6ff58bfdae94a874dca6443a631fe0fd4d20ef30e4d,Health & Fitness
+d09cd3056d1c5b0544a8bea9c7660527cde615293c670407cd3ff8d19dfee5f5,Dating
+ce82e44f9a920d248488923b1e84dd6b54f8741ed0ffc96c6af58e0ce22d3bae,Other
+ce2273d6d2a8b3976a7f5d8df5c19b2402a5a7239abeef883c417141c71b8aca,Puzzle
+74b95da0aa6def974870e32577d480403f43efaad4a6d2bae5f54185038a9e07,Food & Drink
+39f76f053a5e53573a100834fba4d8d8a4e83a1b3dd193bdb2132655f612d547,Books & Reference
+288b00e89188af0ba82932b70bb3a3ccefafe1903925046c07bd08cd384278c8,Finance
+d1a975b957ad2020b0b9729eccbea304e025af8ec8e02a21bdf6caa16fee7c6d,Music & Audio
+136184823f612336f7acf10d01c6cf846adf2c7781898ba6825d1ef794790318,Finance
+1da4f2cff4741c075733740bde4b1ddd448b46b16cf838886b9f22ee2360d164,Business
+8f4cdf6fde52e45555b66ed6429a35e44c988fbf6fada206765703b02b0818db,System
+4243f8a0a53af0a5ed31f03f7e7dac55632be6052221aaab8bb2465b053cbf1b,Maps & Navigation
+737fb88c2e5ebe18dc75961f5bbe1fbe881e5e72932030a4d14fc96e4a7cc80c,Health & Fitness
+82cbc5f30c825b5dc4cf42103505e6a07f62f96f8c32ddee800bf485c2caab52,System
+7414c68a7a23ccbd97d61c51546cb4f1fc76d6fa81a5bd3da6eb5b185b6eb569,System
+88ed642ebcf1167507041f6b0c72b3f46f35a17325853f3655bf080117f83241,System
+dd5d66bf721ab2bc0ab0d935ca097a2db9f5425a690ea7f90005114f3988054f,System
+bf4a6cd5e12911eff65a6f4a3da91e2491eb89641be4da7b14a890f8b16c5cd0,System
+8ce2e935fe59339edfc0c8cc2cff98332a19f81efcbb500c4856bce3efa5d4f3,Other
+c006e341a5525cc772543140a19e48420085f027c13658761eecec6e029557e9,System
+63305a74209c8382da17720976c385ab20ec3048bed7ee084a1dd74d4c6078a0,Other
+409f5e3470487d199352a22cf839d267117033c7ab77074e3bbd56522ed59ce5,Education
+c8807f4c8a83ef7cc0ec1f9d41531114a33655b355ce531464cbd3c9d6c14391,Finance
+a615f569028f3519ad2eb4f609aa9ccef482c6d0889ec5988c8137a6ce10e92e,Social
+03aeb5b5d993b95c8fd9dead3c6779a7e0da1f7bd3b9c839dfaf182831708fe6,Other
+811b5c84c616386b8c4305f4f46309292ef6625645c844ac08b5244e1be06a2a,Tools
+237e700932c0963042235af91c8f5156aa73f5f4b937c8f938373b45c5459914,Productivity
+461a6d1a1bbb4216317f834c19a30b4bddd2b31456096fe7cca93af9d018e4d5,Tools
+338da78dd316313f8fd2c44a1e530d8dd7cf8a5dea1e25a60b775defcb153600,System
+1f4a9f51fd07afaa1b9bf6c48d1cd4889c2d8184a638ddc6ca20508b84db4d9e,Shopping
+d2a04da418942ea5c5d242c52ae189cb23afdba5024c3f1d421b0fc87367dea5,Other
+fc08675b806cec15db76d9b16ca1ec7733126c024d5ae2d7e54eeaf92945bda3,Weather
+0203bb9d726393113a6aec8c7ac3d7f48e219cdaaad795ac1b28ee7653b37e7a,Business
+089d2a423a8bedd4198cbb9eeff1b500facdd1000e592182ee4efce4cfa47dd3,System
+93b908746539938745921aca003c1c48823a270bef2ca0f6d9812df5a61302f3,Medical
+10c2d346a88765c981a5b622a674b6765782d5ac16018b90be91d584591206dc,Communication
+cf4bdb3ee1f8a8a68963e202ea243985cd0e3f4bdaa640f14e22657f28bacf4d,System
+5afea5430b26b103bad66d08ee8ba19d7058a0c9131b47d086e4757af0e96b5d,Tools
+af98e94330d0d5709ed4e59d24efef42178779e0081e0350a7dfabf02469110f,Education
+5c5279e5c633f0a8e95b1b48ff3eaaa44c40c0fdec27a813bdeea1e498336ebf,Shopping
+418e0d017dd5cd556721c4713deef2b7062725299e478dd8f4e55adcf398443b,Casual
+79d5b0248426ee3f636e8c82a0f3fb530456e265ae20d0d6f3b4932ebc0c7ede,Tools
+4593870c454224ee21793baf489d2213b3a38ef8fcd1f2f751c35e1ed8c1c7d7,Card
+9aab67488d3b8af01362502a9df73fc2e3e4d2e42171725225a900433bcd279d,Tools
+d747b574664ba24fea5c13a726ae73a75ad7f2e58f6e5411dbb52ed408929533,Finance
+4a7ed60520031e2621ca8065111943b247092c8dfc57d5eaf46f88f9eb9e35b0,Entertainment
+748b909b75ee5b1002a88cf2577a8b2b11dde401ee2b88672414a3b827d85122,Casual
+5c3c3d87107315668d4eefa19c1c488fd0855b85474bf7d944dfeb27a20564f2,Tools
+be33be9b4587fbb852da29a0e7b54fcf26dac78cfca3f5f93c9480591e25ebc6,Health & Fitness
+4ebc3ce720212d36e70af2830bb6cd760e9e20e8dffb61dbc7b4b1bca0dee210,Food & Drink
+a88b465653003e2c5a63a035ac64ddda90dd6194edd99041c8a0002f75bd1690,Travel & Local
+36ff6e0f6d983aebb498c5d4ae4d7b6f6739371d53d103668dadf8bb15daf7e0,Personalization
+e3d79f6ab538965d569688067626e17ef8235fce8cc0610b6b5fb544f4b234e4,System
+bf0d7c688086f5c59e21a83f75a152c1301b4cb979f18c5268f0f90ad835ec32,Lifestyle
+eabec94bdb39199e90cdd2c5524e3faa101559f07ff151ddef452aced94dd6b0,Health & Fitness
+3feb7f37b925163cd97cf26ec2bb2368c3ddc7bca02d706a0e753a75dae399db,Finance
+b24f2125467725f425672edeac7320ad01de32b2f10035464522ffc56b953eec,News & Magazines
+23fa0b753ab32f90fdf3290fa7cced610f906f413d8fcb588634bb88241851f5,Health & Fitness
+58053163dfe8f75e5e750fb59a3eb2d0ee0efdfcd56f6766f7e5f830428b58fd,System
+f0e9a9e395e558f7cc15df232416e49033ded6db42a0f5f8e56ddb29dcbe7c75,Communication
+7d91451e6e48f22ef725ce009a88c08afc40fa71d730a869c9183e666c1c7f35,Health & Fitness
+46a3221f5c569ca100c2405b2a90f44b84f6205fc24e8460d4485b7b48382e11,Health & Fitness
+d80bef4a3f7d1dce5f5a12e2376f73431c3b196938958e8519a3a5684129cb9f,Communication
+3cb4931a5032b9424dcc82eb80a08f3eca098417dc9782de8826096eb84e8213,Communication
+727ce8f9d726a25081afc434b3dbb68937900b774b4e07e62bb7422b852c3379,Shopping
+e8a0ac17492b0f4272829f3726171add6b15fe84a43fda8e8d8cfda12b56110a,Photography
+6b566cfc051bf0c1b26d00bf28a56c7bead87e1ae514b0fb83e1a8ecf8c02976,Social
+24e9e5561cf40c0fdd48cfba6f84655b3f6b211f1896763b2c18d9a7b7d46615,Finance
+4a56def0619e16ecab6a61e697f89d98e6f741dbffbaf03051444e0a7aea3684,Music & Audio
+88891f3336edd8e882275745f7cae0cb54942b0db7917c6b29172def5077eee7,Productivity
+cf8dbfbc53d25bd539a249a65cbb1c8672dfeb9dfe6085cb6323dcf7228b4bfc,Tools
+93664ab636a43ab92a96a3ebeeff1c6406cf7b7850ce30d3db5b824f078c6930,Lifestyle
+582265eb1529d2113fad850efb34eb0a20b9a41bb241bde836202a6e0ad0d0f0,News & Magazines
+447c5e5d0d6eb301fd520268b7b668de78e4e4b187fadc4d05de692a6abbce11,Entertainment
+de6bc35177d4f3e2b0b8030cd89b5cea50319a1e7560dc3e5df2483028715d9f,Weather
+7f7e2d015d59ceb4b5470d1e503e1a9d2a75a454bfb8a359dc476628ebe3b77e,Lifestyle
+ccdb6557d1035ccc120f1ef58b1b7c4f7af4a797bd0d6ac377198d4a7655e6ae,Other
+7ede050d079ca835aebd8ba64afd5e1d06dba9a7a31cb6de2eaf2f0896a0192e,Strategy
+2568c3590210794ad40fbd711e99388faf8cbbd95120e559f55e56f46f5d029b,Finance
+230917c90435a1992316cac4ca5391b9406e960df57b381c87784425b5591612,Sports
+f8c0aa0de9d34444e04dd257d79db5b11f4a42cab38077096ef5ab8dec6c5e74,Productivity
+b99ed46c3792365b8bd187b379de526e9b6920f9a266070245fdd63b0ed26c27,Video Players & Editors
+f5fec0d6eb85fa48a2991d5163a59d135c84cd96aa2ff2b6b6b6da19641fcf55,System
+4626079237d42a012914cf78e30f2c86814ffc0c281dc99102fee66f4e9d3daa,Tools
+b600a0be84d3a39edae8ada1aa4a9600c49d185c17a6864b44ec7a15901ec804,Lifestyle
+89970fbd0998d2d239fb57f1b615a714fca12fcd42100e7803a415138c3da4df,Business
+09c16971d12a6b0ad6c7268a99bc3ea10c67e5526d41991f7cebd68e531477d8,Social
+bf97b09607d26ef1de19f68fe303219a31543afa38ea9d5054d7c6bbf996a4dc,Racing
+2f077f07f13b8572d8507ba94f5385f6f2d168531e5514ae54ff6000ff85016b,Productivity
+8c174d246794f40f54c7215bcf629b7407c42f539bb2de573078a53d18779039,Productivity
+f11262b6021b1929634863c870427c24cca9b8821d38a9593628ea37f6285023,Entertainment
+258cfe79f0ad8a4f98a63d850af7df75bf2f60b3693b192e3a87d5001a190e2f,Maps & Navigation
+6812ff06326edaf3d9e15e83c4bc393d241e09dbe87ec0bf1b73f48ceeda857a,Maps & Navigation
+6f02c149113f0fcfee8275022635a45e9535410d8a37c75ab2b1452191a79c4d,Finance
+497bb965f418b44339e4de4b46fb5405ef29cb39dc697bac9c2694b642d83357,Shopping
+77b3b114cb2beb91fa8365517e4c128f56057d4ee3aedfc43b1e6cb8d14f59a9,Communication
+c9de20e192ae6c1712d2e637704e940ebc6396703b259f81ed45e46e9fa5efb1,Personalization
+23c5e8ae7ded3099ad76029a0ffe212cf998e846b9b2c9be0c5fee67ab6e6819,Strategy
+01e9b126a2c0eb2b042773bc5ff1ab69c0a46fee06eaaad64732e514ddaa3bb9,Health & Fitness
+85c389006c550090fc4c44c0378cd71821f06e95ffa4320a76f1bdadd32034ad,Tools
+481c073cbd16d1eebf963aa4c5d51fb7ea9e0a408b30896127259eb745cea42a,News & Magazines
+3fd67887520773720309171a8bd3c1f23aa6e1c5300fc09652f4f674b9ec2465,System
+74d2771d3b11150ce48c9d15fd7d16d4332f10e7c37db5f85a77abd3af13e90b,Productivity
+a463b1ac33ab23b88a540a332baeb5d6869b5744ff8008e094b0c81881306caa,Tools
+312c317dce046e17f35887cba98ce34119a50314d6c69cfff4572cc86bc64e35,System
+e56ff32089f2bfa5897a5e5c5ba707b266fd6f055b62375e51f2ee95a1174ba6,Maps & Navigation
+e059c644c0503094092b99045eaa7690a7bfebcabebe17d19ccf4e9eebf1dbe7,Finance
+4caf4967a6a0b6d6ef474e07e489f2910908d8a5e15a6e73c9de1374196faf9d,Productivity
+9c4781f9eecd301d9f5b1d9311a57262eea095a44244bc1002bb6dbbb48959e4,Productivity
+ccfd33fef0877e1b0a14defbd5746d06665bdd99295215cd0f795926e3c1e104,News & Magazines
+6037984bf8ec6d96f3f0fc2f82a5ed37e1a0183b03730986b8d579fb5d8b9601,Personalization
+3132a2746d9971dd2a8550915182bb04db28e6759e900d3d9469f95cbdcb2085,Productivity
+6935225101afb423f42ea3da80021ae7969a0efdc332be4cad7ceb65b0c64e40,System
+3ec9f73e317018699bf6d490d6864ab79f262609f4ffedd053d030677816e343,Communication
+197ab39c44cd93235b0660afb3514735b64dd80e49f12e85dfea1e2d6d768a3e,Other
+a720715894cb850f9e34f48f2dac131009c9cc095d53402ec70a82041ee25799,Music & Audio
+641c38e2eebcce63bd9071a728f43b0d61cea89fb422cd62de00c32538372d7b,Education
+4491bc1573dd5a73ed7523d8cf50beb799e301135ae1b43b9878e60f0ee66e12,Food & Drink
+1b2ef80c7ea830f7327901faa063e73d549d27aa5b88111b6c1291afd169b293,"Education,Education"
+531ad1fedbc09330627504ca068f69828a1e323cf9bae17ec4cba088d6557711,Books & Reference
+c697e3e579da788fb2600ee3ad05e19597d018e9bc4558cbdb02726482fc5fee,Tools
+c784e07bbbeed91ee1c2e4abea2bd701af21996f884a6e13c16844f29b48060a,Music & Audio
+2e51526e76361421cee06ced62188d15564a6665f26ee525f12d7f12340119b9,System
+13db5dd98f58382feb1733716e3b2098219f9150b86df7a77e39cba82d7863c4,System
+161607104183c92dde204f3fbe2c48cf39774ba5d5f0dca1535dfa19fd173b1e,Lifestyle
+a56838e484cbde4f0f85eff0bf6dd704b0581329cbad7ee06de87d6999941a25,Education
+849b1b8562ed19eff1faccfe1ee0376247ecf570ca77ad40815ce22cd401755e,Shopping
+524c791de8f6c34929dadfdefe92c039b1feb17dbc6cca57f53888b1c0dbda86,Maps & Navigation
+83bae1991726108a13e570127fc5c5f13739f2f9eebf2a02a8ac814a85c74a2d,Maps & Navigation
+c51d4d81d8f5f6a4d1c4de5d5cb0418f85ef12c10b59cc2a0adf31c327cf3af4,Maps & Navigation
+d3cb43e5629c908add381b23f19395e21e6a2d8cb33a16728807250f1d1ab0fa,Shopping
+e0c7b82898191a4badef9ae7cd87fd6bacb0912c73f985470658ea4125c7a8c9,Tools
+11b31bea0e06050c1d9b95017f28cca33dfdabc2954cbf8fb0b76c2e2b87d8d9,Tools
+0d8f691d4881414a8746da0891505b6762bbbf7e33a157eb3b75bea2cb431c1f,Puzzle
+7d85204112e7af325b985b51b4c8caffc935dc9011ab633d21e6f91a248c36c1,Puzzle
+49ec2c3cd3974a3625416c5a9b53be263096926ace85021b927ba8192aa78c56,System
+77e0e00d2398174084a6571d3a65633ddbd342d80ed0030a3097ec74a5e9c1f3,System
+7718bc9032d885d055edc0cda48191a7014c219c23ce1798aa359b3b47321bbb,News & Magazines
+9946dd489ed5978d95e5a3c258a0c99aea6dd312fe88987f5db65b49e02219a0,System
+c28a19dbea3ccbef625f7bb9a1b27ef18714091a1fe8ed772db3124d1af7bbf2,Health & Fitness
+efb43f77b998c4455e5400eec9c61f2cda03bf31d50d15ab6c974372d1b91db3,Medical
+45131fbe145e7580522c7815ce04c2208617683f3b74902b8852e15ce2469d9c,Video Players & Editors
+e9ad7b88651c1cfa3425301d3abd212704f92582668b6bb8400b2904c33344db,System
+a972c8f947406a4c3ca290541f602f882f3b61f0141cd650f02399ee34f2bfca,Tools
+91877d0cf38c9178d5a15af3030dbc4ac7f2f3cf499b811a12ba0fdc4ef92eff,Finance
+9d6a8ba0689da54f954931dbb82644825d41fdc6b7907e616ca26f0ea3dc8e52,System
+a9494a07a78eb1bb93edc8415caabf907bb2a3771dcfe4e3fb7fc879266a6e1f,Weather
+8bcaa117248d8bb2171e5bf650607423a7facd3f7181c188c21bfbddfbb6b5c7,Education
+d13734e86135425d025742b8abf833bdf6fb17e1750300aeb4ce473cd966d30d,Music & Audio
+eada773e36db07fdb63508dec4989664697410cd2e8e2236350702fb15607a38,Social
+83243cc791f39bebf7162b0c83066a98c6630bd78a1e5a25c10ed17c4d8834f9,Tools
+2660ae6c46590ece6ffc745cace7e209e3d3a9c6a185bb9f62555c12445d4ba0,Casual
+65726b5005f4e284c3806fde81cb632ae10f225aeeee23dca67fc5eed8b1def2,Sports
+acb5c1297dc52f82300600bad27fc88d9a5cb7ed14dd34600a82c6c3af3bd447,Other
+849511a8286661fcc9b9ba179e85846cac33c7e21ea21872995828b7863fc2a3,Travel & Local
+22d341bd6f6ab0e0fd549c5fe18a3d3bceb40502b18a0d93980af7f9e7f49100,Casual
+fe4d4ea19ef44ab99ded26392e85e6593dd1f5bd68434afd481ce2c2b916f15e,Art & Design
+867b20f80e767d4e53aabc6282eab5d3af300c586bdead9acaf98b0413ac0235,Casual
+f17effe87dc8ae9804cb32c9ecda71721e18a4a2cfc3dbf7c142acab2ac5a51f,Card
+41e16d062168df0aca0f1ef727b277bb1b012131fa0209f181ca528e1cf0a97d,System
+0508af21341e5b329e585dc5f909397162ff8bc4a636dca2c99760b348ea42eb,Maps & Navigation
+2531e38f0335c0b93067b70a53c3c40c6980f678f6f4d4718dcd8ae7281033ea,System
+b42b521c4a22ade01e3b8883ca8dd08c00dba6120931a0effa51e301b92e267f,Books & Reference
+34b4d8e3c2fd6482cc545157583203394e1cb1896f045365c6c6003e210eb4be,Food & Drink
+fb63faf41f834ec9c9ef12de1eb91d9183998eb3fe3c5998b45873f95cb9f3fb,Tools
+cf7391e7b87ccb1c756834fb25fdb9c3b54f7d3e91d9f49dd2ab3b819333401a,Productivity
+c58f6c028c223de12c908fbab298fa18d6de670fe2d48d24abd86ee91683a204,Tools
+62076209e9c996bb00c927afced1f58b615cf6e619f826fc88f757f6c4446beb,System
+55e24225f0eb5f8aa3e9448a1be61057dcd53e211794931ab5639f8e00de5825,System
+a4fc43e9b455219f55e237b1f6fd16c5f97f6dc00b2b140729385775de551341,Entertainment
+428895504d486a75d3041bfec66ddb2f575ead5dcbe5d700af4e618901f322a3,Finance
+4fc320776b7ae9d81c7e288171e2da8e0c9dd8d6a39766349e1962fb8bc83cf0,Communication
+49e480e88470f2bd771de65c0c58fb9eb509336916b6b51aea49c420c12db498,Lifestyle
+e406deee855fffd769e70a8eb564ba22761a3cac4d28e5beaf82a570d054f691,System
+da1eff64b34798c63baa24a4a1f6ababf0224d93606a6dacc9cd4ad0d44c5e56,"Entertainment,Music & Video"
+f7fe71bf19f442592ffbbde478d4354de05fc24e2d6cefaa3c563ca47dd70160,Weather
+273af1b8246d08c5e65b73f76c7c931e014703f93f58f87d87bef6bc3df3026c,Sports
+1a24965809206c7b6c16ae7ed6a7eb84b770d39f7164d2a3551dc938c33369ff,Tools
+7a4466dde708131c9f626d131a7089706db99977c2b4b04abe7b6fc9f9110240,Productivity
+5905bff6339c1a8136ed4b598120af3a86f3ca8ae33e5592a343812c6207d755,Productivity
+5141301907de8f65c37d63c2f24cc0c9c85732f60cf53cc96a77ce769ce643d4,Productivity
+c6344a3b84b3f1eb938825c9822e5e62d09efd1579bdcf18d6b47f4d77a87ec8,Education
+f2b8a28d692303132451cba3d2aac7e1865c4e9f177f787e5abb08364f354b27,Productivity
+ed1559c2ea1125a66be899acefc5afd1465ea3d7d4724efe9a5524544d54b41b,Weather
+56a36ecff87eb20e4d2e6262ad88fe3d07ec31fc060e3d4bca17ccf554e7ed65,Tools
+7f4b8a19c321bdeb39dd35b361976ccf5b183a51d3049be8a2e669a2f25b0128,Productivity
+8317d86319315d3f4283dbd42761704caf67f4bee9c83520c0ec1d6e9273e802,Communication
+dc97a48bc4559b2e21855bbb423e75669f51454db08459420214162d628b72ed,Health & Fitness
+434ef0ccc0459edc87df2f93c62fe7e7c4d0767c864959b7e8766e79580bf2f6,Finance
+99d6eaf4fea79be5f3bc1f79d4e614bdc79ec5776cf2c40692e8fd19d673a1dc,Finance
+0b6a09173607a4a54aa8e5ecdf00ceb391c4432d464df27e3f667fded10da63a,Weather
+833cd7698fecd6dc4569829a0d28b5200b756e6fedb987d5e9ed70e217f5b5d3,System
+27c3f42b29042430ad8783f00ca97348a4bb6b90e4b3dd81c61bd67543d674f9,Productivity
+ea90c947a6c99df2cf10d3d29159decd0ae404cae817adf226dfa7c35c6b0278,Social
+6ef0cf3c8c853b7397e65d12dbe3fd07b348ae7bfe294d922b6465519be589fb,Productivity
+24df41da58bb93eed7d5376fac3e21f207c238a185dd643ec814bfce386ae5ab,Communication
+d063f897d3db0e142da1c72a6d93a591f0899505d6376af5cff070486a653b62,Lifestyle
+b5820a94e2517d1943ffebcb4d037c9e0f261467939d25b8f99760e4d423806f,System
+e529fd266050cbe592366a1a65d2f6551ef03ac1b4fa095bfbdf8537b3aea7c1,Card
+2e249ac75b09907b1023fb45a742d9c5d58255f6384561f0ea897573ae3b80ca,Simulation
+c29c105de6904ef6b5c48d1e5a610e3a7028c349d103a8f38e0c3c78786b0c61,System
+00ee8d10df195862e551855c76779a3a8be5f52d36587e26f8d47748ccd54c9d,Books & Reference
+72b2a3ecb5fa73f12c00dd210ffdd9d2d04bae0d534eaadec9eef866bbff4629,System
+e32aceca65f5a2d2b83937f790080b7a78df78c360802323fefab4c54e6292de,System
+57e74c87355047bcba194c1c8b529a2b3a625eca98c21f726216f6afcad2ae00,Tools
+229545ceb5018eefa91a5f171dd18e0e5a2f2713562d995241277e57896f23f6,System
+54f3630fa60a669fcaeb79760b6ced6b618ece3ef398903efd1f4d3ea813e78a,House & Home
+f869aa134569232985ae07be60598c928ce808ed6c8bce0727abf4b7a738e13d,Communication
+f969147c89fd69cf4615538882dc700e9c9fb89db12cc76b667725bb4cbc6238,System
+f2eedcb4d03fb7d119af78fb8b3b0ced7c81367fc0cf674570830730866a5465,Shopping
+921509522e3227834ab8431885f6d144d6af182b2c5932705e7da4460d4569eb,Health & Fitness
+4bbc7405954401d762cc7276e344b00a4ea14b79db618f5103a3cc90135843cd,Puzzle
+01d23bf1eeab2eaff1e43a6377f435698ec389a7d1614e9b523fb0c6ffc38fee,Education
+4d2548a54ee2450e4384cf5d267900ea0ba9a96a6a7f752a0c36fd13197b7053,Strategy
+20974d2e086a281866cbafd71474b8afaf460654a0b4de5c92c8b4fffb8c146d,Business
+96d6b1c8f43389c721983833513a02609083fba51116e91eb19220f354688321,Health & Fitness
+7a67028e906ee54eed28404b754744d0e854d9baf6b7f8b99fc67a8f66221950,Finance
+c7bb9a405236a4b2e58f62fd526287db0fec10fb509272e51cebf09ec20bdbc3,Video Players & Editors
+4859425552c1b46a6783bb197f588ba9854fe2dcbabc86d21ba96a43d4fdfa71,Medical
+a684e1496091a2cc8b9dc21132c733c5388fc09605977f5ced497b1b470e5342,Lifestyle
+a11a8756bd79b689c232ae139291a4a49e3150638d842cfc5cbe20a6067d37cb,Health & Fitness
+d30c82adfaaeaebf30cfdcb0e4b3082eb4eac96424acfe07097741a3c124c6f7,System
+e2db5b91292f93806b0794ad92048d08743b7ffbaecf6e38de0df6f3bcb8973a,System
+d748a5b9b4c2178d753c37ce6382f9c1ab218aaeb72f914b4d96ad80715b79f0,System
+9f7845c0e41398fa2ee8d36a8c6ee75691024be2a1355ab70848812274744ed1,Personalization
+5ba4286173be0b650ec7289198b43ab567093c989efe36a5b5cafcd2c6eaa744,Puzzle
+96b4572f22fd4b143782c5966e194b61c2fdfeea147489eea64f2307a29de660,Health & Fitness
+513d41368004173c028485092e14211efed567d643b4cb35fcf245919d954d28,Entertainment
+b1316e717ce688bdc7eaa1d3ee600b7445ef8ea629531d427c0978b0d107df59,System
+df162be1c98d929e6d4e302416e4f2a2c166fb478cc3eba7999281dbbe22d6b5,Shopping
+1c4a96ec593c884c6c8953e97a006e5bede7205a2904fd365b57c2ff58f7a8fe,Music & Audio
+24ccd6dd56503fbd117265236639865169b8c4f8c6e8f8b05f48abaef3f182e0,Music & Audio
+30b684762405d88cd6cddd91b9f741657f12488edb8a24765ecb86b471f6b916,System
+a92a8631b4faa953f199d9387edfaddc277a07a2970f49c8b965e633177e4f59,Puzzle
+a26649024d72334cfe6d8b5e19d5bd945ae06a6bdb099284759b21f9cea3347b,System
+acdbf423f6cda719f1342b6c1e91d21e0303887024cfbad463cb6750ad2013ff,System
+216345580f9fcbdce963b5b05e41fe9188d5a4b7a3e39ea1beb1b541273034b5,Finance
+89f6fff2fa358cee52c5417213852703332c00bcb31d42720dab8a8ed5af6883,Art & Design
+5ad4e7d66fde18f7aaa16df4f12d4002d1df1041becce24aa53d383bcf6f9e13,System
+2ebd58c2eacc1feff1a26355043bdc3d08b496994ad4c4ca552245694a068394,System
+2c5f0e104c7e804dc23d9d6ff4e6e6a8910a394d9802d95b6cb16071756336a6,Business
+72f327ce85a7770aa30669462db622fa4f5d9ec0e74a806a04b3c2c16d570b74,Travel & Local
+ddce1e05145fcfcffa837fee216ce5bc5b808298e3e9495ae8a588b16156d4c7,Tools
+5697a17af4d29c059490a6a358cdb044053c1d437a0d4fb4629d8e8ef8c77f3e,Other
+5943017afba6d9b7351c4cd634f93b21dc3faaa4220a8ab492c4c4545e472ec2,Shopping
+9a476021ca336ba51cafcb924e6c0055519b8b92d71e9c0f5d590d6abf8954c7,Finance
+c59ca22c5f759d3974ea7793c094284a634f3c289edb26640f634bb488abb426,Finance
+79ea97e51ccd08366041fdeaccba7edf29d0d23c1554262acc1dcfff8d0ceb95,Entertainment
+c85f046fcabe6f68d7dfe17db20b2b404a0d436bbf1a35284e746eece161c789,Photography
+d08e4e3909d28672e2651ad9c711d38f1af769c2409ac1f47e56535d59c2b5b1,Lifestyle
+a7c997da02057d0ba2fa094b282a59357ee61a673ea3c42b7dff6d89e6259df0,Productivity
+1f8a499ebfe3778382727123f0adf9b100741b41ab4832b9b8c7dcae956a289d,Communication
+e68c6b429c08b1704407256a8824ba8e08fc24a197d2493b2a5f523a9aae9200,Productivity
+ac2b2deccd84525e7b2fa4e19de26abce3481ee82757736f8ed42bf69fbc1e4c,Shopping
+cc04c5317d28b855957ee582e24c90275b2462d50090d5341a47a839129cb6f4,Tools
+57ec75ab3c21c6489f9acfecc8514150250c3339d7e719740b7a688f705e00e3,System
+8a372adc04a57350438aa52b734b982202e1afae2153df96fd42e1a2cdae5ca3,System
+bf1d110d52a486e791e9d76225e35144aa4683f366c4f55c4853cee284193903,Card
+09bf9ca85c91254bb8875b33d7dafcb49612f78ce5cae773214ca875045db23d,Card
+e3677d17a06141202747d87001af8ea10f97b08c720c71bbb519bc62460868f1,Finance
+fd0a90875a472e9c57b20ff9df4926b2edc4e65b7dac7e09d2583a50bfdda5e8,Health & Fitness
+cb286791b3f5789a5cac5b972758420feff52f72ed008345f0001fef294c028b,Productivity
+c34581566d18be37b1cc3b1fb869c40bf932079a5acd212fd1bf44b7daa5d5f9,Parenting
+3ced83fd0c75f0ab25fc32a8ca4b7351470c7d85b443988aa6b7607df4c1aa21,System
+7752dd5953670006665a0ed0c68371375e6f9a4853033b9827c725e0d0363186,Finance
+0983a8da9517b0bbb64db2bbdebc41e2ca6357cd6e1a746d6b02da7e2f817b6b,System
+1e821816466638bccfc237e4be1b77c571f2ff7dc1773c0504652ff3bcfc7eb7,Productivity
+7a6b3425a7b43ae7352e2b44eb0a88042a040abc3a6b072a95ef24b2d8ef8062,Lifestyle
+ce34e3088442e5fa4a4acf202cb6ee5ee359bf7cea600734452af5d48dde29d5,Education
+c5ae40dc637b57afaabbf2d7d27131c57433d7d01d8aa21a29e67fd0b3e5af70,News & Magazines
+d3098261eeda21c7e05b2674c57b5b16d4b3d496799e9bce0afa7c9fd2afd81e,News & Magazines
+5c801e1bd4bdd9e2449d8a718caa9facdb7722de8430662bfb195c6cb7392a5e,Health & Fitness
+a46c15b6329938f6d34c63d761168233fb3f1f3e3bd05d77b866f0d4d983f491,Other
+8395184938672cb7bc9c1b2f1c79185df91639b09c9b1451bccd8a4fd6364d26,Maps & Navigation
+6a5f14d31f39c585231ff76e1d80fc52036dfbd518bfcafa4003175c164bddbd,Music & Audio
+10c78a2280f17feaebbe5289d2834083a5e91e4c11d130932152668214873c4a,Tools
+41ab621a0d5467a97ed2dd28ac0a0a6526d0b67932cef82559edb0077a00912e,Weather
+36d30f199c7e3ff6a8efbf435e163aa8c323d467f257c48346ada5e7c566cef7,System
+0017cd0d675cf0272914950c52eeecfb678d91d6e39b04d7427eeafda7f6ea00,System
+8be941ed431f8663eb99f0a58d65acd29fee32ca3a075b0de0c62bd655e8137c,Productivity
+74fae571f9800c0f025f2e96d438385f15ac3504f2cd8b2d7273150895afb444,Health & Fitness
+a6798e5d813db66be531d3d66b2cfbecd25c0eeec5e5a725c3d1fe3182190339,Productivity
+4115aaca2e38b69823922fb4df3865d4a6a231dbdfd6ada6e607bad768fdbf33,System
+3d51466b8e09b1fc19afd3c7732e11093b35a8c807b95c7f5e06d3ed552cc03f,Health & Fitness
+fb97aeaf6cbf5228d0acddd0b9da526c5b8911c42f2005f596f65e51a650ab07,Tools
+d5c36ca6068fcb9fe0702c7207fd671848aeb194ae414e9f9e22f4a1b14d0d37,Tools
+898e3901450e7e537f4fc0928ee4ebe87cf20419fd8d06f8b61d8b85fe971c16,Business
+3b8f1e5750db01f908b24343aa588aeda52afafa9f0da77a8bfa794199f2fb87,Photography
+2081ca53c046f2c473b7448e1cbbfb2990880e9a0e2c8cd6ffa976a585d54c9b,Role Playing
+85114f8ca8e928e7984bb9221a56b2fd520d7a101a850d88923a80ecf3bbd185,Finance
+ad67d78017a17a3b7c8d625e787963b872a1c596e81990fc5b8cdfc93e7abacc,Shopping
+0970f8213554cfc09cd96b6e9a511da001785dacf46c264d9705418d505ad4b7,Other
+53bf7a3ac04b172ba0669b019485cbb912c32e46c71a781b18897c08680f3bd4,Productivity
+ed573ce98700ea5bc705ae0fb14d8426cebf6bd0f720e8194337104af18974d6,Casual
+4ef588950b64bf4c6bc95a643f0a7664ffc5f7b415b56f1b24172a96e455c5a9,Tools
+0b0919a22e5ef27f4aed24f793a81f9c32c1a7e2c2fec67aee673cf3e57a2c6b,Health & Fitness
+174340b956a16270d6abca32f7fd0399ea633dcacdc6d26cec8d12ad93f22807,System
+b6991311373dac60c1b7817663faf504dc3aaa5adfc888703220fcadc2ed39d2,Other
+e2e34afdcd274a97875bf4aa5e0d224cdecea1dc0c89cd697532d87f4705ba64,News & Magazines
+8c4e23f2a6c970c8cf267250c4fa2a3085dadf10bbf34d99b1013309e7e031ab,System
+0d948f0b1584460b280a8708dcb030519d0394a9b430afa6621079dfcde64545,System
+dae96ae49483f5216c98cb05f5888f8cd75170bc1fdad803f09058e82a87b0c6,Communication
+70f90332bce5ee15c4bae5b4f3a69c6881d7d64444626776d4a37ad5703d663e,Puzzle
+e743642fb3d4b36b4fc7ff388f37a6ce0ebc7aa1252da325be3e3da1889053ec,Other
+512d37feb96010d0cbac3521fbce1d08686c6452efecd5841ec36f69a19fc512,Music & Audio
+61f96e3f3e35d439df0379f2db4271ce2bc8863ff3db1662d653403090b14eef,System
+f3285e6e17bbaf6d9c3269202917794c6aa3a963d8adc8b7b59b79102cb9bbcd,Shopping
+f35f52dd2d30f9f0a9872344908cae2f5d688a017d88536c757842f82ce81276,Lifestyle
+75103f1c990eb270db2932b89247fe7207bd9d68cfa0b05a472ee74c19e89f50,News & Magazines
+07d74578f25b66c138fb72dc955886aa02e29e30dbe3550ed9a7b8dc7275250e,Auto & Vehicles
+cbe5b09d520bac5e8f5abb468181a1f778a55b6cf8ef020c6112bde558c25b30,Music & Audio
+8c1505003c32299f14eec5df7982b5db280e8be9d760c9bcd2935c9c508abbbc,News & Magazines
+8dfd3182276eddac7ed10cb2fe1a36c5578a3265d9809297e75a47950ca7143f,Productivity
+38c3c19dda45c359083d30443e239d1f9ab1aa3d6a66f1532db40c858f350c9c,Education
+a6aff63df7bba9a1c3cc5c1769e39ab8df3484bbee01f6470d88292b4d69483f,Tools
+9b3a40bd97c0bea05e0c129c1337e91627db73950a945f4ea6d7bfe048fb8020,Finance
+13e99cad9f499ac2510a284861d50d5a39fdfc4ef76052606a63b9fb7aceed87,Tools
+c7769b49c3f8e3a5f029c317bcd79430cdfa0ffa0540b46514595b1ceb83adf8,Health & Fitness
+46e352f70283a47b4328000c35b510a2ccceb4147c3acf636c450fa9007bdef1,Productivity
+b1d0bfacfea56ea50bd58767053ae098785f24118ac8c69de9e1ce0286c1744d,Finance
+5b13677467f01854687f8c8edaac5a5e19dc2602e1d966c52c767bd0c3b5963f,Casual
+c695dfbbf3505a5d6f3dacad9ba70c00c84896e5f1c23e99ccc3144f101c3533,Music & Audio
+1c416d94c2ff13df464bf7aa5c34460a43c3084bcdb51e3e677697f19d3a839b,Books & Reference
+66ed83d603d9913ab1148e85825e88c3234d7526b9400bd084996f01dd26f94d,Travel & Local
+dc4e24bdbe2ece74e204b679ee05fd0f2d7611e575915b4da51186a5c88302f2,Social
+b0cca104fcef0e7ebd6adde12757c966ebf48f19d32a251bddf044316577523c,Trivia
+0d220b6a893b33642647e954735c60f653c297b931dc0fe512b70c28c2017642,System
+39378c9d2be9a27e5cccfec8398cd0108734746ef90166a3f9923f22250d26c1,Finance
+0521faea429ae85b2ddcdd877703aa4e8dae3658e4d6d20109354a4bbaf16630,Productivity
+e573b8b243c2b958c45b286d63b92af5e646088b815801d56adb6695d4395d0c,Tools
+cac368b5a0e4e62a4095f354d7bea9f65ca2e7e2e1943742329c6a62435f8385,Shopping
+4aa4dae273de6001760edef6f32c84d28fbcf29f73041807a4661b695665f13b,Other
+e6c4ba8b7bbbec93a2960bf3f47b82fe1b156f4f49a43ea30f1eed7dcfdd46ee,Food & Drink
+f2d69eee048e2addcca010b4c08944029661540c50c504c5d507ed6183a88fe8,"Board,Brain Games"
+b6a8d5f610f7c3651c98b182d33fadcb0408a55fae5980c5d357f55cd4006c08,Health & Fitness
+f63ac4dc418e0ac4d61159c8850c521a9df836d43abfd6634ee3fd3166284306,System
+99db35b134d0867bf1cdd2b8b49bba417157ba69956cfb5883bc339e811f91e0,System
+119c6f0104ea61f57f2ee7ceef5ba516db2dd050ad12e1cc27275cbae053341e,Shopping
+e001db0ebb552d1a3dc89d7cb53470564eaba5222ff97bafbe762117e45ab3d9,Productivity
+024c3248d42ac2a154805b918fe6e0a7f66d5e673e0aafeeae047a5975f8c47e,Other
+ba4cfc360f2e3a905aac9435e256ca8c8168093c7400deef502fdce585a14ebb,Productivity
+4dc22b4cae94c6e80c64158c13553c0f49e42a9e6963fda8be51decb4a255511,Business
+88ef788a6e3b8a0216ff19a8300bea46c02cef11415aec3f1e367db68ebbee01,Photography
+e96c787d5da2caa6c341e9ce2d060efe2b50c2049f9a08ce4bdf6298c716f42a,Health & Fitness
+c4c45ab6d774f519525fc5b7227c94a5619a2d9a8196faf7161352f5a83081a0,System
+6e8f7c31936e6653a9497b4b01b70717341bde2454c8dcb356df995bf899a299,Finance
+d8e1a6406aed6e33246c2fde2b094f8d7ae165f12f3c1ccd3f6fdfbeb196fd73,Health & Fitness
+9be4c8b208c82a10cb623365749cb622c71c8d237dbf3ab92772cd34fa288fa2,House & Home
+e42368e9e6b67e153de6ad3183d57a96b66ee209a25b8869ac966023378bcb1a,System
+bc53f2cb34b93660687c378f2e7c0fa487548d55f69f67d8be094135ee62eb2b,Finance
+d889e1138e6bddccf297a615711f8969c2eb8d2e4a935530925e16f39af19713,System
+ce9175c1f4a5d741d5c872d003bc6476633c9786c7ede607a59dba093f1b1797,Tools
+bbf79bbef3cc0559a638615e82228d0dff48589718cb9940f7005e47d66b9e05,Music & Audio
+100cdf63ba7bdd15f8222cd4406d5cecd385a3f59a21aab267e4fb13ce244fd4,Finance
+64286e8eaf815b7f20fa88658083f21f68483871353daa66019054a2e50601f3,Health & Fitness
+97146ca57c479ba32367b5cbeb4ac1903fa27484bafb5bca1f6d41cc2e37db26,Tools
+316a0a6a6cd9d7ee327c03f39ac30c18182dcc60b3640261baefa610cbd2225a,Puzzle
+3d2dbe1369a67c9186f73b7e895cd3d4681c319e64c55d3cb167212d3bb0eeb5,Card
+8d38b737241613f841d47416658b25c8fcb5ee397e814a83bb968d2bf63fedb1,System
+351ad011c83f0caf7ca42264c9de63a5f37af8a52e641b5eac63ba04910a8e0b,Productivity
+122c80796b0ff70547cfd2a10e94b9ba37271d37f9c34a6c3d4861490f7e36fe,Weather
+b7f1de4eed87c58f019ba6a763746b3978b6022fbe00eff62e2cebad5a441c35,Productivity
+b7e0ab6a05b3e21e2779db3c1d5adbbd5177894042870a4b16683dc7f455ef27,Photography
+833b722ab42000366ed035adbd1b73c2d39c6c3f0869b4fa6b527624947e71da,Productivity
+1c249f981cd4463951a579eb0e45a0eac4deddb48fa0dca0c04fefb181ee1727,Tools
+eec38bc68b7bc4903cab53c70b167423a8b100a70d725ad33fd02922e7825136,System
+1913b205e10ee030f984414b07146d9b51d724f2e49f10e7418cc95689eb06f8,Maps & Navigation
+340fffb7266de1a989c3dde71140e1b1c2e815d80aef9337c8975be7baab9385,Shopping
+5b015a21c16d3d183b6b24fc900fcdf33a9fd1fe3762a0f611cb25f33003d457,Books & Reference
+8e4e44e7dcd0ba0304c9f5b206fbd6f39cf5267e969431a40df7d15b2287a164,System
+b8c0a9b40be8bf24287ad5c31c969b88148c5807656d8b7070ac6a5c8d25d802,Productivity
+bb5ad26badec98280df12fa28cefc13f88db362cbd81135298f25ef706ca169b,Sports
+99781a6b83bfc9a3e5f8372885567c72306ac14d29e2db2ab5265c1207e39de8,Education
+da436e1a567a2573949d100a8825887393f5419d72597ce6012f585e0d332029,Music & Audio
+c4753af869baa4c8289746d2216dc9a71fb9b3ba54537092cb2742cae168bd26,Trivia
+49f6ca00390efb70afbb78986f2aa1c08e00028d7b583d4f64a206506c56087b,Word
+3342a4c225fd83fe08aa7a7ed8159d3ffb1b63ee482cc7788165d3896d455902,System
+34b2ee51d54bba4ef7f36b2ab7bdd98123cae435d86e6d357dcaa65146a3a818,Health & Fitness
+749f8fee9643839edd5842c33c6802adaf06292fff278817fc97408f9cd0f6a6,Travel & Local
+a8204495d10dd51a56955fd56253d5137546c30f64d3d037b45f6084a814df44,Tools
+69eef475bab0d2b2d064b4551aad6c6223baa82bae2dc34265b0d3b32f20162d,System
+208bf9f9c59c4d96e21591e501ac4367c39b8ddd96824d6b04f9b752dda238e0,Video Players & Editors
+a9429e16c08285b32116090d64b4b6d5fed0737e3c82741a3704da24dd26b985,Other
+07485783a2184d13beca21f5ac33cf738ff3703c7c4079b3ad22cb11bbcc7b8e,System
+bb00ad1041993aa03bfe89cb21f993769231e22fb09c695e98e86a9a6f30929b,System
+b664e34bf962205bd54172183796dcc5695d1c08a1ffe78e08d30244f07c09c9,System
+08ae1abad2b9127eb7930f5222b979ef4dd44d571dc5c2f2e07ca0e66cc6e552,System
+4b59f94ece9c6dcb259308a2642b27b0bd1b39ea7b5be51a39d3a33206bc4f09,System
+4f2ee3af312dfeb2b4c6f1c41ea5ddedd19b3ad19719abe116f834262568f5d1,System
+356dd39db0b690f96fb135f670c8d20d25e6d911a9d649b12b5005c86006388b,System
+ef36152ede7acecc194f7bcba313dc87c7a07a6c28211ad481005b86e578a2a7,System
+460c3bf1bdd3a28db31d9eddc29f14178546837aee7b0c9a526467771451751b,System
+9a4f57498f9c5ec6ff14a7a01cc906b57fc775c983193b0caad4c600ac2d0bdd,System
+34439a6e2c716ca592051d4941a5bc3c19e0b5c7cf8dad268de593a406792980,Other
+96336c7770a731759a77e6c5fdfa5a4707d6159b11c34f7b077f4174855a0d95,System
+bb72f9558da77803beebf91afb2cbe1953d9151c6febc02269ca09d47c381264,System
+ec4221e65ca3917509e888c62c0a792161482b23359080c99efb7413dbd4f23e,System
+6feeb3ace2037676169ba6f77245661bb8791576664210c4032936c56f57ffa0,System
+2dc8f830bbdf3cfcf37566971b5477288f66712852bcd615d904baa669532bf5,System
+96c9b75aba4f68046081e5753378c8147d218913afee22d71ef1a48dad7a9ad4,Card
+b4b4b8fde85448681cbe5de6b35e21f00a067c276130b6f7d49d96ef8d9b0a1f,Health & Fitness
+9b9f5687da60ab94b1929dca93c75bee4cc43ebd6bf5ef11a98c6b0b6172ed97,Puzzle
+e41523744680ee2a658a4d33aa82a1d150ad5f96e4293c415a23d1d1d9d0064f,System
+be52053ffc030bac198bef8d72accbe96270df31fa738653e024ed72ed55b557,Health & Fitness
+0be21012247c73d4c754fa7874c9d2a57a7ccb07c83122e2a10229ca78cf554b,System
+08bd4e8d5dd8d886091ee34a75c0ede9385d14ab5b9f68634c70142c38078ea0,System
+3f3c0083f5bd7ef58413f0454ba281f0c8c78e08a38cb1427d40fb868b22dc5b,Maps & Navigation
+ec7bfc57debc1851af9f19c5e1e15a1846f3435d82023f83f1ca24dd1bd7edf4,System
+616c00f3f1b3ef0e33f0e7e7d018ffc7ffa83c74b8715eb451d1ed47b9833c04,Finance
+48471b020ec81261143a22d609b13a4934bce9fad4257e6a394e4b00a84f7361,Other
+a3786635a8043ab82a22afab7b27a6987f20d9ae7ef8e2f5b44a6e5975d63144,Health & Fitness
+6a3e91080b386ad197ade6ea2afdfde64d7ba4617808f1e5b0aec616f38817de,Entertainment
+27809228b53f2826801cc64d698ffc4634d5d2cc877cf68f0bc609ede1dbb708,System
+345e3d060c7ef88ce0143198fe4cae0dfb46b1034f441a5a0db1708e999ab272,System
+8a5d2a7dad621f0580793afb9f7be026362b30c67295ebf2e0a7521dc43fd415,System
+fbbc4b3a67d8c01f97b06f9f676481998a3112d10e6c22b492e48fb0dc5d9100,System
+512a93369342b13c08b0153eb15ff0b25777a724814a25d7ca8d0d507d9aad4a,System
+75ef529b3b911b51cdbf8645f0d62f5c227826ec8d0397991664e58ebf6c2d15,System
+312096e93a550824b34d2a36670648fd9811cd0bf03fd1ae93d4c8d75ed4c10b,System
+b2c462aa4445812bda1ddeb5ca4c5d601c9c1e209caa57e868331e17df2d51b5,System
+e4f2b92f9d10eac6768131cdb3c5b8bd71fd7b587928f83d1bd71397e92010e3,System
+6261c3d827f33fa82fff0cd421b617e3c374358d3bc28f160ed3748511b747b6,Other
+63c80d03eecf0a484ab25b8691f4bb1e795df77a9d43129e74767dcddd74aaa6,Tools
+6bc2cd2bf2caf50b189b35370fac9c5154db99c953a02a37107a725ff810e423,Communication
+10fa5374e43f75367edc63d49c57408af066c27c54eda6e843185b12f7ac5af0,Travel & Local
+0826047cfd400eb8b40483902974b7b8252b910c8e14a250a168f7702d39292e,System
+5500ff29f00f69d8c5b0111fac446f87ca85e8fc3277cf908fa8b463fc064206,Health & Fitness
+cc473db474f1e0edbd7bd7fb6ec43123282603297d10816e94f6b70428660daa,Health & Fitness
+ede83517903172f7e82b5952e29258dae4624e67bccd4110fb2ca2e36d734ffc,News & Magazines
+ac57fb8b0520064d8018f3276e869ff96a0f16bbbe175dde9c2342f1d6975d21,Shopping
+88ae91e786e09aaee4510dec0fccb9b8fa5e05d916d0667b9fc2662e845a4a73,Shopping
+da7ef4fe4b8022a9913a3a71748d0d9185a598cd66f859acd37a221a16d084ed,Education
+6c2cfbb3f42d1aadb05c1362000c5c9c17a13ebfb23371188b17011e0915d108,Shopping
+5fee7306eac4ffc863c865f47760f44e2a214de8c17107ad2b035d6057129dc4,Shopping
+0df57f4a8053d601495ebe74c9c24680bce612db50cc4e6b2338bb7b2d17b93a,Shopping
+06792a61cd177a005f7acb23f0cae3099305d4149d1feb72513a280a37b4568c,Health & Fitness
+7d1fcad88c8eca44e6aafc0dfde3532779d7c90a3bf5b02f304fa3f72a9d0230,Other
+08567910e7aa7cdccc41307fa640d6f49c54daa1ddfd7626d8a52fdcd7ca5037,Finance
+35b471f16c65b946c3852656a4bfc06896956339786c05f509115b2a4bf7c207,Tools
+65a7929d6d0cdbe82870b98ccc0cdb5385d58a27e283729354a3539222ddef91,System
+50b25ad3e5c2a2822f1891a6862668d6565ef213a7b8b0b0dcf23587b94c534b,System
+7be48b604d265b7c3c70c96c8ad6256dffff97e33593b0d787646dea6d66c6d3,System
+d321a2b3dd3129f994008ba11462cd851e949d8ee31c756a64cca2e1bc3f6d42,Sports
+02c17313a643137f6ba3eda3747c294267234ecb78108664cce8f2163b371184,System
+6f369925cc6469d4ca7c459436ab47d1e64f3d2e494a9beee63b9a6793404f43,System
+6506f502a706dc55800708f5e0ee3839045e23e9c79553047167cbdf4f502a96,Health & Fitness
+ed55d62cf4bf44250ad48516d975d8f7a61ea0d06e54e84a088a674f3efb0383,Video Players & Editors
+7820c2325d56b531ab99127a86b4ec15415e30508f5d41c4c95874d4f7268c65,Shopping
+21c56c6a20bcb70f3c35b60bf1e740e3a02959020a4ae7f0f06665d97b35882b,Productivity
+15fe3e9780014fe183cc532bf288a4cf317618eb80f55f84b50ed62817fffec2,System
+2562ad0365b3862745ceb016731bd74be2996489f0387a60d7ae11ccdb0da8a6,Food & Drink
+21f5174f404c31f2545304e2ffb9c3106010eb6ef490e4835bb418560f56d046,Communication
+e50a223e5530d0a2c110e86dbacc0dbd75e38180212963bfe46a5bdfa5c53dc1,Other
+3faf56116ea10ce36859906ef32c053abcf09fea5985fbaafaf8a7870ba02d04,Travel & Local
+f716693e4a3c4c45f211cdbc8ce2faccce2e7ffac5e53952b92929718f1626a3,Sports
+ff0c692250e872f933e106b25bf9ec5f0c71b1637ca3345e2544bf00f415eb9b,System
+922bf43331bef264bacf2798eea125c5e0e0d54bbc6e2544a78b2b5ff82a4be7,Lifestyle
+1f65375eed6121ec44d71e489fabba71b6eee3c16843113303a3998a2b6dbad6,System
+252c02a0ba79da116d4cf7d8b6f675ec6d61be3298fe6cc21152f08ca1cd7dfd,Music & Audio
+dc2093ed2b528320e6a625ca71863d6f4c548f3a0547237434ca07af132b7809,Shopping
+dc61c597a80b499fac068bde9e95e9fb31a2f98b1f1bcec654265ac518aa445d,Health & Fitness
+65f648698eccc9403c11d189eea0ddc9a3a8725756d5c6ee13eee434911b4053,System
+a9aa62a05dfb0669235cce4b22510017b19a1f0caeb59adc42869923daf6dee4,Shopping
+b3276f7c9d4b1ed75c1263dfa8f28549eba87305c19e56881b41a0fbdc8d1152,Business
+fd4ae93a3136476e45a404f1d70a009efb2c5a98945273a8aa6ffe59f363ca82,Sports
+4bbe70395978498955c6588aa81305d94c8c57a77f1d9f6e2801318fbebdd9f9,Tools
+07b34d9aae912b70c573971215b75775f53af28c798e5c349ba100537c0d174e,Health & Fitness
+9e0b4ef58980459e3bdb652c77edd203cbe422fc6c7f3c3759f62e483cf6743d,Tools
+555a5492cb810c5f5eef77dcac19b08f648ebe68cbcc730fbbc099f39340d3cc,Education
+4b475d6dcf56bcc0bdcbc792032c5559f0f714cc7eef5b4fdd53b1b80e71a203,Education
+3cb53f2c50ae0fec5b387cb79c6199b13f92142e839ea4b7e16090d5a57ff47b,Food & Drink
+125b2c7f3bef7d9330945c430bc98c83f1e0716c3ea54138b2b638c8cb9dcd24,System
+53794ebd51dfb7f068ca64a760809cf7978dbefcc09542f866cddb6e4bd10c05,Music & Audio
+820b0a7af64d9a57aead5dccf9e397c119c953028e770802aece70a6889f3ac1,System
+1962f4c5e24b8ae48a4ee0e728341a13a8118259fc45e9a2d090dac5037eb4f6,Sports
+b872cbda43494107f0d87aaeff6f2f34e86918b8d5b9f60f03c14fdd7644386a,Weather
+ba815e47d580433ce0b9f184e0bb7ba5c7bf25e34e510eb0ed6a42faddbaa609,Finance
+12e967d804c1d8f9551fd23af073283a4408e11e8e0a7f3d5daf04fb4f41676f,Education
+4bbdb6aa0f6f4a96f8935aa17d54d620a32ffc8e9368e980c670efb3e230a5e7,System
+25cda00f00eca4b97f48e2484813ee3c6f97805500b49234efa43ccdefe52977,Strategy
+debeb009353ac43f8c2ae091cec106e8247b3963102a626b3ed50eb46d3fec38,System
+ea60e2aadd31a2a0b91b78c110d57fa339d5e9873e2554408655e24bcaf3a999,Tools
+30f1b69ad0976489155a7dbd92aec1d537b8ff8a340e7af8197578ab3e7539e2,Entertainment
+bd91d30995366ba91c70500da895c7081dea8aa81e714970f3eb450829445a85,Music & Audio
+123c87f89cd05a418f04a1b72683df817a06991b732ca0d827e4aedb01f2ec43,Health & Fitness
+c618f7198ec475a40f77e5cb943959f3e7cb74f74b9b992c7ad091d34f820834,Education
+87e6c3151b0b0d5d39883b35c47ab46cc41bfce6b0039bce2ac63c1c50e6e233,Puzzle
+a4b5a29a3c643b848b0b6c924f9d41b3782bb4fd8928c485819e8bccd44577a0,Tools
+ff02472acb49098349fe92b91ed6e02664728d5d2a600dd161ffd25f15cc9ae7,System
+f258337f5ba59ab32140862bc5ca609bed12924e3e82515b69c507dfde56e8a0,Sports
+418ee207b0613deda0a8ae4ec343fa2cefd5c42594cbb2f2076b269d14e9aec0,Sports
+386db4fc3098f782e13503e6d85cdf2e5fcc43876b24c30affc76f63629f971e,System
+2e35ee053d3b51a4339017351d8706e0a629f72968513436812f01f23d062f01,Education
+8a00398792332f79bb1b7eb804f9ba0dcdd9bdafe8b9071bc92e2bc8d3ce2b48,Entertainment
+c896b8c1a3721a8ee7eb24f4fb4a8a5bd2f26694395d964980760b663527ce41,Productivity
+8ae08084d6fea92eb97036052f15c96f60bfabf0ff65cad9b206edc234ef6a3e,Maps & Navigation
+ff73b990e0a0dfda4e23f45720a20bebaf7eabeab9202a4319bea43b3c68d705,Health & Fitness
+342a0f85f76ae2e937f22f996eb1a4305cfdc2b117c009795eef9e4e756744ff,Adventure
+9294e2e5ab16080bfe8dee96002e0cd77b84f827f07931e8704323e0d117111f,System
+454b89984d55ab9c283d2dac177b46180c54d98102dfce9efc213b6d94404e91,System
+35adc33041cedf46ad1075f8f442bbd005b84934b65fe9b76434b79ad85bc7f8,Shopping
+39d5a5ab0f2178bfb3b8de99d03bbeeb0c90ebb3f3e052835877d42acc829641,Social
+ec3c531e0d2054c1dbcc6fdfb3e83f8e09e207512dbfbe24630ca84ffd91d9d1,Productivity
+8e06bffc21daf92ef43cdde4c273a751d4ea1d814bbfc7494e5c5041b8294b02,Education
+e595d180037ec3a1bcd4deacce20ccdc469466301d9fac33a0352453c5833e84,Dating
+dc27b14269d41f2c456187ce3a9beddab96d1803be011d745d6f66aff82cc9dd,Lifestyle
+c0987ac5d6ab6782be04e31710b6f972a065d1d594a5ce2020cab03debd849c6,Health & Fitness
+aca7024881c85246f7daeba27dab402aace00b674f60d6c546b4d952d0d335e5,Trivia
+2cdb10fbbd65e17b7eec3ff6a4941946c1e9700e7728213a1c72c4b4faeb996e,System
+c30e0f3c289015b5c075a63b6b9f1629c9e61d2ad5f90a830281ede59ac1afbc,Tools
+1b9722dd398356ed2f1144a5b0436814b616ff530ee958a3d409ee52f81794b7,Productivity
+7ec3052aeae0b9faf7ac90fb4a30b5a20daa0e68b19049ba7dd2ef8aa4591a2b,Health & Fitness
+79b135ee31c61e4c79ad20bf23635a9e7c25ca331f09439489ac436d54276bd5,Health & Fitness
+83b0cc2d9a4a45869d9f8c2c3644effd9d17e968e9b52f49c2a19c4026871b6e,System
+b9ab10763fc03fbedb5eceaf0bb67bc4009a0716405d759aa3267a080b948d7d,Music & Audio
+001c4e85983e858693f272d4509f20972dc23668844e98dcc1c8a4cdbe0b58c7,Word
+8c29223c1fbf8817a1014126ed9138815952002663c82be2a029cf912a0b7e77,Education
+6bbccc5a4b6e861cd566f9b1fcbdd53ca51c9cfc179ba96cbbc68c3f960cbf13,Productivity
+b9dca369d2f6b6c529528b8afaff422a52228bfa75c1d46b6072d69295e354d2,Communication
+7cdc2baad3a5964f4cd269a409f561031b537ee6bc697d0765952a6d408f50f1,System
+f2e74bceae6bc7c302aba11ce9191082b75791c0de852f68f24d38c6dfc4398e,Photography
+c5db70815f82818601076a372fcf28074f4aff45aacdeb540b3f6397f5df9dfc,Food & Drink
+ded3892e004db47fe9480c9ee356a3c170969baf0a5c669ba22731d71c224eb8,Shopping
+60c443d0f23bd1183a6a9c392f643536ec0347aa59dd5ddfb2af8e3f231b8c54,Health & Fitness
+0cd78634534126189375eb8fd9e12577b813bb840a20f62ffaa7f0f408d619ac,Music & Audio
+1828bf36c28d85cc921e1b90ac8d785d77481eaf8c2a8e6123a3d98845462395,Lifestyle
+9863b27b796593e00c4922fa0666d382195f6612a6761b2d9e73f2c5f5b0018b,Other
+9042072e4ed2e26b4b8a227a3162a792eb506c0ce16d865d65578ded5a70946c,Video Players & Editors
+ca8d3598bdfe92e5b1ebdca4443f4a92fb544f34464f00b8b15913dc042c2a60,Lifestyle
+0ca0d16c13509ee34b8dbc0547f445be1e969ff9616cfd951cb6986ae4d45c91,Health & Fitness
+cc2902adcac250f47f917ac982505f967f4eb9349891a94b6499a3eaba656076,Tools
+5cb5cc58c5b108e731de040bb17e81f6ecffc180b9b0b71bc51ac19e5a49a12b,Sports
+2970f208a3ff87df7c76ad2133637852dcacbc58f192c64b9df2fb8b38fd5bfb,Photography
+313ed7c09bc4fbf0b7f26620fd1d9e8111e2b0caa86387032e649998d528f8f0,Productivity
+ff94ea124345f98d3770a3233c5377b5abf6ecaaa8fe0fadade5c595354e1595,Shopping
+b2c9fecc3808cdbf7cecbf71f72c8d804bfbf711a5d1c0625d533a2ba3875a66,Shopping
+02cc4181d4221ef375ce526d4e332c73fbd0a0ce2199bba2e6e336849544e83b,News & Magazines
+7f272b80934a81e131538d167f4ba80f8b77028dcadcc08feaa1a9460c89097b,Photography
+0701088bab3a618677b75624a15ed19692bebeceaf1efee1318fd7c0f43d0cde,Finance
+a8dea4c4dce2a2567ee02a5db866686a686bf83551372957a93964a3c3257ce6,Maps & Navigation
+7f696e09085a1d37376dd15cafef9933296a815212e9736de585d76d61098faf,Lifestyle
+825bed001100f2e0b6ce7bc61d52c1a8e4b6c78c512494387d2e14c595345f56,Business
+5c870a1d8c26cb256f6f081d9e7c18b6527486e14c4477457108bb61715e6675,Lifestyle
+eb05a76a77ffb0438d1fd31299148f67465bfdde4939fe4ec5f87de782e6de04,Books & Reference
+b4b9de65d41f87edc4152774dd1044ab1ec2c9bee804a0c8b706ee789eea0af8,House & Home
+68f352c1c9b2a1ac2851c77ff0e979d11cb4467622f3d37cad8e9cc10da67dd9,Shopping
+ab5dbc8a4941ea877a7d476414fd12582a5209924d4dd38d481d1535be10d315,News & Magazines
+1887abd9b41314dd109b7b017d12ca4f67c169bae928c9d0d49d6717c2808ce5,Tools
+2602ee35e1ca3614c279ba1bf765f73a6ea49b3540a71e775442ead0360eecc3,Books & Reference
+4aae96ead6add0a600d0451bc6202168bea75a29c3893a62303c6d6cae39b56b,Finance
+12c5ca998c81a5f0b4593357347cfe1d71c73e202b366354af35996ad2452e2c,System
+d6ca2ae9dbc3f212ba3805c6299385e595eb7a45d7e7f7ca481543e6fdb66d62,Entertainment
+a8acd53cd9e03417de91d0f2e53711471c3377fc94486dab21eee54bfe942551,Tools
+3abb551fc08cacbb0a02e1f8880c7816becd64a89d181993b18554f6299003e0,Lifestyle
+843ad08cbfd2ef45712d4cc0cebc254831914cc7f13777c24030dcc48e02c1c4,Food & Drink
+503db13eaef6084a59a627c4698c2f682d14b3f7c67a5176c7591829c62d46c8,Entertainment
+bc89c485bacaed93bb20e152848bf3731c0277c0d829ebb728bc4a6886a3a375,Sports
+ebf514a41b7ee05c2461f6fa6fdfad57e7d8d72b8b415b66e87bff759a64eb4f,Adventure
+9605709c658d0f68736ca8a859e839f3193ef317f15d48910ba40ec9046fd227,Lifestyle
+022a6d3741160a8707d8af9db757931f061975eb9fa295ca66f110d2b567a8d6,Finance
+b2f30d40523a1149f8b5fa13c2eee9dd8647661432c220e4a0235012f310e5af,Maps & Navigation
+330014416a15cf4764e102532203ca2afb35014e9eef792317e935b22c5fee9f,Tools
+ceb226411cf32b3365a4b407cae495e4392d03ca91d3caedaf821c1ab0e75b4b,Finance
+94db407d78890e0a313e76e761cf7e37dc38ba949c4af0cc6b0b3e84d070e040,Sports
+e071a4db68d07cffc93749873cc123191880bb5cdb4086c11f41f2e60ee54b2a,Finance
+dbb4212a3c4908645b77ca874511b1beff72328928d731e0d25dc34510049017,Finance
+9dee34bad5cfa9ac804ce073f627c4d25b746ecf948ee15b25834d29d6ca77d3,Finance
+5d8a4df6e1320d4c1e8f10cf23e0d2e77b6c0a8e5e6b32973cda5de322d25cc6,Sports
+489a7b835c81ed9c6663853aa22c72bd0f991260039e3226357b719a8e66bbd2,Music & Audio
+9a9c3b7cb66696dde8a37ab8f8aff8ccabefb102cc81c375d508d85a0592487c,Entertainment
+f44e4ff1832c950a622d94d8466524817c8d6a12463cf7ea1d61df7d52140e27,Tools
diff --git a/exploration/debug_heatmap.py b/exploration/debug_heatmap.py
new file mode 100644
index 0000000..1e5663b
--- /dev/null
+++ b/exploration/debug_heatmap.py
@@ -0,0 +1,323 @@
+# ---
+# jupyter:
+# jupytext:
+# formats: ipynb,py:percent
+# text_representation:
+# extension: .py
+# format_name: percent
+# format_version: '1.3'
+# jupytext_version: 1.13.0
+# kernelspec:
+# display_name: straw2analysis
+# language: python
+# name: straw2analysis
+# ---
+
+# %%
+import os, sys
+import importlib
+import pandas as pd
+import numpy as np
+
+# import plotly.graph_objects as go
+from importlib import util
+from pathlib import Path
+import yaml
+
+# %%
+phone_data_yield = pd.read_csv(
+ "../rapids/data/interim/p011/phone_yielded_timestamps_with_datetime.csv",
+ parse_dates=["local_date_time"],
+)
+time_segments_labels = pd.read_csv(
+ "../rapids/data/interim/time_segments/p011_time_segments_labels.csv"
+)
+
+# %%
+phone_data_yield["assigned_segments"] = phone_data_yield[
+ "assigned_segments"
+].str.replace(r"_RR\d+SS#", "#")
+time_segments_labels["label"] = time_segments_labels["label"].str.replace(
+ r"_RR\d+SS$", ""
+)
+
+
+# %% tags=[]
+def filter_data_by_segment(data, time_segment):
+ data.dropna(subset=["assigned_segments"], inplace=True)
+ if data.shape[0] == 0: # data is empty
+ data["local_segment"] = data["timestamps_segment"] = None
+ return data
+
+ datetime_regex = "[0-9]{4}[\-|\/][0-9]{2}[\-|\/][0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}"
+ timestamps_regex = "[0-9]{13}"
+ segment_regex = "\[({}#{},{};{},{})\]".format(
+ time_segment, datetime_regex, datetime_regex, timestamps_regex, timestamps_regex
+ )
+ data["local_segment"] = data["assigned_segments"].str.extract(
+ segment_regex, expand=True
+ )
+ data = data.drop(columns=["assigned_segments"])
+ data = data.dropna(subset=["local_segment"])
+ if (
+ data.shape[0] == 0
+ ): # there are no rows belonging to time_segment after droping na
+ data["timestamps_segment"] = None
+ else:
+ data[["local_segment", "timestamps_segment"]] = data["local_segment"].str.split(
+ pat=";", n=1, expand=True
+ )
+
+ # chunk episodes
+ if (
+ (not data.empty)
+ and ("start_timestamp" in data.columns)
+ and ("end_timestamp" in data.columns)
+ ):
+ data = chunk_episodes(data)
+
+ return data
+
+
+# %% tags=[]
+time_segment = "daily"
+phone_data_yield_per_segment = filter_data_by_segment(phone_data_yield, time_segment)
+
+# %%
+phone_data_yield.tail()
+
+# %%
+phone_data_yield_per_segment.tail()
+
+
+# %%
+def getDataForPlot(phone_data_yield_per_segment):
+ # calculate the length (in minute) of per segment instance
+ phone_data_yield_per_segment["length"] = (
+ phone_data_yield_per_segment["timestamps_segment"]
+ .str.split(",")
+ .apply(lambda x: int((int(x[1]) - int(x[0])) / (1000 * 60)))
+ )
+ # calculate the number of sensors logged at least one row of data per minute.
+ phone_data_yield_per_segment = (
+ phone_data_yield_per_segment.groupby(
+ ["local_segment", "length", "local_date", "local_hour", "local_minute"]
+ )[["sensor", "local_date_time"]]
+ .max()
+ .reset_index()
+ )
+ # extract local start datetime of the segment from "local_segment" column
+ phone_data_yield_per_segment["local_segment_start_datetimes"] = pd.to_datetime(
+ phone_data_yield_per_segment["local_segment"].apply(
+ lambda x: x.split("#")[1].split(",")[0]
+ )
+ )
+ # calculate the number of minutes after local start datetime of the segment
+ phone_data_yield_per_segment["minutes_after_segment_start"] = (
+ (
+ phone_data_yield_per_segment["local_date_time"]
+ - phone_data_yield_per_segment["local_segment_start_datetimes"]
+ )
+ / pd.Timedelta(minutes=1)
+ ).astype("int")
+
+ # impute missing rows with 0
+ columns_for_full_index = phone_data_yield_per_segment[
+ ["local_segment_start_datetimes", "length"]
+ ].drop_duplicates(keep="first")
+ columns_for_full_index = columns_for_full_index.apply(
+ lambda row: [
+ [row["local_segment_start_datetimes"], x] for x in range(row["length"] + 1)
+ ],
+ axis=1,
+ )
+ full_index = []
+ for columns in columns_for_full_index:
+ full_index = full_index + columns
+ full_index = pd.MultiIndex.from_tuples(
+ full_index,
+ names=("local_segment_start_datetimes", "minutes_after_segment_start"),
+ )
+ phone_data_yield_per_segment = (
+ phone_data_yield_per_segment.set_index(
+ ["local_segment_start_datetimes", "minutes_after_segment_start"]
+ )
+ .reindex(full_index)
+ .reset_index()
+ .fillna(0)
+ )
+
+ # transpose the dataframe per local start datetime of the segment and discard the useless index layer
+ phone_data_yield_per_segment = phone_data_yield_per_segment.groupby(
+ "local_segment_start_datetimes"
+ )[["minutes_after_segment_start", "sensor"]].apply(
+ lambda x: x.set_index("minutes_after_segment_start").transpose()
+ )
+ phone_data_yield_per_segment.index = phone_data_yield_per_segment.index.get_level_values(
+ "local_segment_start_datetimes"
+ )
+ return phone_data_yield_per_segment
+
+
+# %%
+data_for_plot_per_segment = getDataForPlot(phone_data_yield_per_segment)
+
+# %%
+# calculate the length (in minute) of per segment instance
+phone_data_yield_per_segment["length"] = (
+ phone_data_yield_per_segment["timestamps_segment"]
+ .str.split(",")
+ .apply(lambda x: int((int(x[1]) - int(x[0])) / (1000 * 60)))
+)
+
+# %%
+phone_data_yield_per_segment.tail()
+
+# %%
+# calculate the number of sensors logged at least one row of data per minute.
+phone_data_yield_per_segment = (
+ phone_data_yield_per_segment.groupby(
+ ["local_segment", "length", "local_date", "local_hour", "local_minute"]
+ )[["sensor", "local_date_time"]]
+ .max()
+ .reset_index()
+)
+
+# %%
+# extract local start datetime of the segment from "local_segment" column
+phone_data_yield_per_segment["local_segment_start_datetimes"] = pd.to_datetime(
+ phone_data_yield_per_segment["local_segment"].apply(
+ lambda x: x.split("#")[1].split(",")[0]
+ )
+)
+
+# %%
+# calculate the number of minutes after local start datetime of the segment
+phone_data_yield_per_segment["minutes_after_segment_start"] = (
+ (
+ phone_data_yield_per_segment["local_date_time"]
+ - phone_data_yield_per_segment["local_segment_start_datetimes"]
+ )
+ / pd.Timedelta(minutes=1)
+).astype("int")
+
+# %%
+columns_for_full_index = phone_data_yield_per_segment[
+ ["local_segment_start_datetimes", "length"]
+].drop_duplicates(keep="first")
+columns_for_full_index = columns_for_full_index.apply(
+ lambda row: [
+ [row["local_segment_start_datetimes"], x] for x in range(row["length"] + 1)
+ ],
+ axis=1,
+)
+
+# %%
+full_index = []
+for columns in columns_for_full_index:
+ full_index = full_index + columns
+full_index = pd.MultiIndex.from_tuples(
+ full_index, names=("local_segment_start_datetimes", "minutes_after_segment_start")
+)
+
+# %%
+phone_data_yield_per_segment.tail()
+
+# %% [markdown]
+# # A workaround
+
+# %%
+phone_data_yield_per_segment["local_segment_start_datetimes", "minutes_after_segment_start"] = phone_data_yield_per_segment[
+ ["local_segment_start_datetimes", "minutes_after_segment_start"]
+].drop_duplicates(keep="first")
+
+# %%
+phone_data_yield_per_segment.set_index(
+ ["local_segment_start_datetimes", "minutes_after_segment_start"],
+ verify_integrity=True,
+).reindex(full_index)
+
+# %%
+phone_data_yield_per_segment.head()
+
+
+# %% [markdown]
+# # Retry
+
+# %%
+def getDataForPlot(phone_data_yield_per_segment):
+ # calculate the length (in minute) of per segment instance
+ phone_data_yield_per_segment["length"] = (
+ phone_data_yield_per_segment["timestamps_segment"]
+ .str.split(",")
+ .apply(lambda x: int((int(x[1]) - int(x[0])) / (1000 * 60)))
+ )
+ # calculate the number of sensors logged at least one row of data per minute.
+ phone_data_yield_per_segment = (
+ phone_data_yield_per_segment.groupby(
+ ["local_segment", "length", "local_date", "local_hour", "local_minute"]
+ )[["sensor", "local_date_time"]]
+ .max()
+ .reset_index()
+ )
+ # extract local start datetime of the segment from "local_segment" column
+ phone_data_yield_per_segment["local_segment_start_datetimes"] = pd.to_datetime(
+ phone_data_yield_per_segment["local_segment"].apply(
+ lambda x: x.split("#")[1].split(",")[0]
+ )
+ )
+ # calculate the number of minutes after local start datetime of the segment
+ phone_data_yield_per_segment["minutes_after_segment_start"] = (
+ (
+ phone_data_yield_per_segment["local_date_time"]
+ - phone_data_yield_per_segment["local_segment_start_datetimes"]
+ )
+ / pd.Timedelta(minutes=1)
+ ).astype("int")
+
+ # impute missing rows with 0
+ columns_for_full_index = phone_data_yield_per_segment[
+ ["local_segment_start_datetimes", "length"]
+ ].drop_duplicates(keep="first")
+ columns_for_full_index = columns_for_full_index.apply(
+ lambda row: [
+ [row["local_segment_start_datetimes"], x] for x in range(row["length"] + 1)
+ ],
+ axis=1,
+ )
+ full_index = []
+ for columns in columns_for_full_index:
+ full_index = full_index + columns
+ full_index = pd.MultiIndex.from_tuples(
+ full_index,
+ names=("local_segment_start_datetimes", "minutes_after_segment_start"),
+ )
+ phone_data_yield_per_segment = phone_data_yield_per_segment.drop_duplicates(subset=["local_segment_start_datetimes", "minutes_after_segment_start"],keep="first")
+ phone_data_yield_per_segment = (
+ phone_data_yield_per_segment.set_index(
+ ["local_segment_start_datetimes", "minutes_after_segment_start"]
+ )
+ .reindex(full_index)
+ .reset_index()
+ .fillna(0)
+ )
+
+ # transpose the dataframe per local start datetime of the segment and discard the useless index layer
+ phone_data_yield_per_segment = phone_data_yield_per_segment.groupby(
+ "local_segment_start_datetimes"
+ )[["minutes_after_segment_start", "sensor"]].apply(
+ lambda x: x.set_index("minutes_after_segment_start").transpose()
+ )
+ phone_data_yield_per_segment.index = phone_data_yield_per_segment.index.get_level_values(
+ "local_segment_start_datetimes"
+ )
+ return phone_data_yield_per_segment
+
+
+# %%
+phone_data_yield_per_segment = filter_data_by_segment(phone_data_yield, time_segment)
+
+# %%
+data_for_plot_per_segment = getDataForPlot(phone_data_yield_per_segment)
+
+# %%
diff --git a/exploration/ex_ml_pipeline.py b/exploration/ex_ml_pipeline.py
index 56cf57d..e392132 100644
--- a/exploration/ex_ml_pipeline.py
+++ b/exploration/ex_ml_pipeline.py
@@ -46,7 +46,7 @@ from features import esm, helper, proximity
# %% [markdown] tags=[]
# # 1. Get the relevant data
-# %% jupyter={"source_hidden": true}
+# %%
participants_inactive_usernames = participants.query_db.get_usernames(
collection_start=datetime.date.fromisoformat("2020-08-01")
)
@@ -56,11 +56,11 @@ ptcp_2 = participants_inactive_usernames[0:2]
# %% [markdown] jp-MarkdownHeadingCollapsed=true tags=[]
# ## 1.1 Labels
-# %% jupyter={"source_hidden": true}
+# %%
df_esm = esm.get_esm_data(ptcp_2)
df_esm_preprocessed = esm.preprocess_esm(df_esm)
-# %% jupyter={"source_hidden": true}
+# %%
df_esm_PANAS = df_esm_preprocessed[
(df_esm_preprocessed["questionnaire_id"] == 8)
| (df_esm_preprocessed["questionnaire_id"] == 9)
@@ -70,7 +70,7 @@ df_esm_PANAS_clean = esm.clean_up_esm(df_esm_PANAS)
# %% [markdown]
# ## 1.2 Sensor data
-# %% jupyter={"source_hidden": true}
+# %%
df_proximity = proximity.get_proximity_data(ptcp_2)
df_proximity = helper.get_date_from_timestamp(df_proximity)
df_proximity = proximity.recode_proximity(df_proximity)
@@ -81,7 +81,7 @@ df_proximity = proximity.recode_proximity(df_proximity)
# %% [markdown]
# # 2. Grouping/segmentation
-# %% jupyter={"source_hidden": true}
+# %%
df_esm_PANAS_daily_means = (
df_esm_PANAS_clean.groupby(["participant_id", "date_lj", "questionnaire_id"])
.esm_user_answer_numeric.agg("mean")
@@ -89,7 +89,7 @@ df_esm_PANAS_daily_means = (
.rename(columns={"esm_user_answer_numeric": "esm_numeric_mean"})
)
-# %% jupyter={"source_hidden": true}
+# %%
df_esm_PANAS_daily_means = (
df_esm_PANAS_daily_means.pivot(
index=["participant_id", "date_lj"],
@@ -102,16 +102,16 @@ df_esm_PANAS_daily_means = (
)
-# %% jupyter={"source_hidden": true}
+# %%
df_proximity_daily_counts = proximity.count_proximity(df_proximity, ["date_lj"])
-# %% jupyter={"source_hidden": true}
+# %%
df_proximity_daily_counts
# %% [markdown]
# # 3. Join features (and export to csv?)
-# %% jupyter={"source_hidden": true}
+# %%
df_full_data_daily_means = df_esm_PANAS_daily_means.join(
df_proximity_daily_counts
).reset_index()
@@ -119,13 +119,13 @@ df_full_data_daily_means = df_esm_PANAS_daily_means.join(
# %% [markdown]
# # 4. Machine learning model and parameters
-# %% jupyter={"source_hidden": true}
+# %%
lin_reg_proximity = linear_model.LinearRegression()
# %% [markdown]
# ## 4.1 Validation method
-# %% jupyter={"source_hidden": true}
+# %%
logo = LeaveOneGroupOut()
logo.get_n_splits(
df_full_data_daily_means[["freq_prox_near", "prop_prox_near"]],
@@ -136,7 +136,7 @@ logo.get_n_splits(
# %% [markdown]
# ## 4.2 Fit results (export?)
-# %% jupyter={"source_hidden": true}
+# %%
cross_val_score(
lin_reg_proximity,
df_full_data_daily_means[["freq_prox_near", "prop_prox_near"]],
@@ -147,7 +147,7 @@ cross_val_score(
scoring="r2",
)
-# %% jupyter={"source_hidden": true}
+# %%
lin_reg_proximity.fit(
df_full_data_daily_means[["freq_prox_near", "prop_prox_near"]],
df_full_data_daily_means["PA"],
diff --git a/exploration/expl_app_categories.py b/exploration/expl_app_categories.py
index 1163cf4..464203d 100644
--- a/exploration/expl_app_categories.py
+++ b/exploration/expl_app_categories.py
@@ -6,7 +6,7 @@
# extension: .py
# format_name: percent
# format_version: '1.3'
-# jupytext_version: 1.11.4
+# jupytext_version: 1.13.0
# kernelspec:
# display_name: straw2analysis
# language: python
@@ -74,3 +74,29 @@ rows_os_manufacturer = df_category_not_found["package_name"].str.contains(
# %%
with pd.option_context("display.max_rows", None, "display.max_columns", None):
display(df_category_not_found.loc[~rows_os_manufacturer])
+
+# %% [markdown]
+# # Export categories
+
+# %% [markdown]
+# Rename all of "not_found" to "system" or "other".
+
+# %%
+df_app_categories_to_export = df_app_categories.copy()
+rows_os_manufacturer_full = (df_app_categories_to_export["package_name"].str.contains(
+ "|".join(manufacturers + custom_rom + other), case=False
+)) & (df_app_categories_to_export["play_store_genre"] == "not_found")
+df_app_categories_to_export.loc[rows_os_manufacturer_full, "play_store_genre"] = "System"
+
+# %%
+rows_not_found = (df_app_categories_to_export["play_store_genre"] == "not_found")
+df_app_categories_to_export.loc[rows_not_found, "play_store_genre"] = "Other"
+
+# %%
+df_app_categories_to_export["play_store_genre"].value_counts()
+
+# %%
+df_app_categories_to_export.rename(columns={"play_store_genre": "genre"},inplace=True)
+df_app_categories_to_export.to_csv("../data/app_categories.csv", columns=["package_hash","genre"],index=False)
+
+# %%
diff --git a/exploration/ml_pipeline_daily.py b/exploration/ml_pipeline_daily.py
index db4ab7e..3099aa3 100644
--- a/exploration/ml_pipeline_daily.py
+++ b/exploration/ml_pipeline_daily.py
@@ -26,10 +26,11 @@ import pandas as pd
import seaborn as sns
import yaml
from pyprojroot import here
-from sklearn import linear_model, svm, kernel_ridge, gaussian_process
+from sklearn import linear_model, svm, kernel_ridge, gaussian_process, ensemble
from sklearn.model_selection import LeaveOneGroupOut, cross_val_score
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.impute import SimpleImputer
+from xgboost import XGBRegressor
nb_dir = os.path.split(os.getcwd())[0]
if nb_dir not in sys.path:
@@ -269,3 +270,203 @@ np.median(
)
)
# %%
+def insert_row(df, row):
+ return pd.concat([df, pd.DataFrame([row], columns=df.columns)], ignore_index=True)
+
+# %%
+def run_all_models(input_csv):
+ # Prepare data
+ model_input = pd.read_csv(input_csv)
+ model_input.dropna(axis=1, how="all", inplace=True)
+ model_input.dropna(axis=0, how="any", subset=["target"], inplace=True)
+
+ index_columns = ["local_segment", "local_segment_label", "local_segment_start_datetime", "local_segment_end_datetime"]
+ model_input.set_index(index_columns, inplace=True)
+
+ data_x, data_y, data_groups = model_input.drop(["target", "pid"], axis=1), model_input["target"], model_input["pid"]
+
+ categorical_feature_colnames = ["gender", "startlanguage"]
+ categorical_features = data_x[categorical_feature_colnames].copy()
+ mode_categorical_features = categorical_features.mode().iloc[0]
+ # fillna with mode
+ categorical_features = categorical_features.fillna(mode_categorical_features)
+ # one-hot encoding
+ categorical_features = categorical_features.apply(lambda col: col.astype("category"))
+ if not categorical_features.empty:
+ categorical_features = pd.get_dummies(categorical_features)
+
+ numerical_features = data_x.drop(categorical_feature_colnames, axis=1)
+
+ train_x = pd.concat([numerical_features, categorical_features], axis=1)
+ imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
+ train_x_imputed = imputer.fit_transform(train_x)
+
+ # Prepare cross validation
+ logo = LeaveOneGroupOut()
+ logo.get_n_splits(
+ train_x,
+ data_y,
+ groups=data_groups,
+ )
+ scores = pd.DataFrame(columns=["method", "median", "max"])
+
+ # Validate models
+ lin_reg_rapids = linear_model.LinearRegression()
+ lin_reg_scores = cross_val_score(
+ lin_reg_rapids,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring='r2'
+ )
+ print("Linear regression:")
+ print(np.median(lin_reg_scores))
+ scores = insert_row(scores, ["Linear regression",np.median(lin_reg_scores),np.max(lin_reg_scores)])
+
+ ridge_reg = linear_model.Ridge(alpha=.5)
+ ridge_reg_scores = cross_val_score(
+ ridge_reg,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Ridge regression")
+ print(np.median(ridge_reg_scores))
+ scores = insert_row(scores, ["Ridge regression",np.median(ridge_reg_scores),np.max(ridge_reg_scores)])
+
+ lasso_reg = linear_model.Lasso(alpha=0.1)
+ lasso_reg_score = cross_val_score(
+ lasso_reg,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Lasso regression")
+ print(np.median(lasso_reg_score))
+ scores = insert_row(scores, ["Lasso regression",np.median(lasso_reg_score),np.max(lasso_reg_score)])
+
+ bayesian_ridge_reg = linear_model.BayesianRidge()
+ bayesian_ridge_reg_score = cross_val_score(
+ bayesian_ridge_reg,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Bayesian Ridge")
+ print(np.median(bayesian_ridge_reg_score))
+ scores = insert_row(scores, ["Bayesian Ridge",np.median(bayesian_ridge_reg_score),np.max(bayesian_ridge_reg_score)])
+
+ ransac_reg = linear_model.RANSACRegressor()
+ ransac_reg_score = cross_val_score(
+ ransac_reg,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("RANSAC (outlier robust regression)")
+ print(np.median(ransac_reg_score))
+ scores = insert_row(scores, ["RANSAC",np.median(ransac_reg_score),np.max(ransac_reg_score)])
+
+ svr = svm.SVR()
+ svr_score = cross_val_score(
+ svr,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Support vector regression")
+ print(np.median(svr_score))
+ scores = insert_row(scores, ["Support vector regression",np.median(svr_score),np.max(svr_score)])
+
+ kridge = kernel_ridge.KernelRidge()
+ kridge_score = cross_val_score(
+ kridge,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Kernel Ridge regression")
+ print(np.median(kridge_score))
+ scores = insert_row(scores, ["Kernel Ridge regression",np.median(kridge_score),np.max(kridge_score)])
+
+ gpr = gaussian_process.GaussianProcessRegressor()
+ gpr_score = cross_val_score(
+ gpr,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Gaussian Process Regression")
+ print(np.median(gpr_score))
+ scores = insert_row(scores, ["Gaussian Process Regression",np.median(gpr_score),np.max(gpr_score)])
+
+ rfr = ensemble.RandomForestRegressor(max_features=0.3, n_jobs=-1)
+ rfr_score = cross_val_score(
+ rfr,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("Random Forest Regression")
+ print(np.median(rfr_score))
+ scores = insert_row(scores, ["Random Forest Regression",np.median(rfr_score),np.max(rfr_score)])
+
+ xgb = XGBRegressor()
+ xgb_score = cross_val_score(
+ xgb,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("XGBoost Regressor")
+ print(np.median(xgb_score))
+ scores = insert_row(scores, ["XGBoost Regressor",np.median(xgb_score),np.max(xgb_score)])
+
+ ada = ensemble.AdaBoostRegressor()
+ ada_score = cross_val_score(
+ ada,
+ X=train_x_imputed,
+ y=data_y,
+ groups=data_groups,
+ cv=logo,
+ n_jobs=-1,
+ scoring="r2"
+ )
+ print("ADA Boost Regressor")
+ print(np.median(ada_score))
+ scores = insert_row(scores, ["ADA Boost Regressor",np.median(ada_score),np.max(ada_score)])
+
+ return scores
+
+
+
+
diff --git a/features/timezone.py b/features/timezone.py
new file mode 100644
index 0000000..3ba9d08
--- /dev/null
+++ b/features/timezone.py
@@ -0,0 +1,30 @@
+from collections.abc import Collection
+
+import pandas as pd
+
+from config.models import Participant, Timezone
+from setup import db_engine, session
+
+
+def get_timezone_data(usernames: Collection) -> pd.DataFrame:
+ """
+ Read the data from the proximity sensor table and return it in a dataframe.
+
+ Parameters
+ ----------
+ usernames: Collection
+ A list of usernames to put into the WHERE condition.
+
+ Returns
+ -------
+ df_proximity: pd.DataFrame
+ A dataframe of proximity data.
+ """
+ query_timezone = (
+ session.query(Timezone, Participant.username)
+ .filter(Participant.id == Timezone.participant_id)
+ .filter(Participant.username.in_(usernames))
+ )
+ with db_engine.connect() as connection:
+ df_timezone = pd.read_sql(query_timezone.statement, connection)
+ return df_timezone
diff --git a/images/dag_calls_nokia_example.svg b/images/dag_calls_nokia_example.svg
new file mode 100644
index 0000000..eb87131
--- /dev/null
+++ b/images/dag_calls_nokia_example.svg
@@ -0,0 +1,205 @@
+
+
+
+
+
diff --git a/images/dag_full_nokia_example.svg b/images/dag_full_nokia_example.svg
new file mode 100644
index 0000000..173c5b5
--- /dev/null
+++ b/images/dag_full_nokia_example.svg
@@ -0,0 +1,1896 @@
+
+
+
+
+
diff --git a/images/dag_participants_files.svg b/images/dag_participants_files.svg
new file mode 100644
index 0000000..946c794
--- /dev/null
+++ b/images/dag_participants_files.svg
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/participants/prepare_usernames_file.py b/participants/prepare_usernames_file.py
new file mode 100644
index 0000000..8170af7
--- /dev/null
+++ b/participants/prepare_usernames_file.py
@@ -0,0 +1,69 @@
+import datetime
+import os
+import sys
+
+nb_dir = os.path.split(os.getcwd())[0]
+if nb_dir not in sys.path:
+ sys.path.append(nb_dir)
+
+import pandas as pd
+from features.timezone import get_timezone_data
+from pyprojroot import here
+
+import participants.query_db
+
+participants_inactive_usernames = participants.query_db.get_usernames(
+ tester=False, # True participants are wanted.
+ active=False, # They have all finished their participation.
+ collection_start=datetime.date.fromisoformat(
+ "2020-08-01"
+ ), # This is the timeframe of the main study.
+ last_upload=datetime.date.fromisoformat("2021-09-01"),
+)
+
+participants_overview_si = pd.read_csv(
+ snakemake.params["baseline_folder"] + "Participants_overview_Slovenia.csv", sep=";"
+)
+participants_overview_be = pd.read_csv(
+ snakemake.params["baseline_folder"]+ "Participants_overview_Belgium.csv", sep=";"
+)
+
+participants_true_si = participants_overview_si[
+ participants_overview_si["Wristband_SerialNo"] != "DECLINED"
+]
+participants_true_be = participants_overview_be[
+ participants_overview_be["SmartphoneBrand+Generation"].str.slice(0, 3) != "Not"
+]
+
+# Concatenate participants from both countries.
+participants_usernames_empatica = pd.concat(
+ [participants_true_be, participants_true_si]
+)
+# Filter only the participants from the main study (queried from the database).
+participants_usernames_empatica = participants_usernames_empatica[
+ participants_usernames_empatica["Username"].isin(participants_inactive_usernames)
+]
+# Rename and select columns.
+participants_usernames_empatica = participants_usernames_empatica.rename(
+ columns={"Username": "label", "Wristband_SerialNo": "empatica_id"}
+)[["label", "empatica_id"]]
+# Adapt for csv export.
+participants_usernames_empatica["empatica_id"] = participants_usernames_empatica[
+ "empatica_id"
+].str.replace(",", ";")
+
+participants_usernames_empatica.to_csv(
+ snakemake.output["usernames_file"],
+ header=True,
+ index=False,
+ line_terminator="\n",
+)
+
+timezone_df = get_timezone_data(participants_inactive_usernames)
+
+timezone_df.to_csv(
+ snakemake.output["timezone_file"],
+ header=True,
+ index=False,
+ line_terminator="\n",
+)
diff --git a/rapids b/rapids
index a620def..f78aa3e 160000
--- a/rapids
+++ b/rapids
@@ -1 +1 @@
-Subproject commit a620def209e9f043f852097d0318cb45bde74467
+Subproject commit f78aa3e7b3567423b44045766b230cd60d557cb0