<!--
 Copyright 2020 Google LLC

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manifest>

  <include name="flaky_repos.xml" />

  <remote  name="cos"
           fetch="https://cos.googlesource.com"
           review="https://cos-review.googlesource.com"  />
  <default remote="cos" revision="refs/heads/master" sync-j="8" />
  <notice>
Your sources have been sync'd successfully.
  </notice>

  <!-- mirrored cros_sdk dependencies -->
  <project path="chromite/infra/proto"
           name="mirrors/cros/chromiumos/infra/proto"
           revision="8a4833a0bfedd1acdb9ebda9b9045970b820d0e6" />
  <project path="chromite/third_party/pyelftools"
           name="mirrors/cros/chromiumos/third_party/pyelftools"
           revision="6fec9f599bef566fe8f6f6ca6c2102508b664792" />
  <project path="src/platform/crostestutils"
           name="mirrors/cros/chromiumos/platform/crostestutils"
           revision="0515327957ce2c1a4d816ed0a68bbdcdddb3d026" />
  <project path="src/third_party/autotest/files"
           name="mirrors/cros/chromiumos/third_party/autotest"
           revision="6311d895c7f41411cb43618793202a42555e60d5" />
  <project path="src/platform/dev"
           name="mirrors/cros/chromiumos/platform/dev-util"
           revision="c20010434ed180b67b404420979023fe3eb0047b" />
  <project path="src/third_party/toolchain-utils"
           name="mirrors/cros/chromiumos/third_party/toolchain-utils"
           revision="a7a19342ac9fe044cbf45a3aa618defca9db413f" />
  <project path="src/third_party/portage_tool"
           name="mirrors/cros/chromiumos/third_party/portage_tool"
           revision="ceeb0e9ff251cf1bdb92358371ec9e5d6d9f751c" />
  <project path="src/chromium/depot_tools"
           name="mirrors/cros/chromium/tools/depot_tools"
           revision="09f358bae36c316e3c4c39cd344de964bd0fed7c" />
  <project path="src/third_party/coreboot"
           name="mirrors/cros/chromiumos/third_party/coreboot"
           revision="925a3a4f5836e2f6f696975cf52c0ff6c86c9309" />
  <project path="src/third_party/modp_b64"
           name="mirrors/cros/aosp/platform/external/modp_b64"
           revision="269b6fb8401617b85e2dff7ae8a7b0f97613e2cd" />
  <project path="src/platform2"
           name="mirrors/cros/chromiumos/platform2"
           revision="65a5b18bfdcd883b6399b922e57a8f0fa9eb88ec" />
  <project path="infra_virtualenv"
           name="mirrors/cros/chromiumos/infra_virtualenv"
           revision="cab8a95f2961561eb56a95d6f2bfc685686db75a" />
  <project path="src/third_party/u-boot/files"
           name="mirrors/cros/chromiumos/third_party/u-boot"
           revision="39ce6d27ad29fd324793a8d0c7db8ae712cc027c" />

  <!-- COS sources -->
  <project path="src/overlays"
           name="cos/overlays/board-overlays" />
  <project path="src/third_party/portage-stable"
           name="third_party/overlays/portage-stable" />
  <project path="src/third_party/eclass-overlay"
           name="third_party/overlays/eclass-overlay" />
  <project path="src/third_party/chromiumos-overlay"
           sync-c="true"
           name="third_party/overlays/chromiumos-overlay" />
  <project path="src/scripts"
           name="third_party/platform/crosutils"
           revision="refs/heads/main" />
  <project path="chromite"
           name="third_party/chromite"
           revision="refs/heads/main" />
  <project path="src/platform/vboot_reference"
           name="third_party/platform/vboot_reference"
           revision="refs/heads/main" />
  <project path="src/compliance"
           name="cos/compliance"
           revision="refs/heads/main" />
  <project path="src/repohooks"
           name="cos/repohooks" />
  <project path="src/platform/cobble"
           name="cos/cobble" />
  <project path="manifest" name="cos/manifest" >
      <copyfile src="LICENSE" dest="LICENSE" />
  </project>
  <project path="src/third_party/policymanager"
           name="cos/policymanager"
           revision="refs/heads/main" />
  <project path="src/third_party/toolbox"
           name="third_party/toolbox"
           revision="refs/heads/main" />
  <project path="src/third_party/kernel/v5.4"
           name="third_party/kernel"
           revision="refs/heads/cos-5.4" />
  <project path="src/third_party/kernel/v5.10"
           name="third_party/kernel"
           revision="refs/heads/cos-5.10" />
  <project path="src/third_party/kernel/v5.15"
           name="third_party/kernel"
           revision="refs/heads/cos-5.15" />

  <repo-hooks enabled-list="pre-upload"
           in-project="cos/repohooks" />

</manifest>



