// Copyright 2014 The Android Open Source Project
//
// This software is licensed under the terms of the GNU General Public
// License version 2, as published by the Free Software Foundation, and
// may be copied, distributed, and modified under those terms.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

#ifndef ANDROID_FILESYSTEMS_TESTING_TEST_RAMDISK_IMAGE_H
#define ANDROID_FILESYSTEMS_TESTING_TEST_RAMDISK_IMAGE_H

/* Auto-generated by create_ramdisk_test_data.sh on 2014-07-15 - DO NOT EDIT!! */

static const unsigned char kTestRamdiskImage[] = {
  0x1f, 0x8b, 0x08, 0x00, 0xa7, 0xe0, 0xc4, 0x53, 0x02, 0x03, 0xed, 0x8f,
  0xcd, 0x0a, 0x82, 0x40, 0x14, 0x85, 0x67, 0xed, 0x53, 0xcc, 0xbc, 0xc1,
  0xbd, 0xfe, 0x8d, 0xdb, 0xd1, 0x46, 0x0a, 0x6c, 0x23, 0x41, 0x6b, 0xa3,
  0x31, 0x84, 0x61, 0x86, 0x4c, 0x0d, 0x7a, 0xfa, 0x34, 0x91, 0xa4, 0x45,
  0xe8, 0xba, 0xbe, 0xcd, 0x39, 0x03, 0x03, 0xdf, 0xb9, 0xc0, 0x81, 0x03,
  0x02, 0xa0, 0xf4, 0x50, 0x4a, 0xe8, 0x89, 0x50, 0x0c, 0x01, 0x61, 0x2a,
  0xe2, 0x21, 0xd1, 0x8b, 0x22, 0x18, 0xc1, 0xc0, 0x4b, 0x7c, 0x09, 0x82,
  0x8f, 0x4f, 0x37, 0x18, 0x33, 0x4d, 0xe0, 0x3b, 0xc1, 0x54, 0x4e, 0x45,
  0xed, 0x12, 0x92, 0x15, 0xb4, 0xab, 0x14, 0x55, 0xb7, 0x86, 0xb6, 0x86,
  0x6a, 0x6b, 0x2e, 0xb4, 0xd4, 0xaa, 0xed, 0x14, 0x6d, 0xea, 0xc2, 0x5c,
  0xdb, 0x4a, 0x6b, 0xe5, 0x10, 0x42, 0xe0, 0xbd, 0xcd, 0x85, 0x70, 0xdd,
  0x36, 0xe0, 0x0b, 0xb7, 0xf9, 0x53, 0x79, 0x58, 0xdb, 0x3b, 0xf7, 0xca,
  0xde, 0x19, 0x73, 0xe6, 0x6e, 0x94, 0x62, 0xa5, 0x7b, 0xb3, 0xd6, 0x5d,
  0xbe, 0xdc, 0x5b, 0xa5, 0xb5, 0xa5, 0x47, 0x5b, 0xeb, 0x33, 0x9b, 0xdf,
  0xbf, 0x88, 0xa5, 0xff, 0x3e, 0x89, 0xa7, 0x72, 0xc8, 0xc5, 0x2e, 0x93,
  0x39, 0x63, 0x8c, 0xfc, 0xf9, 0x19, 0x9e, 0x05, 0x57, 0xf3, 0x6c, 0x00,
  0x04, 0x00, 0x00
};

static const size_t kTestRamdiskImageSize = sizeof(kTestRamdiskImage);

#endif  // ANDROID_FILESYSTEMS_TESTING_TEST_RAMDISK_IMAGE_H
