/*
 * Copyright (c) 2021 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * 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
 *
 * 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.
 */

/******************************************************************************************************************
 * Model: keyword_spotting_ds_dnn_large_clustered_int8
 * Source: https://github.com/ARM-software/ML-zoo/blob/master/MODEL_LIST.md
 * Hexdump: python3 -c 'import numpy;i=numpy.load("input.npy");i.tofile("input.bin");' && xxd -i input.bin > input.h
 ******************************************************************************************************************/

unsigned char inputData[490] __attribute__((aligned(16), section("input_data_sec"))) = {
    0xe5, 0x4f, 0x7a, 0xab, 0x06, 0xef, 0x6e, 0xfa, 0x67, 0x82, 0xf3, 0x06, 0x49, 0x79, 0xe2, 0x0e, 0x1d, 0x6e, 0x6f,
    0x6f, 0xd2, 0xb5, 0x02, 0xc2, 0x40, 0xb5, 0xf9, 0x31, 0xc8, 0x9c, 0xd8, 0x0c, 0xe3, 0x0f, 0x1c, 0x5a, 0xb5, 0x56,
    0x7e, 0x09, 0xd7, 0x13, 0x9b, 0xf6, 0x34, 0xa7, 0x41, 0x91, 0x75, 0x67, 0xa1, 0x17, 0x4a, 0x8a, 0x86, 0x49, 0xe7,
    0xbf, 0x78, 0x40, 0x44, 0x0e, 0xaf, 0xa4, 0x3d, 0x24, 0x76, 0x9a, 0xef, 0x5e, 0x7b, 0xfc, 0x7a, 0x09, 0x13, 0x08,
    0xdf, 0xef, 0x13, 0x7a, 0x25, 0x06, 0x98, 0x6a, 0xd0, 0xea, 0xbd, 0xd9, 0x4c, 0x6b, 0xec, 0xee, 0xa1, 0x49, 0xd6,
    0x44, 0x57, 0x88, 0x8e, 0x62, 0xf8, 0xc8, 0x8d, 0xfe, 0x80, 0x79, 0xc1, 0x57, 0x09, 0x82, 0xcc, 0xa7, 0x19, 0x9a,
    0x58, 0xc5, 0x97, 0xe6, 0x13, 0xd1, 0xd1, 0x13, 0x35, 0xd0, 0x1e, 0x3b, 0x8f, 0x67, 0x7d, 0xa3, 0x1a, 0x69, 0xad,
    0xc8, 0xf1, 0x76, 0x02, 0x7e, 0x45, 0xf6, 0x59, 0x95, 0xd8, 0xa3, 0x9d, 0x83, 0xfd, 0x48, 0x74, 0x8b, 0x86, 0x1f,
    0xad, 0x5b, 0x4d, 0xe8, 0xb6, 0x39, 0xae, 0x5a, 0x95, 0xbf, 0xc2, 0x9f, 0x80, 0xae, 0x67, 0x71, 0xb9, 0x79, 0xbf,
    0x3a, 0xf8, 0xe1, 0x4d, 0xf9, 0x5b, 0x6b, 0xe5, 0xf8, 0xe0, 0xdf, 0x7c, 0x8c, 0x25, 0x98, 0xf2, 0x82, 0xbb, 0xd8,
    0x45, 0xe6, 0xc7, 0x78, 0x11, 0x48, 0x95, 0x85, 0xbd, 0xdf, 0x38, 0x46, 0x7c, 0xa3, 0x59, 0x53, 0xc1, 0xeb, 0x59,
    0xe9, 0x75, 0x2f, 0x7c, 0x68, 0x6a, 0x00, 0xf0, 0x5b, 0x61, 0x36, 0xbf, 0x33, 0x23, 0x80, 0xe3, 0xf5, 0xaa, 0x2d,
    0x68, 0x98, 0x2f, 0x48, 0xa3, 0xbc, 0x64, 0xd9, 0x68, 0xed, 0x39, 0xc1, 0x18, 0x31, 0x15, 0x88, 0xfe, 0x72, 0x60,
    0x59, 0xd0, 0xde, 0x73, 0x61, 0x76, 0xfc, 0x9e, 0x9c, 0x80, 0xce, 0xea, 0x51, 0xfe, 0x90, 0x71, 0x3f, 0xa1, 0xcb,
    0xc4, 0x79, 0x48, 0x61, 0x5b, 0xe0, 0xe2, 0x98, 0xe4, 0x6c, 0x3a, 0x28, 0xca, 0xc2, 0x5f, 0x8b, 0x8d, 0x1e, 0x75,
    0x9a, 0xde, 0x20, 0x9c, 0x67, 0x36, 0x14, 0x37, 0xf6, 0xf2, 0x08, 0xc9, 0xbd, 0x21, 0xf8, 0x54, 0x01, 0x34, 0xd4,
    0x8d, 0xef, 0xb8, 0xe4, 0xc0, 0x14, 0x4e, 0xad, 0x25, 0x5e, 0x14, 0x4f, 0x7c, 0x6d, 0x9f, 0xc8, 0x35, 0xa6, 0xbc,
    0x12, 0x52, 0xa0, 0x22, 0xe4, 0xf8, 0xfc, 0x95, 0x8f, 0x43, 0x0b, 0x7b, 0xf9, 0xc4, 0xc5, 0xc0, 0xf3, 0x44, 0x06,
    0x30, 0x38, 0x57, 0x1f, 0xf9, 0x02, 0x4f, 0x64, 0x7c, 0xfd, 0xed, 0x8f, 0xbb, 0xad, 0xae, 0x2b, 0xef, 0xe3, 0xfe,
    0xd7, 0xc9, 0x3d, 0x19, 0x76, 0x18, 0x1d, 0x12, 0xd7, 0xa2, 0xac, 0xb8, 0x5d, 0xbf, 0xc1, 0x7e, 0xd6, 0x41, 0x57,
    0x9b, 0xeb, 0x12, 0x1f, 0xa9, 0x79, 0x9c, 0x3a, 0xd1, 0x7f, 0x94, 0x0a, 0x52, 0xe1, 0xbf, 0x6e, 0xb5, 0x3d, 0xe5,
    0xbe, 0x22, 0xc4, 0xcb, 0xf1, 0x0c, 0x32, 0xeb, 0x98, 0xdf, 0x00, 0xea, 0x14, 0xf0, 0xa5, 0x2f, 0x21, 0x41, 0xf8,
    0xee, 0xf6, 0x10, 0x0f, 0x7e, 0x8a, 0xe3, 0x2b, 0xb7, 0x42, 0xdb, 0x88, 0x97, 0xd4, 0x3f, 0x0c, 0x52, 0x6d, 0x2e,
    0xed, 0x76, 0x37, 0xca, 0xaf, 0xfb, 0x9d, 0xb1, 0x1c, 0x6b, 0xb5, 0x71, 0xee, 0x72, 0xc1, 0xb6, 0x0f, 0x3a, 0xf3,
    0x38, 0x3b, 0xa3, 0x75, 0xbd, 0xf0, 0xf6, 0x86, 0x1a, 0xbc, 0x1c, 0x6a, 0x43, 0xe5, 0xcb, 0x7d, 0xd4, 0xf0, 0x5b,
    0xbe, 0xb1, 0x69, 0x1f, 0x1b, 0x9c, 0xdf, 0x19, 0xa3, 0x2e, 0xd6, 0x9b, 0xed, 0x90, 0x92};