yashsingh1/xdaforums huggingface dataset:
[LG Optimus 2x] temasek:
In one command line, one completed then next starts. Is there an easier way? I suppose my computer cannot sustain 3 terminals concurrent building ....I think.
[LG Optimus 2x] pastime1971:
i was wondering that myself... "make" can build several targets, but not sure about "brunch"
[LG Optimus 2x] temasek:
CM7 KANG Updated - Post build 127

Includes commits after 127 up to:-

- Update Russian translation. CMParts - New LED Settings (android_packages_apps_CMParts)

Direct link -> CM7KANG_p990_Post127-20110917-2.zip

For latest development, http://www.mediafire.com/temasek
[LG Optimus 2x] pastime1971:
i just tested "brunch p990-eng p999-eng" and it only builds p990... guess it will have to be one by one. maybe put them in a for loop ?
[LG Optimus 2x] temasek:
LOLz, the commits start flowing again....
[LG Optimus 2x] pastime1971:
really ? for me, AWEXT was the last one 2 hours ago, except 2 translations and other devices.

edit: ooh. i spoke too soon. repo sync is getting some action.
[LG Optimus 2x] temasek:
Since Rusty! posted it, I'm not posting here.

Its in my mediafire folder. Up-to-date :D
[LG Optimus 2x] Rusty!:
Kang up to "Update Russian translation. CMParts - New LED Settings"

http://www.mediafire.com/file/1p70b2uz4dfyeh5/update-cm-7.1.0-RC1-Optimus2X-KANG-signed-17092011.zip

MD5: 715d01aa33522eea216cd17760c23b05
[LG Optimus 2x] mcnob:
I'm assuming that needs the Ext4 flash if I'm currently using an Ext3 ROM?!?!

As I'm browsing on my phone, could someone re-post the zip for that please?

Thanks
[LG Optimus 2x] baliriot:
thanks Rusty!:D
[LG Optimus 2x] zebbe77:
Thanks for the Kangs, downloading :)
[LG Optimus 2x] rori~:
thanx for the kang :)
[LG Optimus 2x] sunstorm:
Pastime1971 posted a fixed contacts.apk file to rectify the birthday field dates. Has the fix been committed to cm7 yet?
[LG Optimus 2x] Rusty!:
Yeah, a while ago as I recall.
[LG Optimus 2x] :
I made my own Kang till latest change. I switched to 502bb as many have posted better call quality. I got a SOD during a call again.it happened recently with 725bb too.any work around?
[LG Optimus 2x] pastime1971:
"Always make sure the timezone of the date parser is correct prior to parsing. (android_packages_apps_Contacts)" was merged last night, so it is included in rusty's and temasek's kangs
[LG Optimus 2x] Kelvino9:
Are there any differences between the Kangs of Rusty!, Temasek and RyanMacG?
[LG Optimus 2x] temasek:
Rusty! = temasek (no difference)

Ryan's may have cherrypicks....idk (not sure).
[LG Optimus 2x] Kelvino9:
Thanks a lot Temasek! That was lightning fast...as usual
[LG Optimus 2x] pastime1971:
maybe it is related, maybe not, but my cellular network crashes after running USSD code to check balance on Tmobile US. and then it recovers in a few seconds.

in fact it happened twice in a row just now. figured i would grab logcats, and connected p990 to pc adb. now it doesn't want to crash any more... funny...

edit: nevertheless i got some error in logcats. not sure if it is relevant though.

RADIO::E/RILC ( 9846): RIL_onRequestComplete: invalid RIL_Token

RADIO::E/RIL ( 9846): ERROR: requestSetMute failed

RADIO::E/RILJ ( 1600): Exception processing unsol response: 1032Exception:java.lang.RuntimeException: Unrecognized unsol response: 1032

MAIN::E/AudioPolicyManager( 1036): getDeviceForStrategy() device2 0

MAIN::E/AudioPolicyManager( 1036): getDeviceForStrategy() speaker device not found
[LG Optimus 2x] temasek:
That latest KANG was my last post on KANG builds here in this thread. If I build KANGs, I will just upload to my mediafire folder, unannounce. I don't wanna duplicate posts here.....me just wanna have fun and not competition. :)
[LG Optimus 2x] :
I have enabled 'stay awake' in call settings.will try in a long con call with logcat. Thankyou for debugging,I do not want to move to stock or mods due to this.
[LG Optimus 2x] abdullah1985:
I still have network crashes after finishing my calls and also during calls in the latest kang
[LG Optimus 2x] pastime1971:
if you don't mind going an extra mile, maybe you could try another sim card, different carrier, and see if it makes any difference.

maybe you can borrow a sim card from other ? (in u.s. you can buy $10 prepaid sim or something. not sure what is available in your area.)

edit: i did suggest this before in cm thread, and got no feedback. maybe it wasn't much positive at all.... all i'm saying is that we all have the same ROM running on the same phone... (assuming there is no hardware quality issue), but we all have a different SIM card, and carrier.
[LG Optimus 2x] Rusty!:
Sorry if it seemed like I was competing with you posting my (identical) build straight after yours, I had a reply window open while uploading and having a shower. By the time I hit post about 20 new ones had gone unnoticed.
[LG Optimus 2x] fitsnugly:
Welcome to the team, Russ :D
[LG Optimus 2x] abdullah1985:
Is it possible to be a kernel issue ???? Because i face this problem with volkernel but with stock one i havent faced it yet
[LG Optimus 2x] pastime1971:
well, that's something you should ask in vork's thread...
[LG Optimus 2x] pastime1971:
first of all, i cannot guarantee anything here, not even the safety of your phone. but i was told that it's almost impossible to brick it from ROM or kernel.

if you experience cellular network loss, check the radio logcat.

if u do see "D/RILJ ( 3908): Radio ON @ init; reset to OFF", something wrong happened and cm shut off the RIL.

i compiled a kang that turns it back on after 0.1 s when that happens. (i think... not 100% sure of it though)

if you feel really venturous, try it and see if it reestablish network. once again no guarantee.

i don't suffer network loss, so can't test it myself. if it solves the issue, i will submit it to cm.

http://www.mediafire.com/?6a810fbsed92jw6

edit: did it help at all ?

edit2: sorry guys. i seem to have forgotten actually turning the radio on in the source. the above probably didn't help at all...
[LG Optimus 2x] pastime1971:
i seem to have done something wrong.

now i get the following upon "repo sync -j16"

Traceback (most recent call last):
File "/home/stpark/source/androids/cyanogen/.repo/repo/main.py", line 331, in <module>
_Main(sys.argv[1:])
File "/home/stpark/source/androids/cyanogen/.repo/repo/main.py", line 312, in _Main
init_http()
File "/home/stpark/source/androids/cyanogen/.repo/repo/main.py", line 277, in init_http
n = netrc.netrc()
File "/usr/lib64/python2.7/netrc.py", line 31, in __init__
with open(file) as fp:
IOError: [Errno 2] No such file or directory: '/home/stpark/.netrc'

i put an empty file for .netrc and it seems to sync.

can anyone tell me what is in .netrc file ?

thanks in advance.

edit: found it... http://docs.python.org/library/netrc.html
[LG Optimus 2x] pastime1971:
cherry pick

how do you cherry pick a commit ?

i can't seem to see the commit that has not been merged yet.

and google turns up nothing useful...:(
[LG Optimus 2x] Rusty!:
It's quite straight forward:

Click cherry pick button

Click clipboard button

The folder to CD into

So in this case, you would cd into ~/yourbuildfolder/frameworks/base, then paste the command:

git fetch http://review.cyanogenmod.com/p/CyanogenMod/android_frameworks_base refs/changes/23/8123/5 && git cherry-pick FETCH_HEAD

Repeat for other commits, then build.
[LG Optimus 2x] Rusty!:
http://fitsnugly.euroskank.com/gigg...0-RC1-Optimus2X-KANG-signed.09252011-1305.zip

Reverted broken camera commit, updated ring lockscreen, image stabilization (no flash when enabled).
[LG Optimus 2x] Thegn:
Thank you, Rusty!
[LG Optimus 2x] pastime1971:
wonderful. thank you very much, rusty.

why didn't i notice those buttons before ?

even there are buttons for patch and download; i've been doing them manually.... (silly me)
[LG Optimus 2x] cs4589999:
Have a try

thx!
[LG Optimus 2x] whatsek:
Awesome ring lockscreen! Will it be submitted into mainstream? Also the new calendar entries on the lockscreen... perfect.
[LG Optimus 2x] Rusty!:
Yeah I expect it will be, seems popular and getting updated a lot.
[LG Optimus 2x] baliriot:
http://cm-nightlies.appspot.com/?device=p990

wish granted...:D:D:D
[LG Optimus 2x] whatsek:
Yeah! we only have to wake up buildbot ;-)

But with the Kangservice here, its no big of a deal....

Again, thanks Kangbuilders!
[LG Optimus 2x] sebennett:
I flashed latest kang (thanks Rusty !) and then my baseband isn't recognised anymore...same thing flashing back to 146.. SIM code is absent !

any idea ?

Thanks :)
[LG Optimus 2x] whatsek:
Install "Getril"from the market, en try a few Ril`s
[LG Optimus 2x] sebennett:
Done but it's baseband related !

On setting and getrill, baseband is unknown...

I'll try flashing baseband latter !

Restore old CM and it's ok...
[LG Optimus 2x] Gingernut78:
That's because your lge-ril.so file somehow has been corrupted, happened to me.

Try reinstalling it with Getril
[LG Optimus 2x] :
Looks like even the buildbots are suffering from SOD after a deep sleep and refuse to build P990! I have kept my kang environment for such days...
[LG Optimus 2x] Rusty!:
The buildbot is working, the P999 got a build today.

If I've managed to fix my setup here, I'll have something in a bit
[LG Optimus 2x] sebennett:
i've just flashed my baseband via smart flash but still unknown...

Can i modd the corrupted file by file explorer ?

Ps : it's ok with restoring a backup!
[LG Optimus 2x] pastime1971:
how do i undo cherry-pick ?

thanks in advance.
[LG Optimus 2x] :
- Assuming you have fetched all the changes you are interested into git

- Get a list of changesets you want to cherry pick into your working branch

- Change into your working branch

- git cherry-pick changeset

You get the changeset into your branch. You can verify with 'git log'
[LG Optimus 2x] Rusty!:
Syncing discards the picks.
[LG Optimus 2x] Egan:
Or when you don't want to start over completely :

1. Revert that specific cherry-pick commit with 'git revert'.

2. Reset the HEAD to the commit before the cherry-pick with 'git reset'.
[LG Optimus 2x] :
GIT reset is powerful but make sure you learn the 3 options namely soft, hard and mixed. Worth spending that extra time - says my years of experience.
[LG Optimus 2x] pastime1971:
thanks, guys.

i did try "git revert" and it was giving me an error message in frameworks directory.

maybe i wasn't doing it right, or i shouldn't have done "repo abandon ..." prior to that.

i ended up removing frameworks directory and running repo sync.
[LG Optimus 2x] Rusty!:
I don't even bother with new branches unless I plan on committing something. Not the best practice I know :D
[LG Optimus 2x] pastime1971:
sorry, i just tested repo init ..., and i don't get that error.

did you do the following ?

curl "http://git-repo.googlecode.com/files/repo-1.12" > ~/bin/repo
[LG Optimus 2x] SetiroN:
I had used android's mirror on github, which apparently doesn't sync correctly. Thank you for pointing me to the right direction. :)

EDIT:

the problem isn't the mirror, it's related to the newer 1.13. When I sync from either googlecode.com/files/repo-1.13 or github, I get the above-mentioned error.
[LG Optimus 2x] SetiroN:
"fatal: Unable to look up github.com (port 9418) (Name or service not known)"

Anybody else having issues reaching github?
[LG Optimus 2x] pastime1971:
repo init.. works fine using repo-1.12 here.

edit: it turns out i did upgrade it to 1.13.
[LG Optimus 2x] Rusty!:
I've had a few syncs abandoned over the past few days, although the one I did this morning was fine.
[LG Optimus 2x] pastime1971:
just out of curiosity, where is the source for prebuilt/rild ?
[LG Optimus 2x] Rusty!:
That's a good question, actually... nowhere that I can see. Maybe it's not open? Best ask RC I guess.
[LG Optimus 2x] Rusty!:
Uploading build with A2DP, "Fix network registration issues" and some cherries:

http://fitsnugly.euroskank.com/gigglebread/p990/index.php
[LG Optimus 2x] znejk:
A2DP working now? ?? :D
[LG Optimus 2x] jedi2001:
[YOUTUBE]xZGM2INiUXU[/YOUTUBE]
[LG Optimus 2x] znejk:
Pwnage as my students say!
[LG Optimus 2x] znejk:
Btw what is the latest gapps? With fixed gtalk?
[LG Optimus 2x] Sckank:
No kang for latest?
[LG Optimus 2x] Rusty!:
In a bit ;)
[LG Optimus 2x] Sckank:
Excellent :D
[LG Optimus 2x] znejk:
Does incall tuning fix bad sound or possibility to tune some levels incall?
[LG Optimus 2x] Sckank:
Lets find out.
[LG Optimus 2x] Rusty!:
Apparently* it is "Runtime adjustment of wm8994 amp for calls on the LGE Star"

*So fits tells me
[LG Optimus 2x] Sckank:
Well Rusty what about that Kang? ;)
[LG Optimus 2x] Rusty!:
I'm doing it Mr. Impatient, I only have an Athlon II X2 240 so these things take time ;)

On the plus side, it think it's nearly finished
[LG Optimus 2x] Harsh:
Rusty! my curl is failing, due to git problem, do you have any alternative for that

this thing is failing "curl http://android.git.kernel.org/repo > bin/repo"

need another git clone if anyone have it
[LG Optimus 2x] Rusty!:
http://xdaforums.com/showpost.php?p=18113732&postcount=522

Ps. Uploading :P
[LG Optimus 2x] Sckank:
Ehm sorry but you know, when like in old Diablo,!! you get in this berserk mode and kinda just have to hurry to get max frags and experience? Well, here I go. :D
[LG Optimus 2x] Rusty!:
And it's done
[LG Optimus 2x] aMpeX:
It's the first line of the file, so yes ;)

It also says that the method is taking from the p999s nvrm_daemon, so if p999's don't suffer from bad audio quality, I think we are in for a treat.
[LG Optimus 2x] Rusty!:
Well the P999 has the same change
[LG Optimus 2x] paul_cad44:
Rusty is it the one with time as 17:35?
[LG Optimus 2x] Rusty!:
Yes, top one is always newest.
[LG Optimus 2x] paul_cad44:
Quality thanks rusty :) legend as always
[LG Optimus 2x] nfin1te:
thanks rusty, just installed your kang. can somebody tell me if there are new settings for incall tuning? cant find anything. thanks!
[LG Optimus 2x] Rusty!:
No settings, it's all under the hood.
[LG Optimus 2x] pastime1971:
if it is working, then you should see those values for 0x18, 0x1a, 0x1b, and 0x25 regs by 'cat /sys/devices/platform/star_wm8994/data' ?

or is it only during a call ?

edit: it looks like it waits for a call to initiate and write default values, then it goes in and overrides them. if that is correct, and if other BB/RIL writes different values to it, what would happen ?
[LG Optimus 2x] :
Any feedback on in-call tuning? I am waiting for the nightly to flash it.
[LG Optimus 2x] b3ndech0:
i was reading about ril/bb changes in cm. So 2802 baseband isnt the recommended one anymore?
[LG Optimus 2x] Sckank:
Well ril is still 0218 in the latest kang.
[LG Optimus 2x] robertosandros:
I'm running latest nightly atm with baseband 725 and I haven't changed the RIL from the default CM7 one and all seems to be working alright. I think how the radio interface is handled has changed alot since the first CM7 nightlies.
[LG Optimus 2x] b3ndech0:
sry i ment 0218, i will keep this BB then :)
[LG Optimus 2x] aMpeX:
had a call today, and the quality was bad as always. Also, though Rusty lists the MIUI Battery Bar in his cherries, I can't seem to find the setting where it is supposed to be :(
[LG Optimus 2x] _Vegas:
CMsettings with KANG
[LG Optimus 2x] aMpeX:
I know that, but I only have the settings for turning the battery percentage on and off.
[LG Optimus 2x] Rusty!:
No he doesn't :P

But I might put it back in the next one.
[LG Optimus 2x] pa.pn2:
yes plze.the top bar looks awesome^^
[LG Optimus 2x] mainratte:
+1 and sorry for posting the request in the nightly thread
[LG Optimus 2x] SimDroid:
+2

10chars
[LG Optimus 2x] Rusty!:
Who's noticed then? ;)
[LG Optimus 2x] chaos90222:
battery bar？ Sorry I'm using custom theme chooser theme and hadn't noticed.

I will have a look at ;)
[LG Optimus 2x] mainratte:
hehe! see the thank you note in your upper post? think i was the first one to leech this. thanks again!
[LG Optimus 2x] SimDroid:
Is the ring lockscreen something you made, Rusty, or is it CM7 feature?
[LG Optimus 2x] Rusty!:
It was made by Valera Trubachev, the graphics I use are by Sven Dawitz and the ability to use the middle ring to unlock is by Andrew Sutherland.

A lot of talented people contribute to CM.
[LG Optimus 2x] SimDroid:
Where can I find the graphics? I would like to customize it..

And is there any way to just have the middle lock ring and not the two rings on the sides?
[LG Optimus 2x] Rusty!:
They're in framework-res.apk, in /res/drawable-hdpi and you can't have a one ring option.
[LG Optimus 2x] SimDroid:
Cool, I got it... first try, almost Honeycomb/ICS lockscreen

:p

guess what my custom app launcher-ring does...
[LG Optimus 2x] SimDroid:
Almost all my hd gameloft games says they are incompitable with my device in market, is this because of the version GWK74 in your kang Rusty?

Or is there a way to fix it?
[LG Optimus 2x] pastime1971:
is that recent thing ?
[LG Optimus 2x] Egan:
That is because you probably have changed the LCD density. Change it back to 240 or use the older market before the revamp.
[LG Optimus 2x] SimDroid:
Thats it! Why didnt I think of that... thanks
[LG Optimus 2x] Rusty!:
Yep, pretty common thing that.
[LG Optimus 2x] invinciblervd:
Is it possible to change the density and still be able to download apps ? or restrict the old market from updating ?
[LG Optimus 2x] harrykh:
Hi, I have some questions:

What exactly is Kang? The kang 7.1 was released the same day as the official one. How is it better?

I also need to apply the offical CM google apps .zip to the kang release as well right?

I'm coming from topogigi 1.9, do I need to use the ext4->ext3 zip file? And should I also flash a different baseband. I already flashed 725(topogigi recommended baseband). What's recommended for this Kang CM?

Thanks.
[LG Optimus 2x] pastime1971:
that's what it was missing.

i read something about device-specific blob, but didn't know what it was or where to find it.

thank you very much, temasek.
[LG Optimus 2x] aremcee:
Did you run setup-makefiles.sh after extracting the props?
[LG Optimus 2x] pastime1971:
did not know that i had to.

thank you very much, aremcee.
[LG Optimus 2x] pastime1971:
Could not load 'clearsilver-jni'

sorry about the noob question.

does anyone know how to fix the java issue ?

i installed sun jdk 6u26 x86_64

took me a while to figure out that gingerbread needs 64bit linux system.

after brunch, i get "Could not load 'clearsilver-jni'"

tried google it, but not clear how to fix it.

edit: it generates out/host/linux-x86/

does that mean i need i386 java ???

edit: sorry, never mind. i just realized that java installed was i386, not x86_64. will try to fix it first and see what happens.

edit: fixed. my jdk had been i386. replaced it with x86_64, and it compiles through. (silly me)
[LG Optimus 2x] pastime1971:
if devs already know this, i apologize in advance.

now that i can build cm, i decided to take a look at Back/Front camera issue.

labelling is done at buildCameraId in packages/apps/Camera/src/com/android/camera/CameraSettings.java based on mCameraInfo.facing

facing is set by getCameraInfo in frameworks/base/libs/camera/ICameraService.cpp, which reports facing as 0 for both cams.

this is where it gets fuzzy. i'm not sure how android actually gets information (regarding front or back). i thought it is frameworks/base/services/camera/libcameraservice/CameraHardwareStub.cpp which sets that info ultimately.

apparently this does NOT get built, as p990 uses proprietary libcamera.so and libvmm_camera.so. my guess is unless we get a source code for building the camera library, it's not gonna be fixed, right ?

so, i'm embarrassed to say that i forced CameraSettings.java to set the second camera as FACING_FRONT. i know it is a dirty cosmetic solution, but it only affects Camera.apk (as far as i know), and now it shows front camera as Front correctly.

edit: CameraHardwareStub.cpp seems to be a fake camera for emulator, which is why it is not built. libcameraservice.so seems to be what reports front or back. i can see some dirty trick for HTC phone in there.
[LG Optimus 2x] temasek:
update-cm-7.1.0-RC1-Optimus2X-KANG-signed.temasek.07012011-1910.zip

After build 64

Added commits:

- p990: Add CM copyright notice (android_device_lge_p990)

- Updated prebuilt kernel (android_device_lge_p990)http://mirror.cyanogenmod.com/?device=p990

Download in my mediafire folder.
[LG Optimus 2x] pa.pn2:
can you plze share a direct link?

your media folder is blocked @workplace pc:(

thx
[LG Optimus 2x] temasek:
I've problem connecting with my dropbox now so I can't drop to my dropbox. I've no other direct link :(

Maybe if some other who downloaded it can share with u.
[LG Optimus 2x] Rusty!:
http://www.mediafire.com/?5mi3rv64ct05vn8
[LG Optimus 2x] temasek:
I guess I'm lazy........ hehe :D
[LG Optimus 2x] Imperticus:
Not really much point in having KANGs, pretty much same as RC1 at the moment.

A question: how long does it take to make the .zip, after running .build/envsetup.sh Mine seems to take a very long time, and computer makes a lot of noise. is that the usual experience?
[LG Optimus 2x] temasek:
I hardly compile KANG anymore unless its real interesting like updated kernels and some others.

The KANG build I just compiled has a new kernel which may help in proper battery % drop. Its a major difference to RC1, at least to me cuz I wanna test it.

I'm using old laptop to compile. It takes me 25 mins to compile a clean build.

EDIT: Oh btw about the noise, my laptop too has that cuz the FAN is BLOWING 100%. I believe it is utilizing max CPU power to compile the source.
[LG Optimus 2x] Rusty!:
True enough, but sometimes there is something people want to try without waiting 10 hours for the nightly.

Why would you care, there's not much point in kangs ;)

But yeah I think Temasek has that one covered.
[LG Optimus 2x] Imperticus:
Thanks..another question (bit of a noob), is there a difference between 'brunch' and 'make'?
[LG Optimus 2x] dedors:
so I'm here and waiting for Rusty :)
[LG Optimus 2x] Imperticus:
I'm thinking of making one now with all the new camera stuff cherry picks ;)
[LG Optimus 2x] dedors:
Rusty is doing that right now ;)
[LG Optimus 2x] sibbor:
Agreed. So here we are. Thanks for this KANG. Gonna flash it later. Doing some benchmarks with vorkKernel and EXT4 atm.
[LG Optimus 2x] Imperticus:
Oh, guess I'll just wait for him..wouldn't want to stress out my cpu ;)
[LG Optimus 2x] Rusty!:
Hooray, build failed on some camera stuff :D

device/lge/star-common/overlay/packages/apps/Camera/res/values/config.xml:22: error: Resource at supportsNvHighBitrateFullHD appears in overlay but not in the base package; use <add-resource> to add.
[LG Optimus 2x] Rusty!:
Kang = compiled unofficially, they sometimes contain addition code that is not yet approved for the official builds (these are often called cherries).

You will still need to use a GApps zip, and there is no recommend baseband, use what you're comfortable with.

As for needing the ext4 zip, after installing and booting up, reboot to recovery, connect the phone to USB and use adb shell to run mount, if cache & data are EXT4, then there is no need for the zip. If they're EXT3, then run it.
[LG Optimus 2x] .:george:.:
Yea, need this too :(
[LG Optimus 2x] Rusty!:
I guess you could remove MarketUpdater.apk from /system/app and that should stop it updating.
[LG Optimus 2x] therealmarv:
Hi. Is anyone of you able to fix this CM bug related to the microphone on P990?

http://xdaforums.com/showpost.php?p=18352894&postcount=9827

Thanks.
[LG Optimus 2x] znejk:
Any new kangs?
[LG Optimus 2x] nfin1te:
Hey, yeah, check Temaseks mediashare folder in his sig.

Edit:

Heres the link: http://www.mediafire.com/temasek
[LG Optimus 2x] Rusty!:
I did one last night that included the potential BSOD-while-charging fix.

http://fitsnugly.euroskank.com/gigglebread/p990
[LG Optimus 2x] znejk:
Damn u guys rock! Fast answers and good service, just like a gas station in the fifties :)