Categorized | Android News

Forget battery life, get Ambient Display notifications on any device – Android customization

Tasker Ambient Display Notification

We’re taking a little break from our Android Wear projects on our Android customization series, we were going to return to root tips, tools and tricks this week, but our project will work on most any phone or tablet. We’d like to take a look at a feature that is found on only a few devices today, and make it work on any Android phone or tablet.

The idea is simple, many new devices with AMOLED displays come equipped with a feature called Ambient Display, simply turning the display on for a few seconds to show you new notifications. This is a handy feature, one that is predominantly reserved for devices with AMOLED displays simply for battery preservation purposes.

Like I said, forget about battery life, we want the feature on our old-school Nexus tablet. For this we turn to our old friend, Tasker, and the plug-in Secure Settings.

Before we begin

You will require a fairly modern device to follow along today, we are having success with Marshmallow and Lollipop devices, but not as much luck on an older KitKat device. Go ahead and install Tasker and Secure Settings, Tasker is $ 2.99 in the Google Play Store and Secure Settings is free with in-app purchases to unlock extra functions.
Secure Settings – Google Play StoreTasker – Google Play Store

Ambient Display on your Android phone or tablet

Before we jump in, I just wanted to say again, Ambient Display is made for AMOLED displays because the display tech only turns on the pixels required to display the minimal message, using very little battery to do so. Our project today will need to completely turn on your display, this will eat a great deal of your battery throughout the day, especially if you configure exactly as I will be.

Related reading: Real time battery drain warnings

If battery life is not of concern, good, let’s get started.

Open up Tasker and start a new Task, let’s call it “AmbientNotification

Tap the “+” button to add your first action.

Tasker Ambient Display Notification

Select Plugin.

Select Secure Settings.

Tap the pencil Configuration button.

Expand Actions.

Select Wake Device.

Change the Duration to an amount of time that makes sense for you. Remember your battery life.

Tasker Ambient Display Notification

Click Save at the top.

Tap the system Back button a couple times, we’re done with the Task, let’s now create the associated Profile.

Head over to the Profiles tab and start a new Profile.

Tasker Ambient Display Notification

Select Event.

Select UI.

Select Notification.

Tap on the spaceship icon to the right of Owner Application.

Tap the All button in the bottom right, or choose your desired apps to have turn on the display.

Tap the system Back button twice again to save and exit to the next step.

Select your Ambient Notification Task from the list.

Enjoy.

Tasker Ambient Display Notification

Wait, the whole point of Ambient Display is to show you your latest incoming notification, good thing we already handled this in a previous project:

Create your own popup notifications using Tasker

Finally, you’ll need to turn off your display for this to work, obviously. But before it does, please consider the extra security settings that you’ll need to grant to Tasker and Secure Settings.

Tasker Android Wear

I might have told you this in the first place, sorry, head into your main system settings, go to Security -> Device administrators and grant Tasker and Secure Settings admin access. When that’s done, head over to the Sound & notification settings to grant Notification access for Tasker. If you follow along after the break, you’ll want to also go into App notifications and make Tasker a Priority.

Tasker Android Wear

What’s next

Just for the fun of it I decided to pop up a Tasker notification along with this ambient display project. it serves no point except proof of concept. You could, however, work with our Android Wear project from last week. You can handle yours so that it provides an actionable card on your smartwatch. Like, maybe a button to dismiss this ambient display so it does not eat so much battery.

Tasker Popup notification Project

Now that, hopefully, your creative juices are flowing, remember that we took the fairly obvious notifications as our trigger to turn on the display. You could dive deep and consider many other things to pop on the display, remember that you can use Tasker and Secure Settings to bypass the lock, then display a Tasker Scene to show off any info you’d like.

Here’s a cool project I just thought up, but won’t be building for myself, pair your phone and your tablet (or WiFi camera and tablet) so that with each shot you take the photo pops up for a few seconds on the tablet. This will rely on network traffic and probably a combination of services like Dropbox and IFTTT, but I believe in you.

Next week

I hope this little Ambient Display trick on your Android device was useful for you, next week on our Android customization series will be something fairly similar. Perhaps a different project, but we’ll continue with these tools next week, we are, after all, huge fans of Tasker.

Have you noticed any significant battery drain changes after created your own Ambient Display project on your non-AMOLED Android device?

More Android customization projects:

Android Authority

This post was written by:

- who has written 457 posts on Android Zoone.


Contact the author

Leave a Reply

Android Developers

Service Unavailable.

Related Sites

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmxvY2FsY2xpY2twYXJ0bmVycy5jb20vYWZmaWxpYXRlX2FkL2FmZmlsaWF0ZV9iYW5uZXJfMTI1eDEyNS5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8yPC9zdHJvbmc+IC0gaHR0cDovL21vYmlsZWJhbm5lcmNyZWF0b3IuY29tL2Jhbm5lcnMvMTI1eDEyNS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy8xMjV4MTI1Yy5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy8xMjV4MTI1ZC5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9tcHVfYWRzZW5zZTwvc3Ryb25nPiAtIDxzY3JpcHQgaWQ9XCJtTkNDXCIgbGFuZ3VhZ2U9XCJqYXZhc2NyaXB0XCI+ICBtZWRpYW5ldF93aWR0aD1cJzMwMFwnOyAgbWVkaWFuZXRfaGVpZ2h0PSBcJzI1MFwnOyAgbWVkaWFuZXRfY3JpZD1cJzc4NDE5OTM3NFwnOyAgPC9zY3JpcHQ+ICA8c2NyaXB0IGlkPVwibU5TQ1wiIHNyYz1cIi8vY29udGV4dHVhbC5tZWRpYS5uZXQvbm1lZGlhbmV0LmpzP2NpZD04Q1U4Q1U0R1FcIiBsYW5ndWFnZT1cImphdmFzY3JpcHRcIj48L3NjcmlwdD4gPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvMzAweDI1MGEuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPHNjcmlwdCBpZD1cIm1OQ0NcIiBsYW5ndWFnZT1cImphdmFzY3JpcHRcIj4gIG1lZGlhbmV0X3dpZHRoPVwnNDY4XCc7ICBtZWRpYW5ldF9oZWlnaHQ9IFwnNjBcJzsgIG1lZGlhbmV0X2NyaWQ9XCc3ODAzNDc4NTFcJzsgIDwvc2NyaXB0PiAgPHNjcmlwdCBpZD1cIm1OU0NcIiBzcmM9XCIvL2NvbnRleHR1YWwubWVkaWEubmV0L25tZWRpYW5ldC5qcz9jaWQ9OENVOENVNEdRXCIgbGFuZ3VhZ2U9XCJqYXZhc2NyaXB0XCI+PC9zY3JpcHQ+IDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9kaXNhYmxlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzQ2OHg2MGEuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3NpdGlvbmV0LmxvY2FsY2xpay5ob3AuY2xpY2tiYW5rLm5ldDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL3NpdGlvbmV0Lm1vYmliYW5uZXIuaG9wLmNsaWNrYmFuay5uZXQ8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSBncmVlbi5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hcmNoaXZlX2V4Y2VycHQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYXV0aG9yPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX2V4Y2VycHQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY2Fyb3VzZWxfaGVpZ2h0PC9zdHJvbmc+IC0gMjkyPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Nzczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9mYXZpY29uPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX3VwbG9hZF90cmFja2luZzwvc3Ryb25nPiAtIGE6MDp7fTwvbGk+PGxpPjxzdHJvbmc+d29vX2V4Y2x1ZGU8L3N0cm9uZz4gLSBhOjM6e2k6MDtpOjMwO2k6MjtpOjU3O2k6NDtpOjUxO308L2xpPjxsaT48c3Ryb25nPndvb19leGNsdWRlX3ZpZGVvPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEFuZHJvaWQ8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0X2VudHJpZXM8L3N0cm9uZz4gLSAzPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl9pZDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3ZlcnNpb248L3N0cm9uZz4gLSA1LjUuMzwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDU3PC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl93aWR0aDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly9hbmRyb2lkLXpvb25lLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxMy8wNS9sb2dvX2FuZHJvaWRfem9vbmUzLnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9zdXBwb3J0L3RoZW1lLWRvY3VtZW50YXRpb24vZ2F6ZXR0ZS1lZGl0aW9uLzwvbGk+PGxpPjxzdHJvbmc+d29vX29wdGlvbnM8L3N0cm9uZz4gLSBhOjUyOntzOjE4OiJ3b29fYWx0X3N0eWxlc2hlZXQiO3M6OToiZ3JlZW4uY3NzIjtzOjg6Indvb19sb2dvIjtzOjc1OiJodHRwOi8vYW5kcm9pZC16b29uZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTMvMDUvbG9nb19hbmRyb2lkX3pvb25lMy5wbmciO3M6MTM6Indvb190ZXh0dGl0bGUiO3M6NToiZmFsc2UiO3M6MTg6Indvb19jdXN0b21fZmF2aWNvbiI7czowOiIiO3M6MjA6Indvb19nb29nbGVfYW5hbHl0aWNzIjtzOjA6IiI7czoxODoid29vX2ZlZWRidXJuZXJfdXJsIjtzOjA6IiI7czoxNzoid29vX2ZlZWRidXJuZXJfaWQiO3M6MDoiIjtzOjE0OiJ3b29fY3VzdG9tX2NzcyI7czowOiIiO3M6MTc6Indvb19zaG93X2Nhcm91c2VsIjtzOjQ6InRydWUiO3M6MjE6Indvb19mZWF0dXJlZF9jYXRlZ29yeSI7czo3OiJBbmRyb2lkIjtzOjE2OiJ3b29fZmVhdF9lbnRyaWVzIjtzOjE6IjMiO3M6Mjc6Indvb19zbGlkZXJfbWFnYXppbmVfZXhjbHVkZSI7czo0OiJ0cnVlIjtzOjE2OiJ3b29fc2xpZGVyX3NmYWRlIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fc2xpZGVyX2NmYWRlIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fc2xpZGVyX3NwZWVkIjtzOjM6IjAuNiI7czoxODoid29vX3NsaWRlcl90aW1lb3V0IjtzOjE6IjYiO3M6MjQ6Indvb19zbGlkZXJfY29udGVudF9zcGVlZCI7czozOiIwLjYiO3M6MTk6Indvb19jYXJvdXNlbF9oZWlnaHQiO3M6MzoiMjkyIjtzOjg6Indvb19ob21lIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fYmxvZ19leGNlcnB0IjtzOjQ6InRydWUiO3M6MTk6Indvb19hcmNoaXZlX2V4Y2VycHQiO3M6NDoidHJ1ZSI7czoxMDoid29vX2F1dGhvciI7czo0OiJ0cnVlIjtzOjE0OiJ3b29fc2hvd192aWRlbyI7czo0OiJ0cnVlIjtzOjE3OiJ3b29fZXhjbHVkZV92aWRlbyI7czo1OiJmYWxzZSI7czoxODoid29vX3ZpZGVvX2NhdGVnb3J5IjtzOjY6IlZpZGVvcyI7czoxODoid29vX3dwdGh1bWJfbm90aWNlIjtzOjA6IiI7czoyMjoid29vX3Bvc3RfaW1hZ2Vfc3VwcG9ydCI7czo0OiJ0cnVlIjtzOjE0OiJ3b29fcGlzX3Jlc2l6ZSI7czo0OiJ0cnVlIjtzOjE3OiJ3b29fcGlzX2hhcmRfY3JvcCI7czo0OiJ0cnVlIjtzOjEwOiJ3b29fcmVzaXplIjtzOjQ6InRydWUiO3M6MTI6Indvb19hdXRvX2ltZyI7czo1OiJmYWxzZSI7czoyMDoid29vX2hvbWVfdGh1bWJfd2lkdGgiO3M6MzoiMTAwIjtzOjIxOiJ3b29faG9tZV90aHVtYl9oZWlnaHQiO3M6MjoiNTciO3M6MTU6Indvb190aHVtYl93aWR0aCI7czozOiIxMDAiO3M6MTY6Indvb190aHVtYl9oZWlnaHQiO3M6MjoiNTciO3M6MTY6Indvb19pbWFnZV9zaW5nbGUiO3M6NToiZmFsc2UiO3M6MTY6Indvb19zaW5nbGVfd2lkdGgiO3M6MzoiMjUwIjtzOjE3OiJ3b29fc2luZ2xlX2hlaWdodCI7czozOiIxODAiO3M6MTM6Indvb19yc3NfdGh1bWIiO3M6NToiZmFsc2UiO3M6MTg6Indvb19hZF90b3BfZGlzYWJsZSI7czo1OiJmYWxzZSI7czoxODoid29vX2FkX3RvcF9hZHNlbnNlIjtzOjMxMzoiPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0NCmdvb2dsZV9hZF9jbGllbnQgPSAiY2EtcHViLTEzOTYwMzUxNzk5NDgyNjkiOw0KLyogNDY4eDYwYW5kcm9pZHpvb25lICovDQpnb29nbGVfYWRfc2xvdCA9ICIxOTM1ODA4Njc3IjsNCmdvb2dsZV9hZF93aWR0aCA9IDQ2ODsNCmdvb2dsZV9hZF9oZWlnaHQgPSA2MDsNCi8vLS0+DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ig0Kc3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzIj4NCjwvc2NyaXB0PiI7czoxNjoid29vX2FkX3RvcF9pbWFnZSI7czo0MDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy80Njh4NjBhLmpwZyI7czoxNDoid29vX2FkX3RvcF91cmwiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2Fkc19yb3RhdGUiO3M6NDoidHJ1ZSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6NDE6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvMTI1eDEyNWEuanBnIjtzOjEyOiJ3b29fYWRfdXJsXzEiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NDE6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvMTI1eDEyNWIuanBnIjtzOjEyOiJ3b29fYWRfdXJsXzIiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzMiO3M6NDE6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvMTI1eDEyNWMuanBnIjtzOjEyOiJ3b29fYWRfdXJsXzMiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzQiO3M6NDE6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvMTI1eDEyNWQuanBnIjtzOjEyOiJ3b29fYWRfdXJsXzQiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3Bpc19oYXJkX2Nyb3A8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fcGlzX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19wb3N0X2ltYWdlX3N1cHBvcnQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jzc190aHVtYjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2hvcnRuYW1lPC9zdHJvbmc+IC0gd29vPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19jYXJvdXNlbDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxODA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfd2lkdGg8L3N0cm9uZz4gLSAyNTA8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfY2ZhZGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9jb250ZW50X3NwZWVkPC9zdHJvbmc+IC0gMC42PC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX21hZ2F6aW5lX2V4Y2x1ZGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3NmYWRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfc3BlZWQ8L3N0cm9uZz4gLSAwLjY8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfdGltZW91dDwvc3Ryb25nPiAtIDY8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190ZXh0dGl0bGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEdhemV0dGU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA1NzwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBWaWRlb3M8L2xpPjxsaT48c3Ryb25nPndvb193cHRodW1iX25vdGljZTwvc3Ryb25nPiAtIDwvbGk+PC91bD4=