Bitcoin Forum
September 23, 2017, 10:14:21 PM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 111 »
  Print  
Author Topic: [Awesome Miner]- Powerful Windows GUI to manage and monitor up to 5000 miners  (Read 351211 times)
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
July 30, 2014, 07:44:24 PM
 #21

At the gpu-settings (device management)u can only change the intensity, it it possible to make a dropbox for Intensity/xIntensity/rawintensity?

btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
1506204861
Hero Member
*
Offline Offline

Posts: 1506204861

View Profile Personal Message (Offline)

Ignore
1506204861
Reply with quote  #2

1506204861
Report to moderator
1506204861
Hero Member
*
Offline Offline

Posts: 1506204861

View Profile Personal Message (Offline)

Ignore
1506204861
Reply with quote  #2

1506204861
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
July 30, 2014, 08:18:26 PM
 #22

first I made a external miner and the device profiles was working what I set.
second I made a manage miner other wise u can't start the miner when it logs on windows, but the device profiles doesn't work.
When I want to edit my profile it ask for the 3 options and it doesn't use the device profiles.
for example it should use worksize 64, but it is building a binary with worksize 256.
You can always verify the generated configuration by clicking the button "View Details" on the right hand side of Awesome Miner when a Managed Miner is running.

I used my batfile and that doesn't work, when using the sgminer.exe it is working.

Where can I insert these parameters? normaly it is in my bat-file

Code:
timeout /t 30
COLOR 0A
In the commandline it doesn't work
Batch-files are currently not supported, so there is no way of setting the color codes. I will put this on the list of feature requests for future versions.

edit3  Grin
For  Awesome Profit Switching, is it better to use the multi-multi switch port or the normal port?
You shouldn't use the auto-closing switching ports, where only one of several pools is alive. Currently, it's only the standard pools multi-port pools that are supported.

I set Awesome Profit Switching to 2minutes and see if it switch when looking at the online services, but it doesn't switch.
tmb x11 second profitable but doesn't switch to it, it hash the pool with the highest alive prio.
Are all pools added to the miner, so it looks something like the last screenshot on this page?
http://www.awesomeminer.com/guide/awesomeprofit.aspx
For TradeMyBit, you also need to enter the API key in Awesome Miner, as described on the link above.
Please let me know if it still doesn't work.

Thanks for all comments! I will continue working on improving the software.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
July 30, 2014, 08:20:24 PM
 #23

At the gpu-settings (device management)u can only change the intensity, it it possible to make a dropbox for Intensity/xIntensity/rawintensity?
You need to scroll down in the list of settings to find x- and rawintensity. I do however agree that those settings should be next to the Intensity setting.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
July 30, 2014, 08:35:28 PM
 #24

At the gpu-settings (device management)u can only change the intensity, it it possible to make a dropbox for Intensity/xIntensity/rawintensity?
You need to scroll down in the list of settings to find x- and rawintensity. I do however agree that those settings should be next to the Intensity setting.

Didn't mean the device profiles, but changing that is also ok.
I mean at the device management. U can only change intensity on the fly, not xIntensity or rawintensity.


btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
July 30, 2014, 08:53:41 PM
 #25

Quote
I set Awesome Profit Switching to 2minutes and see if it switch when looking at the online services, but it doesn't switch.
tmb x11 second profitable but doesn't switch to it, it hash the pool with the highest alive prio.
Are all pools added to the miner, so it looks something like the last screenshot on this page?
http://www.awesomeminer.com/guide/awesomeprofit.aspx
For TradeMyBit, you also need to enter the API key in Awesome Miner, as described on the link above.
Please let me know if it still doesn't work.

Thanks for all comments! I will continue working on improving the software.

TMB api key is entered. pools are listed (manually)

So after 5minutes it still doesn't change to tmb x11(most profitable)
I set the Awesome profit switching to 2 minutes




after 15min still not change the pool to tmb (still profitable)

btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
July 31, 2014, 01:26:05 PM
 #26

Didn't mean the device profiles, but changing that is also ok.
I mean at the device management. U can only change intensity on the fly, not xIntensity or rawintensity.

Now I do understand what you were asking for. However, Sgminer API doesn't allow to change x- and raw-intensity on-the-fly the same way that you can do with Intensity. So at the moment, this will not be supported unless you configure it in your Device Profile before you start the mining.

Did you make any progress with the profit switching feature, or isn't it working properly?

Just to let you know, I'm working on improving the software.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
July 31, 2014, 02:43:15 PM
 #27

Didn't mean the device profiles, but changing that is also ok.
I mean at the device management. U can only change intensity on the fly, not xIntensity or rawintensity.

Now I do understand what you were asking for. However, Sgminer API doesn't allow to change x- and raw-intensity on-the-fly the same way that you can do with Intensity. So at the moment, this will not be supported unless you configure it in your Device Profile before you start the mining.

As u can see I configure it in my device profile using xI=64.
Quote
Did you make any progress with the profit switching feature, or isn't it working properly?

Just to let you know, I'm working on improving the software.

Didn't test it anymore..waited 30min but it did not switch to tmb x11 (still most profitable)

Thanks for improving the software

btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 01, 2014, 06:58:27 AM
 #28

Didn't test it anymore..waited 30min but it did not switch to tmb x11 (still most profitable)

Thanks for improving the software
Version 1.0.1 of the software is now available. I've made some changes to the profitability switcher to always keep Betarigs and MiningRigRental pools on top priority. For MiningRigRentals, this will however not work well anyway because the pool will be enabled even when not rented. For now I recommend you to simply Disable those pools.

I've also added log information to the profitability switcher, so if you run into any problems, please send the log file (Can be found in Options dialog, Advanced section) to info@awesomeminer.com and I will help you.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bobsag3
Hero Member
*****
Offline Offline

Activity: 546

Owner, Minersource.net


View Profile
August 02, 2014, 01:37:53 AM
 #29

Works well- doesn't seem to pull S3 hashrate? Will toss a $10 bounty your way to fix it:) Its on the standard API port but I cant get it to work.
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 02, 2014, 05:11:08 AM
 #30

Works well- doesn't seem to pull S3 hashrate? Will toss a $10 bounty your way to fix it:) Its on the standard API port but I cant get it to work.
Is everything else working fine, except the hash rate?

I need your help to extract some API responses from the S3 miner. Could you please select the miner in main window of Awesome Miner and click the "View Details..." button. Then go to the API Console tab and perform the following two operations:
1) Enter the command "summary", click Execute. Save and send me the response
2) Enter the command "config", click Execute. Save and send me the response

With the response from these two commands, I should be able to figure out why it isn't working. Thanks!

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
August 02, 2014, 03:48:27 PM
 #31

Didn't test it anymore..waited 30min but it did not switch to tmb x11 (still most profitable)

Thanks for improving the software
Version 1.0.1 of the software is now available. I've made some changes to the profitability switcher to always keep Betarigs and MiningRigRental pools on top priority. For MiningRigRentals, this will however not work well anyway because the pool will be enabled even when not rented. For now I recommend you to simply Disable those pools.

I've also added log information to the profitability switcher, so if you run into any problems, please send the log file (Can be found in Options dialog, Advanced section) to info@awesomeminer.com and I will help you.

Thanks it's working now.

If I wanna add Veilcoin (@trademybit not at multi-port)) as a single coin, does it also switch to it, or do I need a api from coinwarz or whatmine or is the api from trademybit also ok?

I change it manually now in the propertys, but it's static, the profit is not changing.

btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
griffga
Member
**
Offline Offline

Activity: 76


View Profile
August 03, 2014, 07:13:54 AM
 #32

What BIOS do you guys use with Gigabyte 7950's? I'm using this program and my cards seem to be running hot.
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 03, 2014, 09:28:33 AM
 #33

Thanks it's working now.

If I wanna add Veilcoin (@trademybit not at multi-port)) as a single coin, does it also switch to it, or do I need a api from coinwarz or whatmine or is the api from trademybit also ok?

I change it manually now in the propertys, but it's static, the profit is not changing.
If you want automatically updated profitability for a coin, you need to use Coinwarz or Whatmine API's. TradeMyBit doesn't provide this information in their API.

However, I've started thinking about how to solve this in another way that I think you will find useful. Even if TradeMyBit API doesn't support this, Awesome Miner could still download and parse the TradeMyBit web site to get the list of single-coin pools and their ports. With this information, the profit switcher know that if you use trademybit.com:3498, then you mine Veilcoin and the normalized profitability is 0.00132BTC/MH/day, so it can compare this to all the multi-pool services and switch if most profitable. For this kind of implementation, you don't need Coinwarz or Whatmine, but it will of course only work with the coins/pools supported by TradeMyBit and it's only useful for the coins not part of the multi-pool.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 03, 2014, 09:38:28 AM
 #34

What BIOS do you guys use with Gigabyte 7950's? I'm using this program and my cards seem to be running hot.
This is not specific to Awesome Miner, but if you do Scrypt mining (Litecoin, Dogecoin and similar), you GPU's will run hot. That's why it's getting more popular with the X11-algorithm (Darkcoin and similar) that makes your GPU's run much cooler compare to Scrypt.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 04, 2014, 10:46:41 AM
 #35

Version 1.0.2 is available!
The Awesome Profit Switching feature adds support for WestHash and LTCRabbit, in addition to TradeMyBit and NiceHash. This release also contains several other improvements and corrections.

There is a new forum thread in the Mining Altcoin section for discussions about the Profit Switching feature:
https://bitcointalk.org/index.php?topic=723820.0

This thread (that you are reading right now) will be intended for everything else about Awesome Miner.

Please provide comments, feedback and give suggestions about features you would like to see in future releases of Awesome Miner.
Thanks!

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bobsag3
Hero Member
*****
Offline Offline

Activity: 546

Owner, Minersource.net


View Profile
August 05, 2014, 08:48:02 PM
 #36

Works well- doesn't seem to pull S3 hashrate? Will toss a $10 bounty your way to fix it:) Its on the standard API port but I cant get it to work.
Is everything else working fine, except the hash rate?

I need your help to extract some API responses from the S3 miner. Could you please select the miner in main window of Awesome Miner and click the "View Details..." button. Then go to the API Console tab and perform the following two operations:
1) Enter the command "summary", click Execute. Save and send me the response
2) Enter the command "config", click Execute. Save and send me the response

With the response from these two commands, I should be able to figure out why it isn't working. Thanks!


{
  "STATUS": [
    {
      "STATUS": "S",
      "When": 1407271583,
      "Code": 11,
      "Msg": "Summary",
      "Description": "cgminer 3.12.0"
    }
  ],
  "SUMMARY": [
    {
      "Elapsed": 6919,
      "GHS 5s": 421.06,
      "GHS av": 443.45,
      "Found Blocks": 0,
      "Getworks": 225,
      "Accepted": 2699,
      "Rejected": 6,
      "Hardware Errors": 1,
      "Utility": 23.41,
      "Discarded": 6921,
      "Stale": 0,
      "Get Failures": 3,
      "Local Work": 1157616,
      "Remote Failures": 0,
      "Network Blocks": 13,
      "Total MH": 3068118477.1179,
      "Work Utility": 6243.94,
      "Difficulty Accepted": 707829.19921875,
      "Difficulty Rejected": 1279.98046875,
      "Difficulty Stale": 0.0,
      "Best Share": 1593994,
      "Device Hardware%": 0.0001,
      "Device Rejected%": 0.1778,
      "Pool Rejected%": 0.1805,
      "Pool Stale%": 0.0,
      "Last getwork": 1407271583
    }
  ],
  "id": 1
}

And

{
  "STATUS": [
    {
      "STATUS": "S",
      "When": 1407271626,
      "Code": 33,
      "Msg": "CGMiner config",
      "Description": "cgminer 3.12.0"
    }
  ],
  "CONFIG": [
    {
      "ASC Count": 1,
      "PGA Count": 0,
      "Pool Count": 2,
      "Strategy": "Failover",
      "Log Interval": 5,
      "Device Code": "BTM ",
      "OS": "Linux",
      "Failover-Only": false,
      "ScanTime": 60,
      "Queue": 4096,
      "Expiry": 120,
      "Hotplug": 5
    }
  ],
  "id": 1
}

Looks like it is pulling the info- and is not pushing it to the GUI. I probably messed something up, but hey it tells me if they are on or off Smiley

Also.. possible to change up the settings on the webserver? Such as the address etc.
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 06, 2014, 05:38:19 AM
 #37

Looks like it is pulling the info- and is not pushing it to the GUI. I probably messed something up, but hey it tells me if they are on or off Smiley

Also.. possible to change up the settings on the webserver? Such as the address etc.
I made a change in version 1.0.2 to handle the fact that Antminers report "Last Share Time" in a strange way. I was hoping that this would solve the problem, but there might be another issue as well.

Could you send me your log file (AwesomeMiner.log) by e-mail? In the new version there is also a "Generate API report" feature that you can find if you first select the miner and click "View details...". Thanks!

The built-in web server can be configured in Options dialog, Web section. The port can be configured, but the address itself will always be your computer's IP and/or hostname. Even if the user interface only show you the Server address like "http://MyComputerName:17790", you can access it from any DNS name that points to your IP address, or directly using the IP address.

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
patrike
Hero Member
*****
Offline Offline

Activity: 938


View Profile WWW
August 07, 2014, 07:50:11 AM
 #38

Awesome Miner v1.0.4 has been released.

I used my batfile and that doesn't work, when using the sgminer.exe it is working.

Where can I insert these parameters? normaly it is in my bat-file
Code:
timeout /t 30
COLOR 0A
In the commandline it doesn't work
I just wanted to follow up on a few of the suggestions you had so far.

In Awesome Miner 1.0.4 you can execute these additional commands before the mining software is started. Open the properties for you Managed Miner, go to the "Command Line" section. Check "Execute additional command before starting the mining software" and enter the commands to be executed, for example:
Code:
COLOR 0A

For  Awesome Profit Switching, is it better to use the multi-multi switch port or the normal port?
The latest version supports both the TradeMyBit auto-closing multi port and the standard multi port.

In addition to that, you have a new setting in Options dialog, Online Services section, where you can enable "TradeMyBit signle-coin pool". When enabled, the Awesome Profit Switching feature can do profit switching between all TradeMyBit pools, for example Veilcoin pool on port 3498.

Please let me know if you have any other comments or suggestions for Awesome Miner. Thanks!

Awesome Miner - The most powerful Windows GUI software to manage and monitor Cgminer, Bfgminer, Sgminer, ccMiner and Claymore's Ethereum miner
Centralized management for up to 5000 miners, notifications, recovery, scripting, mobile web and next generation profitability switching [Web site]
bullus
Sr. Member
****
Offline Offline

Activity: 294


View Profile
August 07, 2014, 03:40:03 PM
 #39

Awesome Miner v1.0.4 has been released.

I used my batfile and that doesn't work, when using the sgminer.exe it is working.

Where can I insert these parameters? normaly it is in my bat-file
Code:
timeout /t 30
COLOR 0A
In the commandline it doesn't work
I just wanted to follow up on a few of the suggestions you had so far.

In Awesome Miner 1.0.4 you can execute these additional commands before the mining software is started. Open the properties for you Managed Miner, go to the "Command Line" section. Check "Execute additional command before starting the mining software" and enter the commands to be executed, for example:
Code:
COLOR 0A

For  Awesome Profit Switching, is it better to use the multi-multi switch port or the normal port?
The latest version supports both the TradeMyBit auto-closing multi port and the standard multi port.

In addition to that, you have a new setting in Options dialog, Online Services section, where you can enable "TradeMyBit signle-coin pool". When enabled, the Awesome Profit Switching feature can do profit switching between all TradeMyBit pools, for example Veilcoin pool on port 3498.

Please let me know if you have any other comments or suggestions for Awesome Miner. Thanks!

Very nice updates  Wink

Ok, I enable the TMB single-coin pool, but do u have to insert the coin/port for example Veilcoin into your pools?

One little odd thing , is that I use for nist5 (I=18) and the other algo using xIntensity, somehow when I switch to nist 5 , it never change to intensity, only using xIntensity.

awesome.conf
Code:
 ],
  "profiles": [
    {
      "name": "nist5 ",
      "gpu-engine": "1040",
      "gpu-fan": "70",
      "gpu-memclock": "1500",
      "gpu-powertune": "8",
      "gpu-threads": "2",
      "gpu-vddc": "1088",
      "shaders": "1792",
      "thread-concurrency": "8192",
      "worksize": "64",
      "intensity": "18"
    },
    {
      "name": "X11",
      "gpu-engine": "1040",
      "gpu-fan": "70",
      "gpu-memclock": "1500",
      "gpu-powertune": "8",
      "gpu-threads": "2",
      "gpu-vddc": "1088",
      "intensity": "18",
      "shaders": "1792",
      "thread-concurrency": "8192",
      "worksize": "64",
      "xintensity": "64"
    },
    {
      "name": "X13",
      "gpu-engine": "1040",
      "gpu-fan": "70",
      "gpu-memclock": "1500",
      "gpu-powertune": "8",
      "gpu-threads": "2",
      "gpu-vddc": "1088",
      "shaders": "1792",
      "thread-concurrency": "8192",
      "worksize": "64",
      "xintensity": "39"
    },
    {
      "name": "X15",
      "gpu-engine": "1040",
      "gpu-fan": "70",
      "gpu-memclock": "1500",
      "gpu-powertune": "8",
      "gpu-threads": "2",
      "gpu-vddc": "1088",
      "shaders": "1792",
      "thread-concurrency": "8192",
      "worksize": "64",
      "xintensity": "39"
    },
    {
      "name": "X11 test",
      "gpu-engine": "1040",
      "gpu-fan": "70",
      "gpu-memclock": "1500",
      "gpu-powertune": "8",
      "gpu-threads": "2",
      "gpu-vddc": "1088",
      "intensity": "18",
      "shaders": "1792",
      "worksize": "64",
      "xintensity": "64"
    }
  ],
  "api-port": "4028",
  "intensity": "18",
  "xintensity": "64",
  "gpu-engine": "1040",
  "gpu-fan": "70",
  "gpu-memclock": "1500",
  "gpu-powertune": "8",
  "gpu-vddc": "1088",
  "worksize": "64",
  "shaders": "1792",
  "failover-only": true,
  "gpu-threads": "2",
  "api-listen": true,
  "api-allow": "W:127.0.0.1/32",
  "expiry": "1",
  "log": "5",
  "queue": "1",
  "scan-time": "1",
  "temp-hysteresis": "3",
  "hamsi-expand-big": "4",
  "shares": "0",
  "no-restart": true,
  "failover-switch-delay": "30",
  "show-coindiff": true,
  "remove-disabled": true,
  "extranonce-subscription": true
}

If I only use sgminer without awesomeminer, it works. But now I had to change nist5 to xIntensity=120 otherwise low hashrates with nist 5.

btc 16LWhms487bzCxQWq5oeW8SMDPmU2rvQjf
bobsag3
Hero Member
*****
Offline Offline

Activity: 546

Owner, Minersource.net


View Profile
August 07, 2014, 03:48:16 PM
 #40

Looks like it is pulling the info- and is not pushing it to the GUI. I probably messed something up, but hey it tells me if they are on or off Smiley

Also.. possible to change up the settings on the webserver? Such as the address etc.
I made a change in version 1.0.2 to handle the fact that Antminers report "Last Share Time" in a strange way. I was hoping that this would solve the problem, but there might be another issue as well.

Could you send me your log file (AwesomeMiner.log) by e-mail? In the new version there is also a "Generate API report" feature that you can find if you first select the miner and click "View details...". Thanks!

The built-in web server can be configured in Options dialog, Web section. The port can be configured, but the address itself will always be your computer's IP and/or hostname. Even if the user interface only show you the Server address like "http://MyComputerName:17790", you can access it from any DNS name that points to your IP address, or directly using the IP address.

Looks like I had some issues Updating to 1.0.4, but after I got it to update the S3 are working fine and dandy now Smiley

As for the webserver, thanks for the info.
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 111 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!