<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Credits</title>
<style>
body {
  font-family:Helvetica,Arial,sans-serif;
  background-color:white;
  font-size:84%;
  max-width:1020px;
}
.page-title {
  font-size:164%;
  font-weight:bold;
}
.product {
  background-color:#c3d9ff;
  overflow:auto;
  padding:2px;
  margin-top:16px;
  border-radius:5px;
}
.product .title {
  font-size:110%;
  font-weight:bold;
  float:left;
  margin:3px;
}
.product .homepage {
  text-align:right;
  float:right;
  margin:3px;
}
.product .homepage:after {
  content:" - ";
}
.product .show {
  text-align:right;
  float:right;
  margin:3px;
}
.licence {
  clear:both;
  background-color:#e8eef7;
  padding:16px;
  border-radius:3px;
  display:none;
}
.licence pre {
  white-space: pre-wrap
}
.licence h3 {
  margin-top:0px;
}
.license-packages {
  font-size:80%;
}
</style>
<script>
//<![CDATA[
function toggle(o) {
  var licence = o.nextSibling;

  while (licence.className != 'licence') {
    if (!licence) return false;
    licence = licence.nextSibling;
  }
  toggleblock(licence, o);
}

function toggleblock(licence, o) {
  if (licence.style && licence.style.display == 'block') {
    licence.style.display = 'none';
    o.innerHTML = 'show license text';
  } else {
    licence.style.display = 'block';
    o.innerHTML = 'hide license text';
  }
  return false;
}

function toggleall() {
  var a = window.document.getElementsByClassName('licence');
  for (var i = 0; i < a.length; i++) {
    toggleblock(a[i], a[i].previousSibling.previousSibling.previousSibling.previousSibling);
  }
}
//]]>
</script>
</head>
<body>
<span class="page-title" style="float:left;">Credits</span>
<span style="float:right">
<a href="javascript:toggleall()">Toggle All</a>
<a href="javascript:window.print();">Print</a>
</span>
<div style="clear:both; overflow:auto;">
<h2>List of Packages used in Google Chrome OS:</h2>
<!-- Chromium <3s the following projects -->
{{entries}}
</div>

<h2>List of Shared Licenses used in Google Chrome OS:</h2>
{{licenses}}

<!-- Note that some packages included above are used during build, but not
shipped with ChromeOS proper /merlin -->
</body>
</html>
