Question / Help Bitrate all over the place, skipping frames, high CPU usage

FPSMEISTER

New Member
Hi,

When I set the bitrate to whatever size it jumps up and down where up is 2600kb/s above the set bitrate.

I've also sometimes noticed that it stays very stable, doesn't go 100kb/s over or under it. And it will stay that way untill I turn the preview off and turn it on again.

Also, I will get the taking too long to encode, skipping frames warning when that bitrate is going so high, jumping up and down. Creates alot of lag on the stream and some in-game.

I have a feeling that this is a problem with OBS or some setting within OBS since I've got no problems at all with the same settings in xsplit, except that the bitrate in xsplit might actually be constant, I have it on 4500 in xsplit and everything runs smooth. As you can see here, skip to 18:50 http://www.twitch.tv/fpsmeister/b/494751022. Live stream runs as smooth.

I have set the settings quite high to get a good stream quality which works fine with xsplit, but I rather use OBS.

I'm using a seperate streaming computer.

My upload is between 8-10mb tested with testmy.net

Here is the logfile for OBS, maybe you guys notice something of.

Code:
17:12:55: Open Broadcaster Software v0.592b - 64bit ( ^ω^)
17:12:55: -------------------------------
17:12:55: CPU Name: Intel(R) Core(TM) i7-4770K CPU
17:12:55: CPU Speed: 3500MHz (actually @ 4000Mhz)
17:12:55: Physical Memory:  7871MB Total, 6829MB Free
17:12:55: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
17:12:55: monitor 1: pos={0, 0}, size={1920, 1080}
17:12:55: Windows Version: 6.2 Build 9200 
17:12:55: Aero is Enabled
17:12:55: -------------------------------
17:12:55: OBS Modules:
17:12:55: Base Address     Module
17:12:55: 0000000078D20000 OBS.exe
17:12:55: 00000000FB060000 OBSApi.dll
17:12:55: 00000000003A0000 DShowPlugin.dll
17:12:55: 0000000000370000 GraphicsCapture.dll
17:12:55: 0000000002CB0000 NoiseGate.dll
17:12:55: 0000000000350000 PSVPlugin.dll
17:12:55: ------------------------------------------
17:12:55: Adapter 1
17:12:55:   Video Adapter: Intel(R) HD Graphics 4600
17:12:55:   Video Adapter Dedicated Video Memory: 234881024
17:12:55:   Video Adapter Shared System Memory: 1644167168
17:12:55:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
17:12:55: =====Stream Start: 2014-01-13, 17:12:55===============================================
17:12:55:   Multithreaded optimizations: On
17:12:55:   Base resolution: 1920x1080
17:12:55:   Output resolution: 1920x1080
17:12:55: ------------------------------------------
17:12:55: Loading up D3D10 on Intel(R) HD Graphics 4600 (Adapter 1)...
17:12:55: ------------------------------------------
17:12:55: Audio Format: 44100hz
17:12:55: Playback device Default
17:12:55: ------------------------------------------
17:12:55: Using desktop audio input: Microphone (Realtek High Definition Audio)
17:12:55: ------------------------------------------
17:12:55: Using auxilary audio input: Microphone (Realtek High Definition Audio)
17:12:55: ------------------------------------------
17:12:55: Audio Encoding: AAC
17:12:55:     bitrate: 128
17:12:55: ------------------------------------------
17:12:55:     device: USB Video Device,
17:12:55:     device id \\?\usb#vid_041e&pid_4058&mi_00#6&13f893f4&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
17:12:55:     chosen type: YUY2, usingFourCC: false, res: 320x240 - 320x240, frameIntervals: 333333-2000000
17:12:55:     use buffering: false - 0, fourCC: 'YUY2'
17:12:55:     audio device: Disable,
17:12:55:     audio device id Disabled,
17:12:55: 
17:12:55: Using directshow input
17:12:55: ------------------------------------------
17:12:55:     device: AVerMedia HD Capture C985 Bus 3,
17:12:55:     device id \\?\pci#ven_1af2&dev_a001&subsys_a0011af2&rev_00#4&14cd1a0e&0&00e3#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a},
17:12:55:     chosen type: YV12, usingFourCC: true, res: 1280x800 - 1280x800, frameIntervals: 166666-666666
17:12:55:     use buffering: false - 0, fourCC: 'YV12'
17:12:55: 
17:12:55:     device audio info - bits per sample: 16, channels: 2, samples per sec: 48000, block size: 4
17:12:55: Using directshow input
17:12:56: Scene buffering time set to 400
17:12:56: ------------------------------------------
17:12:56: Video Encoding: x264
17:12:56:     fps: 60
17:12:56:     width: 1920, height: 1080
17:12:56:     preset: medium
17:12:56:     profile: main
17:12:56:     keyint: 120
17:12:56:     CBR: yes
17:12:56:     CFR: yes
17:12:56:     max bitrate: 4000
17:12:56:     buffer size: 4000
17:12:56: ------------------------------------------
17:12:56: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
17:12:56: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
17:13:06: Total frames encoded: 591, total frames duplicated: 1 (0.17%)
17:13:06: Total frames rendered: 599, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
17:13:07: 
17:13:07: Profiler time results:
17:13:07: 
17:13:07: ==============================================================
17:13:07: video thread frame - [100%] [avg time: 2.288 ms] [children: 95.5%] [unaccounted: 4.5%]
17:13:07: | scene->Preprocess - [85.6%] [avg time: 1.959 ms]
17:13:07: | GPU download and conversion - [9.88%] [avg time: 0.226 ms] [children: 9.22%] [unaccounted: 0.656%]
17:13:07: | | flush - [8.35%] [avg time: 0.191 ms]
17:13:07: | | CopyResource - [0.743%] [avg time: 0.017 ms]
17:13:07: | | conversion to 4:2:0 - [0.131%] [avg time: 0.003 ms]
17:13:07: Convert444Threads - [100%] [avg time: 2.304 ms] [children: 99.8%] [unaccounted: 0.217%]
17:13:07: | Convert444toNV12 - [99.8%] [avg time: 2.299 ms]
17:13:07: encoder thread frame - [100%] [avg time: 2.449 ms]
17:13:07: ==============================================================
17:13:07: 
17:13:07: 
17:13:07: Profiler CPU results:
17:13:07: 
17:13:07: ==============================================================
17:13:07: video thread frame - [cpu time: avg 2.191 ms, total 1312.5 ms] [avg calls per frame: 1]
17:13:07: | scene->Preprocess - [cpu time: avg 1.565 ms, total 937.5 ms] [avg calls per frame: 1]
17:13:07: | GPU download and conversion - [cpu time: avg 0.13 ms, total 78.125 ms] [avg calls per frame: 1]
17:13:07: | | flush - [cpu time: avg 0.13 ms, total 78.125 ms] [avg calls per frame: 1]
17:13:07: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
17:13:07: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
17:13:07: Convert444Threads - [cpu time: avg 1.953 ms, total 2218.75 ms] [avg calls per frame: 2]
17:13:07: | Convert444toNV12 - [cpu time: avg 1.953 ms, total 2218.75 ms] [avg calls per frame: 2]
17:13:07: encoder thread frame - [cpu time: avg 2.011 ms, total 1140.63 ms] [avg calls per frame: 1]
17:13:07: ==============================================================
17:13:07: 
17:13:07: =====Stream End: 2014-01-13, 17:13:07=================================================
 

R1CH

Forum Admin
Developer
Re: Bitrate all over the place, skipping frames, high CPU us

The problem is with you, for ignoring the giant warning when changing the preset! Reset your advanced settings back to default, then lower your resolution or FPS.
 

FPSMEISTER

New Member
Re: Bitrate all over the place, skipping frames, high CPU us

R1CH said:
The problem is with you, for ignoring the giant warning when changing the preset! Reset your advanced settings back to default, then lower your resolution or FPS.

Did you read the whole post?
 

Sapiens

Forum Moderator
Re: Bitrate all over the place, skipping frames, high CPU us

R1CH is right, lower your settings. 1080p60 at the medium preset is not going to work well and "but it worked fine in XSplit" is not useful information. The example VOD you provided is running at 30 FPS, not 60. Also your C985 doesn't even do 1080p60 output, you're taking a lower resolution video and upscaling it which is a complete waste of resources. You're not even keeping the same aspect ratio for the upscale.
 

alpinlol

Active Member
Re: Bitrate all over the place, skipping frames, high CPU us

there has to be a reason widgitybear runs a dual xeon e5 2690 streaming pc setup to stream 1080p60 on medium preset ;D
 

Sapiens

Forum Moderator
Re: Bitrate all over the place, skipping frames, high CPU us

widgitybear's stream is a mess too, try running it through the analyzer some time. Flash just doesn't play well with 1080p60.
 

FPSMEISTER

New Member
Re: Bitrate all over the place, skipping frames, high CPU us

alpinlol said:
there has to be a reason widgitybear runs a dual xeon e5 2690 streaming pc setup to stream 1080p60 on medium preset ;D

:D His stream is looking fine (to me though.)

Sapiens said:
widgitybear's stream is a mess too, try running it through the analyzer some time. Flash just doesn't play well with 1080p60.

Thanks, U got me to check the fps of that video of mine and it was indeed 30fps. I set it back to 60fps in xsplit and the video file was 60fps. So it seems it can stream at 60fps (not record though). But that I guess will need a better CPU when running on medium preset, I have to test that while gaming but it probably won't run well. 1080p 30fps on medium preset in OBS works as well, just tested, no frames skipping.

So apparently it can handle 30fps 1080p medium since that's what I've been using the last days.

What did U mean about me upscaling something? If it's regarding those black bars at the top and bottom it's because I'm using a 1920x1080 monitor and set the resolution to 1920x1080 (black bars at the bottom and top), which the card captures.
 

Sapiens

Forum Moderator
Re: Bitrate all over the place, skipping frames, high CPU us

According to your log file, your Live Gamer HD is outputting video at a resolution of 1280x800. This is 1) not 1920x1080 like your stream and 2) not a 16:9 aspect ratio like your source. You don't gain any additional quality or detail by enlarging a lower resolution video to a higher resolution, and in fact for streaming you're actually reducing your quality.

That card is also unable to output 1920x1080 video at 60 FPS, so your end result is either going to be that you duplicate half your frames (the card can output only 30 FPS each second at 1080p but you're streaming at 60 FPS), or you're taking a lower resolution 60 FPS video and enlarging it to a higher resolution for no reason.

If you want to stream at 60 FPS from a 1920x1080 source, do so at 1280x720. If you want to stream at 1080p, do so at 30 FPS. If you want to stream at 1080p60 which we really advise you not to do, you'll need a different capture card.
 

FPSMEISTER

New Member
Re: Bitrate all over the place, skipping frames, high CPU us

Just for testing purposes since playing and streaming on these settings (1080p, 60fps, medium preset) is not going to work with this CPU.

This is 60fps, resolution output according to this new log 1920x1080, it uses the LGHD Stream Engine option instead of AVerMedia HD Capture C985 Bus 3.

http://www.twitch.tv/fpsmeister/b/494990308

Code:
19:30:49: Open Broadcaster Software v0.592b - 32bit (´・ω・`)
19:30:49: -------------------------------
19:30:49: CPU Name: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
19:30:49: CPU Speed: 3500MHz
19:30:49: Physical Memory:  4095MB Total, 4095MB Free
19:30:49: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
19:30:49: monitor 1: pos={0, 0}, size={1920, 1080}
19:30:49: Windows Version: 6.2 Build 9200 
19:30:49: Aero is Enabled
19:30:49: -------------------------------
19:30:49: OBS Modules:
19:30:49: Base Address     Module
19:30:49: 00BF0000         OBS.exe
19:30:49: 73BC0000         OBSApi.dll
19:30:49: 73E40000         DShowPlugin.dll
19:30:49: 73E20000         GraphicsCapture.dll
19:30:49: 73E00000         NoiseGate.dll
19:30:49: 73BA0000         PSVPlugin.dll
19:30:49: ------------------------------------------
19:30:49: Adapter 1
19:30:49:   Video Adapter: Intel(R) HD Graphics 4600
19:30:49:   Video Adapter Dedicated Video Memory: 234881024
19:30:49:   Video Adapter Shared System Memory: 1644167168
19:30:49:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
19:30:49: =====Stream Start: 2014-01-13, 19:30:49===============================================
19:30:49:   Multithreaded optimizations: On
19:30:49:   Base resolution: 1920x1080
19:30:49:   Output resolution: 1920x1080
19:30:49: ------------------------------------------
19:30:49: Loading up D3D10 on Intel(R) HD Graphics 4600 (Adapter 1)...
19:30:49: ------------------------------------------
19:30:49: Audio Format: 44100hz
19:30:49: Playback device Default
19:30:49: ------------------------------------------
19:30:49: Using desktop audio input: Microphone (Realtek High Definition Audio)
19:30:49: ------------------------------------------
19:30:49: Using auxilary audio input: Microphone (Realtek High Definition Audio)
19:30:49: ------------------------------------------
19:30:49: Audio Encoding: AAC
19:30:49:     bitrate: 128
19:30:49: ------------------------------------------
19:30:49:     device: USB Video Device,
19:30:49:     device id \\?\usb#vid_041e&pid_4058&mi_00#6&13f893f4&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
19:30:49:     chosen type: YUY2, usingFourCC: false, res: 320x240 - 320x240, frameIntervals: 333333-2000000
19:30:49:     use buffering: false - 0, fourCC: 'YUY2'
19:30:49:     audio device: Disable,
19:30:49:     audio device id Disabled,
19:30:49: 
19:30:49: Using directshow input
19:30:49: ------------------------------------------
19:30:49:     device: LGHD Stream Engine,
19:30:49:     device id (null),
19:30:49:     chosen type: YUY2, usingFourCC: false, res: 1920x1080 - 1920x1080, frameIntervals: 333333-333333
19:30:49:     use buffering: false - 0, fourCC: 'YUY2'
19:30:49: 
19:30:49:     device audio info - bits per sample: 16, channels: 2, samples per sec: 44100, block size: 4
19:30:49: Using directshow input
19:30:49: Scene buffering time set to 400
19:30:49: ------------------------------------------
19:30:49: Video Encoding: x264
19:30:49:     fps: 60
19:30:49:     width: 1920, height: 1080
19:30:49:     preset: medium
19:30:49:     profile: main
19:30:49:     keyint: 120
19:30:49:     CBR: yes
19:30:49:     CFR: yes
19:30:49:     max bitrate: 4000
19:30:49:     buffer size: 4000
19:30:49: ------------------------------------------
19:30:49: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
19:30:49: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
19:30:53: Total frames encoded: 179, total frames duplicated: 4 (2.23%)
19:30:53: Number of frames skipped due to encoder lag: 4 (2.23%)
19:30:53: Total frames rendered: 181, number of late frames: 3 (1.66%) (it's okay for some frames to be late)
19:30:54: 
19:30:54: Profiler time results:
19:30:54: 
19:30:54: ==============================================================
19:30:54: video thread frame - [100%] [avg time: 3.754 ms] [children: 83.9%] [unaccounted: 16.1%]
19:30:54: | scene->Preprocess - [67.4%] [avg time: 2.53 ms]
19:30:54: | GPU download and conversion - [16.5%] [avg time: 0.62 ms] [children: 9.03%] [unaccounted: 7.49%]
19:30:54: | | flush - [6.85%] [avg time: 0.257 ms]
19:30:54: | | CopyResource - [1.92%] [avg time: 0.072 ms]
19:30:54: | | conversion to 4:2:0 - [0.266%] [avg time: 0.01 ms]
19:30:54: Convert444Threads - [100%] [avg time: 3.184 ms] [children: 99.6%] [unaccounted: 0.377%]
19:30:54: | Convert444toNV12 - [99.6%] [avg time: 3.172 ms]
19:30:54: encoder thread frame - [100%] [avg time: 5.851 ms]
19:30:54: ==============================================================
19:30:54: 
19:30:54: 
19:30:54: Profiler CPU results:
19:30:54: 
19:30:54: ==============================================================
19:30:54: video thread frame - [cpu time: avg 2.848 ms, total 515.625 ms] [avg calls per frame: 1]
19:30:54: | scene->Preprocess - [cpu time: avg 1.985 ms, total 359.375 ms] [avg calls per frame: 1]
19:30:54: | GPU download and conversion - [cpu time: avg 0.345 ms, total 62.5 ms] [avg calls per frame: 1]
19:30:54: | | flush - [cpu time: avg 0.258 ms, total 46.875 ms] [avg calls per frame: 1]
19:30:54: | | CopyResource - [cpu time: avg 0.102 ms, total 15.625 ms] [avg calls per frame: 1]
19:30:54: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:30:54: Convert444Threads - [cpu time: avg 3.186 ms, total 968.75 ms] [avg calls per frame: 2]
19:30:54: | Convert444toNV12 - [cpu time: avg 3.186 ms, total 968.75 ms] [avg calls per frame: 2]
19:30:54: encoder thread frame - [cpu time: avg 4.939 ms, total 765.625 ms] [avg calls per frame: 1]
19:30:54: ==============================================================
19:30:54: 
19:30:54: =====Stream End: 2014-01-13, 19:30:54=================================================
19:31:31: =====Stream Start: 2014-01-13, 19:31:31===============================================
19:31:31:   Multithreaded optimizations: On
19:31:31:   Base resolution: 1920x1080
19:31:31:   Output resolution: 1920x1080
19:31:31: ------------------------------------------
19:31:31: Loading up D3D10 on Intel(R) HD Graphics 4600 (Adapter 1)...
19:31:31: ------------------------------------------
19:31:31: Audio Format: 44100hz
19:31:31: Playback device Default
19:31:31: ------------------------------------------
19:31:31: Using desktop audio input: Microphone (Realtek High Definition Audio)
19:31:31: ------------------------------------------
19:31:31: Using auxilary audio input: Microphone (Realtek High Definition Audio)
19:31:31: ------------------------------------------
19:31:31: Audio Encoding: AAC
19:31:31:     bitrate: 128
19:31:31: ------------------------------------------
19:31:31:     device: USB Video Device,
19:31:31:     device id \\?\usb#vid_041e&pid_4058&mi_00#6&13f893f4&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
19:31:31:     chosen type: YUY2, usingFourCC: false, res: 320x240 - 320x240, frameIntervals: 333333-2000000
19:31:31:     use buffering: false - 0, fourCC: 'YUY2'
19:31:31:     audio device: Disable,
19:31:31:     audio device id Disabled,
19:31:31: 
19:31:31: Using directshow input
19:31:31: ------------------------------------------
19:31:31:     device: AVerMedia HD Capture C985 Bus 3,
19:31:31:     device id \\?\pci#ven_1af2&dev_a001&subsys_a0011af2&rev_00#4&14cd1a0e&0&00e3#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{957bd672-7934-4b55-b81a-3e22b14c679a},
19:31:31:     chosen type: YV12, usingFourCC: true, res: 1920x1080 - 1920x1080, frameIntervals: 333333-666666
19:31:31:     use buffering: false - 0, fourCC: 'YV12'
19:31:31: 
19:31:31:     device audio info - bits per sample: 16, channels: 2, samples per sec: 48000, block size: 4
19:31:31: Using directshow input
19:31:31: Scene buffering time set to 400
19:31:31: ------------------------------------------
19:31:31: Video Encoding: x264
19:31:31:     fps: 60
19:31:31:     width: 1920, height: 1080
19:31:31:     preset: medium
19:31:31:     profile: main
19:31:31:     keyint: 120
19:31:31:     CBR: yes
19:31:31:     CFR: yes
19:31:31:     max bitrate: 4000
19:31:31:     buffer size: 4000
19:31:31: ------------------------------------------
19:31:31: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
19:31:31: MMDeviceAudioSource: Frequency for device 'Microphone (Realtek High Definition Audio)' is 384000, samples per sec is 48000
19:31:38: Total frames encoded: 388, total frames duplicated: 3 (0.77%)
19:31:38: Total frames rendered: 396, number of late frames: 2 (0.51%) (it's okay for some frames to be late)
19:31:39: 
19:31:39: Profiler time results:
19:31:39: 
19:31:39: ==============================================================
19:31:39: video thread frame - [100%] [avg time: 3.18 ms] [children: 85.7%] [unaccounted: 14.3%]
19:31:39: | scene->Preprocess - [70.9%] [avg time: 2.255 ms]
19:31:39: | GPU download and conversion - [14.8%] [avg time: 0.471 ms] [children: 5.09%] [unaccounted: 9.72%]
19:31:39: | | flush - [1.79%] [avg time: 0.057 ms]
19:31:39: | | CopyResource - [3.11%] [avg time: 0.099 ms]
19:31:39: | | conversion to 4:2:0 - [0.189%] [avg time: 0.006 ms]
19:31:39: Convert444Threads - [100%] [avg time: 3.504 ms] [children: 99.7%] [unaccounted: 0.342%]
19:31:39: | Convert444toNV12 - [99.7%] [avg time: 3.492 ms]
19:31:39: encoder thread frame - [100%] [avg time: 3.823 ms]
19:31:39: ==============================================================
19:31:39: 
19:31:39: 
19:31:39: Profiler CPU results:
19:31:39: 
19:31:39: ==============================================================
19:31:39: video thread frame - [cpu time: avg 2.406 ms, total 953.125 ms] [avg calls per frame: 1]
19:31:39: | scene->Preprocess - [cpu time: avg 1.893 ms, total 750 ms] [avg calls per frame: 1]
19:31:39: | GPU download and conversion - [cpu time: avg 0.157 ms, total 62.5 ms] [avg calls per frame: 1]
19:31:39: | | flush - [cpu time: avg 0.118 ms, total 46.875 ms] [avg calls per frame: 1]
19:31:39: | | CopyResource - [cpu time: avg 0.042 ms, total 15.625 ms] [avg calls per frame: 1]
19:31:39: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:31:39: Convert444Threads - [cpu time: avg 3.391 ms, total 2468.75 ms] [avg calls per frame: 2]
19:31:39: | Convert444toNV12 - [cpu time: avg 3.326 ms, total 2421.88 ms] [avg calls per frame: 2]
19:31:39: encoder thread frame - [cpu time: avg 2.918 ms, total 1062.5 ms] [avg calls per frame: 1]
19:31:39: ==============================================================
19:31:39: 
19:31:39: =====Stream End: 2014-01-13, 19:31:39=================================================
 

Sapiens

Forum Moderator
Re: Bitrate all over the place, skipping frames, high CPU us

The Live Gamer HD does not output 1920x1080 at 60 FPS. Please read that first sentence again. The Live Gamer HD outputs 1920x1080 at 30 FPS, which means there is absolutely no point in setting OBS to stream at 1080p60. The capture card is sending only 30 frames of video to OBS every second. This is a limitation of the capture card. What you're doing is like playing a game that runs at 30 FPS but streaming it at 60 FPS, half of the frames are just duplicates. There is absolutely no benefit, only the downside of poorer video quality.
 
Top