Title: Privacy Policy
Information about your use of this website is collected using server access
logs and a tracking cookie. The collected information consists of the
following:

1. The IP address from which you access the website;
1. The type of browser and operating system you use to access our site;
1. The date and time you access our site;
1. The pages you visit; and
1. The addresses of pages from where you followed a link to our site.

Part of this information is gathered using a tracking cookie set by the [Google Analytics](http://www.google.com/analytics/)
 service and handled by Google as described in their [privacy policy|http://www.google.com/privacy.html]
. See your browser documentation for instructions on how to disable the
cookie if you prefer not to share this data with Google.

We use the gathered information to help us make our site more useful to
visitors and to better understand how and when our site is used. We do not
track or collect personally identifiable information or associate gathered
data with any personally identifying information from other sources.

By using this website, you consent to the collection of this data in the
manner and for the purpose described above.
