From f1f584cf550878f5e36988d459dc221a813504a0 Mon Sep 17 00:00:00 2001 From: AlanRen Date: Tue, 14 Mar 2023 04:30:54 -0600 Subject: [PATCH] HuaWei rtp --- .vscode/settings.json | 63 +- CMakeLists.txt | 69 +- sign.pcap | Bin 0 -> 41434 bytes sign.pcapng | Bin 0 -> 44336 bytes src/DecEnc/NALUdecode.cpp | 79 + src/DecEnc/NALUdecode.h | 84 +- src/DecEnc/base64.cpp | 223 ++ src/DecEnc/base64.h | 72 + src/Encrypt/BaseEncrypt.h | 1 + src/HuaWei/HWsign.cpp | 317 +++ src/HuaWei/HWsign.h | 15 + src/HuaWei/queue.h | 52 + src/SVAC/{ => src}/sm2sm3/big.c | 0 src/SVAC/{ => src}/sm2sm3/big.h | 0 src/SVAC/{ => src}/sm2sm3/ecc.c | 0 src/SVAC/{ => src}/sm2sm3/ecc.h | 0 src/SVAC/{ => src}/sm2sm3/sm2.c | 0 src/SVAC/{ => src}/sm2sm3/sm2.h | 0 src/SVAC/{ => src}/sm2sm3/sm3.c | 0 src/SVAC/{ => src}/sm2sm3/sm3.h | 0 src/SVAC/{ => src}/sm2sm3/sm4.c | 0 src/SVAC/{ => src}/sm2sm3/svac_dec.c | 0 src/SVAC/{ => src}/sm2sm3/typedef.h | 0 src/SVAC/{ => src}/sm2sm3_enc/big.c | 0 src/SVAC/{ => src}/sm2sm3_enc/big.h | 0 src/SVAC/{ => src}/sm2sm3_enc/ecc.c | 0 src/SVAC/{ => src}/sm2sm3_enc/ecc.h | 0 src/SVAC/{ => src}/sm2sm3_enc/random.c | 0 src/SVAC/{ => src}/sm2sm3_enc/random.h | 0 src/SVAC/{ => src}/sm2sm3_enc/sm2.c | 0 src/SVAC/{ => src}/sm2sm3_enc/sm2.h | 0 src/SVAC/{ => src}/sm2sm3_enc/sm3.c | 0 src/SVAC/{ => src}/sm2sm3_enc/sm3.h | 0 src/SVAC/{ => src}/sm2sm3_enc/sm4_enc.c | 0 src/SVAC/{ => src}/sm2sm3_enc/svac_enc.c | 58 +- src/SVAC/{ => src}/sm2sm3_enc/typedef.h | 0 src/SVAC/{ => src}/svac_src/SM2_SM3.h | 10 +- src/SVAC/{ => src}/svac_src/base64.c | 0 src/SVAC/{ => src}/svac_src/svac_dec.h | 0 src/SVAC/{ => src}/svac_src/svac_enc.h | 0 src/SVAC/{ => src}/svac_src/tool.c | 0 test/CMakeLists.txt | 2 +- test/data.h | 2806 ++++++++++++++++++++++ test/main.cpp | 570 ++--- test/main.cppbak | 506 ++++ 45 files changed, 4516 insertions(+), 411 deletions(-) create mode 100644 sign.pcap create mode 100644 sign.pcapng create mode 100644 src/DecEnc/base64.cpp create mode 100644 src/DecEnc/base64.h create mode 100644 src/HuaWei/HWsign.cpp create mode 100644 src/HuaWei/HWsign.h create mode 100644 src/HuaWei/queue.h rename src/SVAC/{ => src}/sm2sm3/big.c (100%) rename src/SVAC/{ => src}/sm2sm3/big.h (100%) rename src/SVAC/{ => src}/sm2sm3/ecc.c (100%) rename src/SVAC/{ => src}/sm2sm3/ecc.h (100%) rename src/SVAC/{ => src}/sm2sm3/sm2.c (100%) rename src/SVAC/{ => src}/sm2sm3/sm2.h (100%) rename src/SVAC/{ => src}/sm2sm3/sm3.c (100%) rename src/SVAC/{ => src}/sm2sm3/sm3.h (100%) rename src/SVAC/{ => src}/sm2sm3/sm4.c (100%) rename src/SVAC/{ => src}/sm2sm3/svac_dec.c (100%) rename src/SVAC/{ => src}/sm2sm3/typedef.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/big.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/big.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/ecc.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/ecc.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/random.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/random.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/sm2.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/sm2.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/sm3.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/sm3.h (100%) rename src/SVAC/{ => src}/sm2sm3_enc/sm4_enc.c (100%) rename src/SVAC/{ => src}/sm2sm3_enc/svac_enc.c (90%) rename src/SVAC/{ => src}/sm2sm3_enc/typedef.h (100%) rename src/SVAC/{ => src}/svac_src/SM2_SM3.h (61%) rename src/SVAC/{ => src}/svac_src/base64.c (100%) rename src/SVAC/{ => src}/svac_src/svac_dec.h (100%) rename src/SVAC/{ => src}/svac_src/svac_enc.h (100%) rename src/SVAC/{ => src}/svac_src/tool.c (100%) create mode 100644 test/data.h create mode 100644 test/main.cppbak diff --git a/.vscode/settings.json b/.vscode/settings.json index 930ff05..0d77b3b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,66 @@ { "files.associations": { - "*.tcc": "cpp" + "*.tcc": "cpp", + "functional": "cpp", + "fstream": "cpp", + "thread": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "array": "cpp", + "atomic": "cpp", + "strstream": "cpp", + "bitset": "cpp", + "chrono": "cpp", + "complex": "cpp", + "condition_variable": "cpp", + "cstdint": "cpp", + "deque": "cpp", + "list": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "iterator": "cpp", + "map": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "set": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "cfenv": "cpp", + "cinttypes": "cpp", + "typeindex": "cpp", + "typeinfo": "cpp", + "variant": "cpp", + "bit": "cpp" } } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e274ab..f7d7384 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,37 +24,55 @@ set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_C_FLAGS$ "${CMAKE_C_FLAGS} -fvisibility = hidden") set(CMAKE_CXX_FLAGS$ "${CMAKE_CXX_FLAGS} -fvisibility = hidden") - +set(SecMedia_Root ${CMAKE_CURRENT_SOURCE_DIR}/src) add_compile_options(-fPIC) add_compile_options(-fvisibility=hidden) #add_compile_options(-std=c++11) -add_compile_options(-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations -Wcast-align) +#add_compile_options(-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations -Wcast-align) include(GNUInstallDirs) include(GenerateExportHeader) + + +include_directories(${SecMedia_Root}/SVAC/src/svac_src) +#添加svac解密 +aux_source_directory(${SecMedia_Root}/SVAC/src/sm2sm3 src_DEC) +aux_source_directory(${SecMedia_Root}/SVAC/src/svac_src src_DEC) +add_library(SVAC_DEC STATIC ${src_DEC}) +#添加svac加密 +#include_directories(${DEC_ENC_Algorithm}/SVAC/svac_enc) +#file(GLOB src_DEC_ENC ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.c ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.h) +aux_source_directory(${SecMedia_Root}/SVAC/src/sm2sm3_enc src_ENC) +aux_source_directory(${SecMedia_Root}/SVAC/src/svac_src src_ENC) +add_library(SVAC_ENC STATIC ${src_ENC}) + +list(APPEND LINK_LIB_SVAC_LIST SVAC_DEC) +list(APPEND LINK_LIB_SVAC_LIST SVAC_ENC) + include_directories(include src) # add_definitions(-DGENERATE_EXPORT) -set(SecMedia_Root ${CMAKE_CURRENT_SOURCE_DIR}/src) -# file(GLOB SecMedia_src_list ${SecMedia_Root}/SVAC/./*.c ${SecMedia_Root}/SVAC/./*.h) -# # file(GLOB SecMedia_src_list ${SecMedia_Root}/*/*.cpp ${SecMedia_Root}/*/*.h ${SecMedia_Root}/*/*.c ${SecMedia_Root}/*/*/*.cpp ${SecMedia_Root}/*/*/*.h ${SecMedia_Root}/*/*/*.c) -# file(GLOB SecMedia_api_list ${CMAKE_CURRENT_SOURCE_DIR}/include/common.h) -# # # target_compile_options(${PROJECT_NAME} PRIVATE -fvisibility=hidden) +#file(GLOB SecMedia_src_list ${SecMedia_Root}/SVAC/./*.c ${SecMedia_Root}/SVAC/./*.h) +file(GLOB SecMedia_src_list ${SecMedia_Root}/*/*.cpp ${SecMedia_Root}/*/*.h ${SecMedia_Root}/*/*.c ${SecMedia_Root}/*/*/*.cpp ${SecMedia_Root}/*/*/*.h ${SecMedia_Root}/*/*/*.c) +file(GLOB SecMedia_api_list ${CMAKE_CURRENT_SOURCE_DIR}/include/common.h) -# add_library(${PROJECT_NAME} SHARED ${SecMedia_src_list}) -# #add_library(${PROJECT_NAME} STATIC ${SecMedia_src_list}) -# target_include_directories(${PROJECT_NAME} PRIVATE ${SecMedia_Root}/.) +# # target_compile_options(${PROJECT_NAME} PRIVATE -fvisibility=hidden) -# set_target_properties(${PROJECT_NAME} PROPERTIES -# VERSION ${PROJECT_VERSION} -# SOVERSION 1 -# PUBLIC_HEADER ${SecMedia_api_list} -# ) -# # CXX_VISIBILITY_PRESET hidden -# # CMAKE_C_FLAGS hidden) +#add_library(${PROJECT_NAME} SHARED ${SecMedia_src_list}) +add_library(${PROJECT_NAME} SHARED ${SecMedia_src_list}) +target_link_libraries(${PROJECT_NAME} ${LINK_LIB_SVAC_LIST}) +target_include_directories(${PROJECT_NAME} PRIVATE ${SecMedia_Root}/.) +set_target_properties(${PROJECT_NAME} PROPERTIES + VERSION ${PROJECT_VERSION} + SOVERSION 1 + PUBLIC_HEADER ${SecMedia_api_list} +) + # CXX_VISIBILITY_PRESET hidden + # CMAKE_C_FLAGS hidden) -# set(LINK_LIB_LIST ${PROJECT_NAME} ) +list(APPEND LINK_LIB_LIST ${PROJECT_NAME}) +#set(LINK_LIB_LIST ) #MESSAGE(STATUS ${SecMedia_api_list}) #configure_file(SecMedia.pc.in SecMedia.pc @ONLY) @@ -66,19 +84,6 @@ set(SecMedia_Root ${CMAKE_CURRENT_SOURCE_DIR}/src) -include_directories(${SecMedia_Root}/SVAC/svac_src) - #添加svac解密 - aux_source_directory(${SecMedia_Root}/SVAC/sm2sm3 src_DEC) - aux_source_directory(${SecMedia_Root}/SVAC/svac_src src_DEC) - add_library(SVAC_DEC STATIC ${src_DEC}) - #添加svac加密 - #include_directories(${DEC_ENC_Algorithm}/SVAC/svac_enc) - #file(GLOB src_DEC_ENC ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.c ${DEC_ENC_Algorithm}/SVAC/svac_enc/*/*.h) - aux_source_directory(${SecMedia_Root}/SVAC/sm2sm3_enc src_ENC) - aux_source_directory(${SecMedia_Root}/SVAC/svac_src src_ENC) - add_library(SVAC_ENC STATIC ${src_ENC}) - - list(APPEND LINK_LIB_LIST SVAC_DEC) - list(APPEND LINK_LIB_LIST SVAC_ENC) + add_subdirectory(test) \ No newline at end of file diff --git a/sign.pcap b/sign.pcap new file mode 100644 index 0000000000000000000000000000000000000000..41031409169db74b5c7f987ef40476b6bb285c61 GIT binary patch literal 41434 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 W$2frfA2||0_XB)vh@%4VIsXsn@b_Q< literal 0 HcmV?d00001 diff --git a/sign.pcapng b/sign.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..6354e6cf7716ff4f9a1a3ec282a4feca831ac246 GIT binary patch literal 44336 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 z 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 + return -1; + } + len_ptr=ptr;// *ptr = 16 + 1; // payload size = 16(uuid)+ 1(sec bit) + ptr++; + + *ptr = SecrityLevel << 6; // payload for sec + ptr++; + + memcpy(ptr, uuid, 16); //base 64 ("SEC VID PROT") + ptr += 16; + //vkek version (reserved) + ptr += 4; + //enc vek (reserved) + ptr += 16; + //raw video data len + *(ptr++)=vid_len>>24; + *(ptr++)=vid_len>>16; + *(ptr++)=vid_len>>8; + *(ptr++)=vid_len; + //sign len + *(ptr++)=sign_len; + //sign + if(sign_len!=0 && sign){ + memcpy(ptr, sign, sign_len); + ptr += sign_len; + } + + *len_ptr=ptr-len_ptr-1; //figure out payload len + *ptr = 0x80; //rbsp trailing bits + ptr++; + + auto len=int(ptr - SEIdata); + memcpy(dst,SEIdata,len); + + return len; + } + int GeneSecritySEI(uint8_t* dst, CodecId code_type, uint8_t SecrityLevel) { char SEIdata[26] = { 0x00,0x00,0x00,0x01,0x00 }; diff --git a/src/DecEnc/NALUdecode.h b/src/DecEnc/NALUdecode.h index d4671b7..e092810 100644 --- a/src/DecEnc/NALUdecode.h +++ b/src/DecEnc/NALUdecode.h @@ -4,7 +4,17 @@ namespace SecMedia { - + enum class DecryptType{ + NONE=15, + SM1=0, + SM4=1, + RSA=2, + AES=3, + SVACEnc=4, + SVACDec=5, + SM3, + SM2_auth + }; struct NALUdecodeInfo { @@ -75,6 +85,78 @@ namespace SecMedia int GeneSecritySEI(uint8_t* dst, CodecId code_type, uint8_t SecrityLevel); int DecSecuritySEI(uint8_t* frame,size_t len,uint8_t prefix,CodecId code); + int GeneHWSecritySEI(uint8_t* dst, CodecId code_type, uint8_t SecrityLevel,uint32_t vid_len, uint8_t sign_len,uint8_t* sign,char* rtp_head,uint16_t rtp_len); + enum class Hi_Packed_type_e{ + Reserved=0, + FUA=1, + SINGLE=2 +}; + +enum class Hi_Encrypt_type_e{ + Reserved=0, + Full_encrypt=3, +}; +//decrypt descriptor +struct Hi_Dec_Des_Sub_t{ + uint8_t def_version[2]; +#ifdef BIG_ENDIAN + uint8_t encrypt_arithmetic:4; + uint8_t packed_type:4; + uint8_t key_length:4; + uint8_t encrypt_round:4; +#else + uint8_t packed_type:4; + uint8_t encrypt_arithmetic:4; + uint8_t encrypt_round:4; + uint8_t key_length:4; +#endif + uint8_t encrypt_type; + uint8_t reserved=0x01; +}; +struct Hi_Dec_Des_t{ + uint8_t descriptor_tag; + uint8_t descriptor_length=sizeof(Hi_Dec_Des_Sub_t); + Hi_Dec_Des_Sub_t data; +}; + +struct Hi_Sec_t +{ + uint8_t head[4]; //0x00 00 00 01 +#ifdef BIG_ENDIAN + uint8_t sign_flag:4; + uint8_t encrypt_flag:4; +#else + uint8_t encrypt_flag:4; + uint8_t sign_flag:4; +#endif + uint8_t sec_frame_len[3];//视频安全编码数据的总长度 + uint8_t raw_nal_head; //NAL 禁止位(1bit) NAL 优先级(2bit) NAL类型(5bit) + uint8_t reserve[3]; +}; + +struct Hi_Enc_t +{ + uint8_t device_id[32]; + uint8_t vkek_version[20]; + uint8_t vek[32]; + uint8_t encrypt_type[2]; + uint8_t shift_bit; + uint8_t reserver; + uint8_t IV[16]; +}; + +struct Hi_Sec_Enc_t +{ + Hi_Sec_t info; + Hi_Enc_t Enc; +}; + +struct Hi_Sec_Enc_Sign_t +{ + Hi_Sec_t info; + Hi_Enc_t Enc; + uint8_t sign_data[64]; +}; } diff --git a/src/DecEnc/base64.cpp b/src/DecEnc/base64.cpp new file mode 100644 index 0000000..58cb1fb --- /dev/null +++ b/src/DecEnc/base64.cpp @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @brief Base64 encode/decode + * @author Ryan Martell (with lots of Michael) + */ + +//#include "common.h" +#include "stdio.h" +#include "base64.h" +#include +#include +/* ---------------- private code */ +static const uint8_t map2[] = +{ + 0x3e, 0xff, 0xff, 0xff, 0x3f, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33 +}; + +int av_base64_decode(uint8_t *out, const char *in, int out_size) +{ + int i, v; + uint8_t *dst = out; + uint8_t shift=0; + v = 0; + for (i = 0; in[i] && in[i] != '='; i++) { + unsigned int index= in[i+shift]-43; + // if(in[i+shift]=='%'){ + // if (in[i+2+shift]=='B') + // { + // shift+=2; + // index='+'-43;; + // }else if (in[i+2+shift]=='F') + // { + // shift+=2; + // index='/'-43; + // }else + // { + // return -1; + // } + // } + + if (index>=FF_ARRAY_ELEMS(map2) || map2[index] == 0xff) + return -1; + v = (v << 6) + map2[index]; + if (i & 3) { + if (dst - out < out_size) { + *dst++ = v >> (6 - 2 * (i & 3)); + } + } + } + + return dst - out; +} + +/***************************************************************************** +* b64_encode: Stolen from VLC's http.c. +* Simplified by Michael. +* Fixed edge cases and made it work from data (vs. strings) by Ryan. +*****************************************************************************/ + +char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size) +{ + static const char b64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + char *ret, *dst,tmp; + unsigned i_bits = 0; + int i_shift = 0; + int bytes_remaining = in_size; + if (in_size >= UINT_MAX / 4 || out_size < AV_BASE64_SIZE(in_size)) + { + return NULL; + } + ret = dst = out; + while (bytes_remaining) { + i_bits = (i_bits << 8) + *in++; + bytes_remaining--; + i_shift += 8; + + do { + tmp=b64[(i_bits << 6 >> i_shift) & 0x3f]; + // printf("%c",tmp); + // if (tmp=='+') + // { + // *dst++='%'; + // *dst++='2'; + // *dst++='B'; + // }else if (tmp=='/') + // { + // *dst++='%'; + // *dst++='2'; + // *dst++='F'; + // }else + // { + *dst++ = tmp; + // } + + i_shift -= 6; + } while (i_shift > 6 || (bytes_remaining == 0 && i_shift > 0)); + } + while ((dst - ret) & 3) + *dst++ = '='; + *dst = '\0'; + + return ret; +} + +string encodeBase64(const string &txt){ + if(txt.empty()){ + return ""; + } + int size = AV_BASE64_SIZE(txt.size()) + 10; + std::shared_ptr txt_enc(new char[size],[](char *ptr){delete [] ptr;}); + auto ret = av_base64_encode(txt_enc.get(),size,(uint8_t *)txt.data(),txt.size()); + if(!ret ){ + return ""; + } + return ret; +} + +string decodeBase64(const string &txt){ + if(txt.empty()){ + return ""; + } + int size = txt.size() * 3 / 4 +10; + std::shared_ptr txt_dec(new char[size],[](char *ptr){delete [] ptr;}); + size = av_base64_decode((uint8_t *)txt_dec.get(),txt.data(),size); + if(size <= 0){ + return ""; + } + return string(txt_dec.get(),size); +} + +#ifdef TEST + +#undef printf + +#define MAX_DATA_SIZE 1024 +#define MAX_ENCODED_SIZE 2048 + +static int test_encode_decode(const uint8_t *data, unsigned int data_size, + const char *encoded_ref) +{ + char encoded[MAX_ENCODED_SIZE]; + uint8_t data2[MAX_DATA_SIZE]; + int data2_size, max_data2_size = MAX_DATA_SIZE; + + if (!av_base64_encode(encoded, MAX_ENCODED_SIZE, data, data_size)) { + printf("Failed: cannot encode the input data\n"); + return 1; + } + if (encoded_ref && strcmp(encoded, encoded_ref)) { + printf("Failed: encoded string differs from reference\n" + "Encoded:\n%s\nReference:\n%s\n", encoded, encoded_ref); + return 1; + } + + if ((data2_size = av_base64_decode(data2, encoded, max_data2_size)) < 0) { + printf("Failed: cannot decode the encoded string\n" + "Encoded:\n%s\n", encoded); + return 1; + } + if (memcmp(data2, data, data_size)) { + printf("Failed: encoded/decoded data differs from original data\n"); + return 1; + } + + printf("Passed!\n"); + return 0; +} + +int main(void) +{ + int i, error_count = 0; + struct test { + const uint8_t *data; + const char *encoded_ref; + } tests[] = { + { "", ""}, + { "1", "MQ=="}, + { "22", "MjI="}, + { "333", "MzMz"}, + { "4444", "NDQ0NA=="}, + { "55555", "NTU1NTU="}, + { "666666", "NjY2NjY2"}, + { "abc:def", "YWJjOmRlZg=="}, + }; + + printf("Encoding/decoding tests\n"); + for (i = 0; i < FF_ARRAY_ELEMS(tests); i++) + error_count += test_encode_decode(tests[i].data, strlen(tests[i].data), tests[i].encoded_ref); + + return error_count; +} + +#endif diff --git a/src/DecEnc/base64.h b/src/DecEnc/base64.h new file mode 100644 index 0000000..071113f --- /dev/null +++ b/src/DecEnc/base64.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com) + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) +#ifndef AVUTIL_BASE64_H +#define AVUTIL_BASE64_H + +#include +#include +using namespace std; + +/** + * Decode a base64-encoded string. + * + * @param out buffer for decoded data + * @param in null-terminated input string + * @param out_size size in bytes of the out buffer, must be at + * least 3/4 of the length of in + * @return number of bytes written, or a negative value in case of + * invalid input + */ +int av_base64_decode(uint8_t *out, const char *in, int out_size); + +/** + * Encode data to base64 and null-terminate. + * + * @param out buffer for encoded data + * @param out_size size in bytes of the output buffer, must be at + * least AV_BASE64_SIZE(in_size) + * @param in_size size in bytes of the 'in' buffer + * @return 'out' or NULL in case of error + */ +char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); + +/** + * Calculate the output size needed to base64-encode x bytes. + */ +#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) + + +/** + * 编码base64 + * @param txt 明文 + * @return 密文 + */ +string encodeBase64(const string &txt); + +/** + * 解码base64 + * @param txt 密文 + * @return 明文 + */ +string decodeBase64(const string &txt); + +#endif /* AVUTIL_BASE64_H */ diff --git a/src/Encrypt/BaseEncrypt.h b/src/Encrypt/BaseEncrypt.h index be4aef4..c438188 100644 --- a/src/Encrypt/BaseEncrypt.h +++ b/src/Encrypt/BaseEncrypt.h @@ -10,6 +10,7 @@ #include "common.h" #include "DecEnc/aes/AesOfb.h" #include "DecEnc/NALUdecode.h" + using namespace std; #define random(a,b) (rand()%(b-a)+a) namespace SecMedia diff --git a/src/HuaWei/HWsign.cpp b/src/HuaWei/HWsign.cpp new file mode 100644 index 0000000..3d17e56 --- /dev/null +++ b/src/HuaWei/HWsign.cpp @@ -0,0 +1,317 @@ + +#include +#include +#include +#include "common.h" +#include "HuaWei/HWsign.h" +#include "SVAC/src/svac_src/svac_dec.h" +#include "SVAC/src/svac_src/SM2_SM3.h" +#include "SVAC/src/sm2sm3/sm2.h" +#include "DecEnc/NALUdecode.h" +#include "DecEnc/base64.h" +#include "HuaWei/queue.h" +using namespace std; +struct SM2Config{ + char prikey_size; + char pubkey_size; + uint8_t prikey[64]; + uint8_t pubkey[128]; +}; +struct HWsign{ + uint32_t seq_accu; + uint32_t stamp; + string* buff; + uint8_t buff_offest; + list,void *>>* rtp_buff; + sm3_ctx * sm3_hd; + SM2Config * sm2_hd; + char sei_rtp_head[16]; + void * sei_param; + function rtp_cb ; + ThreadsafeQueue,void *>>* buff_que; + uint8_t tcp; + uint32_t in; + uint32_t out; + int32_t I_seq; +}; + +typedef struct { + unsigned S :1; + unsigned E :1; + unsigned R :1; + unsigned type :5; +} FU; + +void print_data2(const char * buf, uint32_t len,uint8_t offest){ + printf("\n --%d-- \n",len); + for (int num = 0; num < offest; num++) + { + printf("%02X ", (uint8_t)buf[num]); + } + printf(", "); + for (int num = offest; num < 20; num++) + { + printf("%02X ", (uint8_t)buf[num]); + } + + printf("\n ---- \n"); +} + +void print_rtp2(const char * buf, uint32_t len,uint8_t offest){ + uint8_t mask=0; + uint16_t seq=0; + uint32_t stamp=0; + mask=(uint8_t)*(buf+1)>>7; + memcpy(&seq, buf + 2, 2); + seq= ntohs(seq); + memcpy(&stamp, buf + 4, 4); + stamp= ntohl(stamp); + printf("seq %d stamp %d mask %d",seq,stamp,mask); + print_data2(buf,len,offest); +} + +static bool MakeFU(uint8_t in, FU &fu) { + fu.S = in >> 7; + fu.E = (in >> 6) & 0x01; + fu.R = (in >> 5) & 0x01; + fu.type = in & 0x1f; + if (fu.R != 0) { + return false; + } + return true; +} + +// void * HWSign_init(const function rtp_callback){ +void * HWSign_init(){ + HWsign* HWSign_hd= new HWsign(); + HWSign_hd->I_seq=-1; + HWSign_hd->in=0; + HWSign_hd->out=0; + HWSign_hd->seq_accu=0; + HWSign_hd->stamp=0; + HWSign_hd->buff_offest=0; + HWSign_hd->sm3_hd=new sm3_ctx(); + HWSign_hd->sm2_hd=new SM2Config(); + HWSign_hd->buff=new string(); + HWSign_hd->rtp_buff = new list,void *>>(); + HWSign_hd->buff_que =new ThreadsafeQueue,void *>>(); + // HWSign_hd->rtp_cb=rtp_callback; + HWSign_hd->rtp_cb=[HWSign_hd](const char * rtp_ptr, const uint32_t rtp_len,void * param){ + + printf("\n========================= output ====== "); + print_rtp2(rtp_ptr,rtp_len,12); + auto str_ptr=make_shared(rtp_ptr,rtp_len); + HWSign_hd->buff_que->push(make_pair(str_ptr,param)); + + }; + sm3_init(HWSign_hd->sm3_hd); + SM2Config sm2fig={ + 32, + 64, + { + 0x24,0x88,0xc8,0xdc,0x7f,0xd7,0xe0,0x91,0x30,0x1b,0x5c,0x58,0x2f,0xe7,0x44,0x7d, + 0x2f,0x43,0xe4,0xee,0xc8,0x7d,0xc0,0xfb,0xa4,0xb8,0x7d,0x4b,0x8a,0x69,0x7c,0x4e + }, + { + 0xaa,0xb1,0x3f,0xd7,0x66,0xe2,0x75,0x97,0xc0,0x03,0xe6,0xe4,0x1d,0x77,0x54,0x78, + 0xc8,0x29,0xb2,0x0b,0x9e,0xd1,0xff,0xa3,0x6a,0x6f,0xd2,0x7f,0xd6,0x2d,0xaa,0x3f, + 0xc9,0x24,0xec,0x6c,0x96,0x0a,0x7b,0x73,0xf6,0xe6,0xfc,0xda,0x3a,0x08,0xfd,0x92, + 0xfc,0x00,0x08,0x97,0x78,0x2c,0x71,0x6b,0xe1,0x26,0xf5,0x1e,0xba,0x31,0xf5,0xb2, + } + }; + HWSign_hd->sm2_hd->prikey_size=32; + HWSign_hd->sm2_hd->pubkey_size=64; + memcpy(HWSign_hd->sm2_hd->prikey,sm2fig.prikey,sizeof(sm2fig.prikey)); + memcpy(HWSign_hd->sm2_hd->pubkey,sm2fig.pubkey,sizeof(sm2fig.pubkey)); + return (void*)HWSign_hd; +} + +void HWSign_release(void* Handle){ + HWsign* HWSign_hd=(HWsign*) Handle; + delete HWSign_hd->sm3_hd; + delete HWSign_hd->sm2_hd; + delete HWSign_hd->buff; + delete HWSign_hd->rtp_buff; + HWSign_hd->rtp_cb=nullptr; +} + +uint16_t get_sequence(const char * rtp ,int tcp){ + uint16_t seq; + if(tcp){ + memcpy(&seq, rtp + 2 + 4, 2); + }else{ + memcpy(&seq, rtp + 2 + 0, 2); + } + return htons(seq); +} + +void send_rtp(HWsign* Handle,const char * buf, const uint32_t len ,int tcp,void * param){ + char * send_buff=(char *)malloc(len); + uint8_t offset,offset2; + uint16_t seq; + memcpy(send_buff,buf,len); + if (tcp) + { + offset2=16; + offset=4; + send_buff[2] = (len-4) >> 8; + send_buff[3] = (len-4) & 0x00FF; + }else + { + offset2=12; + offset=0; + } + memcpy(&seq, buf + 2 + offset, 2); + seq=ntohs(seq)+Handle->seq_accu; + seq=htons(seq); + memcpy(send_buff+offset+2, &seq, 2); + + // printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ modify @@@@@@@@@ id %d ",id); + // print_rtp2(send_buff,len,offset2); + + Handle->rtp_cb(send_buff,len,param); + free(send_buff); +} +void sign_data(HWsign* Handle,const char * buf, const uint32_t len,uint8_t offset,int tcp,void * param,const char * sei_head){ + uint8_t sha[128],sign[128],sei[1024]; + sm3_update(Handle->sm3_hd,(uint8_t*)buf+offset,len-offset); + sm3_final(Handle->sm3_hd,sha); + do_sm2_sign((char*)Handle->sm2_hd->prikey,(char*)Handle->sm2_hd->pubkey,(char *) sha, 32, (char *)sign); + Handle->sei_param=nullptr; + auto rtp_len=SecMedia::GeneHWSecritySEI(sei,CodecId::CodecH264,0,len,64,sign,(char *)sei_head,offset); + printf("Warning!!!!!!!!!! sei package\n"); + send_rtp(Handle,(char *) sei,rtp_len,tcp,param); + // Handle->seq_accu++; +} +void none_sign_data(HWsign* Handle,uint8_t offset,int tcp,void * param,const char * sei_head){ + uint8_t sei[1024]; + auto rtp_len=SecMedia::GeneHWSecritySEI(sei,CodecId::CodecH264,0,0,64,nullptr,(char *)sei_head,offset); + Handle->sei_param=nullptr; + printf("Warning!!!!!!!!!! none sei package\n"); + send_rtp(Handle,(char *) sei,rtp_len,tcp,param); +} +int HWSign_rtp_out(void* Handle, char * buf, uint32_t * len, void ** param){ + HWsign* HWSign_hd=(HWsign*) Handle; + if (HWSign_hd->buff_que->empty()) return -1; + auto element= HWSign_hd->buff_que->pop(); + *len=(uint32_t) element.first->size(); + memcpy(buf,element.first->data(),*len); + *param=element.second; + HWSign_hd->out++; + + printf("HWSign: in %d out %d \n",HWSign_hd->in,HWSign_hd->out); + return 1; +} + +void flush_all(HWsign* HWSign_hd){ + auto rtp_list=*(HWSign_hd->rtp_buff); + for(auto& rtp_sig : rtp_list){ + HWSign_hd->rtp_cb(rtp_sig.first->data(),rtp_sig.first->size(),rtp_sig.second); + // send_rtp(HWSign_hd,rtp_sig.first->data(),rtp_sig.first->size(),HWSign_hd->tcp,rtp_sig.second); + } + HWSign_hd->buff->clear(); + HWSign_hd->rtp_buff->clear(); + printf("Warning!!!!!!!!!! flush all\n"); +} + +int HWSign_rtp_input(void* Handle, const char * buf, const uint32_t len,int tcp, void * param){ + HWsign* HWSign_hd=(HWsign*) Handle; + if(!HWSign_hd || !HWSign_hd->rtp_cb || !HWSign_hd->sm3_hd || !HWSign_hd->sm2_hd || !HWSign_hd->buff) { + throw runtime_error("HWSign_rtp initial error"); + return -1; + } + HWSign_hd->in++; + printf("input: in %d out %d \n",HWSign_hd->in,HWSign_hd->out); + tcp=0; + HWSign_hd->tcp=tcp; + uint8_t offset; + if (tcp) offset=16; + else offset=12; + if (len<=offset) { + HWSign_hd->rtp_cb(buf,len,param); + return -1; + } + const char * rtp=buf+offset; + int length = len- offset; + int nal_type = *rtp & 0x1F; + int nal_suffix = *rtp & (~0x1F); + + uint16_t now_seq= get_sequence(buf,tcp); + printf("\n###### input ##########################"); + print_rtp2(buf,len,offset); + // send_rtp(HWSign_hd,buf,len,tcp,id); + // return 1; + // HWSign_hd->rtp_cb(buf,len,id); + // return 1; + + if (nal_type == 5 || nal_type == 7 || nal_type == 8 ) { + //a full frame + // send_rtp(HWSign_hd,buf,len,tcp,id); + HWSign_hd->rtp_cb(buf,len,param); + return 1; + } + + switch (nal_type){ + case 6:{ + memcpy(HWSign_hd->sei_rtp_head,buf,offset); + HWSign_hd->sei_param=param; + return 1; + } + case 28:{ + FU fu; + MakeFU((uint8_t)rtp[1], fu); + + if (fu.type!=5) + { + HWSign_hd->rtp_cb(buf,len,param); + // send_rtp(HWSign_hd,buf,len,tcp,param); + return 1; + } + if (fu.S) { //第一个rtp包 + if(!HWSign_hd->buff->empty()){ + printf("Warning!!!!!!!!!! missing package\n"); + if (HWSign_hd->sei_param!=nullptr) + { + none_sign_data(HWSign_hd,offset,tcp, HWSign_hd->sei_param,HWSign_hd->sei_rtp_head); + } + + flush_all(HWSign_hd); + } + printf("!!!!!!!!!! I head\n"); + HWSign_hd->I_seq=now_seq; + auto rtp_str=make_shared(buf,len); + HWSign_hd->rtp_buff->push_back(make_pair(rtp_str,param)); + HWSign_hd->buff->assign(buf,len); + return 1; + } + + if(HWSign_hd->I_seq>=0){ + auto rtp_str=make_shared(buf,len); + HWSign_hd->rtp_buff->push_back(make_pair(rtp_str,param)); + + if (!fu.E) { //中间rtp包 + HWSign_hd->buff->append(rtp,length); + return 1; + } + + HWSign_hd->buff->append(rtp,length); + if (HWSign_hd->sei_param!=nullptr) + { + sign_data(HWSign_hd,HWSign_hd->buff->data(),HWSign_hd->buff->size(),offset, tcp,HWSign_hd->sei_param,HWSign_hd->sei_rtp_head); + } + flush_all(HWSign_hd); + HWSign_hd->I_seq=-1; + return 1; + }else{ + HWSign_hd->rtp_cb(buf,len,param); + return 1; + } + + + } + default:{ + HWSign_hd->rtp_cb(buf,len,param); + return 1; + } + } +} \ No newline at end of file diff --git a/src/HuaWei/HWsign.h b/src/HuaWei/HWsign.h new file mode 100644 index 0000000..4363a84 --- /dev/null +++ b/src/HuaWei/HWsign.h @@ -0,0 +1,15 @@ + +#ifndef _HWSIGN_H +#define _HWSIGN_H + +#include +#include +#include +#define API_EXPORT __attribute__((visibility("default"))) +// void * HWSign_init(const std::function rtp_callback); +API_EXPORT void * HWSign_init(); +API_EXPORT void HWSign_release(void* Handle); +API_EXPORT int HWSign_rtp_input(void* Handle, const char * buf, const uint32_t len,int tcp, void * param); +API_EXPORT int HWSign_rtp_out(void* Handle, char * buf, uint32_t * len, void ** param); + +#endif /* _DECRYPT_H */ \ No newline at end of file diff --git a/src/HuaWei/queue.h b/src/HuaWei/queue.h new file mode 100644 index 0000000..84a5270 --- /dev/null +++ b/src/HuaWei/queue.h @@ -0,0 +1,52 @@ +#include +#include +#include +#include +template +class ThreadsafeQueue { + std::queue queue_; + mutable std::mutex mutex_; + + // Moved out of public interface to prevent races between this + // and pop(). + bool empty() const { + return queue_.empty(); + } + + public: + ThreadsafeQueue() = default; + ThreadsafeQueue(const ThreadsafeQueue &) = delete ; + ThreadsafeQueue& operator=(const ThreadsafeQueue &) = delete ; + + ThreadsafeQueue(ThreadsafeQueue&& other) { + std::lock_guard lock(mutex_); + queue_ = std::move(other.queue_); + } + + virtual ~ThreadsafeQueue() { } + + unsigned long size() const { + std::lock_guard lock(mutex_); + return queue_.size(); + } + + T pop() { + std::lock_guard lock(mutex_); + if (queue_.empty()) { + return {}; + } + T tmp = queue_.front(); + queue_.pop(); + return tmp; + } + + void push(const T &item) { + std::lock_guard lock(mutex_); + queue_.push(item); + } + + bool empty(){ + std::lock_guard lock(mutex_); + return queue_.empty(); + } +}; diff --git a/src/SVAC/sm2sm3/big.c b/src/SVAC/src/sm2sm3/big.c similarity index 100% rename from src/SVAC/sm2sm3/big.c rename to src/SVAC/src/sm2sm3/big.c diff --git a/src/SVAC/sm2sm3/big.h b/src/SVAC/src/sm2sm3/big.h similarity index 100% rename from src/SVAC/sm2sm3/big.h rename to src/SVAC/src/sm2sm3/big.h diff --git a/src/SVAC/sm2sm3/ecc.c b/src/SVAC/src/sm2sm3/ecc.c similarity index 100% rename from src/SVAC/sm2sm3/ecc.c rename to src/SVAC/src/sm2sm3/ecc.c diff --git a/src/SVAC/sm2sm3/ecc.h b/src/SVAC/src/sm2sm3/ecc.h similarity index 100% rename from src/SVAC/sm2sm3/ecc.h rename to src/SVAC/src/sm2sm3/ecc.h diff --git a/src/SVAC/sm2sm3/sm2.c b/src/SVAC/src/sm2sm3/sm2.c similarity index 100% rename from src/SVAC/sm2sm3/sm2.c rename to src/SVAC/src/sm2sm3/sm2.c diff --git a/src/SVAC/sm2sm3/sm2.h b/src/SVAC/src/sm2sm3/sm2.h similarity index 100% rename from src/SVAC/sm2sm3/sm2.h rename to src/SVAC/src/sm2sm3/sm2.h diff --git a/src/SVAC/sm2sm3/sm3.c b/src/SVAC/src/sm2sm3/sm3.c similarity index 100% rename from src/SVAC/sm2sm3/sm3.c rename to src/SVAC/src/sm2sm3/sm3.c diff --git a/src/SVAC/sm2sm3/sm3.h b/src/SVAC/src/sm2sm3/sm3.h similarity index 100% rename from src/SVAC/sm2sm3/sm3.h rename to src/SVAC/src/sm2sm3/sm3.h diff --git a/src/SVAC/sm2sm3/sm4.c b/src/SVAC/src/sm2sm3/sm4.c similarity index 100% rename from src/SVAC/sm2sm3/sm4.c rename to src/SVAC/src/sm2sm3/sm4.c diff --git a/src/SVAC/sm2sm3/svac_dec.c b/src/SVAC/src/sm2sm3/svac_dec.c similarity index 100% rename from src/SVAC/sm2sm3/svac_dec.c rename to src/SVAC/src/sm2sm3/svac_dec.c diff --git a/src/SVAC/sm2sm3/typedef.h b/src/SVAC/src/sm2sm3/typedef.h similarity index 100% rename from src/SVAC/sm2sm3/typedef.h rename to src/SVAC/src/sm2sm3/typedef.h diff --git a/src/SVAC/sm2sm3_enc/big.c b/src/SVAC/src/sm2sm3_enc/big.c similarity index 100% rename from src/SVAC/sm2sm3_enc/big.c rename to src/SVAC/src/sm2sm3_enc/big.c diff --git a/src/SVAC/sm2sm3_enc/big.h b/src/SVAC/src/sm2sm3_enc/big.h similarity index 100% rename from src/SVAC/sm2sm3_enc/big.h rename to src/SVAC/src/sm2sm3_enc/big.h diff --git a/src/SVAC/sm2sm3_enc/ecc.c b/src/SVAC/src/sm2sm3_enc/ecc.c similarity index 100% rename from src/SVAC/sm2sm3_enc/ecc.c rename to src/SVAC/src/sm2sm3_enc/ecc.c diff --git a/src/SVAC/sm2sm3_enc/ecc.h b/src/SVAC/src/sm2sm3_enc/ecc.h similarity index 100% rename from src/SVAC/sm2sm3_enc/ecc.h rename to src/SVAC/src/sm2sm3_enc/ecc.h diff --git a/src/SVAC/sm2sm3_enc/random.c b/src/SVAC/src/sm2sm3_enc/random.c similarity index 100% rename from src/SVAC/sm2sm3_enc/random.c rename to src/SVAC/src/sm2sm3_enc/random.c diff --git a/src/SVAC/sm2sm3_enc/random.h b/src/SVAC/src/sm2sm3_enc/random.h similarity index 100% rename from src/SVAC/sm2sm3_enc/random.h rename to src/SVAC/src/sm2sm3_enc/random.h diff --git a/src/SVAC/sm2sm3_enc/sm2.c b/src/SVAC/src/sm2sm3_enc/sm2.c similarity index 100% rename from src/SVAC/sm2sm3_enc/sm2.c rename to src/SVAC/src/sm2sm3_enc/sm2.c diff --git a/src/SVAC/sm2sm3_enc/sm2.h b/src/SVAC/src/sm2sm3_enc/sm2.h similarity index 100% rename from src/SVAC/sm2sm3_enc/sm2.h rename to src/SVAC/src/sm2sm3_enc/sm2.h diff --git a/src/SVAC/sm2sm3_enc/sm3.c b/src/SVAC/src/sm2sm3_enc/sm3.c similarity index 100% rename from src/SVAC/sm2sm3_enc/sm3.c rename to src/SVAC/src/sm2sm3_enc/sm3.c diff --git a/src/SVAC/sm2sm3_enc/sm3.h b/src/SVAC/src/sm2sm3_enc/sm3.h similarity index 100% rename from src/SVAC/sm2sm3_enc/sm3.h rename to src/SVAC/src/sm2sm3_enc/sm3.h diff --git a/src/SVAC/sm2sm3_enc/sm4_enc.c b/src/SVAC/src/sm2sm3_enc/sm4_enc.c similarity index 100% rename from src/SVAC/sm2sm3_enc/sm4_enc.c rename to src/SVAC/src/sm2sm3_enc/sm4_enc.c diff --git a/src/SVAC/sm2sm3_enc/svac_enc.c b/src/SVAC/src/sm2sm3_enc/svac_enc.c similarity index 90% rename from src/SVAC/sm2sm3_enc/svac_enc.c rename to src/SVAC/src/sm2sm3_enc/svac_enc.c index 5806a3e..8214106 100644 --- a/src/SVAC/sm2sm3_enc/svac_enc.c +++ b/src/SVAC/src/sm2sm3_enc/svac_enc.c @@ -3,7 +3,7 @@ #include #include -#include "svac_enc.h" +// #include "svac_enc.h" #include "sm3.h" #include "sm2.h" @@ -55,28 +55,28 @@ struct vkek_info struct sec_param { - /* ȫ */ - int encrypt_flag; //Ƿ - int encrypt_type; //㷨 - int auth_flag; //Ƿǩ - int auth_type; //ǩ㷨 - int hash_type; //ɢ㷨 - int vek_flag; //Ƿevek - int vek_encrypt_type; //vek㷨 + /* ��ȫ���������� */ + int encrypt_flag; //�Ƿ���� + int encrypt_type; //�����㷨 + int auth_flag; //�Ƿ�ǩ�� + int auth_type; //ǩ���㷨 + int hash_type; //ɢ���㷨 + int vek_flag; //�Ƿ����evek + int vek_encrypt_type; //vek�����㷨 char evek[32]; //evek - int vek_len; //vek + int vek_len; //vek���� char vkek_version[128]; //vkek version - int version_len; //vkek version - int iv_flag; //Ƿiv + int version_len; //vkek version���� + int iv_flag; //�Ƿ����iv char iv[32]; //iv - int iv_len; //iv + int iv_len; //iv���� int only_IDR; // sign only for idr int hash_period; // sign period frame }; struct hash_cache { - /* һgop256֡ */ + /* һ��gop���256֡ */ char hash[32]; int frame_num; }; @@ -85,9 +85,9 @@ struct svac_handle { int magic; - /* sm2 Կ */ + /* sm2 ��Կ */ char sm2_pubkey[64]; - /* sm2 ԿǷ */ + /* sm2 ��Կ�Ƿ����� */ int sm_pubkey_flag; char sm2_prikey[32]; @@ -108,16 +108,16 @@ struct svac_handle /* current frame is IDR frame */ int idr_flag; - /* current frame sec nalu */ + /* current frame ���� sec nalu */ int sec_nalu_flag; - /* current frame auth nalu */ + /* current frame ���� auth nalu */ int auth_nalu_flag; - /* ǰʹõİȫ */ + /* ��ǰʹ�õİ�ȫ���� */ struct sec_param curr_param; - /* յİȫ */ + /* ���յ��İ�ȫ���� */ struct sec_param new_param; - /* ȫ±ʶµGOPʼ */ + /* ��ȫ�������±�ʶ���µ�GOP��ʼ���� */ int sec_param_update_flag; int vkek_start; @@ -128,8 +128,8 @@ struct svac_handle struct hash_cache cache[HASH_CACHE_NUM]; int cache_idx; // 0 ~ HASH_CACHE_NUM - 1 - char camera_id[64]; //id - char camera_idc[19]; //֤id + char camera_id[64]; //����id + char camera_idc[19]; //֤��id }; #define CHECK_HANDLE(h) \ @@ -182,7 +182,7 @@ static unsigned int write_long_data_bits(unsigned int data, unsigned int write_l int loop; unsigned int first_write_len = write_len & 7; - /* һֽڵĵfirst_write_len*/ + /* ����һ�ֽڵĵ�first_write_len����*/ if (first_write_len) offset = write_bits((unsigned char)((data >> (write_len - first_write_len)) & ((1 <auth_nalu_flag = 1; else if (SVAC_PPS_SLICE == h->nalu[h->nalu_num].type) { - /* ppsĵһֽ֡ svac2.0 p23 */ + /* pps�ĵ�һ���ֽ���֡�� svac2.0 p23 */ h->frame_num = (unsigned char)start[5]; //PRINT_INFO("frame %d\n", h->frame_num); } @@ -303,7 +303,7 @@ static int svac_parse_nalu(struct svac_handle *h, char *frame_data, int frame_le return 0; } -/* svac ľ */ +/* ���� svac �ľ����� */ static int do_add_racing_Code(char *ptr, int *len, int offset) { int i, find = 0, start = offset; @@ -353,7 +353,7 @@ static int do_add_racing_Code(char *ptr, int *len, int offset) } -/* ȥ svac ľ */ +/* ȥ�� svac �ľ����� */ static int do_remove_racing_code(char *ptr, int *len, int offset) { int i, find = 0, start; @@ -420,7 +420,7 @@ static int calc_nalu_hash(struct svac_handle *h) break; } - /* ûǩnalu */ + /* û��ǩ����nalu */ if (i >= h->nalu_num) return 0; @@ -920,7 +920,7 @@ int SvacEncProcess(void *handle, char *in_buff, int in_len, char *out_buff, int if (h->idr_flag && h->sec_param_update_flag) update_new_enc_param(h); - /* a bypass */ + /* �����a������ bypass */ if (!h->curr_param.auth_flag && !h->curr_param.encrypt_flag) return make_bypass_frame(h, out_buff, out_len); diff --git a/src/SVAC/sm2sm3_enc/typedef.h b/src/SVAC/src/sm2sm3_enc/typedef.h similarity index 100% rename from src/SVAC/sm2sm3_enc/typedef.h rename to src/SVAC/src/sm2sm3_enc/typedef.h diff --git a/src/SVAC/svac_src/SM2_SM3.h b/src/SVAC/src/svac_src/SM2_SM3.h similarity index 61% rename from src/SVAC/svac_src/SM2_SM3.h rename to src/SVAC/src/svac_src/SM2_SM3.h index e60f18e..06293a4 100644 --- a/src/SVAC/svac_src/SM2_SM3.h +++ b/src/SVAC/src/svac_src/SM2_SM3.h @@ -25,12 +25,12 @@ struct sm3_ctx { u8 opad[64]; /*!< HMAC: outer padding */ }; /* */ -EXT_API int do_sm2_sign(char *prikey, char *pubkey, char *data_addr, int data_len, char *sign_addr); -EXT_API int do_sm2_verify(char *pubkey, char *data_addr, int data_len, char *sign_addr); +int do_sm2_sign(char *prikey, char *pubkey, char *data_addr, int data_len, char *sign_addr); +int do_sm2_verify(char *pubkey, char *data_addr, int data_len, char *sign_addr); -EXT_API int sm3_init(struct sm3_ctx *ctx); -EXT_API int sm3_update(struct sm3_ctx *ctx, const u8 *input, u32 ilen); -EXT_API int sm3_final(struct sm3_ctx *ctx, u8 *output); +int sm3_init(struct sm3_ctx *ctx); +int sm3_update(struct sm3_ctx *ctx, const u8 *input, u32 ilen); +int sm3_final(struct sm3_ctx *ctx, u8 *output); #ifdef __cplusplus } #endif diff --git a/src/SVAC/svac_src/base64.c b/src/SVAC/src/svac_src/base64.c similarity index 100% rename from src/SVAC/svac_src/base64.c rename to src/SVAC/src/svac_src/base64.c diff --git a/src/SVAC/svac_src/svac_dec.h b/src/SVAC/src/svac_src/svac_dec.h similarity index 100% rename from src/SVAC/svac_src/svac_dec.h rename to src/SVAC/src/svac_src/svac_dec.h diff --git a/src/SVAC/svac_src/svac_enc.h b/src/SVAC/src/svac_src/svac_enc.h similarity index 100% rename from src/SVAC/svac_src/svac_enc.h rename to src/SVAC/src/svac_src/svac_enc.h diff --git a/src/SVAC/svac_src/tool.c b/src/SVAC/src/svac_src/tool.c similarity index 100% rename from src/SVAC/svac_src/tool.c rename to src/SVAC/src/svac_src/tool.c diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cc17c25..e98f896 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,6 @@ include_directories(../include) -file(GLOB test_src_list ./*.cpp ./*.h) +file(GLOB test_src_list ./*.cpp ./*.h ../include/*.h) MESSAGE(STATUS ${test_src_list}) diff --git a/test/data.h b/test/data.h new file mode 100644 index 0000000..d1ec081 --- /dev/null +++ b/test/data.h @@ -0,0 +1,2806 @@ +/* Frame (214 bytes) */ +static const unsigned char pkt1[214] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0xc8, 0xdb, 0x36, 0x40, 0x00, 0x40, 0x11, /* ...6@.@. */ +0xc5, 0xc9, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x22, 0x32, 0x00, 0x00, 0xb4, /* ..N"2... */ +0x73, 0x78, 0x80, 0x88, 0xbc, 0xa2, 0x00, 0x8a, /* sx...... */ +0x6e, 0x34, 0x0b, 0x89, 0xfa, 0x94, 0x55, 0x55, /* n4....UU */ +0x55, 0x55, 0x55, 0x55, 0xd5, 0xd5, 0x55, 0x55, /* UUUU..UU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, /* UUUUUUU. */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* UUU..... */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0x55, 0xd5, 0x55, 0x55, 0xd5, 0xd5, 0xd5, 0x55, /* U.UU...U */ +0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xd5, /* .UUUUU.. */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, /* ...UUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0xd5, 0x55, 0x55, 0x55, 0x55, /* UUU.UUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, /* UUUUUUU. */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5 /* ...... */ +}; + +/* Frame (70 bytes) */ +static const unsigned char pkt2[70] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0x38, 0xdb, 0x37, 0x40, 0x00, 0x40, 0x11, /* .8.7@.@. */ +0xc6, 0x58, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* .X...... */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x00, 0x24, /* ..N 2..$ */ +0xb0, 0xa7, 0x80, 0x63, 0x8c, 0xee, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x67, 0x42, /* V..S..gB */ +0x00, 0x2a, 0x96, 0x35, 0x40, 0xf0, 0x04, 0x4f, /* .*.5@..O */ +0xcb, 0x37, 0x01, 0x01, 0x01, 0x02 /* .7.... */ +}; + +/* Frame (60 bytes) */ +static const unsigned char pkt3[60] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0x2c, 0xdb, 0x38, 0x40, 0x00, 0x40, 0x11, /* .,.8@.@. */ +0xc6, 0x63, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* .c...... */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x00, 0x18, /* ..N 2... */ +0x26, 0x5a, 0x80, 0x63, 0x8c, 0xef, 0x06, 0x15, /* &Z.c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x68, 0xce, /* V..S..h. */ +0x31, 0xb2, 0x00, 0x00 /* 1... */ +}; + +/* Frame (60 bytes) */ +static const unsigned char pkt4[60] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0x2d, 0xdb, 0x39, 0x40, 0x00, 0x40, 0x11, /* .-.9@.@. */ +0xc6, 0x61, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* .a...... */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x00, 0x19, /* ..N 2... */ +0x37, 0xff, 0x80, 0x63, 0x8c, 0xf0, 0x06, 0x15, /* 7..c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x06, 0xe5, /* V..S.... */ +0x01, 0xf3, 0x80, 0x00 /* .... */ +}; + +/* Frame (1471 bytes) */ +static const unsigned char pkt5[1471] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb1, 0xdb, 0x3a, 0x40, 0x00, 0x40, 0x11, /* ...:@.@. */ +0xc0, 0xdc, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9d, /* ..N 2... */ +0x33, 0x3e, 0x80, 0x63, 0x8c, 0xf1, 0x06, 0x15, /* 3>.c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x85, /* V..S..|. */ +0xb8, 0x00, 0x00, 0x2b, 0x0e, 0x00, 0x00, 0x03, /* ...+.... */ +0x03, 0x1c, 0x44, 0x48, 0xa0, 0x00, 0x20, 0x87, /* ..DH.. . */ +0x1f, 0x5e, 0xa7, 0xd6, 0xaf, 0x53, 0xea, 0xd7, /* .^...S.. */ +0xa9, 0xf5, 0xeb, 0xd5, 0xff, 0xff, 0xfc, 0x28, /* .......( */ +0x2a, 0x0d, 0x49, 0x65, 0xd2, 0xfe, 0x5f, 0xff, /* *.Ie.._. */ +0x87, 0x98, 0xf1, 0xff, 0xb9, 0x42, 0x54, 0xba, /* .....BT. */ +0xe5, 0xff, 0x91, 0x61, 0x63, 0x57, 0xe5, 0xf2, /* ...acW.. */ +0x84, 0x27, 0x15, 0x93, 0xff, 0xff, 0xff, 0xb7, /* .'...... */ +0xcb, 0xc1, 0x41, 0xa1, 0x72, 0xbf, 0x83, 0x54, /* ..A.r..T */ +0xb5, 0x11, 0x17, 0xf4, 0xff, 0xa7, 0xef, 0x7c, /* .......| */ +0xfa, 0xb5, 0xf7, 0xdf, 0x7d, 0xf7, 0xcf, 0xde, /* ....}... */ +0xf5, 0x7d, 0xf7, 0xcf, 0xab, 0x5f, 0x7a, 0xbe, /* .}..._z. */ +0xf9, 0xf5, 0x7b, 0xef, 0xbe, 0xf5, 0x7d, 0xf7, /* ..{...}. */ +0xab, 0xe7, 0xfd, 0x7a, 0xbe, 0xfb, 0xef, 0xb9, /* ...z.... */ +0x04, 0x38, 0xfb, 0xd4, 0x92, 0xab, 0xef, 0xb9, /* .8...... */ +0x1a, 0x78, 0x70, 0x4f, 0x50, 0x42, 0x55, 0xff, /* .xpOPBU. */ +0xd3, 0xfb, 0xd5, 0xf3, 0xfa, 0xbd, 0x5f, 0x3e, /* ......_> */ +0xbf, 0xbe, 0xfb, 0xd5, 0xe2, 0xe7, 0xf5, 0xff, /* ........ */ +0xff, 0xc1, 0x18, 0xa1, 0x1c, 0x9a, 0x5d, 0xff, /* ......]. */ +0xf5, 0xf9, 0x6b, 0xdf, 0xbf, 0x38, 0x71, 0x13, /* ..k..8q. */ +0x88, 0x1e, 0x36, 0x97, 0x88, 0x1e, 0x7c, 0x2c, /* ..6...|, */ +0x0c, 0x96, 0x93, 0x48, 0x92, 0xb9, 0xf7, 0xeb, /* ...H.... */ +0xef, 0x9f, 0xb5, 0xea, 0xfb, 0xef, 0x73, 0xf7, /* ......s. */ +0xbe, 0xe2, 0x01, 0x28, 0xce, 0x83, 0xcc, 0x14, /* ...(.... */ +0x79, 0xae, 0x70, 0xa0, 0xab, 0xc2, 0xcf, 0x3c, /* y.p....< */ +0x43, 0x41, 0x12, 0x8a, 0x36, 0xb9, 0x81, 0x4d, /* CA..6..M */ +0x2c, 0xec, 0x0c, 0x72, 0xf8, 0x98, 0xaa, 0x79, /* ,..r...y */ +0xc8, 0x24, 0x89, 0x1f, 0x64, 0xf2, 0x90, 0x49, /* .$..d..I */ +0xab, 0xef, 0x9f, 0x17, 0xab, 0xd4, 0xf8, 0xbb, /* ........ */ +0xde, 0x2e, 0xf1, 0x73, 0xc8, 0x1f, 0x02, 0x83, /* ...s.... */ +0xff, 0xff, 0xf0, 0xd1, 0x17, 0xa8, 0xd2, 0xdb, /* ........ */ +0x95, 0x9b, 0xfe, 0x18, 0x84, 0x05, 0x28, 0xde, /* ......(. */ +0x47, 0xff, 0xfe, 0x60, 0x5f, 0x4f, 0xff, 0x3f, /* G..`_O.? */ +0x43, 0x32, 0xf8, 0x5c, 0x7a, 0x8a, 0xfd, 0x3e, /* C2.\z..> */ +0x68, 0x89, 0xc4, 0x73, 0xf3, 0xca, 0xd4, 0x51, /* h..s...Q */ +0xf0, 0xc0, 0x1f, 0x9d, 0x16, 0xbf, 0x5a, 0xf7, /* ......Z. */ +0xb8, 0x65, 0xc4, 0x62, 0x39, 0xdf, 0xff, 0xe5, /* .e.b9... */ +0x82, 0x11, 0x50, 0xa0, 0xaf, 0xe5, 0xff, 0xf8, /* ..P..... */ +0x29, 0x83, 0xdf, 0xf8, 0x9f, 0x9a, 0x15, 0x08, /* )....... */ +0x48, 0x04, 0xda, 0x7b, 0x39, 0x3a, 0x7e, 0xbf, /* H..{9:~. */ +0xf5, 0x1a, 0xa2, 0x75, 0xa9, 0x75, 0x7a, 0xb2, /* ...u.uz. */ +0x45, 0xdf, 0x6e, 0xaf, 0x57, 0xab, 0xef, 0x68, /* E.n.W..h */ +0x23, 0x10, 0x3d, 0x73, 0xff, 0xfa, 0xed, 0x2f, /* #.=s.../ */ +0x2b, 0x7d, 0x13, 0xff, 0xfc, 0x88, 0x08, 0x54, /* +}.....T */ +0x79, 0x7e, 0x45, 0xf6, 0xfe, 0x83, 0xcc, 0xb1, /* y~E..... */ +0xf4, 0xc4, 0xd3, 0xd1, 0x2a, 0xd6, 0x55, 0x95, /* ....*.U. */ +0x6d, 0x6d, 0x6f, 0xbe, 0xfb, 0x25, 0x5f, 0x7d, /* mmo..%_} */ +0x92, 0xaf, 0x95, 0x65, 0x59, 0x79, 0x75, 0x3f, /* ...eYyu? */ +0x79, 0x7b, 0xe5, 0xef, 0x97, 0x97, 0xbd, 0x4b, /* y{.....K */ +0xcb, 0xda, 0xca, 0x4c, 0xbd, 0xf6, 0xf5, 0x21, /* ...L...! */ +0x7a, 0x96, 0xbb, 0xef, 0x96, 0x4a, 0x96, 0x5e, /* z....J.^ */ +0xf8, 0xf8, 0x83, 0xe7, 0xa7, 0xb7, 0xfe, 0x3b, /* .......; */ +0x1d, 0xd3, 0xa7, 0xff, 0x4f, 0x26, 0x81, 0xa8, /* ....O&.. */ +0x9a, 0x5a, 0xe4, 0x26, 0x96, 0x96, 0x96, 0x55, /* .Z.&...U */ +0xb5, 0xb5, 0xff, 0x1f, 0xfa, 0x21, 0x62, 0x06, /* .....!b. */ +0xb0, 0x42, 0x14, 0xbd, 0x32, 0xc9, 0x20, 0x69, /* .B..2. i */ +0xe2, 0x48, 0x78, 0x26, 0x26, 0x6f, 0x54, 0x4d, /* .Hx&&oTM */ +0x3d, 0x75, 0xd6, 0xeb, 0x72, 0x13, 0x4b, 0x4b, /* =u..r.KK */ +0x64, 0xce, 0x84, 0x04, 0xf7, 0x43, 0xcb, 0x31, /* d....C.1 */ +0xb0, 0x44, 0xe0, 0xd6, 0x67, 0x52, 0x93, 0x2a, /* .D..gR.* */ +0x4e, 0x91, 0xc2, 0x5f, 0x44, 0x79, 0xfc, 0x3e, /* N.._Dy.> */ +0x88, 0x59, 0x92, 0x4c, 0x83, 0x9e, 0x24, 0xe1, /* .Y.L..$. */ +0x7f, 0x8b, 0xa9, 0x65, 0x89, 0xf5, 0x6e, 0xea, /* ...e..n. */ +0x5a, 0x73, 0x75, 0x20, 0x87, 0x0b, 0xb6, 0x72, /* Zsu ...r */ +0x56, 0xa5, 0x42, 0x86, 0xb8, 0x69, 0x05, 0x01, /* V.B..i.. */ +0xab, 0x0a, 0x41, 0x2d, 0x3c, 0xbf, 0xf4, 0x33, /* ..A-<..3 */ +0xfa, 0x17, 0xd8, 0x6c, 0x7e, 0x16, 0x69, 0x7c, /* ...l~.i| */ +0x14, 0x7c, 0x6c, 0x66, 0xbc, 0xb6, 0xbe, 0x62, /* .|lf...b */ +0x0b, 0xe5, 0x1e, 0xc4, 0x07, 0x69, 0x9f, 0x2c, /* .....i., */ +0x25, 0x87, 0xde, 0x2b, 0x34, 0x20, 0xff, 0x2a, /* %..+4 .* */ +0x61, 0x97, 0xff, 0xfe, 0x52, 0x05, 0x45, 0x77, /* a...R.Ew */ +0x8a, 0xdc, 0x6f, 0x19, 0x11, 0x7f, 0xfa, 0x20, /* ..o.... */ +0xf6, 0x41, 0xb1, 0xa7, 0xf6, 0xff, 0xe1, 0x38, /* .A.....8 */ +0xf0, 0x3a, 0x25, 0xf7, 0xdf, 0xff, 0x6a, 0xd4, /* .:%...j. */ +0xa4, 0xa9, 0x71, 0x77, 0xa9, 0x5d, 0x5e, 0xad, /* ..qw.]^. */ +0xd5, 0xea, 0xf5, 0x72, 0x2b, 0x90, 0x79, 0x7f, /* ...r+.y. */ +0x26, 0xf9, 0x78, 0x20, 0x5c, 0xbd, 0xce, 0x3d, /* &.x \..= */ +0xdf, 0x29, 0x64, 0xdf, 0x20, 0x78, 0xdd, 0xb3, /* .)d. x.. */ +0x45, 0x8a, 0xfa, 0xd6, 0xde, 0x9e, 0xb5, 0x7d, /* E......} */ +0xf7, 0xdf, 0x6b, 0x7d, 0xf4, 0xf5, 0xd6, 0xab, /* ..k}.... */ +0xae, 0xb5, 0x7d, 0xad, 0x2d, 0x3d, 0x75, 0xd7, /* ..}.-=u. */ +0x5a, 0xbe, 0xfa, 0xeb, 0xae, 0xb5, 0x7d, 0xbd, /* Z.....}. */ +0xf4, 0xc9, 0x52, 0x89, 0x79, 0xa4, 0x1e, 0xb8, /* ..R.y... */ +0xd0, 0x89, 0x08, 0x14, 0x1f, 0x7f, 0xfe, 0xdb, /* ........ */ +0x63, 0xf6, 0x7f, 0xfa, 0x69, 0xe9, 0xa7, 0xff, /* c...i... */ +0xff, 0x21, 0x08, 0x84, 0xdf, 0x29, 0x32, 0xc8, /* .!...)2. */ +0x92, 0x21, 0x6d, 0xd4, 0x7c, 0x40, 0xde, 0xfd, /* .!m.|@.. */ +0xbf, 0xff, 0xfd, 0x71, 0xe7, 0x90, 0x3d, 0x4b, /* ...q..=K */ +0x72, 0x66, 0x18, 0x91, 0x09, 0xae, 0x89, 0xa5, /* rf...... */ +0xae, 0x47, 0xbe, 0xb6, 0xcb, 0xda, 0xc9, 0x10, /* .G...... */ +0x92, 0x89, 0xa2, 0x5c, 0x8b, 0x68, 0x40, 0x5d, /* ...\.h@] */ +0x94, 0x45, 0x2e, 0xa8, 0x9a, 0x5b, 0xef, 0x98, /* .E...[.. */ +0x97, 0x7a, 0x26, 0xf7, 0x2f, 0x2f, 0x22, 0xcb, /* .z&.//". */ +0xb6, 0x42, 0x6d, 0x5c, 0xa8, 0x41, 0xb0, 0xab, /* .Bm\.A.. */ +0x29, 0x32, 0xac, 0xa4, 0x56, 0x9b, 0x8f, 0xc6, /* )2..V... */ +0x1a, 0xfa, 0x7f, 0xfd, 0xa4, 0x0f, 0xb0, 0xa4, /* ........ */ +0xa4, 0xd3, 0x1e, 0xf3, 0x94, 0xd8, 0x79, 0x4c, /* ......yL */ +0x49, 0xe4, 0xe5, 0x88, 0x2f, 0x13, 0x96, 0xea, /* I.../... */ +0x57, 0x36, 0x1b, 0x13, 0x63, 0xb5, 0x09, 0xac, /* W6..c... */ +0x5f, 0xfd, 0x07, 0x13, 0x78, 0xad, 0xf8, 0x8b, /* _...x... */ +0x49, 0xb8, 0xef, 0xff, 0xb7, 0xff, 0xf8, 0x6d, /* I......m */ +0xac, 0xf7, 0xd7, 0xca, 0xbb, 0x5f, 0xf9, 0x08, /* ....._.. */ +0x26, 0x38, 0x82, 0xbf, 0xd7, 0xeb, 0x34, 0x2d, /* &8....4- */ +0x0b, 0x7f, 0xf6, 0x1f, 0x26, 0xdf, 0xff, 0xe4, /* ....&... */ +0x45, 0x20, 0x26, 0x2f, 0x19, 0x5e, 0x14, 0x57, /* E &/.^.W */ +0x22, 0xc8, 0x1f, 0x9e, 0xf8, 0x4a, 0x5c, 0xbf, /* "....J\. */ +0x3f, 0x06, 0x56, 0x10, 0xc1, 0x23, 0xe1, 0xdf, /* ?.V..#.. */ +0xdf, 0xdf, 0x91, 0xb4, 0xe7, 0xa7, 0xd3, 0xce, /* ........ */ +0xc2, 0xa9, 0xfb, 0xf5, 0x16, 0x2e, 0xdd, 0x4b, /* .......K */ +0x22, 0x89, 0x95, 0x5a, 0x59, 0x15, 0xa2, 0x8b, /* "..ZY... */ +0xb2, 0x6c, 0x95, 0x3a, 0x20, 0xbb, 0xc7, 0x93, /* .l.: ... */ +0xff, 0xfe, 0xff, 0xf2, 0xfc, 0x90, 0xa3, 0x75, /* .......u */ +0x5f, 0x2f, 0xbe, 0x45, 0xff, 0xf6, 0x25, 0xa7, /* _/.E..%. */ +0x7e, 0xb7, 0x5f, 0xff, 0xf2, 0x2c, 0x28, 0xb8, /* ~._..,(. */ +0x9f, 0x37, 0xf1, 0x0c, 0x58, 0xa7, 0xd5, 0xd7, /* .7..X... */ +0x4a, 0xad, 0x69, 0xeb, 0xae, 0xba, 0xeb, 0x56, /* J.i....V */ +0xb6, 0xb7, 0xde, 0xaf, 0xbe, 0xfa, 0xeb, 0x57, /* .......W */ +0xdf, 0x6b, 0x6b, 0x4e, 0xaf, 0xae, 0xba, 0xd5, /* .kkN.... */ +0xf2, 0xf7, 0xd7, 0x5d, 0x3d, 0x74, 0xc8, 0x28, /* ...]=t.( */ +0xcd, 0x2d, 0xa5, 0x43, 0x82, 0x8a, 0x8e, 0x9c, /* .-.C.... */ +0x7a, 0xef, 0xfb, 0xff, 0x6a, 0x10, 0xbc, 0xb8, /* z...j... */ +0x7d, 0x01, 0xbf, 0xa6, 0xdb, 0xff, 0xb7, 0xc2, /* }....... */ +0x04, 0x20, 0x49, 0xe0, 0x37, 0xff, 0x6f, 0xd2, /* . I.7.o. */ +0x38, 0x21, 0xfd, 0x04, 0x62, 0x6b, 0xbe, 0x54, /* 8!..bk.T */ +0x49, 0x09, 0x49, 0x22, 0xc7, 0xbf, 0xed, 0xff, /* I.I".... */ +0xe5, 0x88, 0x39, 0xa5, 0x29, 0x4c, 0x49, 0x2d, /* ..9.)LI- */ +0x72, 0x72, 0x3d, 0xf5, 0xdf, 0x7d, 0xac, 0xa8, /* rr=..}.. */ +0x92, 0xb2, 0xd7, 0x7c, 0x91, 0x06, 0xd7, 0x87, /* ...|.... */ +0x1f, 0x8b, 0xb6, 0x88, 0x26, 0xb7, 0x5b, 0xb2, /* ....&.[. */ +0x5d, 0xf7, 0xc9, 0xdf, 0x2f, 0x6f, 0x2e, 0xe5, /* ].../o.. */ +0xef, 0x93, 0x92, 0x43, 0x61, 0x49, 0xbe, 0x5e, /* ...CaI.^ */ +0xe4, 0x97, 0x57, 0xda, 0xdf, 0x2b, 0xdf, 0x2a, /* ..W..+.* */ +0xab, 0x45, 0x91, 0x16, 0xde, 0x52, 0x6d, 0xe1, /* .E...Rm. */ +0x38, 0xa0, 0xec, 0x9b, 0xbe, 0x0e, 0xd0, 0x89, /* 8....... */ +0xc3, 0xe2, 0xf1, 0x36, 0x2a, 0x3f, 0x00, 0x65, /* ...6*?.e */ +0xd9, 0xf0, 0xeb, 0xdf, 0xff, 0xfa, 0x7e, 0x4e, /* ......~N */ +0xdc, 0xbf, 0xe4, 0x08, 0xba, 0x89, 0x20, 0x93, /* ...... . */ +0x91, 0x68, 0x42, 0x47, 0xf9, 0x7f, 0xff, 0xcf, /* .hBG.... */ +0xf4, 0xa7, 0xc3, 0xc6, 0x5e, 0x46, 0x41, 0xa4, /* ....^FA. */ +0x33, 0x47, 0xad, 0x4a, 0xa2, 0xe5, 0xd4, 0xa4, /* 3G.J.... */ +0x21, 0xbb, 0xd4, 0xba, 0xff, 0xff, 0x8b, 0x04, /* !....... */ +0x26, 0xc0, 0x92, 0x3a, 0xce, 0x3f, 0xff, 0xcf, /* &..:.?.. */ +0x2c, 0x10, 0xeb, 0xff, 0xff, 0x8b, 0x04, 0x3c, /* ,......< */ +0x09, 0x0b, 0x68, 0x0f, 0xc2, 0xe7, 0xf2, 0x2f, /* ..h..../ */ +0x32, 0xe8, 0x10, 0x78, 0xc4, 0x47, 0xca, 0x59, /* 2..x.G.Y */ +0x4b, 0x8c, 0x12, 0x93, 0x02, 0x48, 0xeb, 0x38, /* K....H.8 */ +0xfe, 0xff, 0xf9, 0xfb, 0x0a, 0x95, 0x69, 0x7a, /* ......iz */ +0xed, 0x2f, 0x29, 0x78, 0xc1, 0x2f, 0x00, 0x85, /* ./)x./.. */ +0xa3, 0xd2, 0x32, 0xe6, 0x5f, 0xff, 0x3f, 0x40, /* ..2._.?@ */ +0x83, 0xc6, 0x44, 0x1a, 0x8b, 0xad, 0x7f, 0xff, /* ..D..... */ +0xc6, 0x08, 0x45, 0x60, 0x48, 0x5b, 0x40, 0x7e, /* ..E`H[@~ */ +0x17, 0xff, 0xf9, 0xfc, 0x10, 0x78, 0xd7, 0xbf, /* .....x.. */ +0xff, 0xc5, 0x82, 0x1e, 0x01, 0x0b, 0x47, 0xa4, /* ......G. */ +0x65, 0xcf, 0xff, 0x9f, 0xc1, 0x07, 0x90, 0x30, /* e......0 */ +0xa8, 0xba, 0xff, 0xff, 0xe3, 0x04, 0x22, 0xb0, /* ......". */ +0x24, 0x2d, 0xa0, 0x3f, 0x0b, 0xff, 0xfc, 0xfe, /* $-.?.... */ +0x08, 0x3c, 0xb7, 0xff, 0xfe, 0x30, 0x43, 0xc0, /* .<...0C. */ +0x92, 0x3a, 0x8e, 0x38, 0xbf, 0xfc, 0xfe, 0x08, /* .:.8.... */ +0x38, 0x4b, 0x86, 0x64, 0xea, 0x2d, 0x4b, 0xff, /* 8K.d.-K. */ +0xff, 0xf0, 0x42, 0x4e, 0x00, 0xc8, 0xca, 0x6c, /* ..BN...l */ +0x87, 0xc0, 0xff, 0xe7, 0xf8, 0x20, 0xed, 0x0b, /* ..... .. */ +0x69, 0x56, 0xaf, 0xff, 0xff, 0x18, 0x21, 0x26, /* iV....!& */ +0x01, 0x33, 0x27, 0xa0, 0x37, 0x57, 0xff, 0xf8, /* .3'.7W.. */ +0x48, 0xa2, 0x6b, 0x5f, 0xff, 0xf1, 0x82, 0x11, /* H.k_.... */ +0x58, 0x12, 0x16, 0xd0, 0x1f, 0x85, 0xff, 0xfe, /* X....... */ +0x7f, 0x04, 0x1e, 0x8f, 0xff, 0xfc, 0x60, 0x85, /* ......`. */ +0xe0, 0x26, 0xa7, 0xa0, 0xe6, 0xf7, 0xff, 0xfe, /* .&...... */ +0x04, 0x22, 0x89, 0xad, 0x7f, 0xff, 0xc6, 0x08, /* ."...... */ +0x44, 0x60, 0x26, 0xa7, 0xa0, 0xe6, 0x7f, 0x7f, /* D`&..... */ +0xff, 0x84, 0x9f, 0xff, 0xe1, 0x04, 0x2b, 0x02, /* ......+. */ +0x49, 0xe4, 0xe3, 0xff, 0xfd, 0x3e, 0x08, 0x3d, /* I....>.= */ +0x92, 0x8b, 0xae, 0xba, 0x7a, 0x90, 0xbd, 0x32, /* ....z..2 */ +0xd3, 0x10, 0x3b, 0x80, 0x84, 0xc3, 0x26, 0xdf, /* ..;...&. */ +0xfe, 0xfe, 0xe7, 0x4d, 0xcc, 0x0e, 0xd8, 0x4c, /* ...M...L */ +0x22, 0xbc, 0x77, 0xeb, 0xff, 0xc3, 0xe7, 0x5f, /* ".w...._ */ +0x5d, 0x75, 0xfc, 0x78, 0x7d, 0x3f, 0x1e, 0x42, /* ]u.x}?.B */ +0x02, 0xdf, 0xef, 0xf6, 0xff, 0x96, 0x52 /* ......R */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt6[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x3b, 0x40, 0x00, 0x40, 0x11, /* ...;@.@. */ +0xc0, 0xda, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x52, 0x2d, 0x80, 0x63, 0x8c, 0xf2, 0x06, 0x15, /* R-.c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xea, 0x9e, 0x49, 0x64, 0xee, 0x49, 0x74, 0x89, /* ..Id.It. */ +0x2d, 0xba, 0x96, 0x46, 0x96, 0x69, 0xa9, 0x5c, /* -..F.i.\ */ +0xaf, 0x5b, 0x65, 0xea, 0x4a, 0x96, 0xbb, 0xe5, /* .[e.J... */ +0x59, 0x49, 0x91, 0xef, 0xbe, 0x48, 0x86, 0x9e, /* YI...H.. */ +0x1c, 0x1f, 0x8b, 0x2b, 0x91, 0x96, 0xd7, 0xff, /* ...+.... */ +0xfc, 0x68, 0x2a, 0x2b, 0x80, 0x8f, 0x7c, 0xfc, /* .h*+..|. */ +0xf8, 0x0e, 0x3f, 0x02, 0x1f, 0x37, 0xe7, 0x7f, /* ..?..7.. */ +0xe0, 0x55, 0xac, 0x0c, 0x86, 0xd9, 0xfe, 0x3a, /* .U.....: */ +0x71, 0x5f, 0xfe, 0x04, 0xc3, 0x3a, 0x79, 0xfe, /* q_...:y. */ +0x7d, 0x26, 0x91, 0x96, 0x39, 0x88, 0x02, 0x66, /* }&..9..f */ +0xe7, 0xe7, 0xff, 0xe0, 0x47, 0xbe, 0x79, 0x01, /* ....G.y. */ +0x6d, 0x76, 0xaf, 0xe5, 0x89, 0x72, 0xff, 0xff, /* mv...r.. */ +0xfc, 0x10, 0x88, 0xe0, 0x49, 0x1d, 0x47, 0x03, /* ....I.G. */ +0xc8, 0x82, 0x5f, 0x02, 0x3f, 0xff, 0xe0, 0x75, /* .._.?..u */ +0x29, 0x60, 0x3a, 0xff, 0x91, 0x07, 0x44, 0x8b, /* )`:...D. */ +0xa5, 0xa2, 0x5d, 0x22, 0x17, 0x0a, 0x88, 0x5c, /* ..]"...\ */ +0x6b, 0x6b, 0x6a, 0x52, 0x5f, 0xfd, 0xc7, 0xc8, /* kkjR_... */ +0x08, 0x57, 0x02, 0x48, 0xeb, 0x38, 0x1e, 0xe0, /* .W.H.8.. */ +0x97, 0x72, 0x2f, 0xff, 0xf8, 0x1c, 0x49, 0x4b, /* .r/...IK */ +0x01, 0xd7, 0xfc, 0x88, 0x3a, 0xff, 0xfe, 0x38, /* ....:..8 */ +0x57, 0xf8, 0x08, 0xf7, 0xcf, 0xcf, 0x52, 0x2b, /* W.....R+ */ +0xff, 0xfc, 0xb2, 0x04, 0x27, 0xff, 0xff, 0x02, /* ....'... */ +0x33, 0x3e, 0x79, 0xff, 0xdc, 0x7b, 0xc2, 0xa6, /* 3>y..{.. */ +0xed, 0xe7, 0x6d, 0x23, 0x80, 0x38, 0xf5, 0x6f, /* ..m#.8.o */ +0xc4, 0x6d, 0xe3, 0x38, 0xff, 0xe9, 0xf4, 0x08, /* .m.8.... */ +0x05, 0xf2, 0x7d, 0x3a, 0xdd, 0xbc, 0x8f, 0xfc, /* ..}:.... */ +0x3c, 0x98, 0x3b, 0x18, 0x2a, 0xe5, 0x65, 0x8b, /* <.;.*.e. */ +0xc6, 0x57, 0xbf, 0xb5, 0x41, 0xd9, 0xac, 0xc8, /* .W..A... */ +0x5d, 0xad, 0x11, 0x4a, 0x8b, 0x6a, 0xbf, 0xd3, /* ]..J.j.. */ +0xf3, 0xd0, 0x7c, 0x53, 0x7c, 0x21, 0x61, 0xb1, /* ..|S|!a. */ +0x12, 0x62, 0x7f, 0xf7, 0xfa, 0x89, 0x55, 0x9b, /* .b....U. */ +0x97, 0x52, 0xc8, 0xad, 0x54, 0xea, 0x2f, 0xdc, /* .R..T./. */ +0xa5, 0x95, 0x3f, 0xa1, 0x26, 0x87, 0x60, 0x84, /* ..?.&.`. */ +0x00, 0x95, 0x56, 0xd6, 0xf8, 0xcb, 0xf4, 0x4c, /* ..V....L */ +0xde, 0x66, 0xc7, 0xad, 0xf9, 0x25, 0xa0, 0x3f, /* .f...%.? */ +0x95, 0x1f, 0xde, 0xfb, 0x2e, 0xb7, 0x21, 0x33, /* ......!3 */ +0xf4, 0x55, 0x5d, 0x02, 0x1f, 0xa0, 0xa0, 0xec, /* .U]..... */ +0xca, 0x25, 0x5e, 0x56, 0x3e, 0xc5, 0xff, 0xd3, /* .%^V>... */ +0xc3, 0x7e, 0xfe, 0x14, 0x7c, 0x9e, 0x6f, 0x43, /* .~..|.oC */ +0xe8, 0x7c, 0xe1, 0xa7, 0xfc, 0x8f, 0xcd, 0xc3, /* .|...... */ +0xde, 0xfd, 0xe8, 0x72, 0x33, 0x22, 0x99, 0x5b, /* ...r3".[ */ +0xf2, 0xfe, 0x24, 0x7c, 0x3b, 0x04, 0x20, 0x04, /* ..$|;. . */ +0x9f, 0xbd, 0x15, 0xfc, 0x19, 0x7b, 0x44, 0x66, /* .....{Df */ +0xf3, 0x36, 0x0e, 0xa6, 0xfc, 0x69, 0x7a, 0xc0, /* .6...iz. */ +0xff, 0x63, 0x83, 0xfb, 0xde, 0xd8, 0xb9, 0x38, /* .c.....8 */ +0xf3, 0x6f, 0x52, 0x1d, 0xff, 0xfd, 0x56, 0x88, /* .oR...V. */ +0x5d, 0x3d, 0xa9, 0x8e, 0xf8, 0x77, 0xde, 0xc5, /* ]=...w.. */ +0xd8, 0xea, 0x68, 0xff, 0x6f, 0x11, 0xfe, 0x82, /* ..h.o... */ +0x43, 0xe0, 0x24, 0x7f, 0x40, 0x44, 0xe2, 0x86, /* C.$.@D.. */ +0xcc, 0x97, 0x45, 0x87, 0xee, 0x3f, 0x1d, 0x2d, /* ..E..?.- */ +0xf9, 0x45, 0x81, 0xfc, 0xa5, 0xfc, 0xfe, 0x75, /* .E.....u */ +0xa1, 0x76, 0xbb, 0x76, 0x30, 0x72, 0x71, 0xd1, /* .v.v0rq. */ +0x01, 0xec, 0x61, 0xbf, 0x45, 0x34, 0x52, 0xc3, /* ..a.E4R. */ +0x2a, 0x5f, 0x95, 0x8b, 0xc1, 0xbf, 0x18, 0x18, /* *_...... */ +0xf0, 0xa3, 0xe4, 0xfa, 0xfa, 0x1f, 0x4a, 0x25, /* ......J% */ +0x03, 0xfe, 0x2f, 0xcd, 0x81, 0x58, 0xa3, 0xa9, /* ../..X.. */ +0x8f, 0x18, 0xa6, 0x56, 0x1b, 0xc3, 0xfb, 0x09, /* ...V.... */ +0x0f, 0x80, 0x91, 0xfd, 0x01, 0x13, 0x80, 0x47, /* .......G */ +0xbe, 0x8f, 0x47, 0x3c, 0x89, 0x87, 0xee, 0x27, /* ..G<...' */ +0x74, 0x09, 0x90, 0x76, 0x07, 0xe4, 0xbf, 0xae, /* t..v.... */ +0x87, 0xe1, 0x2c, 0xb1, 0x83, 0xb2, 0xfe, 0x1b, /* ..,..... */ +0xf6, 0xfd, 0x43, 0x35, 0xaf, 0xb1, 0x7b, 0x71, /* ..C5..{q */ +0x6d, 0x86, 0x21, 0xbf, 0x7f, 0x0a, 0x3e, 0x4f, /* m.!...>O */ +0xc3, 0xb4, 0xcc, 0x70, 0x40, 0x76, 0x33, 0xce, /* ...p@v3. */ +0x09, 0x30, 0xfe, 0x90, 0x9f, 0x5b, 0xde, 0x65, /* .0...[.e */ +0xf2, 0x6d, 0xcb, 0xe5, 0xe2, 0x47, 0xc7, 0x40, /* .m...G.@ */ +0x84, 0x35, 0x16, 0xeb, 0x96, 0x95, 0xa5, 0xd6, /* .5...... */ +0xa9, 0x5f, 0xa3, 0x01, 0xdf, 0xb1, 0x9f, 0xd6, /* ._...... */ +0x09, 0x4d, 0x38, 0x71, 0x23, 0xb5, 0x32, 0xbe, /* .M8q#.2. */ +0xc7, 0x95, 0x4c, 0xca, 0x54, 0x33, 0x2f, 0xfb, /* ..L.T3/. */ +0xbb, 0xaf, 0xd2, 0x11, 0x42, 0xa1, 0x33, 0xed, /* ....B.3. */ +0x70, 0x86, 0xd3, 0x55, 0xa8, 0x8c, 0xf0, 0x1d, /* p..U.... */ +0x00, 0xeb, 0x1a, 0x03, 0x57, 0x81, 0x33, 0x70, /* ....W.3p */ +0xf5, 0x9e, 0x57, 0xff, 0x6b, 0x6d, 0x0c, 0x76, /* ..W.km.v */ +0x3b, 0x8d, 0x53, 0xa4, 0x52, 0x5b, 0xeb, 0xa8, /* ;.S.R[.. */ +0xd7, 0xbf, 0xc7, 0xe9, 0x9e, 0x18, 0x4c, 0x7b, /* ......L{ */ +0xfc, 0x04, 0x5f, 0xb7, 0xe5, 0x16, 0x0d, 0x6b, /* .._....k */ +0xff, 0xff, 0x04, 0x38, 0x10, 0x39, 0x82, 0x1e, /* ...8.9.. */ +0xe2, 0xd2, 0xea, 0x61, 0xcf, 0xfb, 0xc3, 0xf0, /* ...a.... */ +0x41, 0xb3, 0xa9, 0xf5, 0x70, 0xcd, 0x7e, 0x56, /* A...p.~V */ +0x2f, 0xff, 0x18, 0x3b, 0xc2, 0x8f, 0x93, 0xf1, /* /..;.... */ +0xaa, 0x7a, 0x1f, 0x3a, 0x26, 0x1f, 0xf7, 0xd6, /* .z.:&... */ +0xc0, 0xb5, 0xd8, 0xa8, 0x6d, 0xe3, 0x14, 0xfb, /* ....m... */ +0x58, 0x7b, 0x62, 0x17, 0xe3, 0x54, 0xe9, 0x2b, /* X{b..T.+ */ +0x68, 0xfa, 0xea, 0x7c, 0x3f, 0xff, 0xc0, 0xfe, /* h..|?... */ +0x13, 0x1e, 0xb1, 0x97, 0xf0, 0x48, 0xf5, 0xcf, /* .....H.. */ +0x20, 0x3c, 0x34, 0xcb, 0xff, 0xff, 0x04, 0x38, /* <4....8 */ +0x08, 0x1f, 0x30, 0x4b, 0x59, 0x69, 0x75, 0x30, /* ..0KYiu0 */ +0xe7, 0xfd, 0xe1, 0xf6, 0x08, 0x34, 0x7e, 0x2e, /* .....4~. */ +0xae, 0x19, 0xaf, 0xfb, 0x58, 0x2d, 0xf0, 0x8a, /* ....X-.. */ +0x1d, 0xc6, 0xa9, 0xeb, 0x7d, 0xe3, 0x5e, 0xff, /* ....}.^. */ +0xff, 0x03, 0xf8, 0x4c, 0x7c, 0x07, 0xf0, 0x48, /* ...L|..H */ +0xf5, 0xcf, 0x34, 0x70, 0x6a, 0xdc, 0xb2, 0x95, /* ..4pj... */ +0x48, 0x25, 0xe2, 0x70, 0xec, 0x10, 0x80, 0x23, /* H%.p...# */ +0xdb, 0x43, 0xe3, 0x2f, 0xe5, 0x9b, 0xcd, 0x25, /* .C./...% */ +0xab, 0x9e, 0x41, 0xd8, 0x1f, 0x92, 0x3f, 0xbd, /* ..A...?. */ +0xf0, 0x9b, 0x83, 0xc3, 0x08, 0x3f, 0x37, 0xa1, /* .....?7. */ +0x50, 0x29, 0x6d, 0xb1, 0x43, 0xb8, 0xf6, 0x3c, /* P)m.C..< */ +0xca, 0x25, 0xfd, 0x43, 0x2a, 0xfb, 0xe9, 0xe2, /* .%.C*... */ +0x71, 0x5b, 0x4c, 0x42, 0x0d, 0x18, 0xe8, 0x45, /* q[LB...E */ +0x8a, 0x08, 0xac, 0x9d, 0x9f, 0xff, 0x7c, 0x98, /* ......|. */ +0x7c, 0x91, 0xc0, 0x84, 0xa1, 0x0a, 0xf7, 0x9f, /* |....... */ +0xfd, 0xff, 0x56, 0x32, 0xaf, 0x40, 0xc2, 0x14, /* ..V2.@.. */ +0x1d, 0x18, 0xb6, 0xfe, 0xdf, 0xfc, 0x21, 0x20, /* ......! */ +0x74, 0x7e, 0xff, 0xb7, 0xf9, 0x14, 0x44, 0x89, /* t~....D. */ +0x09, 0x0a, 0xf4, 0x1e, 0xe0, 0x5f, 0xbc, 0x77, /* ....._.w */ +0xff, 0xb7, 0xc9, 0x83, 0xfc, 0x53, 0x84, 0x4e, /* .....S.N */ +0xaa, 0x53, 0x61, 0x11, 0x6d, 0x65, 0x44, 0x49, /* .Sa.meDI */ +0x10, 0xb6, 0xf7, 0x23, 0x45, 0x57, 0x2c, 0xb0, /* ...#EW,. */ +0x83, 0xff, 0xff, 0xa8, 0xe9, 0x1b, 0xff, 0x7f, /* ........ */ +0xea, 0x5a, 0xeb, 0xae, 0xbb, 0x5b, 0x5b, 0x26, /* .Z...[[& */ +0xf9, 0x1e, 0xa2, 0x0d, 0xaf, 0x1c, 0xd9, 0x49, /* .......I */ +0x2e, 0x67, 0xa5, 0x1b, 0xc3, 0xa0, 0xa1, 0xa0, /* .g...... */ +0x8f, 0x7d, 0x86, 0xd0, 0xed, 0xf6, 0x5c, 0x7d, /* .}....\} */ +0x8e, 0xe9, 0xb7, 0xfa, 0x14, 0x5c, 0x33, 0x9f, /* .....\3. */ +0xf2, 0x24, 0x01, 0x23, 0xd7, 0x1e, 0x0c, 0xbb, /* .$.#.... */ +0x3b, 0x7d, 0x9c, 0xb9, 0x42, 0x17, 0x2f, 0xff, /* ;}..B./. */ +0x93, 0xa0, 0x4f, 0x18, 0xbf, 0x80, 0x42, 0xd3, /* ..O...B. */ +0xd2, 0x32, 0x02, 0x47, 0xd0, 0x11, 0xb3, 0x6c, /* .2.G...l */ +0x69, 0x81, 0xf8, 0x5f, 0xf0, 0xbd, 0x66, 0x68, /* i.._..fh */ +0x2b, 0xfc, 0xbd, 0xda, 0x62, 0x39, 0xed, 0xa1, /* +...b9.. */ +0xa0, 0xd7, 0xdd, 0x80, 0x02, 0x40, 0xd1, 0xe9, /* .....@.. */ +0x7f, 0xbc, 0x7f, 0xd0, 0x26, 0x87, 0x9b, 0xb5, /* ....&... */ +0x19, 0x33, 0x61, 0x0e, 0x54, 0x1c, 0xbf, 0xb8, /* .3a.T... */ +0x1f, 0xc3, 0xf0, 0x20, 0x27, 0xfe, 0x9e, 0xbb, /* ... '... */ +0x94, 0x6f, 0xf7, 0xff, 0xf0, 0x0c, 0x81, 0x82, /* .o...... */ +0x1c, 0x02, 0x16, 0x9e, 0x91, 0x90, 0x09, 0x1f, /* ........ */ +0xd0, 0x11, 0x39, 0xb6, 0x32, 0xc0, 0xfc, 0x2f, /* ..9.2../ */ +0xf8, 0x03, 0xaa, 0xd0, 0xe1, 0x5f, 0xe9, 0xfb, /* ....._.. */ +0x50, 0x0b, 0x3d, 0xcf, 0x74, 0xa0, 0xdd, 0xd8, /* P.=.t... */ +0x00, 0x24, 0x0d, 0x1e, 0x97, 0xf2, 0xb3, 0x7e, /* .$.....~ */ +0x8b, 0x0a, 0x43, 0xc8, 0x32, 0xad, 0x2b, 0x49, /* ..C.2.+I */ +0xd6, 0xae, 0x8b, 0x1e, 0xdb, 0x34, 0x60, 0xf6, /* .....4`. */ +0x60, 0x49, 0xa8, 0x0c, 0x97, 0x02, 0xba, 0xbd, /* `I...... */ +0x03, 0xce, 0x79, 0x43, 0xe3, 0xbf, 0x7f, 0xff, /* ..yC.... */ +0xee, 0x58, 0x21, 0x1e, 0x13, 0x3e, 0xd6, 0x46, /* .X!..>.F */ +0x78, 0x0e, 0x81, 0x8b, 0x87, 0x76, 0x5b, 0x5c, /* x....v[\ */ +0x88, 0xc0, 0x8f, 0x5f, 0xf0, 0x07, 0x55, 0xaa, /* ..._..U. */ +0x42, 0xb7, 0x90, 0x7b, 0xc0, 0x11, 0xbe, 0x07, /* B..{.... */ +0x49, 0x07, 0xd0, 0xf6, 0xbf, 0x04, 0x3a, 0x15, /* I.....:. */ +0x4f, 0xfe, 0x3b, 0xba, 0xc2, 0xbf, 0x00, 0x32, /* O.;....2 */ +0x6e, 0xcc, 0xc4, 0xdc, 0xc0, 0x47, 0xbd, 0xf9, /* n....G.. */ +0xf1, 0x8b, 0x68, 0x0d, 0x5f, 0xa7, 0x8f, 0xf7, /* ..h._... */ +0x9c, 0x3f, 0xf0, 0x2a, 0xcd, 0x21, 0x5c, 0x42, /* .?.*.!\B */ +0xdc, 0x07, 0xe1, 0x4d, 0xe8, 0xcf, 0x8d, 0xe3, /* ...M.... */ +0xa5, 0x9e, 0x31, 0xb4, 0xcd, 0x15, 0x04, 0x4f, /* ..1....O */ +0x9b, 0xfc, 0x7e, 0x81, 0x80, 0x83, 0xea, 0x5e, /* ..~....^ */ +0xf5, 0xff, 0xfc, 0x8a, 0x08, 0x70, 0x08, 0x5a, /* .....p.Z */ +0x36, 0x91, 0x90, 0x11, 0xef, 0x03, 0xe5, 0x56, /* 6......V */ +0xda, 0x45, 0x81, 0xf8, 0x5f, 0xf0, 0x07, 0x50, /* .E.._..P */ +0x45, 0x08, 0x57, 0xc0, 0x7b, 0x82, 0x5b, 0x08, /* E.W.{.[. */ +0x93, 0x59, 0x92, 0xc0, 0x05, 0x18, 0xe5, 0x5e, /* .Y.....^ */ +0xbf, 0xd3, 0x7e, 0xd4, 0x83, 0xa9, 0x3d, 0xc1, /* ..~...=. */ +0xf8, 0x5d, 0x17, 0x2c, 0x59, 0xf0, 0x46, 0xf5, /* .].,Y.F. */ +0xf9, 0x59, 0xbc, 0x35, 0x8c, 0x14, 0x1e, 0x41, /* .Y.5...A */ +0x95, 0x69, 0x59, 0x27, 0x5a, 0xa1, 0x51, 0x51, /* .iY'Z.QQ */ +0xef, 0xaa, 0xa4, 0x45, 0xda, 0x02, 0x62, 0x9b, /* ...E..b. */ +0x03, 0xf0, 0xb4, 0x39, 0x75, 0x1c, 0x0f, 0x9b, /* ...9u... */ +0xee, 0x4c, 0x3c, 0x3b, 0x87, 0xf5, 0x7d, 0x28, /* .L<;..}( */ +0xdf, 0xf1, 0x43, 0xed, 0xad, 0x73, 0xf3, 0xfe, /* ..C..s.. */ +0x04, 0x8f, 0x49, 0x76, 0x19, 0x76, 0x76, 0xfb, /* ..Iv.vv. */ +0x35, 0x48, 0x36, 0x53, 0xee, 0xa3, 0x54, 0x44, /* 5H6S..TD */ +0xf4, 0x81, 0x45, 0x62, 0x34, 0xcc, 0x8f, 0xaf, /* ..Eb4... */ +0xe6, 0x1b, 0xfb, 0x86, 0xa0, 0x89, 0xf1, 0xfe, /* ........ */ +0x04, 0xb1, 0x56, 0xb4, 0x2d, 0xfc, 0x24, 0x45, /* ..V.-.$E */ +0xd1, 0xbb, 0x46, 0x58, 0x07, 0x90, 0x85, 0xc3, /* ..FX.... */ +0x90, 0x12, 0x3c, 0x41, 0x9f, 0x3c, 0x00, 0x98, /* ...... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x3c, 0x40, 0x00, 0x40, 0x11, /* ...<@.@. */ +0xc0, 0xd9, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x9c, 0xba, 0x80, 0x63, 0x8c, 0xf3, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x57, 0xe6, 0x84, 0xfa, 0x58, 0x6a, 0x3c, 0x4f, /* W...Xj.. */ +0x4f, 0x86, 0xfd, 0xf9, 0x88, 0xff, 0xe7, 0xf6, /* O....... */ +0xc8, 0x41, 0xca, 0x1f, 0x14, 0xc4, 0x54, 0x5f, /* .A....T_ */ +0x45, 0x17, 0xe3, 0xd7, 0x31, 0xcb, 0xff, 0xf9, /* E...1... */ +0x5f, 0xcf, 0x0f, 0xc0, 0x3f, 0x1c, 0x81, 0xf1, /* _...?... */ +0xe0, 0x11, 0x6f, 0x32, 0x1d, 0x62, 0x65, 0xe1, /* ..o2.be. */ +0x1a, 0x97, 0x07, 0x2e, 0x2a, 0x65, 0x5c, 0xfe, /* ....*e\. */ +0x4c, 0x58, 0xef, 0x0d, 0x3d, 0xfd, 0xb9, 0x18, /* LX..=... */ +0x91, 0x9f, 0xc3, 0x00, 0x49, 0x7e, 0x13, 0xe1, /* ....I~.. */ +0xbf, 0x79, 0x88, 0xfc, 0x03, 0x0f, 0xfc, 0x9f, /* .y...... */ +0xfc, 0x3a, 0x61, 0x4e, 0xbd, 0x8b, 0xff, 0xed, /* .:aN.... */ +0xca, 0x09, 0xb2, 0xb1, 0xf4, 0x2e, 0x07, 0x98, /* ........ */ +0x57, 0x58, 0x62, 0x87, 0x82, 0x3f, 0x27, 0xfd, /* WXb..?'. */ +0xe4, 0x02, 0x00, 0x9b, 0xf5, 0x1e, 0xfe, 0x80, /* ........ */ +0x4a, 0x44, 0x25, 0xf3, 0xd1, 0xdf, 0xe0, 0xff, /* JD%..... */ +0x22, 0xb0, 0xf0, 0x98, 0xea, 0x13, 0x06, 0x4c, /* "......L */ +0x2c, 0xbd, 0x43, 0x2a, 0xf5, 0x51, 0x55, 0xae, /* ,.C*.QU. */ +0x1f, 0xff, 0xc3, 0xec, 0x08, 0x9b, 0xb7, 0xa8, /* ........ */ +0x2d, 0xa7, 0x1f, 0xf5, 0xcc, 0xff, 0x85, 0xb0, /* -....... */ +0x40, 0x10, 0xe6, 0xe4, 0x86, 0x45, 0xdf, 0xff, /* @....E.. */ +0xf0, 0xe9, 0x87, 0xc3, 0x0f, 0xc7, 0x7f, 0xff, /* ........ */ +0x3c, 0x39, 0xe1, 0x87, 0x8f, 0xfe, 0x1f, 0x08, /* <9...... */ +0x81, 0x2e, 0xeb, 0x24, 0xba, 0x91, 0xbf, 0xae, /* ...$.... */ +0x67, 0xe1, 0x85, 0xb0, 0x40, 0x10, 0xe6, 0xe4, /* g...@... */ +0x86, 0x55, 0xaf, 0x86, 0x11, 0xff, 0xb0, 0xf8, /* .U...... */ +0x80, 0x25, 0xdd, 0x64, 0x97, 0xa4, 0x6f, 0xeb, /* .%.d..o. */ +0x99, 0xf8, 0x61, 0x6c, 0x13, 0x04, 0x09, 0xff, /* ..al.... */ +0x37, 0xff, 0xfd, 0x8b, 0x0a, 0x0f, 0xe0, 0x99, /* 7....... */ +0xed, 0xa9, 0xa3, 0x02, 0x5a, 0x30, 0x11, 0xb5, /* ....Z0.. */ +0xd2, 0x30, 0x23, 0xd7, 0x29, 0x7f, 0xf8, 0xb1, /* .0#.)... */ +0x01, 0x0b, 0x25, 0x1f, 0x86, 0x01, 0xe7, 0x25, /* ..%....% */ +0xff, 0x86, 0xfc, 0xb3, 0x0a, 0x13, 0xae, 0x6f, /* .......o */ +0xd3, 0x22, 0x17, 0xb4, 0x8b, 0x6c, 0x50, 0x29, /* ."...lP) */ +0xd0, 0xc8, 0xa5, 0xe4, 0xdf, 0x61, 0xfd, 0x70, /* .....a.p */ +0x8e, 0x11, 0x59, 0x3b, 0x3f, 0xff, 0x78, 0xe9, /* ..Y;?.x. */ +0xc2, 0x22, 0x8d, 0x3f, 0xff, 0xf2, 0x50, 0x31, /* .".?..P1 */ +0xcc, 0x13, 0x1b, 0xdb, 0x90, 0x0d, 0xdf, 0xc5, /* ........ */ +0xcb, 0xb1, 0xe7, 0xd3, 0xf0, 0x90, 0xb8, 0x79, /* .......y */ +0xa0, 0x8a, 0x14, 0x65, 0x0f, 0x47, 0x18, 0x8c, /* ...e.G.. */ +0xfb, 0x7f, 0xf8, 0x41, 0x98, 0x4a, 0x6b, 0xb7, /* ...A.Jk. */ +0xff, 0x6f, 0x26, 0x09, 0x73, 0x91, 0xdf, 0xff, /* .o&.s... */ +0xf9, 0x14, 0x58, 0x9e, 0x13, 0xb9, 0x65, 0x64, /* ..X...ed */ +0x48, 0x92, 0xd7, 0x27, 0x68, 0x8e, 0x49, 0x55, /* H..'h.IU */ +0x93, 0x6b, 0x6b, 0x2b, 0xd7, 0x5d, 0x75, 0xd2, /* .kk+.]u. */ +0xba, 0xdc, 0xb9, 0xfb, 0xee, 0x41, 0xff, 0x7e, /* .....A.~ */ +0x7f, 0xfc, 0x24, 0x6e, 0xec, 0x60, 0x0a, 0xfd, /* ..$n.`.. */ +0xd6, 0x92, 0x3f, 0xf8, 0x04, 0x3f, 0xfe, 0x28, /* ..?..?.( */ +0x9f, 0x78, 0x17, 0x6b, 0x4b, 0x6a, 0x9d, 0x3f, /* .x.kKj.? */ +0xed, 0xf0, 0xfc, 0x26, 0x2b, 0x83, 0xb7, 0xad, /* ...&+... */ +0xf3, 0x51, 0x4d, 0xbf, 0xe1, 0x41, 0xe6, 0x4c, /* .QM..A.L */ +0x4e, 0x3f, 0xe0, 0x23, 0xdf, 0x47, 0xbe, 0x90, /* N?.#.G.. */ +0xfe, 0xdf, 0x84, 0xf8, 0x71, 0x17, 0x6b, 0x67, /* ....q.kg */ +0x84, 0x2c, 0x7b, 0xd3, 0x91, 0x7f, 0xb3, 0x4a, /* .,{....J */ +0x1f, 0xb0, 0x98, 0xee, 0x0e, 0xaf, 0x42, 0xb1, /* ......B. */ +0x7d, 0x22, 0xdf, 0xf0, 0xa0, 0xf3, 0x26, 0x27, /* }"....&' */ +0x1f, 0xf0, 0x11, 0xef, 0xa3, 0xdf, 0xf5, 0x58, /* .......X */ +0x25, 0xbf, 0x63, 0x93, 0x91, 0x8f, 0xa5, 0x99, /* %.c..... */ +0x4d, 0x0e, 0x38, 0xbc, 0x7c, 0x15, 0x57, 0x31, /* M.8.|.W1 */ +0x1d, 0x29, 0x8a, 0x3c, 0x20, 0x61, 0xa5, 0x8c, /* .).< a.. */ +0x16, 0x5f, 0x40, 0xf6, 0x01, 0xc7, 0x53, 0x7f, /* ._@...S. */ +0xca, 0x7f, 0xd2, 0xcd, 0x2b, 0x33, 0x28, 0xff, /* ....+3(. */ +0x8d, 0xb3, 0xc3, 0x14, 0xce, 0x58, 0x3e, 0x51, /* .....X>Q */ +0xa5, 0xe1, 0x0f, 0xd8, 0xff, 0x4e, 0x1f, 0x49, /* .....N.I */ +0xc6, 0xf7, 0x5a, 0x20, 0x6f, 0x45, 0x6f, 0x15, /* ..Z oEo. */ +0xff, 0xb8, 0x02, 0x8f, 0x2c, 0x6c, 0x7c, 0xf1, /* ....,l|. */ +0x00, 0xd7, 0xff, 0xc1, 0x34, 0x2b, 0x6c, 0xa3, /* ....4+l. */ +0x6d, 0x8b, 0xae, 0x3d, 0xfe, 0x37, 0x6b, 0xa4, /* m..=.7k. */ +0x1d, 0x5f, 0x88, 0x43, 0xff, 0xc2, 0x51, 0x91, /* ._.C..Q. */ +0x01, 0xfc, 0x11, 0xb6, 0x3d, 0x9b, 0xa2, 0x39, /* ....=..9 */ +0x67, 0xfd, 0x13, 0xe2, 0xbc, 0x67, 0xb9, 0x8d, /* g....g.. */ +0x8e, 0xfc, 0x43, 0x70, 0x70, 0x6b, 0x8d, 0xcf, /* ..Cppk.. */ +0xbe, 0x11, 0x3d, 0xc0, 0x7f, 0x88, 0x01, 0x81, /* ..=..... */ +0x35, 0x9b, 0x09, 0xb0, 0x1f, 0x55, 0xe5, 0x8a, /* 5....U.. */ +0xad, 0x52, 0x15, 0x1d, 0xc5, 0xf8, 0xe2, 0x11, /* .R...... */ +0x61, 0x10, 0x33, 0xa9, 0x0b, 0xae, 0x19, 0xe1, /* a.3..... */ +0x2f, 0xd0, 0x50, 0xde, 0x60, 0x6a, 0xe0, 0x4e, /* /.P.`j.N */ +0xe9, 0x55, 0xf3, 0x1d, 0x27, 0xeb, 0xd5, 0x7c, /* .U..'..| */ +0xeb, 0xac, 0xec, 0x51, 0x19, 0x10, 0x10, 0x07, /* ...Q.... */ +0x60, 0x7b, 0x00, 0xe1, 0xd5, 0x37, 0xf1, 0xf8, /* `{...7.. */ +0x7f, 0x82, 0x01, 0x21, 0x1b, 0x6d, 0x7a, 0x84, /* ...!.mz. */ +0xc7, 0xff, 0xfd, 0xb0, 0x43, 0x09, 0x9f, 0x6b, /* ....C..k */ +0xd5, 0x07, 0xa3, 0x1d, 0xb5, 0xff, 0xf6, 0x4e, /* .......N */ +0x90, 0x40, 0x39, 0xff, 0xf0, 0xff, 0xe0, 0x84, /* .@9..... */ +0x23, 0xc0, 0x93, 0x8d, 0x12, 0x6f, 0xfe, 0x9f, /* #....o.. */ +0x85, 0x57, 0x40, 0xc9, 0x79, 0x60, 0x06, 0xb8, /* .W@.y`.. */ +0xbb, 0xf2, 0x79, 0x11, 0x3c, 0xb6, 0xc4, 0x73, /* ..y.<..s */ +0x66, 0x39, 0x9d, 0xeb, 0x33, 0xaa, 0xbf, 0x2f, /* f9..3../ */ +0xf2, 0x2f, 0xc6, 0x17, 0x5e, 0xbe, 0xe1, 0x52, /* ./..^..R */ +0x14, 0x60, 0x40, 0xbc, 0x5f, 0xff, 0xd4, 0x8c, /* .`@._... */ +0x5d, 0x75, 0xd7, 0xff, 0xff, 0x28, 0x21, 0x15, /* ]u...(!. */ +0x32, 0x1f, 0xc8, 0xb9, 0x7f, 0x84, 0xb4, 0x48, /* 2......H */ +0x96, 0x79, 0x22, 0xc4, 0xf9, 0x64, 0x52, 0xe6, /* .y"..dR. */ +0xe5, 0xe2, 0x65, 0x5e, 0x95, 0x10, 0x5f, 0x26, /* ..e^.._& */ +0x12, 0x2e, 0x1f, 0xa0, 0xb1, 0xa3, 0x80, 0x40, /* .......@ */ +0x20, 0x90, 0x5a, 0x1d, 0x57, 0xc0, 0x66, 0xcc, /* .Z.W.f. */ +0xb0, 0x3a, 0x25, 0x66, 0xa5, 0xbf, 0xec, 0x7b, /* .:%f...{ */ +0x9c, 0x3c, 0x7a, 0x09, 0x70, 0x89, 0x86, 0x69, /* .z*.. */ +0x82, 0xe8, 0x13, 0xdd, 0xa6, 0x07, 0xdf, 0xdf, /* ........ */ +0x2d, 0x42, 0x1d, 0xd4, 0xaf, 0x80, 0x99, 0xd1, /* -B...... */ +0x90, 0x1f, 0xc6, 0xc0, 0x25, 0xf7, 0x47, 0x93, /* ....%.G. */ +0x9f, 0x6b, 0x96, 0xd6, 0xd7, 0xe1, 0xf6, 0x5b, /* .k.....[ */ +0xe7, 0x01, 0x1a, 0x96, 0x83, 0x98, 0x57, 0xfd, /* ......W. */ +0x9d, 0xd8, 0x8f, 0x2f, 0xe1, 0x2c, 0x38, 0x82, /* .../.,8. */ +0x54, 0x22, 0xbf, 0x1a, 0xfa, 0x4c, 0x7c, 0x0f, /* T"...L|. */ +0x6b, 0xd4, 0x88, 0x0f, 0xf7, 0x16, 0x25, 0xc2, /* k.....%. */ +0xf8, 0x9e, 0x64, 0x6b, 0xff, 0x09, 0x0a, 0x81, /* ..dk.... */ +0x3f, 0xe3, 0xd2, 0xff, 0xc3, 0xd3, 0xf3, 0x10, /* ?....... */ +0x3f, 0x9d, 0xfe, 0xac, 0x8a, 0x4f, 0xff, 0xc2, /* ?....O.. */ +0x59, 0xd0, 0x42, 0x7a, 0x3b, 0xd2, 0x6d, 0x74, /* Y.Bz;.mt */ +0x8c, 0x08, 0xf4, 0x12, 0xa8, 0x7a, 0x6f, 0xff, /* .....zo. */ +0xdb, 0x50, 0x87, 0x71, 0xde, 0x02, 0x67, 0x46, /* .P.q..gF */ +0x40, 0x7f, 0x1b, 0x00, 0x97, 0xdd, 0x1e, 0x3e, /* @......> */ +0x35, 0x2a, 0x6d, 0xb5, 0xfc, 0x9f, 0x3e, 0x70, /* 5*m...>p */ +0x11, 0xa9, 0x70, 0x73, 0x0a, 0xff, 0xb3, 0xbb, /* ..ps.... */ +0x4f, 0xff, 0x13, 0x84, 0x8e, 0x09, 0x5c, 0x04, /* O.....\. */ +0x57, 0xe3, 0x5f, 0x48, 0x8f, 0xc0, 0x7b, 0x54, /* W._H..{T */ +0x68, 0x60, 0x3f, 0xf3, 0xf9, 0x62, 0xe4, 0xf9, /* h`?..b.. */ +0xef, 0x35, 0xff, 0x84, 0x85, 0x40, 0x9f, 0xf1, /* .5...@.. */ +0xe9, 0x7d, 0xa9, 0xb5, 0xc7, 0xbe, 0xe4, 0xde, /* .}...... */ +0x98, 0xb8, 0xdf, 0x96, 0xce, 0x45, 0x2f, 0xfc, /* .....E/. */ +0x25, 0x84, 0xee, 0x4d, 0x6a, 0x43, 0x40, 0xb6, /* %..MjC@. */ +0xba, 0x46, 0x04, 0x7a, 0x22, 0xb4, 0x7a, 0x1f, /* .F.z".z. */ +0xfd, 0xe4, 0xee, 0xa3, 0xfc, 0x25, 0xc0, 0x47, /* .....%.G */ +0xbe, 0x8f, 0x55, 0x6a, 0x78, 0x26, 0x7b, 0x69, /* ..Ujx&{i */ +0xc0, 0x46, 0xf1, 0xd5, 0xa2, 0x56, 0xe1, 0xed, /* .F...V.. */ +0x7b, 0xff, 0xfc, 0x3d, 0x01, 0x23, 0xd6, 0xfc, /* {..=.#.. */ +0x8f, 0xa6, 0x07, 0xef, 0x66, 0xfb, 0xea, 0x2d, /* ....f..- */ +0x4b, 0xaf, 0xe0, 0x21, 0xff, 0x09, 0x0a, 0xe0, /* K..!.... */ +0x22, 0x6f, 0x90, 0x75, 0x40, 0x42, 0xfd, 0x47, /* "o.u@B.G */ +0xa6, 0xfb, 0x6b, 0x42, 0x0f, 0x00, 0xff, 0xf8, /* ..kB.... */ +0x4a, 0xd8, 0xdf, 0x47, 0xbf, 0xc0, 0x49, 0xdc, /* J..G..I. */ +0xc3, 0x9b, 0x7e, 0xe9, 0x07, 0x57, 0xff, 0x70, /* ..~..W.p */ +0x05, 0xdf, 0xc2, 0x58, 0x1b, 0x35, 0x2c, 0x04, /* ...X.5,. */ +0x4d, 0xc1, 0xe6, 0xbe, 0xbc, 0x38, 0x25, 0xf5, /* M....8%. */ +0x33, 0xc3, 0xc8, 0xaf, 0xc7, 0xfe, 0x12, 0x84, /* 3....... */ +0x4c, 0x34, 0x6a, 0x2a, 0x1e, 0x04, 0x24, 0x72, /* L4j*..$r */ +0x99, 0x9e, 0x2b, 0x70, 0x60, 0x86, 0x98, 0x00, /* ..+p`... */ +0x5f, 0x3f, 0xff, 0xc3, 0x87, 0xf0, 0x06, 0x47, /* _?.....G */ +0xb6, 0xc2, 0x0e, 0x1e, 0xf1, 0xee, 0x20, 0x1f, /* ...... . */ +0x87, 0xf8, 0x7b, 0x0f, 0xd9, 0x90, 0xfa, 0x3f, /* ..{....? */ +0x6a, 0xf4, 0x86, 0x6b, 0xea, 0xfc, 0x25, 0x87, /* j..k..%. */ +0xd1, 0x21, 0xe8, 0x73, 0x0d, 0x82, 0x17, 0xcd, /* .!.s.... */ +0xfa, 0xb2, 0x7b, 0x78, 0xff, 0x09, 0x6c, 0x35, /* ..{x..l5 */ +0x21, 0xa0, 0x42, 0x57, 0x48, 0xc0, 0x8f, 0x41, /* !.BWH..A */ +0xa1, 0x12, 0x17, 0xff, 0xea, 0xe0, 0x1f, 0xc2, /* ........ */ +0x58, 0x1b, 0x35, 0x2c, 0x02, 0x5f, 0x74, 0x7a, /* X.5,._tz */ +0x52, 0xbb, 0x38, 0x4b, 0xea, 0x67, 0xf3, 0x93, /* R.8K.g.. */ +0xdf, 0x2f, 0xfc, 0x25, 0x08, 0x98, 0x68, 0xd4 /* ./.%..h. */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt8[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x3d, 0x40, 0x00, 0x40, 0x11, /* ...=@.@. */ +0xc0, 0xd8, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x05, 0x37, 0x80, 0x63, 0x8c, 0xf4, 0x06, 0x15, /* .7.c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x46, 0x1e, 0x38, 0x10, 0xf2, 0xb7, 0xe5, 0xe4, /* F.8..... */ +0x18, 0x32, 0xc0, 0x83, 0x7f, 0xff, 0xfc, 0x38, /* .2.....8 */ +0x7f, 0x00, 0x64, 0x7b, 0x6c, 0x20, 0xe5, 0xfc, /* ..d{l .. */ +0x7b, 0x10, 0x0f, 0xc3, 0xfc, 0x3d, 0x96, 0xd9, /* {....=.. */ +0x80, 0x76, 0x77, 0x77, 0xfd, 0xc0, 0x03, 0xf6, /* .vww.... */ +0x12, 0xc0, 0xd9, 0xa9, 0x60, 0x24, 0x6e, 0x49, /* ....`$nI */ +0x9a, 0xfa, 0xf0, 0xe0, 0x97, 0xd4, 0xcf, 0x0f, /* ........ */ +0x22, 0xbf, 0xff, 0xc2, 0x50, 0x89, 0x86, 0x8d, /* "...P... */ +0x45, 0x87, 0x81, 0x09, 0x1c, 0xa6, 0x67, 0x8a, /* E.....g. */ +0xd6, 0x0c, 0x11, 0x07, 0xbf, 0xe4, 0xc3, 0x1c, /* ........ */ +0x7f, 0xc2, 0x58, 0x76, 0x08, 0x40, 0x48, 0xe8, /* ..Xv.@H. */ +0x75, 0x5e, 0x26, 0xa2, 0x7a, 0xe0, 0x16, 0x71, /* u^&.z..q */ +0xb5, 0xb9, 0x6f, 0xf0, 0xdc, 0xa3, 0xff, 0x09, /* ..o..... */ +0x71, 0xf2, 0x3f, 0x4e, 0x82, 0xd2, 0xa1, 0x92, /* q.?N.... */ +0x12, 0xf5, 0x87, 0xbc, 0x91, 0x79, 0x39, 0x19, /* .....y9. */ +0x13, 0x29, 0x0a, 0x7e, 0x90, 0x81, 0xeb, 0x81, /* .).~.... */ +0x14, 0x60, 0x21, 0xad, 0x8d, 0x5b, 0xfe, 0xfe, /* .`!..[.. */ +0xfc, 0x98, 0x61, 0x43, 0x22, 0x97, 0x91, 0x7e, /* ..aC"..~ */ +0x40, 0x8e, 0x11, 0x72, 0x76, 0x7f, 0xfe, 0xf0, /* @..rv... */ +0x86, 0x23, 0xdf, 0xff, 0xfa, 0xcb, 0x41, 0xf2, /* .#....A. */ +0x85, 0x6d, 0x7f, 0xf6, 0xfe, 0x49, 0x03, 0x33, /* .m...I.3 */ +0x50, 0x7c, 0xa0, 0x8c, 0xfd, 0xce, 0xdb, 0xff, /* P|...... */ +0xb7, 0xc9, 0x20, 0x51, 0x94, 0x3e, 0x71, 0x18, /* .. Q.>q. */ +0x7d, 0xbf, 0xff, 0xff, 0xf5, 0xe1, 0x43, 0x77, /* }.....Cw */ +0x5e, 0x10, 0x51, 0xdd, 0x3f, 0xff, 0x6e, 0x45, /* ^.Q.?.nE */ +0x1a, 0x50, 0x83, 0x28, 0x27, 0xe7, 0x3d, 0x6d, /* .P.('.=m */ +0xfd, 0xbf, 0xff, 0xfd, 0x57, 0x1c, 0xe1, 0xe2, /* ....W... */ +0x6f, 0x34, 0xa0, 0xa7, 0x89, 0xf4, 0x84, 0x39, /* o4.....9 */ +0xa8, 0x52, 0x16, 0x56, 0x46, 0xdc, 0xb5, 0xc7, /* .R.VF... */ +0xc8, 0x50, 0xc0, 0xf7, 0xfd, 0xfe, 0x49, 0x64, /* .P....Id */ +0xef, 0xbe, 0x57, 0x93, 0x97, 0xae, 0xbb, 0xe5, /* ..W..... */ +0x91, 0xa2, 0xc8, 0xea, 0x26, 0xbf, 0xf2, 0x0f, /* ....&... */ +0xf8, 0x48, 0x57, 0x00, 0xdc, 0xda, 0x17, 0x20, /* .HW.... */ +0x10, 0xbf, 0x51, 0xea, 0x5c, 0x3d, 0xe8, 0xd1, /* ..Q.\=.. */ +0x5f, 0x46, 0xd9, 0xfc, 0x83, 0xc3, 0xc2, 0x5e, /* _F.....^ */ +0x02, 0x7d, 0xd2, 0x0e, 0xa6, 0xa6, 0xf9, 0x07, /* .}...... */ +0x50, 0x12, 0x3d, 0x0f, 0x79, 0x2b, 0xe3, 0xde, /* P.=.y+.. */ +0x6d, 0x1d, 0x7c, 0x3f, 0x08, 0x22, 0x1a, 0xfa, /* m.|?.".. */ +0xf8, 0x4b, 0x84, 0xbf, 0x6b, 0x00, 0xc7, 0x69, /* .K..k..i */ +0x0b, 0x97, 0xb5, 0x28, 0x2d, 0x81, 0x95, 0x40, /* ...(-..@ */ +0x15, 0xa1, 0xaf, 0x05, 0x76, 0x99, 0x3f, 0xc3, /* ....v.?. */ +0x09, 0x6e, 0xac, 0x25, 0x90, 0x1f, 0x91, 0xd8, /* .n.%.... */ +0xc3, 0xc0, 0x21, 0x23, 0xd7, 0x1e, 0x32, 0x36, /* ..!#..26 */ +0xad, 0x3b, 0x06, 0xc0, 0x00, 0x32, 0x90, 0x61, /* .;...2.a */ +0xf8, 0x42, 0x1f, 0xf0, 0x21, 0x47, 0x48, 0xe3, /* .B..!GH. */ +0xb2, 0x6b, 0xff, 0x61, 0x28, 0x10, 0xbf, 0x25, /* .k.a(..% */ +0xd0, 0xdb, 0xdf, 0x47, 0xbf, 0xfe, 0x1e, 0x43, /* ...G...C */ +0x39, 0xf5, 0x82, 0x21, 0xfc, 0x47, 0x61, 0x2d, /* 9..!.Ga- */ +0x96, 0xe1, 0xd8, 0x04, 0x90, 0x04, 0xd4, 0xe3, /* ........ */ +0x78, 0xba, 0xbb, 0x4c, 0xbf, 0xe1, 0x2f, 0x46, /* x..L../F */ +0x86, 0x19, 0x82, 0xe0, 0x5e, 0xa0, 0xf0, 0x12, /* ....^... */ +0x3d, 0x71, 0xe6, 0xce, 0xac, 0xdd, 0x03, 0x60, /* =q.....` */ +0x00, 0x19, 0x3f, 0x4a, 0xf8, 0x78, 0xaf, 0x7e, /* ..?J.x.~ */ +0x0e, 0x0b, 0x70, 0xdc, 0x20, 0xb0, 0x12, 0x3d, /* ..p. ..= */ +0x6f, 0xc9, 0x4d, 0xdc, 0xf6, 0x8d, 0x53, 0xf3, /* o.M...S. */ +0xff, 0xd5, 0xda, 0x6f, 0xfe, 0x40, 0x97, 0x99, /* ...o.@.. */ +0xb8, 0xca, 0x92, 0x02, 0xf9, 0x1c, 0x23, 0xfb, /* ......#. */ +0x03, 0x69, 0x96, 0x23, 0x6b, 0x43, 0xd7, 0x3c, /* .i.#kC.< */ +0x93, 0xb0, 0x35, 0x45, 0x83, 0x45, 0x9f, 0x88, /* ..5E.E.. */ +0xf0, 0x97, 0xbf, 0xc3, 0xd0, 0xe1, 0x91, 0xee, /* ........ */ +0x64, 0x46, 0xf7, 0x5d, 0x46, 0x1d, 0xc7, 0x3d, /* dF.]F..= */ +0xc9, 0xff, 0xf8, 0x4a, 0x21, 0xcf, 0x32, 0x3e, /* ...J!.2> */ +0xb3, 0xed, 0x7f, 0x99, 0x30, 0x3a, 0xa3, 0x1e, /* ....0:.. */ +0xc8, 0xb0, 0xff, 0x89, 0x1b, 0x30, 0xe4, 0xe2, /* .....0.. */ +0x6b, 0x6b, 0x7e, 0x81, 0xff, 0x84, 0xa0, 0x9f, /* kk~..... */ +0xc0, 0x37, 0x1b, 0x42, 0xe4, 0x02, 0x46, 0xfa, /* .7.B..F. */ +0x3d, 0x57, 0xa4, 0x3e, 0x88, 0xa5, 0xbf, 0x80, /* =W.>.... */ +0x64, 0x03, 0xfe, 0x12, 0xf0, 0x06, 0x2d, 0x37, /* d.....-7 */ +0x65, 0xc3, 0x09, 0xfb, 0x6e, 0xab, 0x00, 0x23, /* e...n..# */ +0x3f, 0xe5, 0x1e, 0x0f, 0x65, 0xdf, 0x47, 0x96, /* ?...e.G. */ +0x15, 0xf4, 0x7c, 0x3d, 0x21, 0xe1, 0xe1, 0x2f, /* ..|=!../ */ +0xc0, 0x0b, 0xfd, 0x71, 0x91, 0x97, 0xef, 0xe3, /* ...q.... */ +0x00, 0x61, 0xfd, 0xec, 0x7d, 0x48, 0xcb, 0xb6, /* .a..}H.. */ +0x2a, 0xab, 0xfd, 0x75, 0x10, 0x91, 0x7c, 0x78, /* *..u..|x */ +0x9f, 0xa8, 0x86, 0x7f, 0xd3, 0x3c, 0x13, 0xf6, /* .....<.. */ +0x07, 0xf0, 0x79, 0x13, 0x6a, 0x3b, 0xbf, 0xbf, /* ..y.j;.. */ +0xd7, 0x56, 0x6c, 0x2a, 0x2f, 0xf4, 0x65, 0xf1, /* .Vl.e. */ +0xe8, 0x28, 0x61, 0xa4, 0xd2, 0x65, 0x48, 0x9a, /* .(a..eH. */ +0x65, 0xb2, 0xc2, 0x0d, 0x53, 0xf3, 0xff, 0xd5, /* e...S... */ +0xd9, 0x8d, 0xff, 0xe1, 0x2e, 0xac, 0x30, 0xa1, /* ......0. */ +0x13, 0xca, 0x64, 0xe0, 0x90, 0xbb, 0x39, 0xa8, /* ..d...9. */ +0x87, 0x78, 0x1a, 0x84, 0xad, 0xf2, 0x0f, 0x0f, /* .x...... */ +0x09, 0x7f, 0x80, 0x6e, 0x6d, 0x0b, 0x90, 0x03, /* ...nm... */ +0x47, 0xfa, 0x8f, 0x4a, 0xf0, 0xf7, 0x94, 0x93, /* G..J.... */ +0xf4, 0x75, 0x6c, 0x1b, 0x13, 0xff, 0xc2, 0x5c, /* .ul....\ */ +0x33, 0x08, 0x28, 0x0d, 0x4d, 0xcb, 0x29, 0x25, /* 3.(.M.)% */ +0x2d, 0xe2, 0x36, 0xb0, 0x21, 0xd4, 0xd0, 0x27, /* -.6.!..' */ +0xcb, 0xa2, 0xaa, 0x7f, 0xc2, 0x5f, 0x7c, 0x33, /* ....._|3 */ +0x07, 0xca, 0xac, 0x3d, 0x33, 0xf3, 0x09, 0x3b, /* ...=3..; */ +0x7e, 0x45, 0x14, 0x40, 0x44, 0xd6, 0x3f, 0x39, /* ~E.@D.?9 */ +0x24, 0x59, 0x83, 0xc0, 0x29, 0x9f, 0xb4, 0xdc, /* $Y..)... */ +0x6f, 0x3c, 0xfc, 0x8a, 0x44, 0x59, 0x7c, 0x57, /* o<..DY|W */ +0xe1, 0xf3, 0xdd, 0x66, 0x7f, 0xdf, 0xc3, 0x67, /* ...f...g */ +0x8d, 0x76, 0xff, 0xf9, 0x77, 0xfe, 0x0a, 0x35, /* .v..w..5 */ +0x34, 0x14, 0xa8, 0xde, 0x73, 0xc8, 0x70, 0x7a, /* 4...s.pz */ +0xbe, 0x4f, 0xff, 0xd8, 0x58, 0x7c, 0x43, 0x88, /* .O..X|C. */ +0x5b, 0x9f, 0xae, 0xa4, 0x42, 0xe5, 0x7a, 0xeb, /* [...B.z. */ +0xff, 0xff, 0x2c, 0x2a, 0x2b, 0x8d, 0xe7, 0x1c, /* ..,*+... */ +0xc3, 0xa0, 0xfd, 0xf9, 0x72, 0x97, 0xe1, 0xef, /* ....r... */ +0x0b, 0xd4, 0xd1, 0x6a, 0xf2, 0x66, 0xe5, 0x90, /* ...j.f.. */ +0x5c, 0x4f, 0xe9, 0x56, 0x5d, 0x4b, 0x20, 0x9f, /* \O.V]K . */ +0x39, 0x0b, 0x79, 0x51, 0x05, 0xe1, 0x93, 0x76, /* 9.yQ...v */ +0xb7, 0xd8, 0x78, 0x54, 0xd1, 0xff, 0xff, 0xca, /* ..xT.... */ +0x09, 0x44, 0xcd, 0xfb, 0x6d, 0x2f, 0xff, 0xb0, /* .D..m/.. */ +0xf1, 0xf5, 0x95, 0x95, 0x5e, 0xa5, 0xe4, 0xe5, /* ....^... */ +0xd4, 0xbc, 0xbc, 0xbd, 0xf7, 0xdf, 0x7a, 0xbe, /* ......z. */ +0xf5, 0x7a, 0xbd, 0x5e, 0xaf, 0xbd, 0x5e, 0xa7, /* .z.^..^. */ +0xef, 0x7d, 0xad, 0xad, 0xaa, 0xb5, 0x9d, 0x6f, /* .}.....o */ +0x29, 0x36, 0xb6, 0xf7, 0xdf, 0x2f, 0x27, 0x11, /* )6.../'. */ +0xfa, 0x59, 0x05, 0x69, 0x10, 0xdc, 0xa4, 0x30, /* .Y.i...0 */ +0x29, 0x68, 0x6d, 0x2f, 0x29, 0x7d, 0x82, 0x02, /* )hm/)}.. */ +0xb7, 0xc2, 0x12, 0x01, 0x6f, 0xb5, 0x3e, 0xff, /* ....o.>. */ +0xbf, 0x58, 0x29, 0xd0, 0xca, 0xc5, 0xe4, 0x5f, /* .X)...._ */ +0x87, 0xbb, 0xc2, 0x38, 0x70, 0x5a, 0xcf, 0xef, /* ...8pZ.. */ +0xfe, 0x4c, 0x15, 0xd2, 0xe3, 0xe5, 0x08, 0xbc, /* .L...... */ +0xd4, 0xf6, 0xff, 0xf9, 0x24, 0x68, 0x98, 0x45, /* ....$h.E */ +0xf1, 0xc3, 0xe7, 0x0d, 0xfe, 0xfb, 0x7f, 0xf8, /* ........ */ +0x42, 0x81, 0x3c, 0xe9, 0xe9, 0x76, 0xf6, 0xff, /* B.<..v.. */ +0xff, 0xf3, 0xff, 0x23, 0xb1, 0x3f, 0xaf, 0xaa, /* ...#.?.. */ +0xff, 0xc2, 0x49, 0xae, 0xfc, 0x96, 0x1d, 0x7f, /* ..I..... */ +0x08, 0x63, 0x4d, 0x7f, 0xfa, 0x7e, 0x10, 0x21, /* .cM..~.! */ +0x86, 0x57, 0xff, 0xaf, 0x91, 0x9c, 0xfd, 0x31, /* .W.....1 */ +0x32, 0x92, 0x4e, 0x4e, 0xe4, 0xb9, 0x6b, 0xbe, /* 2.NN..k. */ +0xfb, 0xe5, 0x26, 0xb9, 0xbb, 0x5f, 0x6f, 0x2f, /* ..&.._o/ */ +0x64, 0xdf, 0x72, 0x07, 0xd9, 0x62, 0xc8, 0xd2, /* d.r..b.. */ +0x94, 0x75, 0xaa, 0x96, 0xb7, 0x7c, 0xbc, 0x8f, /* .u...|.. */ +0x6a, 0xed, 0x5d, 0xab, 0xbe, 0xf7, 0x58, 0xac, /* j.]...X. */ +0xb2, 0x07, 0x51, 0xae, 0xe6, 0x03, 0x5c, 0xa4, /* ..Q...\. */ +0x2d, 0x85, 0xb8, 0x24, 0x4a, 0xbe, 0xfb, 0xef, /* -..$J... */ +0xbf, 0xff, 0xfc, 0x86, 0x08, 0x45, 0x40, 0xc7, /* .....E@. */ +0xba, 0x05, 0x9d, 0x59, 0xb3, 0x91, 0x17, 0x2b, /* ...Y...+ */ +0xbf, 0xd8, 0xe9, 0xf7, 0x97, 0x07, 0x65, 0x6c, /* ......el */ +0xde, 0xf9, 0xf0, 0x11, 0x66, 0xd0, 0x11, 0xeb, /* ....f... */ +0xff, 0xfc, 0xbb, 0xe0, 0x22, 0xcd, 0xa0, 0x23, /* ...."..# */ +0xd0, 0x40, 0xc0, 0x39, 0x7f, 0xd0, 0x07, 0xff, /* .@.9.... */ +0x02, 0xd4, 0x36, 0x4f, 0x94, 0x45, 0x7e, 0xcc, /* ..6O.E~. */ +0xd5, 0xf6, 0xf1, 0xff, 0xc8, 0x1a, 0x1e, 0x1d, /* ........ */ +0x49, 0xdf, 0xa7, 0xba, 0x99, 0x5e, 0x00, 0x6b, /* I....^.k */ +0x3f, 0xe5, 0x62, 0xc4, 0x7a, 0xe9, 0xeb, 0xff, /* ?.b.z... */ +0xfe, 0x45, 0x84, 0x05, 0x70, 0x91, 0xfd, 0x7c, /* .E..p..| */ +0x26, 0xdb, 0xbc, 0x11, 0xe9, 0x9e, 0xf9, 0x20, /* &...... */ +0xe8, 0x0e, 0x1c, 0xb0, 0x83, 0xf0, 0xeb, 0x05, /* ........ */ +0xe3, 0xa4, 0x4e, 0x85, 0x27, 0x2c, 0xbf, 0xf6, /* ..N.',.. */ +0x1b, 0x8d, 0xe6, 0x2f, 0x4b, 0x7e, 0x95, 0x65, /* .../K~.e */ +0xc2, 0xf8, 0x74, 0x50, 0x02, 0x7e, 0x4a, 0x33, /* ..tP.~J3 */ +0xe1, 0xb7, 0x1b, 0xe6, 0x20, 0xb5, 0x7a, 0x59, /* .... .zY */ +0x24, 0x13, 0xe5, 0xd4, 0xaf, 0x2e, 0xa5, 0x90, /* $....... */ +0xdc, 0x4c, 0xa9, 0xbc, 0xae, 0x6f, 0xfb, 0x5b, /* .L...o.[ */ +0xda, 0xd8, 0x40, 0xd4, 0xfe, 0xa9, 0xfe, 0xf7, /* ..@..... */ +0xff, 0xff, 0xe3, 0x20, 0x48, 0x8e, 0xda, 0xc9, /* ... H... */ +0xeb, 0xc3, 0xcb, 0x20, 0xfb, 0x21, 0x98, 0xff, /* ... .!.. */ +0x49, 0xc8, 0xf2, 0x75, 0xa9, 0x7b, 0xef, 0x97, /* I..u.{.. */ +0xbe, 0xfb, 0xd5, 0xf7, 0xab, 0xd5, 0xea, 0xf5, /* ........ */ +0x79, 0xb0, 0xbc, 0x4f, 0x79, 0x49, 0x95, 0x6c, /* y..OyI.l */ +0x99, 0x1e, 0xf9, 0x79, 0x7b, 0x59, 0x09, 0xa5, /* ...y{Y.. */ +0xa7, 0xae, 0xba, 0xe5, 0xe8, 0x84, 0x2f, 0x10, /* ....../. */ +0xcb, 0x6b, 0x20, 0x80, 0x95, 0x89, 0x7a, 0x10, /* .k ...z. */ +0x98, 0x20, 0x5f, 0xaf, 0xf7, 0xf7, 0xf1, 0xce, /* . _..... */ +0x0a, 0x5a, 0x1f, 0xff, 0xdc, 0xb8, 0xf5, 0xd0, /* .Z...... */ +0x86, 0x09, 0x0e, 0xde, 0xa7, 0xff, 0xbf, 0x26, /* .......& */ +0x0a, 0x74, 0x16, 0x36, 0x08, 0xa3, 0xf3, 0x20, /* .t.6... */ +0xff, 0xfb, 0xe5, 0xc2, 0x5d, 0xa8, 0x1d, 0x38, /* ....]..8 */ +0x25, 0xdc, 0x8e, 0xff, 0xdb, 0x6f, 0xc9, 0x28, /* %....o.( */ +0x93, 0xfd, 0x71, 0x3f, 0xf8, 0x78, 0xcd, 0x72, /* ..q?.x.r */ +0x58, 0x4a, 0xea, 0xf3, 0x5b, 0x99, 0xdc, 0xe4, /* XJ..[... */ +0x98, 0xfa, 0x02, 0x46, 0x8f, 0x1d, 0x7f, 0x5f, /* ...F..._ */ +0x84, 0x2c, 0xdf, 0xff, 0xfa, 0x84, 0x51, 0x83, /* .,....Q. */ +0x09, 0x1d, 0xd7, 0xff, 0xe9, 0x9c, 0x5d, 0x32, /* ......]2 */ +0x9b, 0x95, 0x96, 0x4e, 0xe4, 0xb9, 0x65, 0xe5, /* ...N..e. */ +0xef, 0xbe, 0xd6, 0xd6, 0xf9, 0x5e, 0x4e, 0xf9, /* .....^N. */ +0x56, 0x89, 0xae, 0xde, 0xfb, 0x88, 0x0f, 0xb2, /* V....... */ +0xc5, 0xa6, 0x9e, 0xea, 0xc3, 0xb9, 0x66, 0xca, /* ......f. */ +0xea, 0x57, 0x36, 0xf5, 0x5b, 0xb2, 0x10, 0xb4, /* .W6.[... */ +0x68, 0x87, 0x22, 0xd2, 0x15, 0x4d, 0x10, 0x5c, /* h."..M.\ */ +0xac, 0xa1, 0x73, 0xa6, 0x2f, 0xff, 0xf8, 0x78, /* ..s./..x */ +0x5a, 0xae, 0xfb, 0xe4, 0xef, 0x97, 0xaf, 0xff, /* Z....... */ +0xfb, 0x96, 0x30, 0x57, 0x4f, 0x8e, 0x66, 0x39 /* ..0WO.f9 */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt9[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x3e, 0x40, 0x00, 0x40, 0x11, /* ...>@.@. */ +0xc0, 0xd7, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x8b, 0x8b, 0x80, 0x63, 0x8c, 0xf5, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x9b, 0xf3, 0x50, 0x8c, 0x70, 0x08, 0x19, 0x48, /* ..P.p..H */ +0x0a, 0x1b, 0x37, 0xff, 0xff, 0x6f, 0xe5, 0xcb, /* ..7..o.. */ +0x27, 0xf1, 0xbe, 0x3c, 0xbf, 0x90, 0x37, 0x1d, /* '..<..7. */ +0x17, 0x49, 0x2e, 0x0d, 0x1f, 0xf3, 0x72, 0xfc, /* .I....r. */ +0xbf, 0x41, 0xa1, 0xe0, 0x06, 0x3d, 0xbc, 0x93, /* .A...=.. */ +0x7f, 0x25, 0xe4, 0x34, 0x81, 0xfa, 0xe2, 0x64, /* .%.4...d */ +0x89, 0xd4, 0xbb, 0xfc, 0x42, 0x17, 0xca, 0x27, /* ....B..' */ +0xb5, 0x13, 0x5c, 0x71, 0x2f, 0xff, 0xfd, 0x1e, /* ..\q/... */ +0x44, 0x5b, 0xc8, 0x8b, 0xe8, 0x48, 0xa8, 0xf3, /* D[...H.. */ +0xc8, 0x65, 0xcb, 0x6c, 0xa7, 0x7f, 0x71, 0x08, /* .e.l..q. */ +0x5f, 0xad, 0xe4, 0xd5, 0x48, 0xa5, 0xd4, 0xaf, /* _...H... */ +0x2e, 0xa5, 0xc5, 0xc4, 0xbf, 0xa2, 0x48, 0x5f, /* ......H_ */ +0x76, 0xb7, 0xb4, 0xbe, 0x40, 0xe0, 0x63, 0xad, /* v...@.c. */ +0x3f, 0x5d, 0xfe, 0x62, 0x0b, 0x0c, 0x24, 0x3f, /* ?].b..$? */ +0x64, 0x25, 0xf6, 0xfe, 0x40, 0x44, 0x2d, 0xbf, /* d%..@D-. */ +0xd4, 0xcb, 0x5d, 0x74, 0xea, 0x5d, 0x4b, 0xdf, /* ..]t.]K. */ +0x7a, 0xbd, 0x5f, 0x7d, 0xf7, 0xa9, 0xf5, 0x7b, /* z._}...{ */ +0x25, 0x5a, 0xab, 0x55, 0x2a, 0xa9, 0x56, 0x57, /* %Z.U*.VW */ +0x95, 0x6d, 0x69, 0x6f, 0xbe, 0xf9, 0x3b, 0xef, /* .mio..;. */ +0x97, 0xbe, 0x5e, 0x4e, 0x5e, 0xba, 0x73, 0xf6, /* ..^N^.s. */ +0x42, 0x05, 0x66, 0x0b, 0x14, 0x1c, 0x1d, 0x66, /* B.f....f */ +0x45, 0xf2, 0x87, 0x2b, 0x04, 0x25, 0xbe, 0x10, /* E..+.%.. */ +0xc0, 0x22, 0x3d, 0x6d, 0xd7, 0xbf, 0xdf, 0xdf, /* ."=m.... */ +0xc9, 0x20, 0x29, 0x34, 0x32, 0xb7, 0x94, 0xbf, /* . )42... */ +0x04, 0x25, 0xee, 0x10, 0x90, 0x28, 0xdc, 0xfb, /* .%...(.. */ +0xfe, 0xfc, 0x93, 0x85, 0x28, 0x78, 0x14, 0x9f, /* ....(x.. */ +0x93, 0x7e, 0x12, 0x5c, 0xdd, 0x73, 0x11, 0x17, /* .~.\.s.. */ +0xfc, 0x79, 0x08, 0x53, 0x7f, 0x6f, 0xff, 0x23, /* .y.S.o.# */ +0x20, 0x35, 0xc8, 0x84, 0x94, 0x67, 0x2f, 0xe5, /* 5...g/. */ +0x94, 0xbe, 0x1f, 0x35, 0xde, 0x10, 0xb1, 0xb3, /* ...5.... */ +0x8f, 0xff, 0xd6, 0xbc, 0xbf, 0xff, 0x0f, 0x6f, /* .......o */ +0xff, 0xff, 0x2c, 0x61, 0xb9, 0x7f, 0x5b, 0xe4, /* ..,a..[. */ +0x9c, 0x3e, 0x50, 0x08, 0x4c, 0x11, 0x9c, 0x2f, /* .>P.L../ */ +0x1f, 0xaf, 0xaf, 0x97, 0x37, 0x2b, 0x1e, 0x30, /* ....7+.0 */ +0xa5, 0x79, 0x1e, 0x4e, 0xfb, 0xe5, 0xe5, 0xef, /* .y.N.... */ +0xbe, 0xfb, 0xe9, 0x69, 0x6f, 0xbe, 0x5e, 0xfb, /* ...io.^. */ +0x5b, 0x59, 0x16, 0x55, 0x95, 0x65, 0x5b, 0x5b, /* [Y.U.e[[ */ +0x91, 0xdb, 0x20, 0xfb, 0x56, 0xae, 0xc9, 0x76, /* .. .V..v */ +0x4d, 0xcb, 0x72, 0x86, 0x32, 0xcf, 0x40, 0xdb, /* M.r.2.@. */ +0xcb, 0xcb, 0xd7, 0x27, 0x2f, 0x5f, 0xff, 0xe5, /* ...'/_.. */ +0x7c, 0x60, 0xae, 0x06, 0xe7, 0x47, 0x04, 0xd8, /* |`...G.. */ +0xf6, 0xae, 0xcc, 0x65, 0x64, 0x45, 0xf9, 0x7f, /* ...edE.. */ +0x0b, 0xcb, 0x9e, 0xab, 0xf5, 0xf9, 0x11, 0x7f, /* ........ */ +0xc8, 0x27, 0xcd, 0xd2, 0x15, 0xdf, 0x59, 0x10, /* .'....Y. */ +0xb5, 0x3f, 0xaa, 0xe4, 0x26, 0x5e, 0x47, 0xfe, /* .?..&^G. */ +0xc5, 0xf2, 0xf1, 0x02, 0xa1, 0x0b, 0x70, 0xb0, /* ......p. */ +0xc9, 0x9f, 0x05, 0x5b, 0x01, 0x5f, 0xfb, 0xff, /* ...[._.. */ +0xff, 0x40, 0x88, 0x5a, 0x3a, 0xdf, 0xc2, 0xca, /* .@.Z:... */ +0x57, 0x56, 0xf3, 0x7a, 0xa9, 0x14, 0x4e, 0xbd, /* WV.z..N. */ +0x2f, 0x13, 0xab, 0xc4, 0xaf, 0xa5, 0xff, 0xb5, /* /....... */ +0xbd, 0xad, 0x61, 0xc3, 0x58, 0x0e, 0x5f, 0x6c, /* ..a.X._l */ +0x8f, 0xca, 0x0f, 0x7f, 0xd9, 0xbf, 0xee, 0xbc, /* ........ */ +0x2c, 0x23, 0xa7, 0xd6, 0x50, 0x89, 0x04, 0x8c, /* ,#..P... */ +0x0a, 0x7f, 0xfc, 0x6f, 0xbf, 0x23, 0x17, 0x7d, /* ...o.#.} */ +0x3a, 0x97, 0x54, 0x4d, 0x72, 0xf7, 0xd6, 0xa2, /* :.TMr... */ +0x71, 0x77, 0xb2, 0x6d, 0x6d, 0x6d, 0x55, 0x92, /* qw.mmmU. */ +0xad, 0x55, 0xaa, 0x9c, 0x95, 0xa9, 0x49, 0x56, /* .U....IV */ +0xb6, 0x4d, 0x93, 0x7d, 0x93, 0x2a, 0xda, 0xda, /* .M.}.*.. */ +0xca, 0x4d, 0xac, 0xaf, 0x2f, 0x27, 0x2f, 0x2f, /* .M../'// */ +0x5d, 0x48, 0x5e, 0xd9, 0x64, 0x63, 0x83, 0x0a, /* ]H^.dc.. */ +0x01, 0x09, 0x40, 0x29, 0xf3, 0x45, 0x79, 0xef, /* ..@).Ey. */ +0xef, 0xf8, 0x45, 0x90, 0x22, 0xc4, 0xed, 0xff, /* ..E."... */ +0xfb, 0xf9, 0x17, 0xff, 0x82, 0x04, 0xe7, 0x6f, /* .......o */ +0xdf, 0xc8, 0xb2, 0x6d, 0x8b, 0xe8, 0x62, 0x7f, /* ...m..b. */ +0xcd, 0xd7, 0xd4, 0x85, 0xef, 0x0f, 0xcb, 0x23, /* .......# */ +0xe5, 0xf2, 0xcb, 0x85, 0x0f, 0xdb, 0xae, 0x4c, /* .......L */ +0x98, 0x5c, 0x56, 0xe5, 0x3e, 0x04, 0x48, 0x60, /* .\V.>.H` */ +0x41, 0xda, 0x71, 0x5f, 0xd7, 0xf8, 0xe9, 0x06, /* A.q_.... */ +0xce, 0xff, 0xff, 0x58, 0x42, 0x70, 0xba, 0x81, /* ...XBp.. */ +0x7f, 0xff, 0x8f, 0x98, 0x3a, 0x43, 0xd5, 0xf5, /* ....:C.. */ +0xf5, 0xfc, 0xb3, 0x9b, 0xed, 0x6f, 0x69, 0x7e, /* .....oi~ */ +0x09, 0xcd, 0xae, 0xbf, 0x29, 0x7f, 0xd9, 0xa2, /* ....)... */ +0x8f, 0xd7, 0xac, 0xd1, 0xc2, 0x13, 0x04, 0x0e, /* ........ */ +0x46, 0x6b, 0xff, 0xf9, 0x67, 0x21, 0x14, 0xcb, /* Fk..g!.. */ +0x6c, 0xb4, 0xf5, 0xd7, 0x5c, 0xbd, 0x75, 0xd7, /* l...\.u. */ +0x5d, 0x77, 0xdf, 0x7d, 0xf7, 0xdf, 0x2f, 0x7d, /* ]w.}../} */ +0xf2, 0xf2, 0xf7, 0xcb, 0xca, 0xb6, 0xb6, 0xb2, /* ........ */ +0xbd, 0xbc, 0xab, 0x22, 0xc8, 0xb7, 0xc9, 0xd7, /* ...".... */ +0x27, 0x27, 0x5f, 0xff, 0xf1, 0x2c, 0x2a, 0x2b, /* ''_..,*+ */ +0xbb, 0x97, 0x2f, 0x22, 0xf6, 0x97, 0xf9, 0x6d, /* ../"...m */ +0x7c, 0x43, 0x88, 0xbe, 0x3e, 0xbf, 0xa9, 0x27, /* |C..>..' */ +0x1a, 0x19, 0x08, 0x42, 0xd7, 0x5d, 0x31, 0x06, /* ...B.]1. */ +0xe4, 0x95, 0x34, 0x8b, 0xff, 0xf7, 0x27, 0xe3, /* ..4...'. */ +0x05, 0x70, 0xde, 0x8c, 0x79, 0x6b, 0x36, 0x7b, /* .p..yk6{ */ +0xc8, 0x8b, 0xff, 0xec, 0x85, 0x8b, 0xae, 0xba, /* ........ */ +0x55, 0x52, 0x29, 0x5d, 0x44, 0xf7, 0x89, 0xfd, /* UR)]D... */ +0x29, 0x31, 0x2a, 0xbd, 0xf6, 0x29, 0x04, 0x8a, /* )1*..).. */ +0xdc, 0x80, 0xa4, 0x29, 0x4e, 0x5e, 0xbb, 0xeb, /* ...)N^.. */ +0xfb, 0x7f, 0x26, 0x90, 0xc2, 0xd7, 0xf6, 0xeb, /* ..&..... */ +0x4f, 0x5b, 0x03, 0x43, 0xff, 0xb0, 0x44, 0x2e, /* O[.C..D. */ +0xba, 0x76, 0xa6, 0x5a, 0xd5, 0x3a, 0x97, 0x56, /* .v.Z.:.V */ +0xea, 0x5e, 0x5e, 0x5d, 0x4b, 0xa9, 0x49, 0x57, /* .^^]K.IW */ +0xab, 0xef, 0xbe, 0x57, 0x52, 0xea, 0x27, 0x5a, /* ...WR.'Z */ +0x97, 0x52, 0xf7, 0xab, 0x7b, 0xed, 0x65, 0x5b, /* .R..{.e[ */ +0x59, 0x49, 0x95, 0x65, 0xe5, 0x79, 0x16, 0x45, /* YI.e.y.E */ +0x91, 0x65, 0x79, 0x7a, 0xe2, 0x76, 0xfa, 0xd1, /* .eyz.v.. */ +0x14, 0x72, 0x14, 0x04, 0x2d, 0x68, 0x3f, 0xcf, /* .r..-h?. */ +0xff, 0xde, 0x3a, 0x70, 0x0f, 0x59, 0x23, 0xc7, /* ..:p.Y#. */ +0xff, 0xff, 0x91, 0x4b, 0xcb, 0xf2, 0x02, 0x65, /* ...K...e */ +0xaf, 0x6e, 0x56, 0x44, 0xf2, 0x2f, 0xb4, 0x3f, /* .nVD./.? */ +0x04, 0x27, 0xee, 0x54, 0x60, 0x44, 0xf6, 0xa8, /* .'.T`D.. */ +0x76, 0x48, 0x7f, 0xe9, 0xfc, 0x93, 0x86, 0x86, /* vH...... */ +0xbc, 0xa9, 0xa8, 0xf5, 0xfa, 0xf0, 0x92, 0x74, /* .......t */ +0xbc, 0x73, 0x7f, 0xfc, 0x57, 0x5a, 0xac, 0x2a, /* .s..WZ.* */ +0x47, 0xfb, 0xff, 0x2f, 0x59, 0x4a, 0xc1, 0x31, /* G../YJ.1 */ +0x69, 0xdf, 0x49, 0x53, 0x61, 0x7a, 0x84, 0x66, /* i.ISaz.f */ +0x02, 0x6d, 0x69, 0x37, 0x5f, 0xd7, 0xe1, 0x1c, /* .mi7_... */ +0x25, 0x62, 0x76, 0x7f, 0xfd, 0x70, 0x84, 0xe2, /* %bv..p.. */ +0x5e, 0xbf, 0xff, 0xc2, 0x13, 0x04, 0xac, 0x1c, /* ^....... */ +0xb7, 0xeb, 0xfa, 0xf2, 0xce, 0x7d, 0xfb, 0x4b, /* .....}.K */ +0x6b, 0x7c, 0x3c, 0x6e, 0xa5, 0xd4, 0x44, 0x7f, /* k|h^ */ +0xfe, 0x1e, 0x5f, 0xd8, 0x78, 0x5e, 0xb2, 0x44, /* .._.x^.D */ +0xca, 0x4d, 0xad, 0x3a, 0x91, 0x69, 0x0e, 0x5f, /* .M.:.i._ */ +0xff, 0xef, 0x20, 0xcf, 0x7a, 0x72, 0xca, 0x1f, /* .. .zr.. */ +0x0f, 0x7f, 0xf3, 0x94, 0xe9, 0xa1, 0x3c, 0xd9, /* ......<. */ +0xed, 0xfa, 0x7f, 0xfc, 0xfe, 0xc1, 0x20, 0xbc, /* ...... . */ +0x78, 0x10, 0x1f, 0xa9, 0x16, 0x89, 0x94, 0x9a, /* x....... */ +0x75, 0x5a, 0xa9, 0x2b, 0xa5, 0xa2, 0x69, 0x93, /* uZ.+..i. */ +0xf6, 0x0e, 0xd2, 0xf4, 0x70, 0x87, 0x2f, 0xd3, /* ....p./. */ +0xd7, 0xd4, 0x28, 0x85, 0x82, 0x3d, 0x27, 0xf9, /* ..(..='. */ +0xff, 0xf1, 0x5d, 0x93, 0x6c, 0x4d, 0xf6, 0xfe, /* ..].lM.. */ +0x40, 0x99, 0xdb, 0xb4, 0xfa, 0xd3, 0x13, 0x37, /* @......7 */ +0x7a, 0x55, 0x5a, 0xad, 0x4a, 0xf5, 0xcb, 0xd6, /* zUZ.J... */ +0xab, 0xa7, 0xad, 0x4b, 0xab, 0xef, 0x53, 0xba, /* ...K..S. */ +0xd4, 0xb8, 0xbb, 0x64, 0x56, 0xa2, 0x78, 0x55, /* ...dV.xU */ +0x17, 0x2a, 0xab, 0x26, 0x55, 0x95, 0x5c, 0xeb, /* .*.&U.\. */ +0xa9, 0x49, 0xb2, 0x5d, 0xac, 0x8a, 0xd1, 0x5e, /* .I.]...^ */ +0x59, 0x64, 0xda, 0x2a, 0xc8, 0xf2, 0x92, 0xe5, /* Yd.*.... */ +0xed, 0x92, 0x11, 0x44, 0x08, 0x9f, 0x5c, 0xff, /* ...D..\. */ +0xff, 0x4c, 0x20, 0xe4, 0xaf, 0xfe, 0x9f, 0xca, /* .L ..... */ +0xa5, 0xa0, 0xf4, 0x63, 0x49, 0x3f, 0xa7, 0xff, /* ...cI?.. */ +0xff, 0xaf, 0xd5, 0x50, 0x57, 0xdd, 0x7b, 0x47, /* ...PW.{G */ +0x1d, 0x62, 0x10, 0x98, 0x3e, 0x27, 0xab, 0xe9 /* .b..>'.. */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt10[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x3f, 0x40, 0x00, 0x40, 0x11, /* ...?@.@. */ +0xc0, 0xd6, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0xa7, 0xbf, 0x80, 0x63, 0x8c, 0xf6, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xff, 0xe1, 0x09, 0x04, 0x4d, 0x74, 0xff, 0xe9, /* ....Mt.. */ +0xfe, 0x3e, 0xbf, 0x5a, 0x0a, 0x97, 0xa5, 0xac, /* .>.Z.... */ +0x8a, 0x0d, 0x66, 0x75, 0x38, 0xf3, 0xff, 0x41, /* ..fu8..A */ +0xfe, 0x97, 0xff, 0x3f, 0xaa, 0x04, 0x1e, 0xff, /* ...?.... */ +0x2f, 0x28, 0x87, 0x41, 0x3f, 0x4e, 0xf8, 0x47, /* /(.A?N.G */ +0x02, 0x47, 0xa4, 0xb9, 0xfd, 0x7e, 0xab, 0x08, /* .G...~.. */ +0x4e, 0x1f, 0xa0, 0xbf, 0xff, 0xc2, 0x11, 0x41, /* N......A */ +0xfe, 0xb7, 0xeb, 0xfa, 0xf2, 0xca, 0x0d, 0x52, /* .......R */ +0x0f, 0xe5, 0xb4, 0xbe, 0x14, 0xa6, 0xfd, 0x72, /* .......r */ +0xe1, 0x7a, 0x02, 0x47, 0x8b, 0x99, 0x53, 0x79, /* .z.G..Sy */ +0x16, 0x45, 0xb5, 0xb7, 0xbe, 0xfb, 0xef, 0xbe, /* .E...... */ +0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, /* ........ */ +0xbe, 0xfb, 0xef, 0xbe, 0xf9, 0x3b, 0xe4, 0xe4, /* .....;.. */ +0x5b, 0x59, 0x7b, 0xe4, 0xe4, 0xff, 0xff, 0xf8, /* [Y{..... */ +0x21, 0x11, 0xc0, 0x46, 0xc9, 0x0c, 0x08, 0xf5, /* !..F.... */ +0xf9, 0x11, 0x13, 0xff, 0x2a, 0xe3, 0x99, 0xb2, /* ....*... */ +0x2c, 0x15, 0xc9, 0x84, 0x56, 0x29, 0x2f, 0xfd, /* ,...V)/. */ +0x42, 0x08, 0x59, 0x7f, 0xff, 0xf9, 0x6b, 0x8e, /* B.Y...k. */ +0x5f, 0x70, 0xf4, 0x13, 0x11, 0x18, 0xf7, 0xc5, /* _p...... */ +0xe9, 0x09, 0x9d, 0x6d, 0x6b, 0x4a, 0xa4, 0x78, /* ...mkJ.x */ +0xe9, 0x17, 0xff, 0xf8, 0x31, 0x7d, 0xff, 0xdf, /* ....1}.. */ +0xf0, 0x40, 0x2b, 0x66, 0x11, 0x90, 0x92, 0x28, /* .@+f...( */ +0x79, 0x4c, 0xff, 0xec, 0xbf, 0xbf, 0x29, 0xfe, /* yL....). */ +0x93, 0x40, 0x8f, 0xa7, 0x35, 0x9e, 0x7f, 0xa4, /* .@..5... */ +0xf4, 0x91, 0x31, 0x73, 0x7a, 0xae, 0x89, 0x91, /* ..1sz... */ +0xea, 0x47, 0x2f, 0x7b, 0x65, 0x7f, 0xff, 0xed, /* .G/{e... */ +0x66, 0x10, 0x37, 0x64, 0xbe, 0x0d, 0xb3, 0x1b, /* f.7d.... */ +0x2d, 0xaf, 0xf2, 0x26, 0xc3, 0x97, 0xe4, 0x0b, /* -..&.... */ +0x47, 0x84, 0xef, 0xb6, 0xbe, 0x6f, 0xc9, 0x9b, /* G....o.. */ +0xdb, 0x2a, 0x18, 0x46, 0xfd, 0xba, 0x93, 0xf9, /* .*.F.... */ +0xa3, 0xcc, 0xc6, 0xa9, 0xe9, 0xd5, 0x6d, 0xad, /* ......m. */ +0x57, 0x5d, 0x13, 0x5d, 0x13, 0x37, 0x7a, 0x5a, /* W].].7zZ */ +0x5a, 0x55, 0x6b, 0x2a, 0xa9, 0x49, 0x53, 0x22, /* ZUk*.IS" */ +0x0b, 0xbd, 0x92, 0x17, 0xa9, 0x54, 0x5c, 0xaa, /* .....T\. */ +0xa5, 0x59, 0x49, 0x9d, 0x75, 0x29, 0x31, 0x3d, /* .YI.u)1= */ +0xe5, 0x57, 0x2f, 0x6e, 0xe5, 0xe5, 0x26, 0x42, /* .W/n..&B */ +0x5a, 0x2a, 0x2c, 0xaa, 0xe5, 0xe4, 0x21, 0x13, /* Z*,...!. */ +0x2a, 0x2a, 0x95, 0x88, 0x1d, 0x52, 0x60, 0xd6, /* **...R`. */ +0x66, 0x10, 0xa0, 0x4f, 0xdc, 0x8e, 0xf4, 0xff, /* f..O.... */ +0xff, 0x9f, 0xd7, 0x5c, 0x61, 0xe2, 0x69, 0x7f, /* ...\a.i. */ +0xfd, 0x7d, 0x85, 0x7a, 0x5d, 0x6f, 0x2f, 0x1f, /* .}.z]o/. */ +0x84, 0x7a, 0xeb, 0xa7, 0xf4, 0xff, 0xc2, 0x24, /* .z.....$ */ +0x20, 0x48, 0xd0, 0x2f, 0xfe, 0x9f, 0xe3, 0xe5, /* H./.... */ +0x01, 0xd4, 0xd4, 0xb7, 0xfe, 0x9f, 0xc9, 0x81, /* ........ */ +0xad, 0xc9, 0x3c, 0x7a, 0x7f, 0xc3, 0xe4, 0xd2, /* .. */ +0x86, 0x10, 0x98, 0x23, 0x51, 0x3b, 0x7f, 0x5f, /* ...#Q;._ */ +0x5f, 0x2c, 0xe0, 0xd1, 0x24, 0x01, 0x14, 0x60, /* _,..$..` */ +0x26, 0xcb, 0x49, 0xbd, 0x7d, 0x7f, 0x2a, 0x89, /* &.I.}.*. */ +0xf2, 0x10, 0x78, 0xb9, 0x55, 0x53, 0xd7, 0x5d, /* ..x.US.] */ +0x6a, 0xfb, 0x5b, 0x79, 0x7a, 0xeb, 0xae, 0xba, /* j.[yz... */ +0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, /* ........ */ +0xba, 0xeb, 0x93, 0x93, 0xbe, 0x4e, 0xf9, 0x39, /* .....N.9 */ +0x16, 0x57, 0x97, 0x93, 0xff, 0x8f, 0x93, 0x8d, /* .W...... */ +0x08, 0x15, 0x0e, 0x3d, 0xbe, 0x14, 0x15, 0x77, /* ...=...w */ +0xa8, 0xfb, 0x59, 0x62, 0x52, 0x22, 0xc8, 0xbc, /* ..YbR".. */ +0x4f, 0xa4, 0x6e, 0xa4, 0xdf, 0x34, 0x09, 0x96, /* O.n..4.. */ +0x10, 0x9d, 0xff, 0xf6, 0xdb, 0xdb, 0xa9, 0x6b, /* .......k */ +0xa2, 0x6b, 0xff, 0xff, 0xe0, 0x84, 0x47, 0x01, /* .k....G. */ +0x16, 0x6e, 0x02, 0x3d, 0x7e, 0x45, 0x22, 0x7f, /* .n.=~E". */ +0xa2, 0xae, 0x8a, 0x68, 0x1c, 0xfe, 0x7d, 0x50, /* ...h..}P */ +0xbf, 0xf7, 0xf0, 0xff, 0x02, 0x60, 0x85, 0xc1, /* .....`.. */ +0xff, 0xe5, 0xff, 0xfd, 0x87, 0x15, 0xf8, 0x26, /* .......& */ +0xff, 0xed, 0xe2, 0x3b, 0x49, 0x62, 0xf5, 0xfe, /* ...;Ib.. */ +0xc5, 0xfb, 0x7d, 0x86, 0xe0, 0xa3, 0xe9, 0x38, /* ..}....8 */ +0xf7, 0xb3, 0x2f, 0x7f, 0xc4, 0xd9, 0x2a, 0x88, /* ../...*. */ +0x77, 0xf4, 0xfd, 0x10, 0x5c, 0x7a, 0xfe, 0x65, /* w...\z.e */ +0x7f, 0xfc, 0xe6, 0x70, 0xeb, 0x9d, 0x4d, 0x04, /* ...p..M. */ +0x45, 0x10, 0x19, 0xc5, 0x73, 0xf8, 0x1c, 0x20, /* E...s.. */ +0x9e, 0x97, 0xa5, 0xff, 0xfa, 0xeb, 0x64, 0x4c, /* ......dL */ +0x5d, 0x3d, 0x6e, 0x59, 0x1c, 0xbb, 0xff, 0xff, /* ]=nY.... */ +0xd8, 0xb2, 0x75, 0xd7, 0xc1, 0x6e, 0xa6, 0x4d, /* ..u..n.M */ +0xf6, 0xfe, 0x82, 0xe9, 0x94, 0xbf, 0xdd, 0xbf, /* ........ */ +0x94, 0x3c, 0xba, 0x04, 0x04, 0xe6, 0xe4, 0x63, /* .<.....c */ +0xe4, 0xe9, 0x69, 0xd4, 0xda, 0xbd, 0x13, 0x4b, /* ..i....K */ +0x4b, 0x5d, 0x75, 0xd3, 0xd7, 0x5a, 0xad, 0x4d, /* K]u..Z.M */ +0xab, 0xc4, 0xa8, 0x9e, 0x54, 0xa4, 0x22, 0x94, /* ....T.". */ +0x95, 0x2a, 0xa8, 0x95, 0x5a, 0x94, 0x84, 0x17, /* .*..Z... */ +0x2a, 0xab, 0x24, 0x4f, 0x04, 0xad, 0xe5, 0x5f, /* *.$O..._ */ +0xff, 0xfd, 0x11, 0xac, 0xa4, 0xcb, 0x2b, 0x95, /* ......+. */ +0x5c, 0xa4, 0xb9, 0x55, 0xc4, 0xbd, 0xe5, 0x25, /* \..U...% */ +0xca, 0x4c, 0xa4, 0xce, 0x42, 0xde, 0x52, 0x65, /* .L..B.Re */ +0x64, 0x52, 0xad, 0x90, 0xb2, 0xa2, 0x4a, 0x88, /* dR....J. */ +0x6c, 0x64, 0x31, 0x78, 0xf6, 0x40, 0xd1, 0x8b, /* ld1x.@.. */ +0x4f, 0xe9, 0xff, 0xf8, 0x7a, 0x9a, 0xc7, 0x5c, /* O...z..\ */ +0x13, 0x17, 0x5a, 0x5d, 0xa9, 0x78, 0x43, 0x3e, /* ..Z].xC> */ +0x7d, 0x3f, 0xfc, 0x21, 0x20, 0x53, 0x17, 0xa7, /* }?.! S.. */ +0xff, 0x4f, 0x1c, 0xca, 0x11, 0x34, 0x0a, 0x7f, /* .O...4.. */ +0xf4, 0xfd, 0xce, 0x81, 0x84, 0x7f, 0xff, 0xf5, /* ........ */ +0xc9, 0xbe, 0x5f, 0xe0, 0x9d, 0x2f, 0xae, 0x11, /* .._../.. */ +0x90, 0x04, 0x8f, 0x54, 0x7b, 0xff, 0xeb, 0x84, /* ...T{... */ +0x27, 0x0f, 0x8a, 0x0b, 0xff, 0xfc, 0xb8, 0x5f, /* '......_ */ +0x70, 0x91, 0x32, 0xea, 0x57, 0x97, 0xbe, 0x5e, /* p.2.W..^ */ +0x5e, 0x4e, 0x57, 0xbe, 0xfb, 0xef, 0xbe, 0xfa, /* ^NW..... */ +0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, /* ........ */ +0xba, 0xef, 0xbe, 0x4e, 0xf9, 0x39, 0x39, 0x39, /* ...N.999 */ +0x1e, 0xbf, 0xfe, 0x45, 0xdf, 0x10, 0x2a, 0x5c, /* ...E..*\ */ +0x7f, 0x88, 0x72, 0x5c, 0xea, 0x11, 0x90, 0x01, /* ..r\.... */ +0x9d, 0x75, 0xe6, 0xf4, 0xe2, 0xd5, 0x7f, 0x79, /* .u.....y */ +0xff, 0xf1, 0xd8, 0x46, 0xda, 0x8f, 0xef, 0xd6, /* ...F.... */ +0xfa, 0xc0, 0x43, 0xaa, 0x3f, 0xe4, 0xc3, 0xa7, /* ..C.?... */ +0x04, 0x2d, 0x07, 0x7f, 0xef, 0xf5, 0x13, 0x4f, /* .-.....O */ +0xff, 0xff, 0x78, 0x21, 0x14, 0xb3, 0x21, 0x34, /* ..x!..!4 */ +0x30, 0xc8, 0x8a, 0x5f, 0xe0, 0x8a, 0x1d, 0xf7, /* 0.._.... */ +0x81, 0x8e, 0xa8, 0xe8, 0x88, 0xb5, 0x7f, 0xda, /* ........ */ +0xde, 0xc5, 0xe0, 0x90, 0x55, 0x39, 0x7d, 0x7f, /* ....U9}. */ +0xcb, 0xd9, 0x9b, 0x18, 0x4e, 0x64, 0xc2, 0x22, /* ....Nd." */ +0x96, 0xbd, 0xca, 0x96, 0x67, 0x6f, 0xff, 0xf0, /* ....go.. */ +0x56, 0x3d, 0x8f, 0xdd, 0x67, 0xfb, 0x7b, 0xed, /* V=..g.{. */ +0x73, 0xd7, 0x3f, 0xd7, 0x84, 0x85, 0x75, 0xda, /* s.?...u. */ +0xfc, 0x3a, 0xc5, 0x75, 0xa0, 0xaf, 0xae, 0xd1, /* .:.u.... */ +0x6e, 0xa3, 0x15, 0x8f, 0xfe, 0x1e, 0xd7, 0xf5, /* n....... */ +0xc5, 0x65, 0xf1, 0x40, 0x9f, 0x92, 0xf5, 0xd4, /* .e.@.... */ +0xee, 0x5d, 0xcb, 0x23, 0x7f, 0xb4, 0xbd, 0xa5, /* .].#.... */ +0x61, 0x45, 0xcd, 0x1f, 0x50, 0x8b, 0x61, 0x4a, /* aE..P.aJ */ +0x1e, 0xeb, 0xff, 0xfb, 0x5b, 0xe0, 0xdf, 0x82, /* ....[... */ +0x04, 0xdf, 0x4c, 0x5c, 0xdf, 0xa8, 0x9a, 0xcd, /* ..L\.... */ +0xc8, 0xf4, 0xb5, 0xd6, 0xeb, 0xad, 0x57, 0x4e, /* ......WN */ +0xab, 0x55, 0x9b, 0x97, 0x53, 0x38, 0x9f, 0xa8, /* .U..S8.. */ +0x99, 0x05, 0xde, 0x52, 0x54, 0xab, 0x12, 0x4a, /* ...RT..J */ +0xd4, 0xa4, 0x21, 0xb8, 0x9c, 0x4f, 0x1e, 0x55, /* ..!..O.U */ +0x13, 0xe2, 0x55, 0x5e, 0x24, 0x9b, 0xca, 0xb2, /* ..U^$... */ +0x93, 0x7c, 0xbc, 0xa4, 0xb9, 0x49, 0x72, 0x10, /* .|...Ir. */ +0xa3, 0xcc, 0x8b, 0xca, 0xee, 0x55, 0x72, 0x12, /* .....Ur. */ +0xd1, 0x56, 0xc8, 0x57, 0x2b, 0xcb, 0xdb, 0xc8, /* .V.W+... */ +0xad, 0x14, 0x84, 0x91, 0x96, 0xe4, 0x3e, 0x15, /* ......>. */ +0x8a, 0x36, 0x3c, 0xbe, 0xab, 0xea, 0xbf, 0xf0, /* .6<..... */ +0x97, 0xbf, 0x4a, 0x33, 0xfa, 0xf3, 0xd5, 0x02, /* ..J3.... */ +0x0d, 0x72, 0x39, 0xb3, 0xe3, 0xff, 0xd0, 0x7f, /* .r9..... */ +0x4b, 0x9f, 0xcf, 0xe6, 0xbb, 0x0f, 0xf4, 0xbf, /* K....... */ +0x93, 0x56, 0x6e, 0xde, 0x09, 0xb7, 0xad, 0x72, /* .Vn....r */ +0xce, 0x0d, 0x49, 0x06, 0x59, 0x79, 0x37, 0xe2, /* ..I.Yy7. */ +0x57, 0x4c, 0xbf, 0xd7, 0xa9, 0x02, 0xf5, 0x94, /* WL...... */ +0xbf, 0xff, 0x23, 0x8f, 0x97, 0x52, 0x3d, 0x75, /* ..#..R=u */ +0xd7, 0x5d, 0xf6, 0xb6, 0xf7, 0xdf, 0x7c, 0xbd, /* .]....|. */ +0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf2, 0x77, /* ..}..}.w */ +0xdf, 0x7d, 0xf2, 0xf5, 0xdf, 0x2f, 0x27, 0x27 /* .}.../'' */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt11[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x40, 0x40, 0x00, 0x40, 0x11, /* ...@@.@. */ +0xc0, 0xd5, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0xd8, 0xcd, 0x80, 0x63, 0x8c, 0xf7, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x27, 0x44, 0xff, 0x26, 0x7f, 0x29, 0x61, 0x81, /* 'D.&.)a. */ +0x57, 0x4d, 0xc8, 0xcf, 0x9a, 0xff, 0xff, 0xd8, /* WM...... */ +0x54, 0x9a, 0x6b, 0x17, 0x55, 0xfc, 0x82, 0x38, /* T.k.U..8 */ +0x51, 0x30, 0x90, 0xae, 0xb5, 0xf4, 0x96, 0x52, /* Q0.....R */ +0xff, 0x09, 0x8f, 0x93, 0xf5, 0xc2, 0x12, 0x01, /* ........ */ +0x03, 0x70, 0x1a, 0x21, 0xfd, 0x6b, 0xfd, 0x21, /* .p.!.k.! */ +0xd2, 0x9d, 0x7a, 0xff, 0x92, 0xcd, 0x4f, 0x51, /* ..z...OQ */ +0x7f, 0xc6, 0xff, 0x91, 0x30, 0xa0, 0xa3, 0x60, /* ....0..` */ +0x42, 0x37, 0x42, 0xd2, 0x66, 0xab, 0x47, 0xe5, /* B7B.f.G. */ +0x99, 0xcc, 0x8b, 0xbf, 0xf8, 0x5e, 0xe8, 0xa2, /* .....^.. */ +0xc3, 0xe1, 0xe6, 0x67, 0xfa, 0x22, 0x2d, 0xde, /* ...g."-. */ +0x11, 0x93, 0xff, 0xfc, 0x5f, 0x22, 0xfb, 0x5b, /* ...._".[ */ +0xec, 0x13, 0x9b, 0x4f, 0xdf, 0x6b, 0x7b, 0x5b, /* ...O.k{[ */ +0xf1, 0xb7, 0x0e, 0xc9, 0x8b, 0xd9, 0x72, 0x5f, /* ......r_ */ +0x1d, 0x38, 0x6f, 0xfd, 0x74, 0x5f, 0x10, 0xc5, /* .8o.t_.. */ +0xaf, 0x57, 0x44, 0xd3, 0xda, 0xc8, 0xba, 0x86, /* .WD..... */ +0xb8, 0x7f, 0xc9, 0xc1, 0x75, 0x0f, 0xf8, 0x58, /* ....u..X */ +0x56, 0xd3, 0x3c, 0xd9, 0x8a, 0xa7, 0x15, 0x97, /* V.<..... */ +0xa9, 0x3b, 0x5b, 0x2d, 0x9b, 0xe8, 0x2a, 0x64, /* .;[-..*d */ +0xfe, 0xbf, 0xff, 0xf2, 0x61, 0x42, 0xf5, 0x9b, /* ....aB.. */ +0xf2, 0x87, 0xff, 0xe1, 0x11, 0x7d, 0x4b, 0x4b, /* .....}KK */ +0x44, 0xa9, 0x5e, 0x89, 0x95, 0x6f, 0x75, 0xd7, /* D.^..ou. */ +0x2f, 0x2f, 0x5d, 0x3c, 0xde, 0xa6, 0x24, 0xdd, /* //]<..$. */ +0xe2, 0x48, 0x45, 0x79, 0x54, 0x5c, 0xa4, 0xa9, /* .HEyT\.. */ +0x55, 0x4a, 0xea, 0x24, 0x84, 0x17, 0x79, 0x54, /* UJ.$..yT */ +0x5c, 0x4a, 0x12, 0x4d, 0x78, 0xc7, 0x72, 0xac, /* \J.Mx.r. */ +0xff, 0x6c, 0x5a, 0xf9, 0x95, 0x3f, 0xc5, 0xae, /* .lZ..?.. */ +0x2d, 0xbf, 0xc5, 0xbb, 0x95, 0x67, 0xf6, 0xe7, /* -....g.. */ +0x64, 0x3e, 0x3c, 0xa8, 0x92, 0xab, 0x44, 0xcd, /* d><...D. */ +0xa5, 0x26, 0x59, 0x5c, 0xa4, 0xb9, 0x55, 0xcb, /* .&Y\..U. */ +0xb9, 0x56, 0x55, 0x95, 0xdc, 0xa4, 0x2c, 0x8b, /* .VU...,. */ +0x2a, 0xca, 0xf6, 0xb2, 0xb2, 0x48, 0xcb, 0x72, /* *....H.r */ +0x1f, 0x1c, 0xc1, 0xe1, 0x90, 0xb6, 0x98, 0xf6, /* ........ */ +0x60, 0x25, 0x65, 0xbf, 0x3a, 0x9e, 0x9e, 0x9f, /* `%e.:... */ +0xff, 0x3f, 0xaa, 0xf0, 0xac, 0x83, 0x99, 0xc4, /* .?...... */ +0xf3, 0xff, 0x16, 0xfe, 0x5d, 0x7f, 0xfe, 0xcc, /* ....]... */ +0xd8, 0xc5, 0xd3, 0xea, 0xaf, 0x84, 0x2c, 0x3f, /* ......,? */ +0x41, 0x7f, 0xff, 0x97, 0x0b, 0x70, 0xa2, 0x55, /* A....p.U */ +0xf2, 0xf6, 0xf2, 0xf7, 0xcb, 0xcb, 0xdf, 0x7d, /* .......} */ +0xad, 0xad, 0xad, 0xf7, 0xd7, 0x5d, 0x75, 0xd7, /* .....]u. */ +0x5d, 0x75, 0xd7, 0x7d, 0xf7, 0xdf, 0x2f, 0x5d, /* ]u.}../] */ +0xf5, 0xd7, 0x5c, 0xbc, 0xbc, 0x8b, 0xf9, 0x7f, /* ..\..... */ +0xc3, 0x0a, 0x0a, 0x9b, 0x26, 0xe9, 0xb3, 0x2f, /* ....&../ */ +0x08, 0x20, 0x47, 0x02, 0x4f, 0x61, 0xe2, 0x4a, /* . G.Oa.J */ +0xad, 0xa5, 0xf8, 0x26, 0x1f, 0x4e, 0x47, 0x1e, /* ...&.NG. */ +0x97, 0xff, 0xfe, 0x1f, 0x11, 0x07, 0xd9, 0xc4, /* ........ */ +0xbf, 0xff, 0x93, 0xff, 0xde, 0xe4, 0x51, 0x8b, /* ......Q. */ +0xbd, 0xc6, 0x76, 0xa8, 0x84, 0x1b, 0xf3, 0xa1, /* ..v..... */ +0x83, 0x3f, 0x22, 0xbf, 0x2f, 0xec, 0x11, 0x61, /* .?"./..a */ +0x03, 0x80, 0xe6, 0x70, 0x40, 0x7f, 0xa6, 0x8b, /* ...p@... */ +0x77, 0xaf, 0xf9, 0x5b, 0xda, 0x58, 0x23, 0x15, /* w..[.X#. */ +0xa7, 0x35, 0xfd, 0xff, 0x46, 0x6b, 0x0c, 0x78, /* .5..Fk.x */ +0x12, 0x73, 0x49, 0x37, 0xc2, 0x6f, 0xff, 0x0f, /* .sI7.o.. */ +0xb2, 0xde, 0xdf, 0xff, 0x40, 0xad, 0xfc, 0x79, /* ....@..y */ +0xfa, 0xfd, 0x31, 0x34, 0xb4, 0xf4, 0xb4, 0xb6, /* ..14.... */ +0xb2, 0xad, 0xad, 0x49, 0x08, 0x6d, 0xff, 0xff, /* ...I.m.. */ +0x7c, 0x8b, 0xff, 0x69, 0x42, 0x86, 0xe3, 0xb4, /* |..iB... */ +0xde, 0x10, 0xb0, 0xf8, 0xa6, 0x2f, 0xff, 0xff, /* ...../.. */ +0xca, 0x1b, 0x5b, 0xd9, 0x0a, 0xc4, 0xd7, 0x5c, /* ..[....\ */ +0xdd, 0xe5, 0x5a, 0xef, 0xae, 0xba, 0xeb, 0xae, /* ..Z..... */ +0xba, 0x75, 0x4c, 0x94, 0xea, 0x57, 0x17, 0x13, /* .uL..W.. */ +0xab, 0xcb, 0xa9, 0x75, 0x12, 0xea, 0xf2, 0xb2, /* ...u.... */ +0x28, 0x99, 0x6f, 0x11, 0x2c, 0x10, 0xc5, 0xd3, /* (.o.,... */ +0x93, 0xc9, 0x27, 0xef, 0x6f, 0x3a, 0xde, 0x2f, /* ..'.o:./ */ +0xf6, 0x9e, 0xde, 0xd8, 0xd7, 0xc7, 0x3f, 0xb7, /* ......?. */ +0x3b, 0xef, 0x24, 0x86, 0xc2, 0x90, 0x92, 0x92, /* ;.$..... */ +0xe2, 0x59, 0x6f, 0x26, 0x6d, 0x29, 0x32, 0xf2, /* .Yo&m)2. */ +0x72, 0x90, 0xb2, 0xaa, 0x97, 0x95, 0x65, 0x79, /* r.....ey */ +0x3a, 0x5b, 0x25, 0xca, 0xb2, 0xed, 0xbe, 0x58, /* :[%....X */ +0xa0, 0x6a, 0x99, 0x16, 0x4e, 0xba, 0xe3, 0xff, /* .j..N... */ +0x27, 0x35, 0xff, 0x55, 0x9c, 0x13, 0xf4, 0xa9, /* '5.U.... */ +0x7f, 0x97, 0x90, 0x8f, 0xb0, 0x4f, 0xe9, 0xf5, /* .....O.. */ +0x2e, 0x6e, 0x48, 0xfa, 0xd5, 0xf2, 0xf4, 0xf5, /* .nH..... */ +0xd7, 0x2f, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, /* ./]u.]u. */ +0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x7c, 0xbd, /* }..}..|. */ +0x75, 0xd7, 0x5d, 0x75, 0xdf, 0x5c, 0xbd, 0xf2, /* u.]u.\.. */ +0xf5, 0xfe, 0x65, 0x3f, 0x9e, 0x83, 0xe2, 0xb9, /* ..e?.... */ +0x7e, 0xfe, 0x9c, 0xfb, 0xd8, 0x20, 0x10, 0x3d, /* ~.... .= */ +0x9f, 0xb4, 0x48, 0xfc, 0x29, 0xf0, 0x9f, 0xe4, /* ..H.)... */ +0x52, 0x8a, 0xff, 0x2a, 0x7f, 0xc3, 0xe2, 0x20, /* R..*... */ +0xc6, 0x5e, 0x13, 0x99, 0xe4, 0x1f, 0x68, 0xc6, /* .^....h. */ +0x79, 0x8c, 0x8f, 0x33, 0xff, 0xe5, 0xe7, 0xf5, /* y..3.... */ +0x5c, 0x27, 0x61, 0x12, 0x9c, 0x14, 0xc5, 0xd7, /* \'a..... */ +0xf8, 0x7b, 0x5b, 0xc8, 0x13, 0x15, 0x4e, 0x5f, /* .{[...N_ */ +0x43, 0xff, 0x6b, 0x7b, 0x76, 0x1c, 0x10, 0x8c, /* C.k{v... */ +0xa6, 0x31, 0x92, 0xac, 0x98, 0xd7, 0x08, 0x0e, /* .1...... */ +0xb9, 0x33, 0xeb, 0x78, 0x59, 0xc7, 0x51, 0x4c, /* .3.xY.QL */ +0x26, 0x9c, 0x54, 0x5b, 0xf9, 0x1e, 0xf9, 0x7b, /* &.T[...{ */ +0xef, 0xbe, 0xfb, 0xeb, 0x15, 0xfe, 0xd2, 0xf2, /* ........ */ +0x86, 0x4f, 0xb5, 0xb6, 0xfe, 0x15, 0x15, 0xdf, /* .O...... */ +0x9b, 0x04, 0x4e, 0x6e, 0xdc, 0x8b, 0xe1, 0xfd, /* ..Nn.... */ +0x91, 0x32, 0xd7, 0x5d, 0x13, 0x44, 0xd3, 0xb9, /* .2.].D.. */ +0x3b, 0xeb, 0xae, 0xba, 0xd5, 0x6a, 0x9d, 0x44, /* ;....j.D */ +0xb8, 0xbb, 0xc4, 0x90, 0x8a, 0xf2, 0x93, 0x2b, /* .......+ */ +0xa8, 0x92, 0x56, 0xa5, 0x55, 0x12, 0x42, 0x2b, /* ..V.U.B+ */ +0xca, 0x4c, 0xcc, 0x4a, 0x72, 0x8b, 0x79, 0xe3, /* .L.Jr.y. */ +0xfe, 0xfd, 0xad, 0xad, 0xad, 0xad, 0xac, 0x5a, /* .......Z */ +0xd3, 0xaf, 0xb7, 0x89, 0x27, 0xcc, 0xc6, 0xf4, /* ....'... */ +0x62, 0xbf, 0x6e, 0x7d, 0xf2, 0x95, 0x08, 0x68, /* b.n}...h */ +0xac, 0xae, 0x45, 0x1d, 0x52, 0x93, 0x44, 0x9b, /* ..E.R.D. */ +0x0a, 0xcb, 0x2b, 0xcb, 0xc8, 0xb4, 0xf2, 0xf2, /* ..+..... */ +0xac, 0xaf, 0x2a, 0xca, 0xf2, 0x72, 0xf3, 0xab, /* ..*..r.. */ +0xf5, 0x93, 0xff, 0xf8, 0xf4, 0x47, 0x1c, 0xee, /* .....G.. */ +0x71, 0xb5, 0x2b, 0xa6, 0xa2, 0x54, 0xba, 0x89, /* q.+..T.. */ +0xef, 0x22, 0xd2, 0xd2, 0xd2, 0xab, 0x5b, 0x5b, /* ."....[[ */ +0x7b, 0xef, 0xbe, 0xfb, 0x5b, 0x7b, 0xef, 0xbe, /* {...[{.. */ +0xfb, 0xe5, 0xef, 0xae, 0xba, 0xef, 0xbe, 0xba, /* ........ */ +0xeb, 0xae, 0xba, 0xef, 0xae, 0xb9, 0x38, 0xe9, /* ......8. */ +0x3f, 0xff, 0x35, 0x60, 0x4d, 0x5f, 0xed, 0xbf, /* ?.5`M_.. */ +0x31, 0xff, 0xc4, 0x85, 0x38, 0xce, 0x9e, 0x69, /* 1...8..i */ +0x0d, 0xe7, 0xfb, 0xe3, 0x1f, 0x53, 0xf4, 0xc2, /* .....S.. */ +0xc7, 0x2d, 0x1d, 0xf4, 0xb6, 0x7e, 0xa3, 0xd8, /* .-...~.. */ +0x4c, 0x2f, 0x64, 0x4d, 0xff, 0xfe, 0x5e, 0x5e, /* L/dM..^^ */ +0x55, 0xfe, 0x73, 0xff, 0x41, 0xf1, 0x13, 0xa5, /* U.s.A... */ +0xfa, 0x7c, 0xda, 0x98, 0x58, 0x2d, 0x5d, 0xbe, /* .|..X-]. */ +0xeb, 0xf1, 0xcc, 0x5f, 0xff, 0xf8, 0xf6, 0x81, /* ..._.... */ +0x52, 0x0a, 0x01, 0x4d, 0xb4, 0xe9, 0xaf, 0xc9, /* R..M.... */ +0x0f, 0xf9, 0x76, 0xdb, 0xf9, 0x74, 0x34, 0x92, /* ..v..t4. */ +0xb1, 0x1b, 0x4c, 0xb9, 0x4e, 0x0b, 0x33, 0x62, /* ..L.N.3b */ +0x5e, 0xc9, 0xa7, 0x9d, 0x56, 0x92, 0xfc, 0xcc, /* ^...V... */ +0x7f, 0x56, 0x88, 0x45, 0x2d, 0xcb, 0xa9, 0x16, /* .V.E-... */ +0x96, 0xba, 0xeb, 0xae, 0x69, 0x35, 0x29, 0x08, /* ....i5). */ +0x66, 0x42, 0xe8, 0x20, 0x03, 0x31, 0xfe, 0x9f, /* fB. .1.. */ +0xbf, 0xbf, 0x9a, 0x5e, 0xfa, 0xe1, 0x9c, 0x0f, /* ...^.... */ +0xab, 0xb6, 0xff, 0xaf, 0xf1, 0x3f, 0xf7, 0x88, /* .....?.. */ +0x61, 0x91, 0x5f, 0x5f, 0x5a, 0x97, 0xa7, 0xae, /* a.__Z... */ +0x9e, 0xfb, 0xeb, 0xae, 0xba, 0xeb, 0x37, 0x2b, /* ......7+ */ +0xa9, 0x5e, 0x56, 0x49, 0x5d, 0x44, 0xfa, 0xa5, /* .^VI]D.. */ +0x99, 0xd5, 0xe6, 0x64, 0x5a, 0x89, 0x21, 0x55, /* ...dZ.!U */ +0xe2, 0xd9, 0x65, 0xef, 0xde, 0xe6, 0x7a, 0x4a, /* ..e...zJ */ +0xeb, 0xae, 0xba, 0xeb, 0xb5, 0x8b, 0x5a, 0x01, /* ......Z. */ +0x3f, 0x6f, 0x1b, 0xd1, 0x8a, 0xfd, 0x64, 0x79, /* ?o....dy */ +0x62, 0x1a, 0x29, 0x0a, 0xe5, 0xdd, 0x12, 0x6c, /* b.)....l */ +0x4f, 0x2f, 0x44, 0x2c, 0xab, 0x2b, 0xca, 0x4c, /* O/D,.+.L */ +0xbc, 0xaf, 0x27, 0x2f, 0x6f, 0x2f, 0x64, 0xcb, /* ..'/o/d. */ +0xcb, 0xda, 0xab, 0x42, 0x0f, 0x84, 0x42, 0x6d, /* ...B..Bm */ +0x54, 0xab, 0x4f, 0x7c, 0xbc, 0xbd, 0x75, 0xd7, /* T.O|..u. */ +0x5d, 0x75, 0xd6, 0xa4, 0xef, 0xbe, 0xfb, 0xef, /* ]u...... */ +0xbe, 0xfa, 0xeb, 0xbe, 0x5e, 0xba, 0xeb, 0xae, /* ....^... */ +0xb9, 0x7a, 0xeb, 0xae, 0xb9, 0x79, 0x7a, 0xe3, /* .z...yz. */ +0xe2, 0xbf, 0xde, 0x75, 0xf7, 0x45, 0x15, 0xf2, /* ...u.E.. */ +0x27, 0xa5, 0xa0, 0x27, 0xc8, 0x16, 0x24, 0x07, /* '..'..$. */ +0x7a, 0xf8, 0xcc, 0x74, 0x11, 0x88, 0xac, 0xd6, /* z..t.... */ +0xa2, 0x66, 0x65, 0x3f, 0x4d, 0x10, 0xda, 0xfe, /* .fe?M... */ +0x9d, 0xf3, 0x83, 0x7f, 0xff, 0xe1, 0x4f, 0xb0, /* ......O. */ +0x40, 0x76, 0x5d, 0xc4, 0xcf, 0xda, 0xfb, 0x27, /* @v]....' */ +0x9f, 0xa7, 0xc2, 0x72, 0x02, 0x11, 0x5a, 0x1f, /* ...r..Z. */ +0xf6, 0xfe, 0x45, 0x61, 0x8f, 0xba, 0x7c, 0xd4, /* ..Ea..|. */ +0x30, 0xc5, 0x88, 0x1c, 0x5f, 0xff, 0xea, 0xbf, /* 0..._... */ +0xfe, 0x21, 0xb4, 0x3e, 0x82, 0xe2, 0xb9, 0x59, /* .!.>...Y */ +0xed, 0xc7, 0x69, 0x22, 0xe5, 0x62, 0x22, 0x18, /* ..i".b". */ +0x97, 0xe9, 0x48, 0x44, 0x88, 0x42, 0xc8, 0xf7, /* ..HD.B.. */ +0xdf, 0xff, 0xf7, 0xc5, 0xe0, 0x80, 0x56, 0x1a, /* ......V. */ +0x65, 0xa2, 0x34, 0x4f, 0xb2, 0xf6, 0xb1, 0x78, /* e.4O...x */ +0x30, 0xa0, 0xa1, 0xa5, 0xfe, 0xfd, 0xab, 0x8a, /* 0....... */ +0xcb, 0xf4, 0x1a, 0x24, 0xdf, 0xd6, 0x44, 0x01, /* ...$..D. */ +0x3f, 0x6f, 0xb3, 0x9d, 0x8b, 0x16, 0x97, 0xc1, /* ?o...... */ +0x59, 0x58, 0xc5, 0x69, 0x83, 0xb7, 0xe4, 0x5e, /* YX.i...^ */ +0xfc, 0xcc, 0x5d, 0xe9, 0xe4, 0xeb, 0xa7, 0x93, /* ..]..... */ +0x95, 0x6f, 0x93, 0xa7, 0xae, 0xba, 0xd4, 0xbc, /* .o...... */ +0x4b, 0xea, 0x99, 0x26, 0x75, 0xa9, 0x49, 0x97, /* K..&u.I. */ +0x51, 0x2e, 0xaf, 0x4c, 0x8a, 0x9c, 0x5c, 0xac, /* Q..L..\. */ +0x48, 0xc2, 0x01, 0x24, 0xc7, 0x63, 0x56, 0x9e, /* H..$.cV. */ +0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0x2d, 0x68, /* ......-h */ +0x04, 0xfc, 0xdf, 0x1a, 0xf0, 0x4b, 0x30, 0xfe, /* .....K0. */ +0xb1, 0x2e, 0xaf, 0x2c, 0x44, 0xac, 0xa5, 0xe5, /* ...,D... */ +0x26, 0x52, 0x65, 0x26, 0x57, 0xa9, 0x65, 0x79, /* &Re&W.ey */ +0x5e, 0x5e, 0x9e, 0x5e, 0xba, 0x79, 0x38, 0x87, /* ^^.^.y8. */ +0xbc, 0x84, 0xda, 0xca, 0x4d, 0xf7, 0xab, 0xd5, /* ....M... */ +0xf2, 0xbc, 0xbc, 0xbc, 0xbd, 0x75, 0xa9, 0x3b, /* .....u.; */ +0x26, 0xfb, 0xeb, 0xbe, 0xfb, 0xef, 0xbe, 0xf9, /* &....... */ +0x7b, 0xe4, 0xe5, 0xeb, 0xae, 0xba, 0xeb, 0xae, /* {....... */ +0xba, 0xeb, 0xae, 0x5e, 0xba, 0xeb, 0xaf, 0xff, /* ...^.... */ +0xfb, 0x42, 0x14, 0x15, 0x3b, 0x31, 0xda, 0x5b, /* .B..;1.[ */ +0xdf, 0x95, 0xbf, 0x3f, 0xd8, 0x2d, 0x82, 0xe9, /* ...?.-.. */ +0x29, 0x1a, 0x70, 0xa6, 0x15, 0xc8, 0x17, 0x7f, /* ).p..... */ +0xf8, 0x52, 0xbf, 0xf0, 0xb1, 0xef, 0xce, 0x93 /* .R...... */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt12[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x41, 0x40, 0x00, 0x40, 0x11, /* ...A@.@. */ +0xc0, 0xd4, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x6d, 0x05, 0x80, 0x63, 0x8c, 0xf8, 0x06, 0x15, /* m..c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xd7, 0xd3, 0xf3, 0x4f, 0x60, 0xb4, 0xc5, 0x63, /* ...O`..c */ +0x61, 0xea, 0xff, 0xd3, 0x16, 0xab, 0xa5, 0x76, /* a......v */ +0xff, 0xf4, 0xf8, 0x52, 0x1c, 0x15, 0x45, 0x1f, /* ...R..E. */ +0x11, 0x35, 0x42, 0x5f, 0x5a, 0xff, 0xed, 0xed, /* .5B_Z... */ +0x38, 0x3f, 0x0d, 0xe6, 0x8e, 0xfb, 0xf2, 0xbf, /* 8?...... */ +0xff, 0xff, 0xda, 0x44, 0x0e, 0x78, 0x51, 0xbb, /* ...D.xQ. */ +0x80, 0x44, 0x7e, 0xbd, 0x7e, 0xcf, 0xf9, 0x7f, /* .D~.~... */ +0x64, 0xff, 0xf0, 0xc0, 0x10, 0x57, 0x8f, 0x6d, /* d....W.m */ +0x5b, 0x46, 0xb5, 0xa1, 0x23, 0x2c, 0x3a, 0xc7, /* [F..#,:. */ +0x50, 0x7f, 0xe8, 0x94, 0xa7, 0xff, 0xe3, 0xf6, /* P....... */ +0x62, 0x61, 0x45, 0xa6, 0x16, 0x72, 0x33, 0x39, /* baE..r39 */ +0xb3, 0xcf, 0xe1, 0xbe, 0x00, 0x82, 0xb6, 0xe1, /* ........ */ +0xef, 0xe5, 0xbc, 0x94, 0xff, 0xf7, 0x07, 0x1d, /* ........ */ +0x06, 0x70, 0xd3, 0x2d, 0xe2, 0xf9, 0x7f, 0xdd, /* .p.-.... */ +0xdf, 0x7e, 0x40, 0xf9, 0x33, 0x59, 0x73, 0x8f, /* .~@.3Ys. */ +0x71, 0x8f, 0x85, 0x04, 0x8b, 0xc6, 0xfd, 0x0d, /* q....... */ +0x32, 0xdf, 0x71, 0xdd, 0xff, 0xf2, 0x07, 0xae, /* 2.q..... */ +0xb4, 0x78, 0x4d, 0x0b, 0x3b, 0x9e, 0x9e, 0x9a, /* .xM.;... */ +0x7f, 0xf1, 0xba, 0xe2, 0xbf, 0xfc, 0x2c, 0x20, /* ......, */ +0x57, 0xd2, 0xfe, 0xfd, 0xa3, 0xff, 0x41, 0xe5, /* W.....A. */ +0xc9, 0x61, 0x02, 0x31, 0x7f, 0xff, 0xe2, 0xbb, /* .a.1.... */ +0x5b, 0xe5, 0xfc, 0x84, 0x44, 0x13, 0x5d, 0x75, /* [...D.]u */ +0xd3, 0xd7, 0x7c, 0xbc, 0xbd, 0x2c, 0xa4, 0xd3, /* ..|..,.. */ +0xd6, 0xd9, 0x79, 0x59, 0x22, 0x5d, 0x5e, 0x57, /* ..yY"]^W */ +0x94, 0x9a, 0xeb, 0x53, 0x32, 0x1b, 0xd5, 0x39, /* ...S2..9 */ +0xb8, 0xd6, 0x25, 0x32, 0xda, 0xd7, 0xcc, 0x4f, /* ..%2...O */ +0x49, 0x4f, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, /* IO]u.]u. */ +0x5c, 0x5f, 0x45, 0x5f, 0xad, 0x44, 0xbf, 0x57, /* \_E_.D.W */ +0x21, 0x79, 0x49, 0x72, 0x93, 0x4e, 0xa9, 0xe8, /* !yIr.N.. */ +0x85, 0x97, 0x95, 0xe5, 0x7a, 0xe5, 0x79, 0x79, /* ....z.yy */ +0x79, 0x5e, 0x5e, 0x42, 0x6c, 0x9b, 0xef, 0xb5, /* y^^Bl... */ +0xb7, 0xae, 0xba, 0x26, 0xba, 0xeb, 0xae, 0x4e, /* ...&...N */ +0xba, 0x5a, 0x5a, 0x55, 0x6b, 0x6b, 0x6b, 0x6b, /* .ZZUkkkk */ +0x6b, 0x2a, 0xda, 0xda, 0xd3, 0xcb, 0xd7, 0x2f, /* k*...../ */ +0x5d, 0xf5, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, /* ]..]u.]u */ +0xd7, 0x5d, 0x7f, 0xd0, 0x3f, 0x14, 0x08, 0x60, /* .]..?..` */ +0x52, 0x7d, 0x8f, 0xd7, 0xa3, 0xfa, 0x53, 0xf0, /* R}....S. */ +0x9c, 0xd0, 0xbf, 0xea, 0x47, 0xc3, 0x9c, 0xfe, /* ....G... */ +0xd3, 0xe9, 0x8b, 0xe1, 0xe9, 0xfc, 0x6c, 0x84, /* ......l. */ +0x7a, 0x25, 0xd7, 0x5c, 0x88, 0x40, 0x42, 0xdb, /* z%.\.@B. */ +0x44, 0x84, 0xfe, 0xd2, 0xca, 0x7b, 0xbc, 0x2a, /* D....{.* */ +0x12, 0xb7, 0xef, 0xfb, 0xb9, 0xfd, 0xfa, 0x2d, /* .......- */ +0x22, 0xe6, 0x91, 0xf3, 0x0e, 0x47, 0x17, 0xad, /* "....G.. */ +0xff, 0xff, 0x90, 0x94, 0xf1, 0xff, 0xd0, 0x7c, /* .......| */ +0x48, 0xef, 0x9b, 0x9f, 0x7d, 0xff, 0xfa, 0x0f, /* H...}... */ +0x31, 0xd6, 0x86, 0x5f, 0x22, 0x13, 0x89, 0x5c, /* 1.._"..\ */ +0x53, 0x93, 0x69, 0xc9, 0xf4, 0xab, 0x2f, 0x5a, /* S.i.../Z */ +0xbf, 0xf9, 0x4b, 0xda, 0xd6, 0x1f, 0x15, 0xb7, /* ..K..... */ +0x4c, 0x5a, 0x64, 0x5a, 0xeb, 0xae, 0x9e, 0x4e, /* LZdZ...N */ +0x5e, 0xfa, 0xe4, 0xe5, 0xe9, 0xeb, 0x97, 0x95, /* ^....... */ +0x92, 0x9e, 0x9e, 0x9e, 0xba, 0x26, 0x56, 0x45, /* .....&VE */ +0x2b, 0xa9, 0x98, 0x99, 0x69, 0x9f, 0x49, 0x4f, /* +...i.IO */ +0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x2c, /* ]u.]u.], */ +0x67, 0x46, 0x2b, 0xd7, 0x89, 0x7b, 0xca, 0x41, /* gF+..{.A */ +0x15, 0x2c, 0xaf, 0x29, 0x34, 0xcb, 0x2f, 0x2b, /* .,.)4./+ */ +0xca, 0xf2, 0xf2, 0xbd, 0x72, 0x2c, 0x8f, 0x37, /* ....r,.7 */ +0x79, 0x1e, 0xfb, 0xef, 0xbe, 0xc9, 0x97, 0x97, /* y....... */ +0xbe, 0xdd, 0x49, 0xdf, 0x7d, 0x75, 0xd7, 0x5a, /* ..I.}u.Z */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xc9, /* ........ */ +0x93, 0x97, 0x93, 0x97, 0xae, 0xba, 0xeb, 0xae, /* ........ */ +0xba, 0xe3, 0xb7, 0xff, 0xfe, 0x98, 0xf8, 0x80, /* ........ */ +0xd3, 0x2d, 0xff, 0xfd, 0x37, 0xc7, 0x44, 0xbf, /* .-..7.D. */ +0xfe, 0x9a, 0x7e, 0x4e, 0xbf, 0xfa, 0x7d, 0x34, /* ..~N..}4 */ +0x08, 0x45, 0x53, 0xf4, 0x9f, 0xfe, 0x76, 0x15, /* .ES...v. */ +0x26, 0xf5, 0xff, 0xff, 0xf8, 0x21, 0x1f, 0x78, /* &....!.x */ +0x35, 0x4b, 0xdb, 0xd1, 0xbf, 0x49, 0x13, 0xca, /* 5K...I.. */ +0xf2, 0xf7, 0x10, 0x43, 0x12, 0x4a, 0x91, 0x65, /* ...C.J.e */ +0x91, 0x64, 0x5b, 0x5b, 0x59, 0x16, 0x45, 0xb5, /* .d[[Y.E. */ +0x91, 0x4c, 0x48, 0xb2, 0x1b, 0x07, 0x22, 0x00, /* .LH...". */ +0x8f, 0x7c, 0xfc, 0xff, 0xfc, 0x55, 0x9e, 0xff, /* .|...U.. */ +0x96, 0xef, 0x7e, 0xc1, 0x32, 0x8f, 0x2d, 0xb8, /* ..~.2.-. */ +0x6c, 0x34, 0xbf, 0x8f, 0x5f, 0xf8, 0x49, 0x96, /* l4.._.I. */ +0xf3, 0xcf, 0x7e, 0x27, 0xff, 0xf0, 0x43, 0x9e, /* ..~'..C. */ +0xff, 0x22, 0xf2, 0xfd, 0x84, 0xf2, 0xb3, 0x56, /* .".....V */ +0x5d, 0x31, 0x75, 0xd1, 0x35, 0xd7, 0x2b, 0xcd, /* ]1u.5.+. */ +0xfa, 0x9e, 0xba, 0xeb, 0x97, 0x95, 0x66, 0x7d, /* ......f} */ +0x52, 0xd3, 0xca, 0x42, 0x53, 0xd3, 0xd6, 0xa6, /* R..BS... */ +0x7d, 0x51, 0x09, 0x4f, 0x14, 0xc4, 0xd7, 0xef, /* }Q.O.... */ +0x71, 0x4f, 0xd7, 0xeb, 0x54, 0xf5, 0xd7, 0x5d, /* qO..T..] */ +0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x19, 0xe4, 0xdf, /* u.]u.... */ +0xae, 0x21, 0xe7, 0xa5, 0x20, 0x85, 0x2b, 0xd3, /* .!.. .+. */ +0x29, 0x3a, 0xe5, 0x21, 0x65, 0x7a, 0x26, 0x57, /* ):.!ez&W */ +0xae, 0x9e, 0x5e, 0x7f, 0xd2, 0xac, 0xab, 0x2f, /* ..^..../ */ +0x7d, 0xf7, 0xdf, 0x6b, 0x2a, 0xda, 0xda, 0xd7, /* }..k*... */ +0x7d, 0xf7, 0xdf, 0x7d, 0xf5, 0xd7, 0x5d, 0x75, /* }..}..]u */ +0xd7, 0x5d, 0x75, 0xd7, 0x4b, 0x6b, 0x29, 0x32, /* .]u.Kk)2 */ +0x75, 0xd7, 0x2f, 0x5d, 0x71, 0xd1, 0x00, 0x24, /* u./]q..$ */ +0x7a, 0xdf, 0x9f, 0xff, 0xa7, 0x2d, 0x0f, 0x45, /* z....-.E */ +0x13, 0x20, 0x51, 0xea, 0x8f, 0x47, 0x01, 0x64, /* . Q..G.d */ +0xe7, 0x51, 0x3f, 0xff, 0xe1, 0x15, 0x02, 0x45, /* .Q?....E */ +0xdb, 0xf3, 0xff, 0xff, 0x4d, 0x32, 0xa3, 0x04, /* ....M2.. */ +0xdb, 0x0b, 0x8f, 0x97, 0xfd, 0x04, 0x8b, 0x97, /* ........ */ +0x29, 0x25, 0xd5, 0x27, 0xf4, 0xc2, 0x96, 0x1b, /* )%.'.... */ +0xf6, 0xed, 0xf2, 0xaf, 0xff, 0xff, 0xee, 0x04, /* ........ */ +0x0a, 0xf8, 0x2b, 0xe5, 0xb5, 0x44, 0x6c, 0xbf, /* ..+..Dl. */ +0xfe, 0xef, 0x00, 0x16, 0x1d, 0xe3, 0x0d, 0x70, /* .......p */ +0x8f, 0xd3, 0xaf, 0xae, 0xdf, 0xe9, 0x0c, 0xf7, /* ........ */ +0x7c, 0x1f, 0x61, 0xff, 0x48, 0x7e, 0x01, 0x76, /* |.a.H~.v */ +0x6b, 0x03, 0x5f, 0x47, 0xdd, 0xbf, 0xfd, 0xc3, /* k._G.... */ +0x71, 0xff, 0xd0, 0x4b, 0x49, 0xe9, 0x73, 0x31, /* q..KI.s1 */ +0x76, 0x91, 0x65, 0x64, 0x1a, 0x8c, 0x2c, 0xa4, /* v.ed..,. */ +0x81, 0x3b, 0xeb, 0xbe, 0x5e, 0xf9, 0x22, 0x07, /* .;..^.". */ +0x99, 0x17, 0x1e, 0x50, 0x86, 0x1e, 0xfb, 0xfd, /* ...P.... */ +0xb6, 0xd3, 0x4f, 0xc7, 0xe1, 0xac, 0xeb, 0x6f, /* ..O....o */ +0xef, 0xff, 0x97, 0x22, 0xf5, 0x7c, 0x82, 0x95, /* ...".|.. */ +0xf8, 0x65, 0xfe, 0x57, 0x7d, 0x2a, 0xb8, 0xbb, /* .e.W}*.. */ +0xc8, 0xbf, 0xf8, 0x4a, 0x8f, 0x49, 0xf3, 0xca, /* ...J.I.. */ +0x42, 0xa9, 0x4e, 0x5f, 0x2c, 0x5c, 0xd8, 0xbf, /* B.N_,\.. */ +0xed, 0x6d, 0x55, 0xf5, 0xd2, 0xd2, 0xd2, 0xd7, /* .mU..... */ +0x21, 0x32, 0xbd, 0xf2, 0x72, 0xf1, 0x3d, 0xe9, /* !2..r.=. */ +0x65, 0x5a, 0x5a, 0x79, 0x59, 0x25, 0x79, 0x79, /* eZZyY%yy */ +0x49, 0xa2, 0x69, 0x92, 0x57, 0xa6, 0x26, 0x9e, /* I.i.W.&. */ +0x9e, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, /* ........ */ +0xed, 0x63, 0x49, 0xe8, 0xc7, 0xeb, 0x59, 0x59, /* .cI...YY */ +0x25, 0x21, 0x25, 0x21, 0x5c, 0xaf, 0x2b, 0xd3, /* %!%!\.+. */ +0xd3, 0x2d, 0x3d, 0x74, 0xf1, 0x1f, 0xab, 0xae, /* .-=t.... */ +0xba, 0xeb, 0xae, 0xba, 0xd4, 0x9d, 0xf7, 0xde, /* ........ */ +0xa4, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0x5e, 0x5e, /* ......^^ */ +0xfb, 0xd4, 0xbd, 0xf7, 0xdf, 0x7c, 0x9d, 0xf2, /* .....|.. */ +0xf5, 0xcb, 0xcb, 0xcb, 0xd4, 0x81, 0x1f, 0xa7, /* ........ */ +0x09, 0x98, 0x0c, 0xcd, 0x03, 0x25, 0x90, 0x81, /* .....%.. */ +0x97, 0xe0, 0x99, 0x0e, 0x0c, 0x5c, 0xaf, 0xff, /* .....\.. */ +0x6f, 0xc5, 0xff, 0xff, 0x72, 0x05, 0x4d, 0xdf, /* o...r.M. */ +0x2e, 0x4a, 0x48, 0xe4, 0xa0, 0x89, 0x0a, 0x06, /* .JH..... */ +0x7f, 0xef, 0xa7, 0xff, 0x85, 0x18, 0xb1, 0x40, /* .......@ */ +0x69, 0xff, 0xff, 0x6b, 0x26, 0x45, 0x8f, 0x42, /* i..k&E.B */ +0x0a, 0x18, 0x1f, 0x0e, 0x23, 0x50, 0xbc, 0xff, /* ....#P.. */ +0x70, 0x82, 0x29, 0x38, 0x02, 0xcb, 0xff, 0xeb, /* p.)8.... */ +0xf6, 0x8a, 0xa5, 0x91, 0x16, 0x89, 0x76, 0xb4, /* ......v. */ +0x42, 0x0d, 0x64, 0x99, 0x07, 0xa3, 0x08, 0xc4, /* B.d..... */ +0xba, 0xef, 0xbe, 0xba, 0xea, 0x20, 0xdd, 0xe6, /* ..... .. */ +0xb1, 0xf8, 0x8d, 0xff, 0x4f, 0xff, 0xbd, 0x4b, /* ....O..K */ +0xff, 0x84, 0x8b, 0x77, 0xdf, 0x24, 0xb7, 0xc8, /* ...w.$.. */ +0xf0, 0x84, 0x40, 0x17, 0x64, 0x97, 0xf9, 0x60, /* ..@.d..` */ +0xaf, 0xf2, 0xc4, 0xd7, 0x5d, 0x74, 0x4a, 0xbe, /* ....]tJ. */ +0x5e, 0xba, 0xeb, 0xa2, 0x69, 0x69, 0x69, 0xeb, /* ^...iii. */ +0xa2, 0x65, 0xe8, 0x9a, 0x7a, 0xe5, 0x64, 0x95, /* .e..z.d. */ +0xdc, 0xa4, 0xcb, 0xca, 0xf2, 0xc9, 0x2b, 0xb8, /* ......+. */ +0xc8, 0x96, 0xcd, 0x6b, 0xf8, 0xc7, 0xc9, 0xff, /* ...k.... */ +0xbd, 0x3d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, /* .=u.]u.] */ +0x75, 0xd7, 0x33, 0xd9, 0x29, 0x08, 0xa5, 0x21, /* u.3.)..! */ +0x29, 0x96, 0x57, 0xa5, 0xa6, 0x59, 0x97, 0xd4, /* ).W..Y.. */ +0x4c, 0xab, 0x4f, 0x29, 0x35, 0xd7, 0x4f, 0x6b, /* L.O)5.Ok */ +0x6f, 0x7d, 0xf5, 0xdf, 0x7d, 0xf5, 0xdf, 0x7d, /* o}..}..} */ +0xf7, 0xdf, 0x1f, 0xff, 0xdf, 0xfb, 0xe5, 0xd4, /* ........ */ +0xbc, 0x9c, 0xbd, 0x75, 0xd7, 0x5d, 0x72, 0x77, /* ...u.]rw */ +0xcb, 0xc9, 0xd1, 0x35, 0x10, 0x08, 0xcc, 0xe8, /* ...5.... */ +0x13, 0x31, 0x7d, 0x42, 0x88, 0xe1, 0x41, 0xd3, /* .1}B..A. */ +0xff, 0x6f, 0x6f, 0x78, 0x41, 0x40, 0x18, 0xf7, /* .ooxA@.. */ +0xf5, 0x75, 0x3f, 0x6f, 0xfd, 0x31, 0xe8, 0x50, /* .u?o.1.P */ +0x23, 0x31, 0xdc, 0xbf, 0xff, 0x6e, 0x52, 0x09, /* #1...nR. */ +0x02, 0x97, 0x10, 0xfb, 0xbf, 0xff, 0xf0, 0xf1, /* ........ */ +0xcb, 0x9e, 0xd1, 0x67, 0x5b, 0x49, 0xc9, 0xd7, /* ...g[I.. */ +0x7b, 0x84, 0x64, 0xaf, 0xff, 0xf1, 0xd2, 0x02, /* {.d..... */ +0x3d, 0xcf, 0x5f, 0xff, 0xed, 0x8a, 0xbf, 0xfe, /* =._..... */ +0xef, 0xde, 0x08, 0x51, 0xb0, 0xd8, 0x32, 0xbf, /* ...Q..2. */ +0xfc, 0xbe, 0xf8, 0x57, 0xc1, 0xd5, 0x9d, 0x25, /* ...W...% */ +0x61, 0xb2, 0x6a, 0x24, 0x24, 0x14, 0xfe, 0x44, /* a.j$$..D */ +0xba, 0x57, 0x2f, 0x5d, 0x75, 0xd7, 0x7d, 0xee, /* .W/]u.}. */ +0xba, 0xeb, 0x68, 0x4e, 0xad, 0x2b, 0xa4, 0xf5, /* ..hN.+.. */ +0x72, 0x1b, 0x14, 0xb5, 0xa9, 0x7a, 0x7a, 0xe5, /* r....zz. */ +0xeb, 0xae, 0x5e, 0x5e, 0xba, 0x26, 0xba, 0xe9, /* ..^^.&.. */ +0xeb, 0xae, 0x67, 0x7a, 0x94, 0x99, 0x48, 0x4a, /* ..gz..HJ */ +0xe5, 0x45, 0x72, 0x90, 0x8e, 0x52, 0x65, 0xc5, /* .Er..Re. */ +0x7f, 0xff, 0xf2, 0x11, 0x12, 0x75, 0x06, 0x21, /* .....u.! */ +0x79, 0x15, 0xca, 0xf5, 0xd7, 0x5d, 0x75, 0xd7, /* y....]u. */ +0x5d, 0x75, 0xd7, 0x5c, 0x6f, 0x63, 0x7f, 0xa8, /* ]u.\oc.. */ +0x87, 0x19, 0x41, 0x55, 0x11, 0x2b, 0x2c, 0xaf, /* ..AU.+,. */ +0x5d, 0x32, 0xd1, 0x36, 0xf2, 0xf4, 0xaa, 0xba, /* ]2.6.... */ +0x7a, 0xed, 0xef, 0xb5, 0xb2, 0x6d, 0xe5, 0xd4, /* z....m.. */ +0xbd, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xea, /* ...}..}. */ +0xfb, 0xe5, 0xe4, 0xe5, 0xe5, 0xeb, 0xae, 0xba, /* ........ */ +0xe5, 0xeb, 0x8e, 0xcb, 0xff, 0xff, 0xa6, 0x26, /* .......& */ +0x28, 0x0c, 0x33, 0x92, 0xa5, 0x4c, 0x11, 0x5f, /* (.3..L._ */ +0x33, 0x84, 0x28, 0x86, 0x4f, 0xfc, 0xbf, 0xdd, /* 3.(.O... */ +0xd3, 0x36, 0xbd, 0x7c, 0xb9, 0xbc, 0x22, 0xe1, /* .6.|..". */ +0x21, 0xb1, 0xff, 0xe9, 0xff, 0x8b, 0x95, 0xdf /* !....... */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt13[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x42, 0x40, 0x00, 0x40, 0x11, /* ...B@.@. */ +0xc0, 0xd3, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x5c, 0xbd, 0x80, 0x63, 0x8c, 0xf9, 0x06, 0x15, /* \..c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xff, 0x85, 0x8e, 0x5c, 0x49, 0xef, 0xda, 0xd0, /* ...\I... */ +0x91, 0x76, 0xb2, 0x2c, 0x8a, 0x89, 0x29, 0xfa, /* .v.,..). */ +0x90, 0xac, 0x1e, 0x55, 0x79, 0x49, 0x95, 0x7f, /* ...UyI.. */ +0xcb, 0xea, 0x5a, 0x0f, 0x8a, 0x9b, 0x04, 0xf9, /* ..Z..... */ +0x4e, 0xbb, 0x4e, 0x2f, 0xff, 0x61, 0x2c, 0xdf, /* N.N/.a,. */ +0xc5, 0xef, 0xe2, 0x1f, 0xf8, 0x48, 0xe5, 0xcf, /* .....H.. */ +0x7f, 0x03, 0x77, 0x7f, 0xfe, 0x1e, 0x21, 0x59, /* ..w...!Y */ +0x0f, 0x9a, 0xf2, 0x44, 0x97, 0x1e, 0xeb, 0x74, /* ...D...t */ +0xb7, 0xc9, 0xcb, 0xd7, 0x5d, 0x6d, 0x3e, 0x5d, /* ....]m>] */ +0x5e, 0x91, 0x75, 0x64, 0x21, 0xb1, 0x10, 0x83, /* ^.ud!... */ +0xda, 0x15, 0x94, 0x94, 0x72, 0x8f, 0xf9, 0x75, /* ....r..u */ +0xcb, 0xd2, 0xd2, 0xa9, 0x1e, 0xba, 0xef, 0x97, /* ........ */ +0xae, 0xba, 0xeb, 0x95, 0xeb, 0x89, 0xf5, 0x12, /* ........ */ +0xfe, 0x97, 0xae, 0x88, 0x4a, 0x77, 0x2e, 0xe5, /* ....Jw.. */ +0x77, 0x10, 0x48, 0xea, 0x1f, 0x4a, 0x42, 0x29, /* w.H..JB) */ +0x49, 0x37, 0x19, 0x12, 0xda, 0x31, 0xf5, 0xbe, /* I7...1.. */ +0x31, 0xe9, 0xff, 0xbd, 0x75, 0xd7, 0x5d, 0x75, /* 1...u.]u */ +0xd7, 0x5d, 0x75, 0xd7, 0x4f, 0x2b, 0xca, 0xc4, /* .]u.O+.. */ +0x4a, 0x42, 0xca, 0xf3, 0x7e, 0xa6, 0x5a, 0x7a, /* JB..~.Zz */ +0x79, 0x7a, 0xe8, 0x9a, 0x7b, 0xe5, 0x7b, 0xef, /* yz..{.{. */ +0x57, 0xce, 0xbe, 0xb2, 0x6c, 0x9b, 0x7b, 0xef, /* W...l.{. */ +0xbe, 0xfb, 0xef, 0xbd, 0xb5, 0xd7, 0x5d, 0x77, /* ......]w */ +0xcb, 0xd7, 0x7d, 0xf7, 0xdf, 0xff, 0xff, 0x78, /* ..}....x */ +0x21, 0x11, 0x97, 0x22, 0x68, 0x72, 0x5d, 0x4a, /* !.."hr]J */ +0x98, 0x24, 0x1d, 0xd0, 0x4c, 0x1d, 0x59, 0xe3, /* .$..L.Y. */ +0xfd, 0xfe, 0xcd, 0xad, 0x7e, 0x5c, 0x78, 0x87, /* ....~\x. */ +0x30, 0xa9, 0x0a, 0x00, 0xca, 0xd2, 0xd3, 0x6f, /* 0......o */ +0x2e, 0xb4, 0xff, 0xfa, 0xdd, 0xff, 0xff, 0x40, /* .......@ */ +0x88, 0x5b, 0xfb, 0x59, 0x36, 0xf5, 0xa6, 0xe4, /* .[.Y6... */ +0x3b, 0x0f, 0x6d, 0x4a, 0x86, 0xa4, 0x23, 0x24, /* ;.mJ..#$ */ +0x54, 0xd2, 0x2c, 0x9c, 0xbd, 0xe6, 0xd4, 0xe4, /* T.,..... */ +0xe5, 0xeb, 0x93, 0x68, 0xbc, 0xbc, 0x9c, 0x9c, /* ...h.... */ +0x92, 0x07, 0x72, 0xcf, 0x29, 0x22, 0xcb, 0x2f, /* ..r.)"./ */ +0x27, 0x72, 0x1b, 0x1f, 0x26, 0xa4, 0xd1, 0xbd, /* 'r..&... */ +0xa6, 0xac, 0xc9, 0x2d, 0x75, 0xd7, 0x5a, 0xae, /* ...-u.Z. */ +0x4e, 0x96, 0x96, 0xd6, 0x96, 0x55, 0xbe, 0xba, /* N....U.. */ +0xe5, 0xeb, 0x97, 0x99, 0xef, 0x4f, 0x29, 0x32, /* .....O)2 */ +0xbb, 0x91, 0xce, 0xa4, 0x84, 0x23, 0x65, 0x77, /* .....#ew */ +0x26, 0x5d, 0x2b, 0xcb, 0xa9, 0x59, 0x25, 0x45, /* &]+..Y%E */ +0x51, 0x52, 0xca, 0xbf, 0xbe, 0xed, 0xeb, 0xae, /* QR...... */ +0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0x2b, 0xaf, /* ......+. */ +0xd6, 0xa2, 0x1d, 0x31, 0xad, 0x29, 0x04, 0x26, /* ...1.).& */ +0x88, 0x5a, 0x7a, 0xe9, 0x96, 0x9e, 0xb7, 0x29, /* .Zz....) */ +0x22, 0xb4, 0xee, 0x9e, 0x47, 0x9b, 0xf5, 0x3d, /* "...G..= */ +0x6a, 0x27, 0x5e, 0xb5, 0x88, 0xed, 0x6f, 0x7d, /* j'^...o} */ +0x93, 0x7d, 0xf7, 0xdf, 0x7d, 0xc9, 0x72, 0xd7, /* .}..}.r. */ +0x5d, 0x6a, 0x4e, 0xfb, 0xef, 0xbe, 0xff, 0xff, /* ]jN..... */ +0xfb, 0xc1, 0x09, 0x32, 0xe3, 0x85, 0x66, 0x1c, /* ...2..f. */ +0x97, 0xff, 0x4f, 0xfa, 0xee, 0x5f, 0xff, 0x41, /* ..O.._.A */ +0xe3, 0x97, 0x1f, 0x79, 0xb3, 0xff, 0xde, 0xfc, /* ...y.... */ +0x59, 0xab, 0xe5, 0xc7, 0x10, 0xe7, 0xfb, 0xdc, /* Y....... */ +0xbf, 0xf0, 0xb7, 0x2e, 0x4b, 0x8f, 0xd6, 0xff, /* ....K... */ +0xff, 0xc8, 0x47, 0x17, 0x27, 0x37, 0xea, 0x44, /* ..G.'7.D */ +0x4d, 0xa2, 0xb1, 0xb5, 0x6c, 0x84, 0x20, 0xdd, /* M...l. . */ +0x44, 0x54, 0xdb, 0x8e, 0x2b, 0xcc, 0xc9, 0x65, /* DT..+..e */ +0x1a, 0x51, 0x3e, 0xa5, 0x26, 0x55, 0x95, 0x11, /* .Q>.&U.. */ +0xca, 0x8a, 0xe5, 0x79, 0x39, 0x64, 0x1d, 0x6a, /* ...y9d.j */ +0xe4, 0x29, 0x12, 0xe3, 0x44, 0x65, 0x94, 0x1f, /* .)..De.. */ +0x62, 0x95, 0xc7, 0x6d, 0x7f, 0xff, 0x6f, 0xff, /* b..m..o. */ +0xbb, 0xfc, 0x8a, 0x43, 0xcd, 0xc9, 0x2c, 0xae, /* ...C..,. */ +0xe5, 0x75, 0x93, 0x0f, 0xda, 0x56, 0x4b, 0xdb, /* .u...VK. */ +0xff, 0xff, 0x78, 0x21, 0xed, 0x28, 0xf9, 0x83, /* ..x!.(.. */ +0x7e, 0xff, 0xb7, 0xb7, 0xd4, 0x5d, 0x72, 0xf5, /* ~....]r. */ +0xd7, 0x5d, 0x75, 0xd7, 0x27, 0x5d, 0x75, 0xd7, /* .]u.']u. */ +0x5c, 0xdd, 0xeb, 0x97, 0xa5, 0xa5, 0x4c, 0x8e, /* \.....L. */ +0xd8, 0x96, 0x4f, 0x48, 0x49, 0x74, 0xaf, 0x2e, /* ..OHIt.. */ +0xa5, 0x79, 0x64, 0x72, 0xab, 0x62, 0x10, 0x91, /* .ydr.b.. */ +0xa5, 0xfc, 0x57, 0xef, 0x97, 0xe5, 0xed, 0xeb, /* ..W..... */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xa7, 0x89, /* ........ */ +0x7b, 0x51, 0x04, 0x4a, 0xf4, 0xcb, 0x4f, 0x4f, /* {Q.J..OO */ +0x4c, 0xb4, 0x4a, 0x6b, 0x72, 0xbd, 0x3d, 0x13, /* L.Jkr.=. */ +0x7d, 0xf7, 0xcb, 0xc8, 0x4c, 0xa4, 0xd7, 0x5a, /* }...L..Z */ +0xb5, 0xb5, 0xb5, 0x90, 0x9b, 0x7b, 0xef, 0x6c, /* .....{.l */ +0xbd, 0xf7, 0xcb, 0xc9, 0xdf, 0x7d, 0xff, 0xff, /* .....}.. */ +0xdd, 0xc2, 0x19, 0x15, 0xc0, 0xdc, 0x74, 0x07, /* ......t. */ +0x1e, 0xfd, 0x72, 0xfb, 0xe2, 0xaf, 0x09, 0x72, /* ..r....r */ +0x09, 0x26, 0x32, 0xb7, 0x9b, 0xf5, 0x5e, 0x4e, /* .&2...^N */ +0x45, 0xff, 0xc8, 0x16, 0x3e, 0xf7, 0xef, 0x1d, /* E...>... */ +0x12, 0x2f, 0xff, 0xfd, 0x3f, 0xfe, 0xef, 0x7c, /* ./..?..| */ +0x81, 0x51, 0x5b, 0xcb, 0x9f, 0x95, 0xdf, 0xff, /* .Q[..... */ +0x41, 0x67, 0x2e, 0x5e, 0xfd, 0x59, 0x04, 0xcb, /* Ag.^.Y.. */ +0x5b, 0x79, 0x56, 0x45, 0x68, 0xa8, 0x89, 0xb9, /* [yVEh... */ +0x4c, 0xc3, 0x25, 0xb2, 0x6d, 0x14, 0x84, 0xb5, /* L.%.m... */ +0x4d, 0x92, 0xc6, 0xd6, 0x96, 0xe5, 0x68, 0x4f, /* M.....hO */ +0xe9, 0x56, 0x54, 0x4b, 0x56, 0x8a, 0xec, 0xcb, /* .VTKV... */ +0xa4, 0xa5, 0xac, 0xf8, 0xf9, 0x79, 0x79, 0x24, /* .....yy$ */ +0x21, 0x10, 0x8c, 0xa3, 0xea, 0x9f, 0xff, 0xf2, /* !....... */ +0x6e, 0xb9, 0x3b, 0xe5, 0xda, 0x2f, 0xff, 0xf7, /* n.;../.. */ +0xdf, 0x0a, 0x8a, 0xcd, 0x99, 0xb3, 0x2c, 0x81, /* ......,. */ +0x96, 0x6f, 0x0a, 0xe2, 0x74, 0xfe, 0xde, 0x9f, /* .o..t... */ +0xf8, 0xff, 0xe3, 0x05, 0xfd, 0x50, 0xed, 0x75, /* .....P.u */ +0xef, 0xc7, 0x63, 0x4a, 0xf6, 0xfa, 0x8f, 0xae, /* ..cJ.... */ +0xbb, 0xeb, 0xae, 0xba, 0xeb, 0x97, 0xa2, 0x6b, /* .......k */ +0xae, 0xba, 0xe8, 0x95, 0x5d, 0x12, 0xe5, 0x79, /* ....]..y */ +0x39, 0x77, 0x2e, 0xe5, 0x44, 0x72, 0x93, 0x2b, /* 9w..Dr.+ */ +0xca, 0xb1, 0x0e, 0x3a, 0x87, 0xd2, 0x90, 0x8e, /* ...:.... */ +0x5c, 0x69, 0x44, 0x21, 0x25, 0xd7, 0x8c, 0xef, /* \iD!%... */ +0xf2, 0xfc, 0xbc, 0x8f, 0x2f, 0x5d, 0x75, 0xd7, /* ..../]u. */ +0x5d, 0x75, 0xcc, 0x4d, 0x92, 0x93, 0x29, 0x04, /* ]u.M..). */ +0x28, 0x92, 0x7d, 0x29, 0x0b, 0x4b, 0x4f, 0x4c, /* (.}).KOL */ +0xb2, 0xbc, 0xdd, 0xa5, 0x7b, 0x79, 0x1e, 0x9e, /* ....{y.. */ +0xba, 0xe4, 0xef, 0xa7, 0xa7, 0xad, 0x4f, 0xab, /* ......O. */ +0x4a, 0xf3, 0x77, 0x94, 0x9a, 0x5a, 0x92, 0x59, /* J.w..Z.Y */ +0x53, 0x7d, 0xf7, 0xcb, 0xdf, 0x7c, 0xfd, 0xff, /* S}...|.. */ +0xcb, 0xf1, 0xc8, 0x20, 0x74, 0x65, 0x4b, 0xef, /* ... teK. */ +0x97, 0x1f, 0xcd, 0x42, 0x8c, 0xa4, 0x77, 0x54, /* ...B..wT */ +0x32, 0xbf, 0xff, 0xf7, 0x84, 0x48, 0x2c, 0x29, /* 2....H,) */ +0x65, 0xff, 0xfd, 0x32, 0x31, 0x40, 0x46, 0xab, /* e..21@F. */ +0x98, 0x5b, 0x08, 0x07, 0xc7, 0x10, 0x82, 0x5a, /* .[.....Z */ +0x7a, 0x95, 0x6d, 0x6c, 0x98, 0x9e, 0xf2, 0xc8, /* z.ml.... */ +0x9b, 0x59, 0x65, 0x91, 0x5a, 0x2a, 0x24, 0xac, /* .Ye.Z*$. */ +0xa9, 0xbc, 0xcc, 0x35, 0x91, 0x50, 0xc8, 0xc8, /* ...5.P.. */ +0x56, 0x95, 0x16, 0x45, 0xa2, 0x64, 0x76, 0x96, /* V..E.dv. */ +0x72, 0x29, 0x5a, 0x4a, 0xd1, 0x56, 0xf5, 0x7d, /* r)ZJ.V.} */ +0x69, 0xbd, 0xd7, 0x27, 0x7d, 0xed, 0x17, 0xff, /* i..'}... */ +0xfb, 0xef, 0x85, 0x45, 0x6d, 0x2c, 0xd9, 0x50, /* ...Em,.P */ +0x8c, 0x81, 0xc4, 0x2f, 0xef, 0xf6, 0xfe, 0x9c, /* .../.... */ +0x20, 0x42, 0x00, 0x9b, 0xfd, 0x2f, 0x9f, 0xfa, /* B.../.. */ +0x6f, 0x8b, 0xc7, 0x4c, 0x0e, 0xa0, 0xcf, 0x5e, /* o..L...^ */ +0xae, 0xbb, 0xab, 0xa8, 0x43, 0x04, 0x20, 0xf0, /* ....C. . */ +0xf7, 0x9d, 0xf5, 0xdf, 0x75, 0xbe, 0x3a, 0x70, /* ....u.:p */ +0x13, 0x35, 0x0f, 0xd3, 0xff, 0x9e, 0x1f, 0xff, /* .5...... */ +0x3f, 0xe4, 0x04, 0x65, 0x5f, 0xd5, 0x1f, 0x5d, /* ?..e_..] */ +0x75, 0xd7, 0x5d, 0x75, 0xc9, 0xd7, 0x4b, 0x4b, /* u.]u..KK */ +0x4f, 0x5d, 0x72, 0xbd, 0x77, 0xca, 0xf2, 0xf2, /* O]r.w... */ +0xbb, 0x95, 0xdc, 0xbb, 0x94, 0x84, 0x94, 0x97, /* ........ */ +0x2e, 0xe5, 0xc4, 0x38, 0x55, 0x96, 0x47, 0x29, /* ...8U.G) */ +0x2d, 0x88, 0x45, 0x2e, 0xbc, 0x62, 0x2c, 0x36, /* -.E..b,6 */ +0xe0, 0x7f, 0x7a, 0x69, 0xe3, 0x39, 0x55, 0xdb, /* ..zi.9U. */ +0xe9, 0xa6, 0x47, 0xbe, 0x5e, 0xba, 0xeb, 0xae, /* ..G.^... */ +0x62, 0x6f, 0x4e, 0xe2, 0x48, 0x42, 0xe7, 0x4c, /* boN.HB.L */ +0x4d, 0xa5, 0x59, 0x56, 0x89, 0xa2, 0x16, 0x89, /* M.YV.... */ +0xa2, 0x68, 0x9a, 0x5a, 0x26, 0xba, 0xeb, 0xbe, /* .h.Z&... */ +0xb9, 0x56, 0xba, 0x7a, 0x26, 0x25, 0xef, 0x2f, /* .V.z&%./ */ +0x23, 0xcb, 0xdc, 0x8d, 0x92, 0x59, 0xbb, 0xd1, /* #....Y.. */ +0x34, 0xb2, 0xad, 0x2f, 0xff, 0xfd, 0xd0, 0x21, /* 4../...! */ +0x11, 0x97, 0x1c, 0x2a, 0x90, 0x04, 0xfa, 0x97, /* ...*.... */ +0xbb, 0xe9, 0xe9, 0xff, 0xad, 0xff, 0xff, 0xa0, /* ........ */ +0x44, 0x2d, 0xfd, 0xe2, 0x62, 0x07, 0x72, 0xa9, /* D-..b.r. */ +0x70, 0xcb, 0xf1, 0x22, 0x5a, 0x6b, 0x3a, 0xad, /* p.."Zk:. */ +0x4a, 0x89, 0x2a, 0x2a, 0xb4, 0x4b, 0x5b, 0xe5, /* J.**.K[. */ +0x59, 0x56, 0x5e, 0x52, 0x65, 0x54, 0xd9, 0x2a, /* YV^ReT.* */ +0x54, 0x57, 0x68, 0x8e, 0x57, 0x95, 0x16, 0x96, /* TWh.W... */ +0x5d, 0xa7, 0x23, 0x36, 0xf2, 0xf2, 0xec, 0xc9, /* ].#6.... */ +0x2a, 0x6f, 0xbd, 0x4b, 0xd6, 0x84, 0xb3, 0x63, /* *o.K...c */ +0x90, 0xd8, 0x4c, 0xd4, 0xff, 0xfe, 0xef, 0x0a, /* ..L..... */ +0x9b, 0x9b, 0x3a, 0x84, 0x64, 0x0c, 0xb3, 0xaf, /* ..:.d... */ +0xed, 0xb7, 0xff, 0xbb, 0xdf, 0xe3, 0xb3, 0x46, /* .......F */ +0x10, 0xd9, 0xf4, 0xf4, 0xd5, 0xc7, 0xe0, 0x0a, /* ........ */ +0x9b, 0x69, 0xa5, 0xea, 0xff, 0x4d, 0x77, 0xd4, /* .i...Mw. */ +0xb0, 0x8a, 0xf9, 0x00, 0x7d, 0xad, 0x94, 0x49, /* ....}..I */ +0xb5, 0x7d, 0xb4, 0xf7, 0xf6, 0xdb, 0xed, 0xe5, /* .}...... */ +0x05, 0xfb, 0x75, 0xa7, 0xaa, 0xff, 0xb7, 0x66, /* ..u....f */ +0xec, 0xdf, 0x83, 0x0d, 0xf4, 0xef, 0x5b, 0xff, /* ......[. */ +0x0f, 0xec, 0xde, 0xc4, 0xc2, 0x5b, 0xad, 0xb4, /* .....[.. */ +0xd5, 0xf6, 0xff, 0xf6, 0xa2, 0xf6, 0xf3, 0x63, /* .......c */ +0x7a, 0xef, 0xda, 0x4d, 0x7e, 0xb9, 0xd4, 0xd0, /* z..M~... */ +0x29, 0x3b, 0xf7, 0xe4, 0x05, 0x42, 0x75, 0xd7, /* );...Bu. */ +0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, /* ]u.]u.]u */ +0xaa, 0xe5, 0x26, 0x45, 0x6c, 0x8b, 0x2a, 0xc4, /* ..&El.*. */ +0xad, 0xe5, 0xed, 0x65, 0x26, 0x21, 0x46, 0xd5, /* ...e&!F. */ +0xe5, 0x44, 0xb2, 0x4d, 0xca, 0x4c, 0xbc, 0xaa, /* .D.M.L.. */ +0x2b, 0x2b, 0x23, 0x94, 0x92, 0xe7, 0xff, 0xfe, /* ++#..... */ +0x41, 0xa8, 0x4d, 0x6d, 0xfe, 0x31, 0x52, 0x11, /* A.Mm.1R. */ +0xd4, 0x7e, 0x9e, 0x20, 0x9f, 0x2a, 0x1b, 0xca, /* .~. .*.. */ +0x9d, 0xbe, 0x9a, 0x69, 0xeb, 0xae, 0x6e, 0x82, /* ...i..n. */ +0x19, 0xb7, 0xa7, 0x95, 0x08, 0x0a, 0x2a, 0x59, /* ......*Y */ +0x4f, 0xca, 0xea, 0xb7, 0x2f, 0x2b, 0xd3, 0x2d, /* O.../+.- */ +0x3c, 0xbd, 0x3d, 0x74, 0xb4, 0xf5, 0xd7, 0x5d, /* <.=t...] */ +0x75, 0xd2, 0xca, 0xf6, 0xb7, 0xdf, 0x5c, 0x76, /* u.....\v */ +0x5f, 0xfd, 0x7f, 0xb8, 0xe5, 0x4d, 0xff, 0xff, /* _....M.. */ +0xa2, 0x6b, 0x57, 0xdf, 0x7f, 0xff, 0xdc, 0xbc, /* .kW..... */ +0x60, 0xae, 0x5c, 0xcb, 0x8f, 0x7f, 0x27, 0xbf, /* `.\...'. */ +0xff, 0x82, 0x27, 0x77, 0xd4, 0x84, 0x8e, 0xe4, /* ..'w.... */ +0x52, 0x43, 0x03, 0xe2, 0x44, 0xb4, 0x55, 0x57, /* RC..D.UW */ +0xcf, 0xab, 0xd9, 0x2a, 0xdd, 0x4f, 0xfa, 0x72, /* ...*.O.r */ +0x55, 0xec, 0x9b, 0x92, 0xf9, 0x79, 0x56, 0xd1 /* U....yV. */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt14[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x43, 0x40, 0x00, 0x40, 0x11, /* ...C@.@. */ +0xc0, 0xd2, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x81, 0xe6, 0x80, 0x63, 0x8c, 0xfa, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x0d, 0x85, 0x45, 0x6d, 0xaa, 0x44, 0x25, 0xa2, /* ..Em.D%. */ +0xac, 0x84, 0x2b, 0x44, 0x59, 0x73, 0x61, 0x51, /* ..+DYsaQ */ +0x27, 0x45, 0xf4, 0xba, 0x44, 0xcf, 0x8b, 0x93, /* 'E..D... */ +0x69, 0xea, 0x52, 0x11, 0x19, 0x79, 0x33, 0x92, /* i.R..y3. */ +0xff, 0xf7, 0xc7, 0x0a, 0x8a, 0xcd, 0x9b, 0x58, /* .......X */ +0x56, 0x50, 0x63, 0xcb, 0xfe, 0xdb, 0x7f, 0xca, /* VPc..... */ +0x91, 0xe4, 0x20, 0x27, 0xea, 0xf1, 0xd3, 0x6e, /* .. '...n */ +0x9a, 0x7f, 0xe3, 0xc8, 0x50, 0x79, 0x10, 0x7f, /* ....Py.. */ +0x6f, 0xfe, 0x24, 0x8c, 0x12, 0xa5, 0xcf, 0x4f, /* o.$....O */ +0x2d, 0xd6, 0xa1, 0x6f, 0x89, 0xf0, 0x91, 0x83, /* -..o.... */ +0x4f, 0x7d, 0x3f, 0x6f, 0x6d, 0x8a, 0x1b, 0x50, /* O}?om..P */ +0x27, 0x15, 0x4f, 0xe9, 0xff, 0xdb, 0xb7, 0xba, /* '.O..... */ +0xe6, 0xe9, 0xbf, 0xaf, 0xcd, 0xfb, 0x16, 0xdd, /* ........ */ +0xbb, 0x12, 0x19, 0xe9, 0xdf, 0xef, 0xed, 0x66, /* .......f */ +0xd9, 0x82, 0x11, 0x62, 0xb6, 0xf4, 0x3d, 0xb7, /* ...b..=. */ +0xd6, 0xdf, 0x6e, 0xcd, 0xf1, 0x7d, 0x36, 0xeb, /* ..n..}6. */ +0xcd, 0xfb, 0x33, 0x04, 0x3d, 0x9b, 0xd9, 0x47, /* ..3.=..G */ +0x89, 0xf8, 0xcc, 0xc6, 0xfe, 0x36, 0xf9, 0x42, /* .....6.B */ +0x64, 0x16, 0xbf, 0x0d, 0x76, 0x9f, 0xfc, 0xb5, /* d...v... */ +0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5a, 0xbe, 0x5e, /* u.]u.Z.^ */ +0x5e, 0x5e, 0x89, 0x93, 0x97, 0x95, 0xe4, 0xeb, /* ^^...... */ +0x93, 0xb2, 0x11, 0x22, 0xac, 0x92, 0xca, 0xf6, /* ...".... */ +0xb2, 0x39, 0x74, 0xac, 0x92, 0xf2, 0x92, 0xec, /* .9t..... */ +0x93, 0x72, 0xab, 0x94, 0x84, 0x72, 0xb9, 0x79, /* .r...r.y */ +0x76, 0xcb, 0xa9, 0x25, 0x48, 0xa8, 0xb1, 0x9a, /* v..%H... */ +0x5a, 0x0a, 0x7e, 0x9a, 0x78, 0x92, 0x7e, 0x22, /* Z.~.x.~" */ +0x09, 0xb2, 0x7d, 0xc8, 0x8e, 0x8b, 0x20, 0x51, /* ..}... Q */ +0x52, 0xc8, 0x2b, 0x2c, 0xb6, 0xe5, 0xe5, 0xe5, /* R.+,.... */ +0xe5, 0x65, 0xa7, 0xa7, 0xae, 0x9e, 0xb9, 0xbf, /* .e...... */ +0x53, 0xd7, 0x5d, 0x72, 0xf5, 0xd7, 0x2f, 0x4f, /* S.]r../O */ +0x4f, 0x5d, 0xf7, 0x23, 0xa9, 0x54, 0xfe, 0xa9, /* O].#.T.. */ +0xeb, 0xff, 0xff, 0xbc, 0x10, 0x88, 0xcb, 0x82, /* ........ */ +0xbf, 0xc9, 0xe5, 0xfe, 0x55, 0xc6, 0x56, 0xfd, /* ....U.V. */ +0xfe, 0xa2, 0x11, 0xd6, 0xe5, 0x52, 0xa8, 0x60, /* .....R.` */ +0x7c, 0x21, 0x4f, 0x8f, 0x68, 0xa2, 0xed, 0x54, /* |!O.h..T */ +0xab, 0x2a, 0xa9, 0x75, 0x2b, 0xcb, 0xca, 0x4a, /* .*.u+..J */ +0xb4, 0x4b, 0x75, 0x64, 0xdf, 0x7d, 0xf2, 0xf2, /* .Kud.}.. */ +0xf2, 0x6d, 0x15, 0x4d, 0x85, 0x25, 0xca, 0x4c, /* .m.M.%.L */ +0xae, 0x91, 0x11, 0x53, 0x2a, 0xd3, 0xca, 0xb2, /* ...S*... */ +0xf7, 0x21, 0xc8, 0x96, 0x46, 0x64, 0xc7, 0x25, /* .!..Fd.% */ +0x0f, 0x46, 0x09, 0x06, 0xa7, 0x7f, 0xf6, 0xed, /* .F...... */ +0xe1, 0x15, 0x06, 0x34, 0xaf, 0xf6, 0xff, 0x9d, /* ...4.... */ +0x42, 0x64, 0xae, 0x3a, 0x54, 0x50, 0x3e, 0x9f, /* Bd.:TP>. */ +0x45, 0xb0, 0xf9, 0xab, 0x10, 0x84, 0x8b, 0xbd, /* E....... */ +0xab, 0x91, 0x4b, 0xca, 0x88, 0x6d, 0xd7, 0x66, /* ..K..m.f */ +0xa7, 0xfa, 0x0f, 0x8a, 0x65, 0xa0, 0xf6, 0x6b, /* ....e..k */ +0x7b, 0x72, 0x4b, 0x14, 0x2a, 0xbd, 0x7e, 0x9f, /* {rK.*.~. */ +0xf6, 0xb6, 0xdb, 0x60, 0x9f, 0xcd, 0xf9, 0xbf, /* ...`.... */ +0x62, 0x66, 0x0e, 0xdd, 0x89, 0x92, 0x1d, 0xb2, /* bf...... */ +0x66, 0x0e, 0xd8, 0xaf, 0x4e, 0xbb, 0x65, 0xff, /* f...N.e. */ +0x62, 0xfd, 0xbe, 0x40, 0xf0, 0xfe, 0xa6, 0x20, /* b..@... */ +0xb5, 0x7a, 0xeb, 0xae, 0xba, 0xeb, 0x57, 0xd7, /* .z....W. */ +0x5c, 0xbc, 0xbc, 0xbd, 0x2d, 0x3d, 0x72, 0xbc, /* \...-=r. */ +0x9c, 0xbc, 0x23, 0x10, 0x1c, 0x7b, 0xff, 0xf5, /* ..#..{.. */ +0x84, 0x5c, 0x30, 0x02, 0x4c, 0x7d, 0x3f, 0xfc, /* .\0.L}?. */ +0xb3, 0x03, 0x58, 0x40, 0x48, 0x87, 0x9b, 0x91, /* ..X@H... */ +0x5c, 0xaf, 0x29, 0x36, 0xe6, 0xe5, 0x44, 0x72, /* \.)6..Dr */ +0x12, 0x5d, 0x29, 0x32, 0xab, 0xb2, 0x4d, 0xca, /* .])2..M. */ +0x42, 0x0a, 0xca, 0xae, 0x52, 0x65, 0x57, 0x2a, /* B...ReW* */ +0xcb, 0xff, 0xff, 0xf2, 0x1d, 0x17, 0xe9, 0xdc, /* ........ */ +0x28, 0xab, 0x4b, 0x20, 0xac, 0xa4, 0x2b, 0x95, /* (.K ..+. */ +0x47, 0x94, 0xaf, 0x2f, 0x13, 0xda, 0x69, 0x7d, /* G../..i} */ +0x2a, 0xca, 0x4c, 0xab, 0x21, 0x35, 0xcc, 0x4d, /* *.L.!5.M */ +0xa9, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0x96, 0x96, /* ........ */ +0x96, 0x96, 0x9e, 0x3e, 0x4f, 0xfd, 0xff, 0x52, /* ...>O..R */ +0xd1, 0x2a, 0x57, 0xff, 0xf8, 0x94, 0xb1, 0x82, /* .*W..... */ +0xb9, 0x73, 0x4d, 0xef, 0xe4, 0xf7, 0xff, 0xf0, /* .sM..... */ +0xb3, 0xbb, 0xef, 0xd4, 0xe4, 0x28, 0xb5, 0x51, /* .....(.Q */ +0x12, 0x89, 0x71, 0xe5, 0x25, 0x4a, 0xe6, 0xe5, /* ..q.%J.. */ +0xd5, 0xea, 0x5d, 0x4b, 0xc4, 0xc8, 0xb5, 0x6a, /* ..]K...j */ +0xad, 0x5a, 0x2a, 0xa9, 0x55, 0x4a, 0xaa, 0xd1, /* .Z*.UJ.. */ +0x2d, 0x6d, 0x16, 0xd6, 0x55, 0x72, 0x29, 0xc8, /* -m..Ur). */ +0x97, 0x95, 0x96, 0x49, 0x0d, 0xa5, 0x95, 0xd1, /* ...I.... */ +0x2d, 0x15, 0x12, 0x57, 0xb2, 0x11, 0xa2, 0x22, /* -..W..." */ +0x8f, 0x78, 0x20, 0xa1, 0xec, 0xd9, 0xff, 0xfb, /* .x ..... */ +0x62, 0xaf, 0xff, 0xbb, 0xc7, 0x40, 0xb8, 0xc6, /* b....@.. */ +0xca, 0xe2, 0xe9, 0xfc, 0x22, 0x42, 0x02, 0x37, /* ...."B.7 */ +0xf1, 0xfb, 0x7f, 0xf0, 0x99, 0x20, 0x9b, 0xa9, /* ..... .. */ +0x0f, 0x6f, 0xff, 0xe5, 0x68, 0xe3, 0x12, 0x9a, /* .o..h... */ +0x28, 0x3d, 0x61, 0x19, 0x45, 0xdf, 0x6b, 0x23, /* (=a.E.k# */ +0xc9, 0xdf, 0x2f, 0x2c, 0x86, 0xdf, 0x4b, 0x73, /* ../,..Ks */ +0xf3, 0xa0, 0xb1, 0x37, 0xda, 0xa2, 0x6c, 0x40, /* ...7..l@ */ +0xff, 0xde, 0x4b, 0x8e, 0x08, 0x56, 0x5f, 0x5f, /* ..K..V__ */ +0x97, 0xad, 0x7f, 0xed, 0xfc, 0x6d, 0xdb, 0xf3, /* .....m.. */ +0x74, 0xfe, 0xae, 0x9c, 0xde, 0xb6, 0x6f, 0xf6, /* t.....o. */ +0xfd, 0xfb, 0xde, 0xda, 0x79, 0xba, 0x7b, 0xf6, /* ....y.{. */ +0x8f, 0xff, 0x20, 0x44, 0x2a, 0x7a, 0x62, 0x17, /* .. D*zb. */ +0x2a, 0xda, 0x27, 0x2f, 0x5d, 0x75, 0xd7, 0x5d, /* *.'/]u.] */ +0x75, 0xa9, 0x79, 0x79, 0x7a, 0xeb, 0xa5, 0x95, /* u.yyz... */ +0xeb, 0xb8, 0x80, 0x97, 0xa4, 0x11, 0xc1, 0x27, /* .......' */ +0x73, 0xdc, 0x7f, 0xff, 0x6c, 0x22, 0xe0, 0x8b, /* s...l".. */ +0x09, 0x63, 0x87, 0x45, 0x7f, 0x4e, 0x7a, 0xfc, /* .c.E.Nz. */ +0x91, 0x32, 0xf2, 0xac, 0x9c, 0xa4, 0xda, 0x21, /* .2.....! */ +0xb9, 0x77, 0x29, 0x32, 0x38, 0xda, 0x97, 0x72, /* .w)28..r */ +0xee, 0xd5, 0xb2, 0x92, 0xe5, 0x7b, 0xe5, 0x64, /* .....{.d */ +0x9d, 0xc9, 0x9e, 0x94, 0x9b, 0x25, 0xa2, 0xcb, /* .....%.. */ +0x44, 0x97, 0x04, 0xaa, 0xb4, 0xa4, 0xb9, 0x55, /* D......U */ +0xca, 0x8a, 0xa5, 0x79, 0x79, 0x5e, 0x4e, 0x95, /* ...yy^N. */ +0xd7, 0x44, 0xd7, 0x4f, 0x5d, 0x75, 0xd7, 0x5d, /* .D.O]u.] */ +0x75, 0xd7, 0x5d, 0x2c, 0x76, 0x6c, 0x5f, 0xff, /* u.],vl_. */ +0xe5, 0xff, 0xff, 0xf8, 0x21, 0x25, 0x61, 0x45, /* ....!%aE */ +0x7f, 0x96, 0xff, 0xc1, 0x31, 0xa5, 0xcc, 0xb8, /* ....1... */ +0xfc, 0x4c, 0xe3, 0x56, 0x1c, 0x27, 0x51, 0x0e, /* .L.V.'Q. */ +0x7c, 0xa9, 0xd1, 0x6f, 0x2a, 0x8b, 0x95, 0x65, /* |..o*..e */ +0xd4, 0xbc, 0xb2, 0x29, 0x75, 0x3e, 0xaf, 0x2e, /* ...)u>.. */ +0x2e, 0x7c, 0xd8, 0xf2, 0xa2, 0x29, 0x55, 0x5a, /* .|...)UZ */ +0x2c, 0xaa, 0xad, 0x6d, 0x65, 0x5b, 0x57, 0x22, /* ,..me[W" */ +0x9c, 0x89, 0x49, 0x95, 0x5c, 0x99, 0xb4, 0xa4, /* ..I.\... */ +0x2d, 0xb2, 0x44, 0xa9, 0xb3, 0xa5, 0x24, 0xd6, /* -.D...$. */ +0x11, 0x44, 0x04, 0xc7, 0x57, 0x3b, 0xff, 0xf6, /* .D..W;.. */ +0xe1, 0x36, 0x80, 0xc5, 0xd4, 0xdf, 0xf6, 0xff, /* .6...... */ +0x8b, 0xef, 0x8f, 0xfc, 0x82, 0x79, 0xb3, 0x36, /* .....y.6 */ +0x6b, 0xc2, 0x64, 0x60, 0x5a, 0x94, 0xed, 0xe9, /* k.d`Z... */ +0xa7, 0xff, 0xe5, 0x3a, 0x2b, 0x07, 0xd7, 0x28, /* ...:+..( */ +0xe7, 0x88, 0x4d, 0xf7, 0xbb, 0x59, 0x5e, 0xf9, /* ..M..Y^. */ +0x5e, 0x5e, 0x4e, 0x4e, 0x5e, 0xd5, 0x31, 0xe8, /* ^^NN^.1. */ +0x40, 0xf8, 0xc9, 0xf1, 0xae, 0xff, 0xf3, 0xab, /* @....... */ +0x34, 0x1a, 0x3a, 0x86, 0x41, 0x46, 0xac, 0xcc, /* 4.:.AF.. */ +0xd3, 0x8e, 0x53, 0x18, 0xdd, 0xdb, 0xcb, 0x2d, /* ..S....- */ +0xb9, 0x37, 0x6f, 0x90, 0x48, 0xae, 0xdf, 0x7d, /* .7o.H..} */ +0x3c, 0x41, 0x03, 0x26, 0xfa, 0x90, 0x9f, 0xff, /* .. */ +0x99, 0x7b, 0xeb, 0x93, 0xae, 0xba, 0xd4, 0x9d, /* .{...... */ +0x75, 0xd7, 0x4b, 0x5d, 0x76, 0xf2, 0xf2, 0x6a, /* u.K]v..j */ +0x3e, 0x42, 0xcb, 0xef, 0x6f, 0xfc, 0x84, 0x2e, /* >B..o... */ +0x4e, 0x4e, 0x5e, 0x5e, 0x4d, 0xcb, 0xb9, 0x1c, /* NN^^M... */ +0xba, 0x59, 0x1c, 0xaa, 0xe5, 0x25, 0xd9, 0x26, /* .Y...%.& */ +0xe5, 0x26, 0x52, 0x65, 0x57, 0x64, 0xd9, 0x2a, /* .&ReWd.* */ +0x57, 0x94, 0x84, 0x95, 0xed, 0x15, 0xca, 0xb2, /* W....... */ +0xaa, 0x97, 0x68, 0xa8, 0xb6, 0xa5, 0xe5, 0x7b, /* ..h....{ */ +0xe5, 0x25, 0x4b, 0xd7, 0x5d, 0x3d, 0x74, 0xf5, /* .%K.]=t. */ +0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xdf, 0xff, /* .]u.]q.. */ +0xfa, 0xa9, 0x0d, 0xcb, 0x2f, 0xff, 0xfb, 0xe1, /* ..../... */ +0x51, 0x1c, 0xb9, 0x10, 0xe4, 0xd8, 0x15, 0x98, /* Q....... */ +0x30, 0xdd, 0x74, 0xff, 0xed, 0xfe, 0xa4, 0x20, /* 0.t.... */ +0xf0, 0xa3, 0x93, 0x59, 0x49, 0x76, 0xf2, 0xea, /* ...YIv.. */ +0x5d, 0x4b, 0x24, 0xba, 0x89, 0x90, 0x2f, 0x64, /* ]K$.../d */ +0xf2, 0xa8, 0x9e, 0x17, 0x51, 0x32, 0xa4, 0xf2, /* ....Q2.. */ +0x92, 0x91, 0x49, 0x52, 0xad, 0xac, 0x4a, 0xde, /* ..IR..J. */ +0xd1, 0x2c, 0x9b, 0x59, 0x51, 0x5c, 0xae, 0xe5, /* .,.YQ\.. */ +0x57, 0x29, 0x08, 0xe5, 0x45, 0x95, 0xcc, 0x68, /* W)..E..h */ +0x7b, 0x30, 0x2c, 0xd2, 0xdf, 0xfb, 0x7f, 0x2b, /* {0,....+ */ +0x8d, 0xca, 0x09, 0xa6, 0x0d, 0xd2, 0xbe, 0xdf, /* ........ */ +0xff, 0xdb, 0x8f, 0x1f, 0x7f, 0xa0, 0xf9, 0x77, /* .......w */ +0x95, 0x5b, 0x64, 0x28, 0x33, 0x32, 0x21, 0x34, /* .[d(32!4 */ +0x4c, 0x8b, 0x27, 0x33, 0xfa, 0xc9, 0x91, 0x62, /* L.'3...b */ +0x56, 0xf6, 0x4d, 0x2c, 0xbc, 0xaf, 0x7c, 0x9c, /* V.M,..|. */ +0x9c, 0x9c, 0x88, 0x87, 0x31, 0x8b, 0x4d, 0xad, /* ....1.M. */ +0xff, 0x44, 0x2c, 0xb4, 0xfc, 0xea, 0x9a, 0x79, /* .D,....y */ +0xe9, 0x12, 0x2b, 0xdf, 0xcf, 0x0e, 0xb1, 0xd1, /* ..+..... */ +0x62, 0x9f, 0xfe, 0x33, 0xdf, 0x9b, 0x4e, 0xa4, /* b..3..N. */ +0x26, 0xba, 0x26, 0x96, 0x96, 0xba, 0xe5, 0xe5, /* &.&..... */ +0xeb, 0xa2, 0x69, 0x55, 0xac, 0x84, 0xd7, 0x5c, /* ..iU...\ */ +0xbc, 0xbc, 0x9c, 0xa4, 0xda, 0xca, 0xf2, 0x2c, /* ......., */ +0x8b, 0x29, 0x2e, 0x52, 0x5d, 0xa9, 0xb8, 0x94, /* .).R]... */ +0x47, 0x79, 0x55, 0xd9, 0x2a, 0x52, 0x6d, 0x65, /* GyU.*Rme */ +0x5b, 0x7b, 0x59, 0x5e, 0x52, 0x6f, 0xbd, 0xcd, /* [{Y^Ro.. */ +0x2a, 0x5d, 0x2f, 0x2a, 0xca, 0xb4, 0xf5, 0xb9, /* *]/*.... */ +0x5e, 0xfb, 0xe6, 0xdd, 0xad, 0xe6, 0xef, 0x4f, /* ^......O */ +0x5d, 0x75, 0xd7, 0x5a, 0x97, 0xbe, 0xf5, 0x72, /* ]u.Z...r */ +0x10, 0x20, 0x92, 0x55, 0xff, 0xfe, 0xe5, 0x18, /* . .U.... */ +0x2b, 0xbe, 0xe0, 0x77, 0x95, 0xc2, 0xe5, 0x7c, /* +..w...| */ +0xb1, 0xc1, 0xf3, 0xd1, 0x4b, 0x17, 0x69, 0x7d, /* ....K.i} */ +0x86, 0xc7, 0xf2, 0xf4, 0xdf, 0xc7, 0x01, 0x13, /* ........ */ +0x98, 0x17, 0xfe, 0x48, 0xb9, 0x49, 0x90, 0x93, /* ...H.I.. */ +0x61, 0x59, 0x02, 0xf5, 0x2c, 0xc1, 0xd3, 0x2c, /* aY..,.., */ +0x59, 0x0d, 0x82, 0x70, 0x6a, 0xb4, 0x78, 0xf4, /* Y..pj.x. */ +0x70, 0xd0, 0x66, 0xb6, 0xff, 0x4d, 0x3f, 0xe3, /* p.f..M?. */ +0x0f, 0xff, 0xa2, 0x15, 0x14, 0x4f, 0x0a, 0x88, /* .....O.. */ +0xd3, 0x25, 0x22, 0xba, 0x97, 0x51, 0x3e, 0xac, /* .%"..Q>. */ +0x95, 0x64, 0xda, 0xd9, 0x36, 0xb2, 0xac, 0xa4, /* .d..6... */ +0xca, 0xa6, 0x24, 0x56, 0x85, 0x51, 0x76, 0x67, /* ..$V.Qvg */ +0xb0, 0x66, 0xf7, 0x44, 0x22, 0x83, 0xb6, 0xf4, /* .f.D"... */ +0xaa, 0xdb, 0x94, 0x9a, 0x9d, 0xa5, 0x9f, 0x13, /* ........ */ +0xca, 0x4c, 0xaf, 0x27, 0x2b, 0xca, 0x4c, 0x9c, /* .L.'+.L. */ +0x9c, 0xa4, 0xd7, 0x7c, 0x84, 0xca, 0xb4, 0xf2, /* ...|.... */ +0x72, 0x77, 0xb9, 0x72, 0x29, 0x2e, 0xe5, 0x52 /* rw.r)..R */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt15[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x44, 0x40, 0x00, 0x40, 0x11, /* ...D@.@. */ +0xc0, 0xd1, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x1e, 0xc2, 0x80, 0x63, 0x8c, 0xfb, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x72, 0x2c, 0x98, 0x90, 0xe5, 0x10, 0xff, 0x3c, /* r,.....< */ +0xe6, 0x71, 0x42, 0xaf, 0x3f, 0xd6, 0xdf, 0x21, /* .qB.?..! */ +0x05, 0xb4, 0x6d, 0x97, 0x48, 0xf5, 0xd7, 0x5d, /* ..m.H..] */ +0x75, 0xd7, 0x5d, 0x6a, 0xf9, 0x7a, 0xe9, 0xe5, /* u.]j.z.. */ +0xe2, 0x7f, 0x4a, 0x4d, 0xac, 0x84, 0xca, 0xb4, /* ..JM.... */ +0xb2, 0x93, 0x2a, 0xcb, 0xc8, 0x4c, 0x9a, 0x45, /* ..*..L.E */ +0xec, 0x99, 0x5e, 0xe4, 0x97, 0xb2, 0x65, 0x79, /* ..^...ey */ +0x56, 0xd6, 0xd6, 0x52, 0x65, 0x79, 0xe5, 0x5e, /* V..Rey.^ */ +0x89, 0xcd, 0x8d, 0x5b, 0x95, 0xe5, 0xe5, 0xdc, /* ...[.... */ +0xfd, 0xa5, 0x26, 0x42, 0x6d, 0x66, 0x5f, 0x57, /* ..&Bmf_W */ +0x4b, 0x5d, 0x75, 0xd6, 0xaf, 0xae, 0x5e, 0xb8, /* K]u...^. */ +0xef, 0xff, 0xf5, 0xc2, 0x32, 0x35, 0xff, 0xfc, /* ....25.. */ +0xb4, 0xff, 0x79, 0x14, 0x87, 0x88, 0x35, 0x10, /* ..y...5. */ +0xde, 0x73, 0x1a, 0x94, 0x68, 0x4c, 0xf8, 0xf9, /* .s..hL.. */ +0x79, 0x42, 0x3e, 0x12, 0x09, 0x22, 0xcf, 0xaf, /* yB>..".. */ +0x7f, 0xed, 0x6e, 0xed, 0xd0, 0x40, 0xb4, 0x1c, /* ..n..@.. */ +0x70, 0x40, 0x74, 0x84, 0x38, 0xdb, 0xbb, 0x98, /* p@t.8... */ +0x91, 0x1d, 0xb3, 0xf6, 0xef, 0xc3, 0x0c, 0xe9, /* ........ */ +0xe8, 0x5f, 0xff, 0xfb, 0xd7, 0xf9, 0x49, 0x95, /* ._....I. */ +0x42, 0xf5, 0x12, 0x42, 0x05, 0xfc, 0xf2, 0x90, /* B..B.... */ +0xa0, 0xf2, 0xc2, 0x28, 0xc3, 0x53, 0xa9, 0xc8, /* ...(.S.. */ +0xbc, 0x8e, 0x3e, 0xa5, 0x90, 0xd8, 0x5c, 0x2f, /* ..>...\/ */ +0x52, 0xe2, 0xe2, 0x65, 0xbd, 0xa2, 0x28, 0x92, /* R..e..(. */ +0x75, 0x12, 0x4a, 0xbc, 0xa4, 0xab, 0x24, 0xd8, /* u.J...$. */ +0xc9, 0x52, 0xad, 0xad, 0xa3, 0x44, 0xca, 0xd7, /* .R...D.. */ +0x4a, 0x9a, 0x45, 0x51, 0x96, 0x45, 0x25, 0xff, /* J.EQ.E%. */ +0xff, 0xe8, 0x84, 0x65, 0x36, 0x94, 0x99, 0x59, /* ...e6..Y */ +0x65, 0x25, 0xca, 0x4c, 0x99, 0x79, 0x79, 0x79, /* e%.L.yyy */ +0x79, 0x79, 0x1e, 0x45, 0x91, 0xe4, 0xe5, 0x79, /* yy.E...y */ +0x7b, 0xe4, 0xe4, 0xe4, 0x79, 0x39, 0x39, 0x78, /* {...y99x */ +0x8f, 0x52, 0x3d, 0xf5, 0xd6, 0x2f, 0xfa, 0x57, /* .R=../.W */ +0xfe, 0x1f, 0x11, 0x7e, 0x99, 0xf9, 0xe6, 0x9a, /* ...~.... */ +0x42, 0x6b, 0x3c, 0x37, 0xdb, 0x16, 0xd2, 0x26, /* Bk<7...& */ +0x4e, 0xba, 0xeb, 0xae, 0x4e, 0xba, 0xeb, 0xae, /* N...N... */ +0xba, 0xe5, 0x79, 0x49, 0xae, 0xb9, 0x79, 0x39, /* ..yI..y9 */ +0x39, 0x5e, 0xf9, 0x16, 0x55, 0x72, 0x93, 0x22, /* 9^..Ur." */ +0xcb, 0xcb, 0xb9, 0x49, 0x95, 0x5c, 0xab, 0x2f, /* ...I.\./ */ +0x7c, 0xbc, 0xff, 0xae, 0x49, 0x5d, 0x44, 0x90, /* |...I]D. */ +0xaa, 0xd6, 0xf2, 0xac, 0xab, 0x2a, 0xca, 0xb2, /* .....*.. */ +0x3c, 0xaf, 0x2f, 0x7c, 0xa4, 0xdb, 0xdf, 0x5d, /* <./|...] */ +0x75, 0xd7, 0x5d, 0x75, 0xd6, 0xbf, 0xff, 0xef, /* u.]u.... */ +0x04, 0x22, 0x9e, 0x37, 0x98, 0x3b, 0xd7, 0xdf, /* .".7.;.. */ +0x93, 0xc8, 0x9d, 0xee, 0xfc, 0x77, 0x1e, 0x5a, /* .....w.Z */ +0xff, 0x12, 0x31, 0xdf, 0x45, 0x2d, 0x2e, 0xdf, /* ..1.E-.. */ +0xff, 0x28, 0xb8, 0xe3, 0x85, 0x9f, 0xdf, 0x10, /* .(...... */ +0xe5, 0x6f, 0xb5, 0xf7, 0x83, 0xef, 0xf8, 0x25, /* .o.....% */ +0xbe, 0x95, 0xa5, 0xae, 0xab, 0x91, 0x30, 0x9d, /* ......0. */ +0xe7, 0x32, 0x68, 0xf2, 0x09, 0x29, 0x73, 0xe7, /* .2h..)s. */ +0xc9, 0xef, 0x84, 0xc8, 0x2c, 0x12, 0x03, 0xd4, /* ....,... */ +0x7f, 0xfd, 0xbf, 0x52, 0xb2, 0x1b, 0x04, 0x4a, /* ...R...J */ +0x1f, 0x3f, 0x3c, 0x49, 0x0a, 0xaf, 0x2b, 0x23, /* .?..aVU.. */ +0xfa, 0x0f, 0x92, 0xd7, 0x54, 0x3e, 0x9a, 0xe8, /* ....T>.. */ +0x8a, 0x90, 0x4e, 0x2b, 0xbb, 0xef, 0xff, 0xcf, /* ..N+.... */ +0xec, 0x10, 0x0b, 0xd2, 0x96, 0x57, 0x27, 0x2f, /* .....W'/ */ +0x4f, 0x44, 0xd7, 0x27, 0x13, 0xfa, 0xb9, 0x7a, /* OD.'...z */ +0x26, 0x89, 0x93, 0x97, 0x93, 0x93, 0x97, 0x93, /* &....... */ +0xbe, 0xb9, 0x1e, 0x4e, 0xf8, 0x9f, 0xd2, 0xf2, /* ...N.... */ +0xac, 0xaf, 0x2a, 0xca, 0xb1, 0x2b, 0x7b, 0x26, /* ..*..+{& */ +0x89, 0x99, 0xed, 0x64, 0xc9, 0xa4, 0x57, 0x89, /* ...d..W. */ +0x26, 0xd4, 0x4c, 0x8f, 0x4b, 0x44, 0xbb, 0xe9, /* &.L.KD.. */ +0x6b, 0xa5, 0xae, 0xba, 0xeb, 0x52, 0xf2, 0xf7, /* k....R.. */ +0xd7, 0x2f, 0x1f, 0x10, 0x08, 0x1f, 0x1e, 0xd7, /* ./...... */ +0x58, 0xda, 0x0f, 0xff, 0xe7, 0x89, 0x25, 0x1e, /* X.....%. */ +0xe2, 0x07, 0xda, 0x97, 0x36, 0x3d, 0xcb, 0x43, /* ....6=.C */ +0x26, 0x04, 0xb6, 0x5c, 0xbc, 0xa4, 0x29, 0xa8, /* &..\..). */ +0x10, 0x50, 0xad, 0x7f, 0xff, 0xb7, 0xff, 0xef, /* .P...... */ +0x8e, 0x15, 0x26, 0x6c, 0xf5, 0x2c, 0xc1, 0x57, /* ..&l.,.W */ +0xc5, 0x65, 0x3d, 0x96, 0xc0, 0xbf, 0x58, 0x09, /* .e=...X. */ +0xc1, 0x99, 0x97, 0xec, 0x85, 0x6c, 0x62, 0x2d, /* .....lb- */ +0x3b, 0xfe, 0x7e, 0x72, 0x7c, 0x5c, 0x1b, 0xb5, /* ;.~r|\.. */ +0x74, 0x4d, 0x13, 0x5d, 0x75, 0xd7, 0x5d, 0x75, /* tM.]u.]u */ +0xd2, 0xc5, 0xad, 0xff, 0x6f, 0x3f, 0x4e, 0x02, /* ....o?N. */ +0x1c, 0xdb, 0x79, 0x62, 0x1a, 0x2a, 0xba, 0x21, /* ..yb.*.! */ +0x4d, 0x85, 0x26, 0x57, 0x72, 0x93, 0x48, 0xb4, /* M.&Wr.H. */ +0xf2, 0xf2, 0xbc, 0xbc, 0x9d, 0x2d, 0x72, 0x72, /* .....-rr */ +0x75, 0xd7, 0x5d, 0x74, 0xf5, 0xd7, 0x5d, 0x75, /* u.]t..]u */ +0xd7, 0x09, 0x47, 0x00, 0xc2, 0x60, 0x8b, 0x3b, /* ..G..`.; */ +0x7f, 0xab, 0xe2, 0xd8, 0xb7, 0xdc, 0xff, 0xce, /* ........ */ +0x27, 0xec, 0x10, 0x15, 0x2b, 0x90, 0x00, 0x02, /* '...+... */ +0x26, 0x2e, 0xf2, 0x93, 0x29, 0x3f, 0xd7, 0xff, /* &...)?.. */ +0x64, 0xcd, 0x79, 0x9d, 0x7e, 0xa8, 0x50, 0xaa, /* d.y.~.P. */ +0x5e, 0x95, 0x5f, 0xff, 0xa5, 0x0f, 0xd0, 0x20, /* ^._.... */ +0x7b, 0xa4, 0x54, 0x26, 0x47, 0x94, 0x9a, 0x5a, /* {.T&G..Z */ +0x5a, 0x59, 0x56, 0xba, 0x26, 0x55, 0xa7, 0xb7, /* ZYV.&U.. */ +0xae, 0xb9, 0x39, 0x79, 0x3a, 0xe5, 0xe5, 0x5b, /* ..9y:..[ */ +0x59, 0x09, 0x97, 0xbe, 0x47, 0x95, 0x65, 0x59, /* Y...G.eY */ +0x49, 0x94, 0x9b, 0x5b, 0x5b, 0x7b, 0x79, 0x5e, /* I..[[{y^ */ +0x52, 0x65, 0x26, 0x4e, 0xf7, 0x7d, 0x74, 0xf5, /* Re&N.}t. */ +0xd7, 0x5d, 0x75, 0xd6, 0xab, 0x97, 0x52, 0xf7, /* .]u...R. */ +0xab, 0xd4, 0x7c, 0x8c, 0x3f, 0xef, 0xfe, 0x49, /* ..|.?..I */ +0x45, 0xd9, 0x26, 0xc2, 0xaa, 0x97, 0xb4, 0x45, /* E.&....E */ +0x2b, 0x14, 0x6c, 0x3b, 0x3b, 0x7d, 0x2a, 0x30, /* +.l;;}*0 */ +0x1a, 0xe5, 0x28, 0x2a, 0x8e, 0x0d, 0x94, 0xa6, /* ..(*.... */ +0xdb, 0xff, 0xff, 0xac, 0x85, 0x0d, 0xe4, 0x2b, /* .......+ */ +0x20, 0xac, 0xaf, 0x13, 0x29, 0x7b, 0xce, 0x8a, /* ...){.. */ +0x6e, 0xf2, 0x2c, 0xc4, 0xf8, 0xb9, 0x19, 0xef, /* n.,..... */ +0x4b, 0x5d, 0x74, 0xf5, 0xd7, 0x5d, 0x75, 0xd7, /* K]t..]u. */ +0x5d, 0x74, 0xb4, 0xb1, 0x1d, 0x38, 0x08, 0x73, /* ]t...8.s */ +0x6b, 0xcb, 0x11, 0x2b, 0xca, 0x42, 0xba, 0x24, /* k..+.B.$ */ +0xd8, 0x96, 0x56, 0x59, 0x56, 0x57, 0x95, 0x68, /* ..VYVW.h */ +0x9a, 0x7a, 0xe4, 0x5a, 0x5a, 0x26, 0x9e, 0xb7, /* .z.ZZ&.. */ +0x5d, 0x75, 0xd6, 0xef, 0x9b, 0xbd, 0x74, 0xae, /* ]u....t. */ +0xb9, 0x37, 0xf9, 0xe7, 0xfe, 0x83, 0x02, 0x88, /* .7...... */ +0x69, 0x79, 0xbf, 0x5e, 0x7f, 0x54, 0x3e, 0x96, /* iy.^.T>. */ +0x09, 0x25, 0x39, 0x1c, 0x36, 0x62, 0xca, 0x56, /* .%9.6b.V */ +0x2e, 0xf9, 0x5e, 0x26, 0x4f, 0x67, 0xa9, 0xe7, /* ..^&Og.. */ +0xeb, 0xe1, 0xf3, 0x24, 0xbf, 0xfd, 0x51, 0x53, /* ...$..QS */ +0x3b, 0x04, 0x1e, 0xe5, 0x42, 0xda, 0x4b, 0x2f, /* ;...B.K/ */ +0x27, 0x5c, 0x9c, 0x9c, 0x9d, 0x72, 0x75, 0xcb, /* '\...ru. */ +0xc8, 0xf5, 0xd7, 0x2f, 0x7c, 0xbd, 0xf5, 0xdf, /* .../|... */ +0x27, 0x27, 0x29, 0x32, 0x72, 0xf7, 0xcb, 0xdb /* '')2r... */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt16[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x45, 0x40, 0x00, 0x40, 0x11, /* ...E@.@. */ +0xc0, 0xd0, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0xb1, 0xd6, 0x80, 0x63, 0x8c, 0xfc, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xcb, 0xd2, 0xd2, 0xd9, 0x32, 0xbc, 0xaf, 0x2e, /* ....2... */ +0xe5, 0xe5, 0xeb, 0xa7, 0xae, 0xba, 0xeb, 0xae, /* ........ */ +0xba, 0xd5, 0x72, 0xea, 0x27, 0x5e, 0x95, 0x54, /* ..r.'^.T */ +0x7a, 0x21, 0xbe, 0xbf, 0xff, 0x64, 0x2a, 0x95, /* z!...d*. */ +0x45, 0xca, 0x4a, 0x97, 0x52, 0xa2, 0x29, 0xd4, /* E.J.R.). */ +0xd8, 0xf1, 0xe8, 0x81, 0x3b, 0x51, 0x6f, 0xff, /* ....;Qo. */ +0xf6, 0x42, 0x86, 0x42, 0x36, 0xe3, 0x4c, 0x44, /* .B.B6.LD */ +0xf7, 0x89, 0x26, 0xf2, 0xaa, 0x94, 0x92, 0xf2, /* ..&..... */ +0x32, 0xc5, 0x6b, 0xc1, 0xd2, 0xfd, 0xcf, 0xf3, /* 2.k..... */ +0x2f, 0xa9, 0x69, 0x69, 0x69, 0x69, 0x69, 0xeb, /* /.iiiii. */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8b, 0x5b, /* .......[ */ +0xfe, 0xb8, 0xd7, 0x9e, 0x03, 0x7f, 0x5f, 0xff, /* ......_. */ +0xfd, 0x10, 0xa4, 0x10, 0xea, 0x51, 0xc5, 0x29, /* .....Q.) */ +0x32, 0xac, 0xa4, 0x2c, 0xaf, 0x22, 0xa6, 0x57, /* 2..,.".W */ +0x97, 0xa7, 0x52, 0xee, 0x5e, 0x4e, 0xba, 0x7a, /* ..R.^N.z */ +0xeb, 0x77, 0xd6, 0xe5, 0xeb, 0xa5, 0x72, 0xf4, /* .w....r. */ +0x4d, 0x3b, 0x9b, 0x10, 0x0e, 0x34, 0xa4, 0x21, /* M;...4.! */ +0xbc, 0xf3, 0x84, 0xfd, 0x73, 0x46, 0x36, 0x48, /* ....sF6H */ +0x6c, 0x3b, 0x00, 0x8d, 0xce, 0xe1, 0x75, 0xff, /* l;....u. */ +0x9e, 0x9c, 0x58, 0xbf, 0x37, 0x58, 0xe9, 0x97, /* ..X.7X.. */ +0x32, 0xc5, 0xca, 0xb2, 0xb2, 0x5e, 0xfa, 0xf3, /* 2....^.. */ +0x9f, 0xc7, 0x41, 0xf3, 0x1f, 0x12, 0xf9, 0xfd, /* ..A..... */ +0x57, 0x39, 0x9c, 0x5d, 0x7c, 0xf0, 0xbe, 0xd2, /* W9.]|... */ +0x44, 0x9c, 0xda, 0x49, 0x5c, 0xbc, 0x9c, 0x9d, /* D..I\... */ +0x72, 0xf2, 0xf2, 0xf2, 0x73, 0x77, 0xae, 0x4e, /* r...sw.N */ +0x4e, 0x5e, 0x5e, 0x5e, 0xf9, 0x39, 0x79, 0x39, /* N^^^.9y9 */ +0x39, 0x16, 0x57, 0xbe, 0x5e, 0x5e, 0x57, 0xae, /* 9.W.^^W. */ +0xfb, 0xe4, 0x5b, 0xef, 0x95, 0x65, 0x7a, 0xe6, /* ..[..ez. */ +0xfd, 0x44, 0xd1, 0x2e, 0x47, 0x97, 0xae, 0xba, /* .D..G... */ +0xe2, 0x3f, 0x51, 0x34, 0xb2, 0xac, 0x20, 0x88, /* .?Q4.. . */ +0xc3, 0xff, 0xfc, 0xfe, 0x56, 0x52, 0x61, 0x16, /* ....VRa. */ +0x89, 0x52, 0xea, 0x55, 0x56, 0xa2, 0x7d, 0x92, /* .R.UV.}. */ +0x27, 0xcb, 0x8b, 0x95, 0x11, 0x59, 0x21, 0x7a, /* '....Y!z */ +0x89, 0x75, 0xe9, 0x75, 0x2a, 0xa9, 0x25, 0x8a, /* .u.u*.%. */ +0x55, 0xe1, 0xba, 0xfd, 0xb6, 0xe2, 0x7f, 0xa5, /* U....... */ +0x26, 0xfb, 0x26, 0x96, 0x96, 0x96, 0xba, 0xeb, /* &.&..... */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xe9, 0x67, 0xfe, /* ......g. */ +0x95, 0xe5, 0x42, 0x1a, 0x29, 0x0b, 0x29, 0x34, /* ..B.).)4 */ +0xea, 0x89, 0xa2, 0x16, 0x5e, 0x57, 0xae, 0x89, /* ....^W.. */ +0x97, 0x97, 0xae, 0xba, 0xdd, 0x75, 0xd7, 0x4b, /* .....u.K */ +0x4f, 0x5b, 0xae, 0x5e, 0xba, 0xe6, 0xde, 0xa7, /* O[.^.... */ +0xef, 0x32, 0x21, 0x71, 0xb3, 0xcc, 0xf3, 0xf5, /* .2!q.... */ +0xcd, 0x06, 0x0d, 0xb4, 0x33, 0x9e, 0x7a, 0xff, /* ....3.z. */ +0xcf, 0x3f, 0x60, 0x92, 0x5d, 0xa2, 0x99, 0xa5, /* .?`.]... */ +0x8b, 0x9c, 0x9b, 0xca, 0x88, 0xe5, 0x7f, 0xc5, /* ........ */ +0x63, 0xfe, 0x83, 0xe4, 0xbf, 0x3a, 0xae, 0x73, /* c....:.s */ +0xce, 0xb5, 0x87, 0x8d, 0xcf, 0x0f, 0xfe, 0x6b, /* .......k */ +0xf0, 0x40, 0x2d, 0x64, 0x35, 0x52, 0xcb, 0xcb, /* .@-d5R.. */ +0xcb, 0xd7, 0x27, 0x2f, 0x2f, 0x2f, 0x27, 0x27, /* ..'///'' */ +0x27, 0x2f, 0x2f, 0x5d, 0x77, 0xd7, 0x5d, 0xf2, /* '//]w.]. */ +0x72, 0x13, 0x27, 0x11, 0xfa, 0x42, 0x69, 0x64, /* r.'..Bid */ +0x5b, 0x5b, 0x5b, 0x59, 0x1e, 0x57, 0x97, 0xa7, /* [[[Y.W.. */ +0x93, 0xb2, 0x6c, 0x9a, 0x26, 0xfa, 0xeb, 0xae, /* ..l.&... */ +0x4e, 0x55, 0x95, 0xe5, 0xe5, 0xe1, 0x19, 0x3a, /* NU.....: */ +0xff, 0xfc, 0x8c, 0xb5, 0xb6, 0x5e, 0x52, 0x65, /* .....^Re */ +0xeb, 0xa2, 0x55, 0x2a, 0x95, 0x11, 0x4c, 0xaa, /* ..U*..L. */ +0xf2, 0x92, 0x27, 0x85, 0x45, 0x52, 0x13, 0x3a, /* ..'.ER.: */ +0xaa, 0x0b, 0xdb, 0xd9, 0x33, 0x13, 0x7a, 0xeb, /* ....3.z. */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, /* ........ */ +0xeb, 0xae, 0xba, 0x58, 0xbe, 0x82, 0x95, 0xeb, /* ...X.... */ +0x58, 0x86, 0x44, 0xea, 0x59, 0x1d, 0x32, 0xa6, /* X.D.Y.2. */ +0x52, 0x65, 0x79, 0x59, 0x6b, 0x95, 0xe5, 0xe5, /* ReyYk... */ +0x57, 0x2b, 0xd7, 0x5d, 0x75, 0xd6, 0xeb, 0xad, /* W+.]u... */ +0xd7, 0x4a, 0xe9, 0x68, 0x9a, 0xdd, 0x6e, 0xba, /* .J.h..n. */ +0xdd, 0x93, 0x2a, 0xca, 0x88, 0x4c, 0x9e, 0x67, /* ..*..L.g */ +0x9f, 0x9e, 0xa8, 0x11, 0x9b, 0x45, 0xaf, 0xfc, /* .....E.. */ +0xf3, 0xf6, 0x1b, 0xeb, 0x6e, 0x6d, 0x41, 0x00, /* ....nmA. */ +0xd7, 0x6f, 0xe4, 0x62, 0xe5, 0xda, 0x72, 0x39, /* .o.b..r9 */ +0x56, 0x45, 0x1e, 0x67, 0x54, 0xa9, 0xe7, 0xf5, /* VE.gT... */ +0xc8, 0x14, 0x15, 0xbd, 0x7f, 0xfc, 0xea, 0x79, /* .......y */ +0xd8, 0x20, 0x38, 0xda, 0xf8, 0xee, 0x8e, 0x26, /* . 8....& */ +0x4d, 0xcb, 0xc9, 0xc9, 0xcb, 0xd7, 0x23, 0xc9, /* M.....#. */ +0xc9, 0xd7, 0x37, 0xea, 0x26, 0x4e, 0x4e, 0xb9, /* ..7.&NN. */ +0x7b, 0xe5, 0xe4, 0xe4, 0x79, 0x39, 0x09, 0x93, /* {...y9.. */ +0x93, 0x93, 0xbe, 0xf9, 0x79, 0x16, 0x55, 0x95, /* ....y.U. */ +0x65, 0x79, 0x79, 0x1e, 0x96, 0xfb, 0xe5, 0x7a, /* eyy....z */ +0xeb, 0x97, 0xbe, 0x5e, 0xc9, 0x84, 0x59, 0x0e, /* ...^..Y. */ +0x93, 0xfb, 0xff, 0x92, 0x59, 0x79, 0x49, 0x72, /* ....YyIr */ +0xee, 0x5e, 0x5e, 0x27, 0x57, 0x95, 0xd4, 0xb2, /* .^^'W... */ +0x57, 0x4e, 0x65, 0x09, 0xd5, 0x4a, 0x99, 0xfa, /* WNe..J.. */ +0x69, 0x89, 0xa4, 0xae, 0xba, 0xe9, 0xeb, 0xae, /* i....... */ +0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, /* ........ */ +0xae, 0xba, 0xe2, 0xbb, 0x7f, 0xa8, 0x97, 0xbc, /* ........ */ +0xac, 0x41, 0xb0, 0xa4, 0xca, 0xcb, 0x2e, 0xe9, /* .A...... */ +0xe5, 0x96, 0x57, 0xae, 0x5e, 0xba, 0x7a, 0xeb, /* ..W.^.z. */ +0xa2, 0x5d, 0x75, 0xba, 0xeb, 0x75, 0xd6, 0xef, /* .]u..u.. */ +0xae, 0xba, 0xdd, 0x74, 0x4d, 0xf2, 0x74, 0x88, /* ...tM.t. */ +0x33, 0x9d, 0x73, 0x54, 0xfc, 0xf3, 0x46, 0x34, /* 3.sT..F4 */ +0x6b, 0x4e, 0x67, 0xf6, 0xac, 0x43, 0xb8, 0x03, /* kNg..C.. */ +0xab, 0x48, 0x00, 0xcf, 0x31, 0xe0, 0x39, 0xfa, /* .H..1.9. */ +0xf3, 0xfc, 0xfc, 0xec, 0x33, 0x5b, 0x34, 0xc9, /* ....3[4. */ +0x10, 0x1b, 0x02, 0x5c, 0xf7, 0x35, 0x97, 0x75, /* ...\.5.u */ +0x23, 0x17, 0x2a, 0xcb, 0xb4, 0x59, 0x22, 0x75, /* #.*..Y"u */ +0xee, 0x7c, 0xe7, 0xff, 0x09, 0x19, 0xfd, 0xa4, /* .|...... */ +0xad, 0x73, 0xfa, 0xac, 0xcf, 0x56, 0x2f, 0xd6, /* .s...V/. */ +0x1a, 0x6a, 0x5f, 0xb5, 0x24, 0xed, 0x29, 0x65, /* .j_.$.)e */ +0xe5, 0xeb, 0xbe, 0x47, 0x97, 0x93, 0x97, 0x97, /* ...G.... */ +0xae, 0x96, 0x55, 0x95, 0x69, 0x69, 0x69, 0x65, /* ..U.iiie */ +0x5b, 0x59, 0x16, 0x47, 0x93, 0x93, 0xbe, 0x4e, /* [Y.G...N */ +0x5e, 0xbb, 0xeb, 0xbe, 0x57, 0x93, 0xa5, 0xb2, /* ^...W... */ +0x65, 0x7a, 0xeb, 0xa7, 0xbe, 0x4e, 0xf9, 0x7b, /* ez...N.{ */ +0x92, 0x11, 0x65, 0x6f, 0x6f, 0xff, 0xe5, 0xe4, /* ..eoo... */ +0xe4, 0xe2, 0x7d, 0x4a, 0xee, 0x27, 0xbc, 0xb2, /* ..}J.'.. */ +0x4a, 0x4c, 0xab, 0x2a, 0xca, 0xea, 0x57, 0x9a, /* JL.*..W. */ +0x57, 0xa9, 0x89, 0xbd, 0x13, 0x4b, 0x4b, 0x4b, /* W....KKK */ +0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, /* ]u.]u.]u */ +0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x2c, 0x63, 0xcf, /* .]u.],c. */ +0x27, 0xf5, 0x94, 0x82, 0x14, 0xbd, 0x10, 0xb4, /* '....... */ +0xf2, 0xee, 0x56, 0x59, 0x5d, 0x56, 0xab, 0xa2, /* ..VY]V.. */ +0x6b, 0xa2, 0x69, 0x5d, 0x75, 0xba, 0x7a, 0xdd, /* k.i]u.z. */ +0x75, 0xd7, 0x5b, 0x95, 0x68, 0x9a, 0x79, 0xb5, /* u.[.h.y. */ +0xf4, 0x8b, 0x44, 0xdf, 0x79, 0x33, 0xff, 0xfe, /* ..D.y3.. */ +0x89, 0x3c, 0xe7, 0xfa, 0xea, 0x8c, 0x2b, 0x20, /* .<....+ */ +0x13, 0x76, 0xa2, 0x0c, 0x20, 0x81, 0xfa, 0x00, /* .v.. ... */ +0xf4, 0xcf, 0x9f, 0xe7, 0xe7, 0x63, 0xf8, 0x61, /* .....c.a */ +0x00, 0x17, 0xf4, 0x93, 0xc8, 0x00, 0x19, 0x2b, /* .......+ */ +0x7f, 0xdc, 0x5c, 0xab, 0x22, 0xb4, 0x57, 0x52, /* ..\.".WR */ +0xa2, 0x2f, 0xcd, 0x7f, 0xf2, 0x07, 0x8d, 0x7e, /* ./.....~ */ +0x75, 0x5c, 0xf3, 0xd5, 0x67, 0x04, 0xe4, 0xe7, /* u\..g... */ +0x87, 0x6b, 0xfe, 0x15, 0xfb, 0x04, 0x07, 0xe4, /* .k...... */ +0x92, 0x89, 0x72, 0x72, 0xf2, 0xf4, 0xb4, 0xf2, /* ..rr.... */ +0xf5, 0xd3, 0xcb, 0xdf, 0x2f, 0x7c, 0xbd, 0x75, /* ..../|.u */ +0xdf, 0x5d, 0x74, 0xf2, 0xf7, 0xd7, 0x2f, 0x5c, /* .]t.../\ */ +0xbd, 0x71, 0x3f, 0xa8, 0x9a, 0xef, 0x89, 0xef, /* .q?..... */ +0x29, 0x34, 0xb7, 0xd7, 0x4f, 0x5d, 0xf5, 0xc9, /* )4..O].. */ +0xd7, 0x2b, 0xa6, 0xf9, 0x79, 0x79, 0x49, 0x90, /* .+..yyI. */ +0x99, 0x49, 0x91, 0x4f, 0xca, 0x42, 0x39, 0x56, /* .I.O.B9V */ +0x55, 0x71, 0x24, 0xbd, 0xe5, 0x59, 0x5c, 0xdc, /* Uq$..Y\. */ +0x42, 0x2e, 0xab, 0xa7, 0xae, 0xba, 0x7a, 0xeb, /* B.....z. */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, /* ........ */ +0xeb, 0xae, 0xba, 0xe2, 0x09, 0xb2, 0x88, 0x43, /* .......C */ +0x72, 0x90, 0x92, 0xcb, 0x4f, 0x2b, 0xca, 0xca, /* r...O+.. */ +0xa9, 0x69, 0xeb, 0x99, 0x7d, 0x29, 0x34, 0xf5, /* .i..})4. */ +0xba, 0x25, 0xd7, 0x4e, 0xeb, 0xad, 0xdf, 0x5d, /* .%.N...] */ +0x72, 0xee, 0xfa, 0x25, 0xd7, 0x7c, 0x9d, 0x3b, /* r..%.|.; */ +0x93, 0x93, 0xa4, 0x41, 0xb5, 0xcf, 0x99, 0xfe, /* ...A.... */ +0x7a, 0x0b, 0x1a, 0x1e, 0x40, 0x05, 0x75, 0x59, /* z...@.uY */ +0xa8, 0x00, 0x08, 0xf8, 0x19, 0x60, 0x1d, 0xb5, /* .....`.. */ +0xe7, 0xf9, 0x9c, 0xf3, 0x8f, 0xf8, 0x01, 0x82, /* ........ */ +0x2f, 0x00, 0x75, 0xb0, 0x00, 0x0c, 0x00, 0xb0, /* /.u..... */ +0x00, 0x38, 0xc0, 0x52, 0xd7, 0xb7, 0xed, 0x8b, /* .8.R.... */ +0x93, 0x68, 0xab, 0x7b, 0x96, 0x41, 0x71, 0xe8, /* .h.{.Aq. */ +0x83, 0xab, 0xf4, 0xff, 0xfa, 0x9e, 0xb5, 0x3f, /* .......? */ +0x9f, 0x0a, 0x1b, 0x6b, 0xbf, 0xfe, 0xaa, 0xb5, /* ...k.... */ +0xa1, 0xb0, 0x40, 0x53, 0xc1, 0x6e, 0xe2, 0xe4, /* ..@S.n.. */ +0xdc, 0x9c, 0xbc, 0x8f, 0x2f, 0x2f, 0x2b, 0xc9, /* ....//+. */ +0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x2b, /* .]u.]u.+ */ +0xdf, 0x2f, 0x27, 0x27, 0x7c, 0x9d, 0x74, 0x4d, /* ./''|.tM */ +0x72, 0x72, 0xf2, 0x93, 0x44, 0xd9, 0x32, 0xbd, /* rr..D.2. */ +0x74, 0xf5, 0xd7, 0x5c, 0xb2, 0x54, 0xb2, 0xf6, /* t..\.T.. */ +0x4c, 0xab, 0x12, 0xb7, 0x93, 0x95, 0x64, 0x79, /* L.....dy */ +0x78, 0x92, 0x5e, 0xa4, 0x44, 0x2e, 0x95, 0x5c, /* x.^.D..\ */ +0xa4, 0xb9, 0x56, 0x24, 0x84, 0xd4, 0xb2, 0x9b, /* ..V$.... */ +0x88, 0x45, 0xbd, 0x74, 0xf5, 0xd3, 0xd7, 0x5d, /* .E.t...] */ +0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, /* u.]u.]u. */ +0x5d, 0x75, 0xd7, 0x13, 0xd8, 0xa7, 0x32, 0x82, /* ]u....2. */ +0xb1, 0x14, 0xcb, 0x29, 0x32, 0xbc, 0xac, 0xb2, /* ...)2... */ +0xf4, 0xea, 0xb9, 0x49, 0xae, 0x9c, 0xbd, 0x75, /* ...I...u */ +0xd6, 0xe9, 0xeb, 0xae, 0xb7, 0x7d, 0x75, 0xd6, /* .....}u. */ +0xeb, 0xae, 0xbb, 0x5b, 0xe9, 0xef, 0x93, 0x91, /* ...[.... */ +0x10, 0x69, 0x73, 0xf5, 0xfd, 0x78, 0x48, 0xd6, /* .is..xH. */ +0x5c, 0x8e, 0x6b, 0x64, 0x27, 0x9f, 0xe7, 0x3c, /* \.kd'..< */ +0xe2, 0xfc, 0x15, 0x70, 0x42, 0x66, 0x3c, 0x07, /* ...pBf<. */ +0x35, 0x60, 0x01, 0x32, 0x03, 0x60, 0x4b, 0x9c, /* 5`.2.`K. */ +0x2e, 0x59, 0xac, 0x8c, 0x5b, 0x89, 0xef, 0x64, /* .Y..[..d */ +0xc8, 0xad, 0x15, 0x6d, 0x10, 0xbe, 0xdf, 0x9f, /* ...m.... */ +0xfa, 0x0f, 0x99, 0xa4, 0xbe, 0xa7, 0xeb, 0xa9, /* ........ */ +0xe6, 0xc1, 0x0d, 0x2b, 0x49, 0x29, 0xcd, 0x8a, /* ...+I).. */ +0x57, 0x2f, 0x27, 0x2f, 0x2f, 0x2b, 0xc9, 0xc9, /* W/'//+.. */ +0xc9, 0xc9, 0xc9, 0xc9, 0xd7, 0x5d, 0x72, 0xf6, /* .....]r. */ +0xb5, 0xd7, 0x5d, 0x93, 0x5d, 0x3d, 0xf2, 0x3d, /* ..].]=.= */ +0x77, 0xd7, 0x5c, 0x9c, 0xab, 0x44, 0xc8, 0xf2, /* w.\..D.. */ +0x76, 0x4d, 0x3d, 0xf1, 0xde, 0xff, 0xff, 0xae, /* vM=..... */ +0x4e, 0x4e, 0x4e, 0x45, 0x93, 0x95, 0xe5, 0xef, /* NNNE.... */ +0x52, 0x12, 0x5d, 0x2f, 0x2c, 0x92, 0xbb, 0x97, /* R.]/,... */ +0x76, 0xc8, 0x6e, 0x55, 0x94, 0x85, 0x13, 0xe2, /* v.nU.... */ +0x11, 0x75, 0x37, 0xea, 0x7a, 0x7a, 0xeb, 0xae /* .u7.zz.. */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt17[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x46, 0x40, 0x00, 0x40, 0x11, /* ...F@.@. */ +0xc0, 0xcf, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0xc9, 0xdd, 0x80, 0x63, 0x8c, 0xfd, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, /* ........ */ +0xae, 0xba, 0xe2, 0x9e, 0xcf, 0xd6, 0xa5, 0x7a, /* .......z */ +0x20, 0x88, 0x97, 0xf4, 0xa4, 0x2d, 0x3d, 0x10, /* ....-=. */ +0xb5, 0xd1, 0x35, 0xd3, 0xd6, 0xe9, 0xdd, 0x6e, /* ..5....n */ +0x89, 0x72, 0xf4, 0xf5, 0xba, 0xeb, 0xad, 0xdf, /* .r...... */ +0x5d, 0x74, 0xae, 0xba, 0xe6, 0xd5, 0xa4, 0x26, /* ]t.....& */ +0x55, 0xa7, 0xbe, 0x4e, 0x90, 0x81, 0xb5, 0xcf, /* U..N.... */ +0xd5, 0x7f, 0xd0, 0x7d, 0x40, 0x09, 0x8f, 0xd0, /* ...}@... */ +0x53, 0xcf, 0xcf, 0x33, 0xd6, 0x3f, 0xb0, 0xb0, /* S..3.?.. */ +0xeb, 0x76, 0x7e, 0x63, 0xe5, 0x00, 0x01, 0x1b, /* .v~c.... */ +0x4b, 0x7b, 0x7f, 0xff, 0xff, 0x64, 0x2b, 0x17, /* K{...d+. */ +0x2e, 0xe5, 0xef, 0x96, 0x45, 0x1e, 0x88, 0x1a, /* ....E... */ +0x14, 0x3e, 0x1b, 0x8f, 0xff, 0xd5, 0x15, 0x31, /* .>.....1 */ +0x0f, 0x53, 0xac, 0x3c, 0x2a, 0xff, 0xff, 0x55, /* .S.<*..U */ +0xf6, 0x15, 0x16, 0x8a, 0x16, 0x74, 0xf5, 0xb8, /* .....t.. */ +0x93, 0xc0, 0xbc, 0xbc, 0x9c, 0xaf, 0x2f, 0x27, /* ....../' */ +0x27, 0x27, 0x27, 0x27, 0x27, 0x5c, 0xbd, 0xf5, /* '''''\.. */ +0xdf, 0x5c, 0xbd, 0x75, 0xdb, 0xd7, 0x29, 0x37, /* .\.u..)7 */ +0xd7, 0x5c, 0xbc, 0xbd, 0x75, 0xca, 0xf7, 0xd7, /* .\..u... */ +0x4b, 0x4b, 0x4b, 0x23, 0xc9, 0xc9, 0xc9, 0xcb, /* KKK#.... */ +0xdf, 0x2a, 0xda, 0xca, 0xf2, 0xbc, 0xbb, 0x93, /* .*...... */ +0x1b, 0x52, 0xb2, 0x3b, 0xcd, 0xcb, 0xca, 0x42, /* .R.;...B */ +0x4a, 0xff, 0xff, 0xfa, 0x21, 0x10, 0x99, 0x9e, /* J...!... */ +0x80, 0x22, 0x9e, 0xba, 0xeb, 0xae, 0xba, 0xeb, /* ."...... */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, /* ........ */ +0x26, 0x89, 0xa2, 0x08, 0x72, 0xb2, 0xca, 0xf4, /* &...r... */ +0xf2, 0xb2, 0xd7, 0x4f, 0x2e, 0xe9, 0xeb, 0x4d, /* ...O...M */ +0x12, 0xeb, 0xa7, 0xae, 0x9d, 0xd7, 0x5b, 0xae, /* ......[. */ +0xba, 0xdc, 0xbd, 0x75, 0xcd, 0xbb, 0x57, 0x27, /* ...u..W' */ +0x44, 0xdf, 0x6a, 0xe9, 0xef, 0x93, 0x96, 0x21, /* D.j....! */ +0x2f, 0x9a, 0xd7, 0xfd, 0x07, 0xf3, 0x67, 0x33, /* /.....g3 */ +0xae, 0x95, 0x4e, 0x73, 0x8f, 0x14, 0xca, 0x64, /* ..Ns...d */ +0x25, 0x00, 0x0d, 0xf3, 0xc3, 0x90, 0x1e, 0x8f, /* %....... */ +0xc7, 0x31, 0xed, 0x7f, 0xe0, 0x0c, 0x4d, 0xdd, /* .1....M. */ +0x9d, 0xbf, 0xcb, 0x2c, 0xbc, 0xbc, 0x9b, 0x44, /* ...,...D */ +0x90, 0xdb, 0x8f, 0x4f, 0xfe, 0x4d, 0x4e, 0x75, /* ...O.MNu */ +0x5f, 0x48, 0xaa, 0x09, 0x0a, 0xd7, 0x7d, 0xfb, /* _H....}. */ +0xa7, 0x98, 0x29, 0xea, 0x6c, 0x13, 0x94, 0x9a, /* ..).l... */ +0xdc, 0x56, 0xbb, 0x9e, 0x49, 0x4b, 0xa5, 0xd4, /* .V..IK.. */ +0xaf, 0x27, 0x27, 0x2f, 0x27, 0x27, 0x27, 0x5c, /* .''/'''\ */ +0xbd, 0x75, 0xcb, 0xd7, 0x5d, 0xf5, 0xdf, 0x4f, /* .u..]..O */ +0x2f, 0x4f, 0x5c, 0xbd, 0xf2, 0x72, 0x75, 0xcb, /* /O\..ru. */ +0xdf, 0x5c, 0xbd, 0xf5, 0xd7, 0x2b, 0xdf, 0x27, /* .\...+.' */ +0x27, 0x27, 0x27, 0x27, 0x2f, 0x2b, 0xcb, 0xd9, /* ''''/+.. */ +0x32, 0xf2, 0xa2, 0x3b, 0x25, 0xb2, 0x93, 0x2e, /* 2..;%... */ +0xe5, 0x21, 0x25, 0xff, 0xff, 0xf9, 0x08, 0x84, /* .!%..... */ +0xcd, 0xfa, 0x9e, 0xba, 0xeb, 0xae, 0xba, 0xeb, /* ........ */ +0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8a, 0xe8, /* ........ */ +0x08, 0x3f, 0xd3, 0x36, 0xe3, 0x68, 0xf2, 0xb1, /* .?.6.h.. */ +0x02, 0x1c, 0x12, 0x4b, 0xf4, 0xac, 0xb2, 0xbc, /* ...K.... */ +0xab, 0x12, 0xca, 0x6c, 0x79, 0x5e, 0x9e, 0x5e, /* ...ly^.^ */ +0x89, 0xad, 0xd3, 0xd6, 0xeb, 0xad, 0xd3, 0xd7, /* ........ */ +0x5d, 0x75, 0xd7, 0x2f, 0x5b, 0xad, 0xd7, 0x4b, /* ]u./[..K */ +0x5d, 0x2d, 0x2a, 0xb2, 0x65, 0x26, 0x9e, 0x5e, /* ]-*.e&.^ */ +0x4e, 0x58, 0x84, 0x84, 0x21, 0x36, 0xcc, 0xe7, /* NX..!6.. */ +0x9f, 0xcc, 0xe7, 0x06, 0x02, 0xb5, 0x00, 0x0a, /* ........ */ +0xc2, 0x27, 0x07, 0xe1, 0x0a, 0x00, 0x1d, 0xc4, /* .'...... */ +0xa0, 0x51, 0xb7, 0x47, 0xff, 0xfc, 0xfe, 0xc1, /* .Q.G.... */ +0x69, 0xf1, 0xad, 0xeb, 0x8f, 0x77, 0xe5, 0x96, /* i....w.. */ +0xf9, 0x79, 0x7b, 0x54, 0xca, 0x89, 0xcf, 0xd7, /* .y{T.... */ +0xf1, 0xe1, 0xf3, 0x4f, 0x0e, 0x79, 0xf9, 0xea, /* ...O.y.. */ +0x94, 0x36, 0x15, 0xdf, 0xdf, 0xff, 0xff, 0x90, /* .6...... */ +0x91, 0x67, 0x81, 0x56, 0x55, 0x97, 0x91, 0xe5, /* .g.VU... */ +0xe5, 0xe5, 0xe5, 0xe5, 0xef, 0x93, 0xae, 0xba, /* ........ */ +0xeb, 0xae, 0x6e, 0xf2, 0xbd, 0xf2, 0x72, 0xbc, /* ..n...r. */ +0x9d, 0x72, 0xf2, 0xf2, 0xf7, 0xcb, 0xc9, 0xc9, /* .r...... */ +0xcb, 0xd7, 0x27, 0x23, 0xdf, 0x27, 0x27, 0x27, /* ..'#.''' */ +0x27, 0x2f, 0x7c, 0x4b, 0xea, 0x4e, 0x57, 0x94, /* '/|K.NW. */ +0x9b, 0xe5, 0xe5, 0x64, 0x76, 0x49, 0xb9, 0x51, /* ...dvI.Q */ +0x1c, 0xa4, 0xb9, 0x57, 0xff, 0xff, 0x44, 0x22, /* ...W..D" */ +0x13, 0x33, 0xd1, 0x5d, 0x3d, 0x75, 0xd7, 0x5d, /* .3.]=u.] */ +0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5c, 0x57, 0x7f, /* u.]u.\W. */ +0xf4, 0xcc, 0x4c, 0xc8, 0x3c, 0xe6, 0xc5, 0x63, /* ..L.<..c */ +0xe2, 0xf6, 0x54, 0x40, 0xa0, 0xa9, 0x51, 0x05, /* ..T@..Q. */ +0x18, 0x97, 0x76, 0xb4, 0x52, 0xf2, 0xbc, 0xba, /* ..v.R... */ +0x94, 0x85, 0x95, 0xd5, 0x3d, 0x75, 0xb9, 0x89, /* ....=u.. */ +0x76, 0x94, 0x97, 0x2b, 0xca, 0x4d, 0x74, 0xf5, /* v..+.Mt. */ +0xba, 0xeb, 0x75, 0xba, 0xeb, 0x75, 0xd6, 0xeb, /* ..u..u.. */ +0xaf, 0xff, 0xfe, 0xf0, 0x42, 0x23, 0x13, 0xc8, /* ....B#.. */ +0xec, 0x36, 0x69, 0xbf, 0xf4, 0xd3, 0xa7, 0xa8, /* .6i..... */ +0x9a, 0xef, 0xb2, 0x4f, 0x89, 0xd3, 0x13, 0xde, /* ...O.... */ +0xc9, 0xb9, 0x03, 0xbe, 0x68, 0xa0, 0xe8, 0xb2, /* ....h... */ +0xa7, 0x3c, 0xf1, 0xcc, 0xf8, 0xe1, 0x58, 0xc0, /* .<....X. */ +0x10, 0xef, 0x86, 0x60, 0x3a, 0x9c, 0x60, 0x29, /* ...`:.`) */ +0x71, 0x90, 0xb0, 0x31, 0xee, 0xb7, 0xff, 0xff, /* q..1.... */ +0x53, 0xf6, 0x0b, 0x7c, 0x27, 0xe3, 0x4b, 0xc0, /* S..|'.K. */ +0x6b, 0xcd, 0xfe, 0x22, 0x2e, 0xf2, 0x93, 0x21, /* k.."...! */ +0x2d, 0x15, 0xef, 0x72, 0x93, 0xf9, 0xeb, 0xfe, /* -..r.... */ +0x83, 0xe2, 0xa7, 0xce, 0x79, 0xe9, 0x9e, 0xa6, /* ....y... */ +0xb8, 0x27, 0x25, 0x5a, 0x7e, 0xff, 0xfc, 0xff, /* .'%Z~... */ +0x04, 0x07, 0xd2, 0x55, 0x2b, 0x44, 0x94, 0xb8, /* ...U+D.. */ +0xb4, 0x8b, 0xc8, 0xf2, 0xf5, 0xd7, 0x5d, 0x72, /* ......]r */ +0xf2, 0x72, 0xf2, 0x75, 0xcb, 0xd1, 0x36, 0x4d, /* .r.u..6M */ +0x72, 0xf4, 0xf2, 0xf7, 0xc9, 0xc9, 0xc9, 0xcb, /* r....... */ +0xd7, 0x5d, 0xf5, 0xd7, 0x5d, 0xbc, 0xbc, 0x9c, /* .]..]... */ +0x9d, 0xf7, 0xc9, 0xcb, 0xca, 0x4d, 0xf2, 0x93, /* .....M.. */ +0x27, 0x2f, 0x2f, 0x6a, 0x6e, 0x52, 0x12, 0x55, /* '//jnR.U */ +0x76, 0xa1, 0x5a, 0x96, 0x49, 0x5f, 0xff, 0xff, /* v.Z.I_.. */ +0x84, 0x4a, 0xf2, 0x22, 0xcd, 0xda, 0x9e, 0xba, /* .J.".... */ +0xeb, 0xae, 0xba, 0xeb, 0xae, 0xb8, 0xae, 0x81, /* ........ */ +0xf3, 0xfd, 0x34, 0xc5, 0x12, 0x5c, 0x11, 0x48, /* ..4..\.H */ +0x52, 0x7f, 0x6c, 0x4a, 0xb8, 0xca, 0x3a, 0x3c, /* R.lJ..:< */ +0x81, 0x45, 0x62, 0xb6, 0x40, 0xc0, 0xc8, 0x5c, /* .Eb.@..\ */ +0x51, 0x89, 0xdf, 0xd6, 0xca, 0x1e, 0x19, 0x0b, /* Q....... */ +0xca, 0x4d, 0xe3, 0xaa, 0x25, 0x95, 0x5a, 0xb9, /* .M..%.Z. */ +0x5d, 0xcb, 0xb9, 0x64, 0x15, 0x94, 0x85, 0x74, /* ]..d...t */ +0xb4, 0xb4, 0xf5, 0xd3, 0xd7, 0x5d, 0x75, 0xd6, /* .....]u. */ +0xe5, 0xe5, 0xdd, 0x7f, 0xff, 0xdd, 0xf0, 0xa8, /* ........ */ +0xac, 0x4f, 0x07, 0x3c, 0x6c, 0x5f, 0xfd, 0xde, /* .O. */ +0xdb, 0x7b, 0x90, 0x0c, 0xce, 0x42, 0xa8, 0x81, /* .{...B.. */ +0xe2, 0x54, 0x56, 0xd2, 0xa8, 0xac, 0xea, 0x3a, /* .TV....: */ +0xbd, 0x4c, 0xa3, 0x2c, 0x8a, 0xf1, 0x3d, 0xa5, /* .L.,..=. */ +0x53, 0x71, 0x32, 0xfa, 0xc9, 0x72, 0x93, 0x29, /* Sq2..r.) */ +0x32, 0xb2, 0x39, 0x65, 0x74, 0xed, 0x97, 0x93, /* 2.9et... */ +0xad, 0xcb, 0xda, 0xd2, 0xd3, 0xba, 0xdd, 0x75, /* .......u */ +0xcb, 0xd7, 0x5b, 0x93, 0x2c, 0x18, 0x8e, 0xd6, /* ..[.,... */ +0x4a, 0xb7, 0xa5, 0x9b, 0x56, 0x97, 0xb7, 0xb7, /* J...V... */ +0xb5, 0x75, 0x20, 0xe2, 0xa6, 0x57, 0x27, 0x7a, /* .u ..W'z */ +0xa8, 0x81, 0x9c, 0xfe, 0x67, 0x5f, 0xf4, 0x0b, /* ....g_.. */ +0x10, 0x69, 0x07, 0xe1, 0x55, 0xbf, 0x01, 0x6c, /* .i..U..l */ +0x60, 0xd3, 0xff, 0x9f, 0xe7, 0xa5, 0x4e, 0x3f, /* `.....N? */ +0xc2, 0x06, 0x04, 0xba, 0x9c, 0x30, 0x85, 0x57, /* .....0.W */ +0xe1, 0xf4, 0x34, 0xb9, 0x96, 0x17, 0x77, 0x18, /* ..4...w. */ +0xd2, 0x0f, 0x23, 0x17, 0x26, 0xa5, 0x26, 0x5e, /* ..#.&.&^ */ +0xf7, 0x29, 0x32, 0x12, 0xd4, 0xf3, 0x3c, 0xfd, /* .)2...<. */ +0x75, 0x8a, 0x14, 0xa7, 0x85, 0x7a, 0x57, 0xff, /* u....zW. */ +0xe6, 0xb5, 0xd4, 0xd8, 0x20, 0xa4, 0xb9, 0x51, /* .... ..Q */ +0xcb, 0xc8, 0xed, 0x11, 0x94, 0x43, 0x85, 0xe5, /* .....C.. */ +0xe4, 0xe5, 0xe5, 0xe5, 0xe5, 0xeb, 0xae, 0xf9, /* ........ */ +0x39, 0x49, 0x93, 0x91, 0xef, 0xa5, 0x95, 0xe5, /* 9I...... */ +0xeb, 0xbe, 0x4e, 0x5e, 0x4e, 0xb9, 0x79, 0x79, /* ..N^N.yy */ +0x7a, 0xef, 0xa7, 0xbe, 0xfb, 0xeb, 0xbe, 0x4e, /* z......N */ +0x55, 0xa5, 0xb7, 0x97, 0x95, 0x6d, 0xe5, 0xef, /* U....m.. */ +0x95, 0x12, 0x52, 0x65, 0x77, 0x6a, 0x6e, 0x59, /* ..RewjnY */ +0x25, 0xcb, 0x85, 0x73, 0x72, 0x21, 0x29, 0x0a, /* %..sr!). */ +0xe9, 0xc3, 0xd3, 0xe2, 0xba, 0xfe, 0x9a, 0x69, /* .......i */ +0xeb, 0x8a, 0xeb, 0xfd, 0x31, 0x44, 0xcc, 0x84, /* ....1D.. */ +0xeb, 0xb7, 0xa7, 0x31, 0x25, 0xc4, 0xb1, 0x24, /* ...1%..$ */ +0x20, 0x51, 0x51, 0x94, 0x76, 0x76, 0x40, 0xc0, /* QQ.vv@. */ +0x32, 0x26, 0xb4, 0x61, 0x0f, 0x12, 0x43, 0x8a, /* 2&.a..C. */ +0x3f, 0x4a, 0xad, 0x09, 0x45, 0xf5, 0xa9, 0xb4, /* ?J..E... */ +0xaa, 0xa5, 0x26, 0xc9, 0x94, 0x98, 0x94, 0x53, /* ..&....S */ +0x67, 0x51, 0x35, 0xd3, 0xb9, 0x49, 0x2e, 0x15, /* gQ5..I.. */ +0xc5, 0x6b, 0x95, 0xe5, 0xdd, 0xf5, 0xcb, 0xd7, /* .k...... */ +0x5d, 0x3d, 0x75, 0xd7, 0x5b, 0xad, 0xd7, 0x5d, /* ]=u.[..] */ +0x13, 0x37, 0x7a, 0xeb, 0x54, 0x4f, 0xff, 0xfb, /* .7z.TO.. */ +0xbb, 0x0a, 0x8a, 0xed, 0x6a, 0x6c, 0xff, 0x5b, /* ....jl.[ */ +0xde, 0xef, 0x20, 0xce, 0x6c, 0x9b, 0x15, 0x76, /* .. .l..v */ +0x96, 0x9b, 0xf2, 0xef, 0xf9, 0x50, 0xbb, 0x26, /* .....P.& */ +0x45, 0x96, 0x46, 0x8c, 0xcb, 0x7b, 0xed, 0x54, /* E.F..{.T */ +0xb1, 0x03, 0x32, 0xc3, 0x08, 0xa2, 0xbf, 0xc0, /* ..2..... */ +0x4d, 0x75, 0x85, 0xbf, 0xff, 0x16, 0xb7, 0xbf, /* Mu...... */ +0xd6, 0xa7, 0xaf, 0xd4, 0xd5, 0x60, 0xc0, 0x56 /* .....`.V */ +}; + +/* Frame (1472 bytes) */ +static const unsigned char pkt18[1472] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x05, 0xb2, 0xdb, 0x47, 0x40, 0x00, 0x40, 0x11, /* ...G@.@. */ +0xc0, 0xce, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x05, 0x9e, /* ..N 2... */ +0x94, 0xf3, 0x80, 0x63, 0x8c, 0xfe, 0x06, 0x15, /* ...c.... */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x05, /* V..S..|. */ +0x42, 0x47, 0x8c, 0x05, 0x20, 0xf2, 0x10, 0x5f, /* BG.. .._ */ +0xc6, 0x41, 0x6d, 0x74, 0x7f, 0xff, 0xcf, 0xec, /* .Amt.... */ +0x16, 0x9f, 0x08, 0x78, 0x0e, 0x53, 0x5c, 0x7b, /* ...x.S\{ */ +0xbf, 0x10, 0xc4, 0xde, 0x5e, 0xd6, 0x55, 0x95, /* ....^.U. */ +0xeb, 0x6a, 0x2b, 0xd6, 0x7f, 0xe8, 0x3e, 0x29, /* .j+...>) */ +0x12, 0xb5, 0xae, 0xb9, 0xcc, 0x75, 0x31, 0x58, /* .....u1X */ +0x21, 0x23, 0xa5, 0xff, 0xd7, 0x3f, 0x40, 0x80, /* !#...?@. */ +0xf9, 0x76, 0x59, 0x6a, 0x56, 0x42, 0x7b, 0x4b, /* .vYjVB{K */ +0xca, 0xf2, 0x72, 0x72, 0xf2, 0xf7, 0xc9, 0xc9, /* ..rr.... */ +0xcb, 0xc8, 0xf2, 0x2d, 0xac, 0x8b, 0x23, 0xc9, /* ...-..#. */ +0xdf, 0x5d, 0xf7, 0xc9, 0xc9, 0xd7, 0x5d, 0x77, /* .]....]w */ +0xdf, 0x23, 0xdf, 0x2f, 0x7c, 0x9d, 0xf7, 0xc9, /* .#./|... */ +0xcb, 0xdf, 0x7c, 0xbc, 0xa4, 0xc9, 0xca, 0xb2, /* ..|..... */ +0x93, 0x22, 0xb6, 0x42, 0x10, 0xba, 0x55, 0x94, /* .".B..U. */ +0x91, 0x5b, 0x44, 0x37, 0x2e, 0x91, 0x71, 0x3e, /* .[D7..q> */ +0x44, 0x54, 0x8a, 0x8b, 0x12, 0xab, 0x51, 0x2b, /* DT....Q+ */ +0x79, 0xd1, 0x1e, 0xad, 0x10, 0x65, 0x91, 0x52, /* y....e.R */ +0x0a, 0x2a, 0x25, 0x10, 0x56, 0xd2, 0xa3, 0x8a, /* .*%.V... */ +0xc4, 0xa9, 0xf3, 0xa7, 0x21, 0x4e, 0x47, 0xa5, /* ....!NG. */ +0x5b, 0x55, 0x29, 0x32, 0xad, 0x90, 0xb2, 0xf2, /* [U)2.... */ +0xac, 0x84, 0xca, 0xae, 0xc9, 0x72, 0xa8, 0xac, /* .....r.. */ +0x49, 0x22, 0x1c, 0x69, 0x5e, 0x7e, 0xd2, 0xad, /* I".i^~.. */ +0x75, 0xba, 0xe6, 0xfd, 0x5b, 0xb7, 0xa2, 0x5c, /* u...[..\ */ +0x74, 0x41, 0x73, 0xff, 0xd3, 0x4f, 0x2c, 0x4d, /* tAs..O,M */ +0x6e, 0x5d, 0xcb, 0xb9, 0x77, 0x37, 0x6a, 0x7a, /* n]..w7jz */ +0x26, 0xb5, 0xff, 0xfe, 0xee, 0x40, 0xa8, 0xae, /* &....@.. */ +0x0e, 0xd9, 0x07, 0x6c, 0x31, 0x8b, 0xb3, 0xfb, /* ...l1... */ +0x8b, 0xef, 0x7d, 0xb1, 0x1d, 0xad, 0x4d, 0x91, /* ..}...M. */ +0x3c, 0x03, 0xed, 0x75, 0xdb, 0xef, 0x27, 0x7f, /* <..u..'. */ +0x9f, 0xf6, 0x24, 0x49, 0xb1, 0xd8, 0x43, 0x0d, /* ..$I..C. */ +0xb9, 0xe2, 0xfb, 0xff, 0xf5, 0x91, 0x0b, 0x2d, /* .......- */ +0xae, 0x9e, 0xf9, 0x39, 0x48, 0x46, 0x93, 0x2d, /* ...9HF.- */ +0xf2, 0xae, 0x27, 0xea, 0x9f, 0xe8, 0x9f, 0xf4, /* ..'..... */ +0xcf, 0xd0, 0x21, 0x27, 0x5a, 0xad, 0x4f, 0x5f, /* ..!'Z.O_ */ +0x1e, 0x83, 0x46, 0xc6, 0x65, 0xfe, 0x3b, 0x25, /* ..F.e.;% */ +0x04, 0x44, 0xb7, 0x9d, 0x2f, 0x6f, 0xe9, 0xf5, /* .D../o.. */ +0x3f, 0x35, 0x87, 0x66, 0x04, 0x01, 0x4a, 0xb8, /* ?5.f..J. */ +0x66, 0x14, 0xec, 0x5c, 0xb1, 0xa3, 0x6f, 0xc4, /* f..\..o. */ +0x31, 0x6d, 0x74, 0xa4, 0xca, 0x4c, 0x9b, 0x45, /* 1mt..L.E */ +0xeb, 0x1c, 0x5f, 0xcf, 0xf8, 0x68, 0x9a, 0xcd, /* .._..h.. */ +0x75, 0x8e, 0xb9, 0x90, 0x24, 0x28, 0xa7, 0xfa, /* u...$(.. */ +0xaf, 0xcf, 0xea, 0xb5, 0x5d, 0x58, 0x54, 0x87, /* ....]XT. */ +0xc4, 0xab, 0xb4, 0x97, 0xff, 0x5f, 0xc8, 0xc8, /* ....._.. */ +0x2e, 0x99, 0x5c, 0xae, 0x91, 0x79, 0x79, 0x39, /* ..\..yy9 */ +0x39, 0x79, 0x79, 0x79, 0x39, 0x1e, 0x4e, 0x5e, /* 9yyy9.N^ */ +0x5e, 0x45, 0x91, 0x65, 0x79, 0x79, 0x39, 0x79, /* ^E.eyy9y */ +0x3a, 0xe5, 0xef, 0x93, 0xae, 0xb9, 0x5e, 0xba, /* :.....^. */ +0xeb, 0xbe, 0x5e, 0xf9, 0x3b, 0xe5, 0x26, 0x4e, /* ..^.;.&N */ +0x4e, 0xf9, 0x77, 0x2b, 0xcb, 0xcb, 0xb9, 0x59, /* N.w+...Y */ +0x1c, 0xbb, 0xb5, 0x1a, 0x52, 0x93, 0x2f, 0x29, /* ....R./) */ +0x09, 0x2e, 0x5c, 0x7a, 0x06, 0x57, 0xb4, 0x67, /* ..\z.W.g */ +0x68, 0xe2, 0x1e, 0xc9, 0x10, 0xf1, 0x24, 0x8a, /* h.....$. */ +0xda, 0x52, 0x5a, 0x3a, 0x29, 0xc8, 0xf4, 0xa4, /* .RZ:)... */ +0x9b, 0xbe, 0x55, 0x37, 0x29, 0x0b, 0x2b, 0xdf, /* ..U7).+. */ +0x2a, 0xca, 0xae, 0xf9, 0x49, 0x71, 0x2f, 0x79, /* *...Iq/y */ +0x5d, 0xcb, 0x8a, 0xca, 0x4d, 0x2b, 0x69, 0x69, /* ]...M+ii */ +0x6d, 0x6b, 0xad, 0xd9, 0x35, 0xd2, 0xba, 0x62, /* mk..5..b */ +0x07, 0x4c, 0x39, 0x62, 0x25, 0x6d, 0xa9, 0xdc, /* .L9b%m.. */ +0xbc, 0xbc, 0xbc, 0xda, 0xd5, 0x93, 0xff, 0xf7, /* ........ */ +0xbd, 0xe1, 0x51, 0x5b, 0x4a, 0xd0, 0xd4, 0xa0, /* ..Q[J... */ +0xc9, 0xf5, 0x94, 0x29, 0xff, 0xf7, 0xde, 0xfb, /* ...).... */ +0x63, 0xb9, 0xb2, 0x6c, 0x57, 0x66, 0x6c, 0x6e, /* c..lWfln */ +0x65, 0xd7, 0xdd, 0xef, 0xf9, 0x7e, 0x12, 0x1e, /* e....~.. */ +0x1c, 0xd5, 0xc9, 0x0d, 0x14, 0x91, 0xf8, 0x4b, /* .......K */ +0x21, 0x1a, 0x28, 0xae, 0x3f, 0xe4, 0x8b, 0x97, /* !.(.?... */ +0xab, 0xe7, 0xec, 0x5b, 0xdf, 0x6a, 0xa5, 0x26, /* ...[.j.& */ +0xe4, 0x1d, 0x54, 0xcb, 0x7d, 0x7f, 0x9d, 0x07, /* ..T.}... */ +0xfe, 0x1e, 0x11, 0xd7, 0xa7, 0xe7, 0xf4, 0x82, /* ........ */ +0x15, 0xa4, 0xbf, 0x35, 0xff, 0xd0, 0x2c, 0x79, /* ...5..,y */ +0x8f, 0xc3, 0xbe, 0x8b, 0x4f, 0xfa, 0xd5, 0x73, /* ....O..s */ +0xd7, 0xac, 0xe0, 0x94, 0x20, 0x59, 0x7a, 0xff, /* .... Yz. */ +0xce, 0xab, 0xad, 0x87, 0x47, 0x8d, 0x6f, 0x17, /* ....G.o. */ +0x60, 0xab, 0x24, 0x96, 0x5b, 0x06, 0x0c, 0xc9, /* `.$.[... */ +0xd1, 0xfd, 0x31, 0x72, 0xab, 0x45, 0x59, 0x79, /* ..1r.EYy */ +0x56, 0x5f, 0xfa, 0xcf, 0xe3, 0xc2, 0x42, 0x2d, /* V_....B- */ +0x65, 0xc9, 0xf5, 0xd3, 0x5f, 0x99, 0xac, 0x10, /* e..._... */ +0x8a, 0x44, 0xff, 0xfc, 0xea, 0xb9, 0xd0, 0x4c, /* .D.....L */ +0x4e, 0xb4, 0xb4, 0x8a, 0x8f, 0x5b, 0x44, 0x95, /* N....[D. */ +0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xc9, 0xc9, 0xdf, /* ........ */ +0x2f, 0x7d, 0x77, 0xc9, 0xca, 0xf2, 0xf2, 0xf5, /* /}w..... */ +0xcb, 0xc9, 0xcb, 0xcb, 0xd7, 0x7d, 0xf2, 0x3d, /* .....}.= */ +0xf7, 0xcb, 0xdf, 0x7d, 0x77, 0xcb, 0xc8, 0xf2, /* ...}w... */ +0x77, 0xca, 0xb2, 0xad, 0x2c, 0xab, 0x23, 0xca, /* w...,.#. */ +0xae, 0x45, 0x95, 0xe5, 0x52, 0xe3, 0x44, 0x37, /* .E..R.D7 */ +0x2a, 0x88, 0x71, 0x90, 0x97, 0xa0, 0x6d, 0x6c, /* *.q...ml */ +0x97, 0x29, 0x2e, 0x25, 0x6d, 0x68, 0xa3, 0xaa, /* .).%mh.. */ +0xd5, 0xca, 0x4c, 0xa4, 0x2c, 0xa4, 0xca, 0xb2, /* ..L.,... */ +0xac, 0xaf, 0x26, 0x91, 0x77, 0x2f, 0x3f, 0xe9, /* ..&.w/?. */ +0x79, 0x56, 0x5d, 0x32, 0xab, 0x95, 0x64, 0x26, /* yV]2..d& */ +0x9e, 0xba, 0xdd, 0x2b, 0xa5, 0xae, 0xba, 0xe4, /* ...+.... */ +0x44, 0x3f, 0x5a, 0x6a, 0x5a, 0x26, 0xb7, 0x2f, /* D?ZjZ&./ */ +0x2e, 0xeb, 0xfe, 0x5f, 0x8f, 0x87, 0xc5, 0x34, /* ..._...4 */ +0xa6, 0xe4, 0xfd, 0x37, 0x7b, 0xff, 0xf6, 0x12, /* ...7{... */ +0x84, 0x2c, 0xa1, 0xde, 0xd9, 0x7f, 0x2a, 0x79, /* .,....*y */ +0xca, 0xbf, 0x28, 0xff, 0xf6, 0x42, 0x45, 0xaa, /* ..(..BE. */ +0xd4, 0xbc, 0xba, 0xbe, 0x72, 0x55, 0xaf, 0x95, /* ....rU.. */ +0xed, 0xed, 0x65, 0x44, 0x54, 0xe1, 0xef, 0x12, /* ..eDT... */ +0x5a, 0xd4, 0x7c, 0x8b, 0xfd, 0xbf, 0xf9, 0xe7, /* Z.|..... */ +0xff, 0x4d, 0x05, 0x0d, 0xad, 0x2e, 0x10, 0x47, /* .M.....G */ +0x6b, 0xff, 0x2f, 0xfd, 0x75, 0xaf, 0xeb, 0xe3, /* k./.u... */ +0x8c, 0xa0, 0xb2, 0x42, 0x4d, 0x2d, 0x27, 0xe5, /* ...BM-'. */ +0x64, 0x81, 0x03, 0x71, 0x44, 0x56, 0xe3, 0x70, /* d..qDV.p */ +0x96, 0x10, 0xd0, 0xfa, 0x08, 0x55, 0x72, 0x05, /* .....Ur. */ +0x46, 0x12, 0xe8, 0x4f, 0x8f, 0xe7, 0x53, 0xfa, /* F..O..S. */ +0x9d, 0x51, 0x55, 0x8f, 0xfc, 0x84, 0xd8, 0x12, /* .QU..... */ +0xa4, 0x96, 0x1a, 0x3d, 0xcd, 0x3c, 0x14, 0x63, /* ...=.<.c */ +0x69, 0x90, 0x92, 0x1a, 0x9a, 0x4b, 0xab, 0xf1, /* i....K.. */ +0xad, 0xd5, 0x09, 0x68, 0x73, 0xa5, 0x22, 0x5f, /* ...hs."_ */ +0xff, 0xea, 0x1f, 0x05, 0xaf, 0xa1, 0x40, 0x06, /* ......@. */ +0xeb, 0xb7, 0xf2, 0xc4, 0xca, 0xb6, 0xf2, 0xad, /* ........ */ +0xa9, 0x7f, 0xd1, 0x23, 0xf1, 0xd1, 0x3f, 0x35, /* ...#..?5 */ +0x58, 0xf8, 0x29, 0x05, 0x0a, 0xee, 0x6d, 0x4b, /* X.)...mK */ +0x6a, 0xff, 0x55, 0xf5, 0x4c, 0xf5, 0x42, 0xf9, /* j.U.L.B. */ +0x77, 0x0b, 0x49, 0x25, 0x1a, 0xca, 0x2f, 0xfe, /* w.I%../. */ +0x7f, 0x90, 0xb3, 0xd6, 0xd3, 0x94, 0x1f, 0xe1, /* ........ */ +0x79, 0x75, 0x27, 0x2f, 0x7c, 0xbd, 0xf2, 0xf2, /* yu'/|... */ +0xf7, 0xcb, 0xc8, 0xf5, 0xdf, 0x7d, 0x72, 0xf2, /* .....}r. */ +0x75, 0xdf, 0x27, 0x2f, 0x23, 0xdf, 0x2f, 0x7d, /* u.'/#./} */ +0xf7, 0xc9, 0xdf, 0x2f, 0x23, 0xc9, 0xd7, 0x37, /* .../#..7 */ +0xea, 0x26, 0x47, 0x93, 0x95, 0x64, 0x74, 0x8b, /* .&G..dt. */ +0xca, 0x4d, 0xea, 0x59, 0x2f, 0x56, 0x4d, 0x93, /* .M.Y/VM. */ +0x6b, 0x6a, 0x2b, 0x12, 0x4b, 0xb5, 0xac, 0xab, /* kj+.K... */ +0x29, 0x0b, 0x12, 0x4b, 0xf4, 0xbd, 0xf2, 0xf7, /* )..K.... */ +0xdb, 0xcb, 0xcb, 0xc4, 0xfe, 0x93, 0xae, 0xb2, /* ........ */ +0xe1, 0x77, 0x37, 0x69, 0x09, 0xb2, 0x5d, 0xbb, /* .w7i..]. */ +0xbe, 0xba, 0xeb, 0xad, 0xdf, 0x52, 0x17, 0x89, /* .....R.. */ +0x97, 0xd4, 0xc8, 0x21, 0x81, 0x11, 0x55, 0x12, /* ...!..U. */ +0xeb, 0x97, 0xae, 0x6d, 0x7a, 0xc9, 0xbe, 0xdd, /* ...mz... */ +0x4b, 0xaa, 0xe5, 0xd4, 0xba, 0xb5, 0x95, 0x55, /* K......U */ +0xac, 0xa8, 0x8d, 0x15, 0x15, 0x22, 0x93, 0x7d, /* .....".} */ +0xa8, 0xac, 0xac, 0x40, 0xea, 0x9a, 0x25, 0xde, /* ...@..%. */ +0x42, 0x5b, 0x2a, 0x21, 0xc1, 0x51, 0x5f, 0xa7, /* B[*!.Q_. */ +0xfb, 0x0f, 0x8a, 0x5f, 0xff, 0x3f, 0xa5, 0x05, /* ..._.?.. */ +0x4b, 0x5a, 0x5d, 0xac, 0x75, 0xd7, 0xfd, 0x06, /* KZ].u... */ +0xbb, 0xc8, 0x63, 0xc7, 0x36, 0x44, 0xcb, 0x7f, /* ..c.6D.. */ +0xe7, 0xad, 0x4f, 0xcf, 0x5c, 0x46, 0x1e, 0x59, /* ..O.\F.Y */ +0x93, 0xf3, 0x9a, 0x4a, 0x4b, 0xd8, 0x69, 0x54, /* ...JK.iT */ +0xe3, 0xe2, 0xea, 0xeb, 0x47, 0xff, 0xfc, 0xcf, /* ....G... */ +0xce, 0xc1, 0x68, 0x91, 0xad, 0xb3, 0x34, 0xb7, /* ..h...4. */ +0xc8, 0x89, 0x00, 0x18, 0x2c, 0xba, 0x0f, 0xed, /* ....,... */ +0x8b, 0x95, 0x64, 0x56, 0x8a, 0xf7, 0x97, 0x93, /* ..dV.... */ +0x36, 0xeb, 0xd7, 0xff, 0x87, 0xc4, 0x68, 0xad, /* 6.....h. */ +0x6b, 0x5d, 0x4f, 0xeb, 0x90, 0x10, 0x8a, 0x45, /* k]O....E */ +0xff, 0xe7, 0x35, 0xcf, 0x04, 0x02, 0x52, 0x56, /* ..5...RV */ +0x92, 0x2c, 0xee, 0x59, 0x5d, 0x6d, 0x13, 0x2e, /* .,.Y]m.. */ +0x17, 0x97, 0x97, 0x93, 0x93, 0x93, 0x97, 0x97, /* ........ */ +0x97, 0x95, 0xef, 0x93, 0x93, 0x97, 0x93, 0x93, /* ........ */ +0xbe, 0x4e, 0x4e, 0x5e, 0xf9, 0x49, 0x93, 0x97, /* .NN^.I.. */ +0xb7, 0xbe, 0x5e, 0x5e, 0xf9, 0x56, 0x42, 0x64, /* ..^^.VBd */ +0x59, 0x39, 0x79, 0x49, 0xbe, 0x5e, 0x57, 0x97, /* Y9yI.^W. */ +0x95, 0x6d, 0x65, 0x90, 0xb8, 0xfb, 0x26, 0xd5, /* .me...&. */ +0xda, 0xbb, 0x57, 0x2f, 0x13, 0x2f, 0xa5, 0xed, /* ..W/./.. */ +0x65, 0x26, 0xdd, 0xca, 0xb6, 0xb6, 0xb2, 0xac, /* e&...... */ +0xab, 0x12, 0xbe, 0xae, 0xfb, 0x72, 0xe1, 0x77, /* .....r.w */ +0x2f, 0x64, 0xc9, 0xd7, 0x4f, 0x5b, 0xbe, 0xba, /* /d..O[.. */ +0xdd, 0x75, 0xb9, 0x7b, 0x21, 0x0f, 0x8c, 0x85, /* .u.{!... */ +0x64, 0xfa, 0xdc, 0xbc, 0xbb, 0x97, 0x15, 0xad, /* d....... */ +0xd3, 0xd6, 0xa5, 0x79, 0x3a, 0xd4, 0xba, 0x97, /* ...y:... */ +0x97, 0x51, 0x3a, 0xbd, 0xba, 0x9f, 0xb8, 0x2b, /* .Q:....+ */ +0x23, 0x44, 0xdb, 0x6c, 0xad, 0x17, 0xb2, 0x65, /* #D.l...e */ +0x42, 0x0d, 0xa9, 0x89, 0x4c, 0x9d, 0xa2, 0x0c, /* B...L... */ +0x05, 0x0e, 0x73, 0x53, 0xf8, 0x7a, 0x14, 0x29, /* ..sS.z.) */ +0x7d, 0x2f, 0xac, 0xf7, 0x0b, 0xcb, 0xfb, 0x0f, /* }/...... */ +0x9e, 0xf8, 0x84, 0x25, 0x52, 0x67, 0x1c, 0xcf, /* ...%Rg.. */ +0xfe, 0x82, 0xc2, 0x9e, 0x62, 0x6b, 0xc5, 0x65, /* ....bk.e */ +0xd4, 0x80, 0xd4, 0xad, 0xc9, 0xb8, 0x44, 0xf4, /* ......D. */ +0xf9, 0x9c, 0xf4, 0xb0, 0x57, 0xd1, 0x40, 0x62, /* ....W.@b */ +0x67, 0xa3, 0xf9, 0x58, 0xb9, 0x36, 0x8b, 0xcb, /* g..X.6.. */ +0xcb, 0xcb, 0xda, 0x97, 0xeb, 0xd6, 0x7e, 0x3d, /* ......~= */ +0x07, 0xc5, 0x34, 0x97, 0x3d, 0x7c, 0x56, 0xaa, /* ..4.=|V. */ +0x75, 0x61, 0x59, 0xb7, 0xa5, 0xff, 0xf9, 0xfe, /* uaY..... */ +0x08, 0x0f, 0xa5, 0x2f, 0x2f, 0x52, 0xde, 0x91, /* ...//R.. */ +0x79, 0x79, 0x79, 0x3b, 0xe4, 0xe5, 0xed, 0xe4, /* yyy;.... */ +0xe5, 0xe4, 0xe5, 0xef, 0x97, 0xbe, 0xf9, 0x7b, /* .......{ */ +0xe5, 0xef, 0x93, 0xbe, 0x55, 0xa7, 0xbe, 0x5e, /* ....U..^ */ +0xf9, 0x79, 0x7b, 0xe5, 0xe5, 0xed, 0x65, 0x79, /* .y{...ey */ +0x7b, 0x59, 0x5e, 0x5d, 0xde, 0xed, 0x55, 0x92 /* {Y^]..U. */ +}; + +/* Frame (315 bytes) */ +static const unsigned char pkt19[315] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x01, 0x2d, 0xdb, 0x48, 0x40, 0x00, 0x40, 0x11, /* .-.H@.@. */ +0xc5, 0x52, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* .R...... */ +0x0d, 0xc9, 0x4e, 0x20, 0x32, 0x02, 0x01, 0x19, /* ..N 2... */ +0x94, 0xf8, 0x80, 0xe3, 0x8c, 0xff, 0x06, 0x15, /* ........ */ +0x56, 0xd6, 0xf7, 0x53, 0xc4, 0x09, 0x7c, 0x45, /* V..S..|E */ +0x93, 0x92, 0xd5, 0xda, 0x2d, 0xab, 0xb5, 0x95, /* ....-... */ +0xe5, 0xef, 0x52, 0xbd, 0xbc, 0xbc, 0xbc, 0xff, /* ..R..... */ +0xa5, 0x26, 0xd6, 0xde, 0x5e, 0xf9, 0x54, 0x56, /* .&..^.TV */ +0x57, 0x77, 0xc8, 0xf7, 0xde, 0xed, 0xeb, 0xad, /* Ww...... */ +0xdf, 0x5d, 0x6e, 0xb9, 0x39, 0x16, 0x5d, 0xdf, /* .]n.9.]. */ +0x36, 0xed, 0x21, 0x34, 0xf5, 0xb9, 0xbd, 0x53, /* 6.!4...S */ +0xd7, 0x2b, 0xd6, 0xa5, 0xdb, 0x2f, 0x2e, 0xa5, /* .+.../.. */ +0xc5, 0xca, 0x4a, 0xb5, 0x53, 0xaa, 0xf7, 0xfd, /* ..J.S... */ +0xfc, 0x39, 0x06, 0x0a, 0xc1, 0xd5, 0x89, 0x57, /* .9.....W */ +0xd3, 0xf9, 0x4e, 0x5f, 0xf8, 0x4c, 0x82, 0x78, /* ..N_.L.x */ +0xbb, 0x2b, 0xe9, 0x8b, 0x43, 0x72, 0x9b, 0x44, /* .+..Cr.D */ +0xfe, 0x95, 0x5b, 0x64, 0x20, 0xef, 0x26, 0x59, /* ..[d .&Y */ +0x22, 0x01, 0x22, 0xd0, 0x70, 0x4e, 0x24, 0x1e, /* ".".pN$. */ +0x58, 0xdf, 0xff, 0xf4, 0x7c, 0xab, 0x29, 0x3f, /* X...|.)? */ +0xff, 0xc3, 0x41, 0xf1, 0x1c, 0x6b, 0x2e, 0xe0, /* ..A..k.. */ +0x9e, 0x3b, 0x72, 0x07, 0x82, 0x15, 0x99, 0xa1, /* .;r..... */ +0x97, 0x79, 0x09, 0x94, 0x98, 0x97, 0xa3, 0xb7, /* .y...... */ +0xca, 0xf2, 0xf2, 0xff, 0xcf, 0xff, 0x44, 0xc6, /* ......D. */ +0xa9, 0x15, 0xfb, 0x42, 0x1f, 0x09, 0x6f, 0xeb, /* ...B..o. */ +0xf0, 0xff, 0x04, 0x02, 0x5b, 0xe5, 0x8b, 0x93, /* ....[... */ +0x42, 0x2f, 0x5c, 0xbc, 0xbc, 0x47, 0xe9, 0x5e, /* B/\..G.^ */ +0x27, 0xd5, 0xbc, 0x84, 0xc4, 0xfa, 0x91, 0xe2, /* '....... */ +0x7d, 0x49, 0xca, 0x4c, 0x8b, 0x7c, 0x8f, 0x27, /* }I.L.|.' */ +0x7c, 0x9c, 0xfd, 0xe4, 0x26, 0xd6, 0xbb, 0xec, /* |...&... */ +0x99, 0x5e, 0xbb, 0xef, 0x93, 0x93, 0x97, 0xbe, /* .^...... */ +0x21, 0xef, 0x6f, 0x27, 0x23, 0xdf, 0x2e, 0xe5, /* !.o'#... */ +0xef, 0xb2, 0x5d, 0xf7, 0xbb, 0xef, 0x77, 0xc9, /* ..]...w. */ +0xb9, 0xff, 0x53, 0xcc, 0x4b, 0xbc, 0xdb, 0xf5, /* ..S.K... */ +0x93, 0x64, 0xdb, 0xd7, 0x4f, 0x5b, 0xbd, 0xcb, /* .d..O[.. */ +0xb9, 0x79, 0xbb, 0x57, 0x5b, 0xad, 0xdb, 0xdf, /* .y.W[... */ +0x5d, 0x6e, 0xf7, 0x7d, 0xf5, 0xba, 0xdc, 0xbb, /* ]n.}.... */ +0x93, 0x91, 0x69, 0x4b, 0xc4, 0xc8, 0x21, 0xf5, /* ..iK..!. */ +0x21, 0x0b, 0x80 /* !.. */ +}; + +/* Frame (214 bytes) */ +static const unsigned char pkt20[214] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0xc8, 0xdb, 0x4a, 0x40, 0x00, 0x40, 0x11, /* ...J@.@. */ +0xc5, 0xb5, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x22, 0x32, 0x00, 0x00, 0xb4, /* ..N"2... */ +0xee, 0xcf, 0x80, 0x88, 0xbc, 0xa3, 0x00, 0x8a, /* ........ */ +0x6e, 0xd4, 0x0b, 0x89, 0xfa, 0x94, 0xd5, 0xd5, /* n....... */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd4, 0xd5, 0xd4, 0xd4, /* ........ */ +0xd4, 0xd4, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0x55, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* U....... */ +0xd5, 0xd5, 0xd5, 0x55, 0x55, 0x55, 0xd5, 0xd5, /* ...UUU.. */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, /* ...UUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0xd5, 0x55, 0xd5, 0x55, 0x55, 0x55 /* .U.UUU */ +}; + +/* Frame (214 bytes) */ +static const unsigned char pkt21[214] = { +0xe4, 0x3a, 0x6e, 0x3e, 0xb9, 0xfd, 0xb4, 0x09, /* .:n>.... */ +0x31, 0x26, 0x20, 0x56, 0x08, 0x00, 0x45, 0x00, /* 1& V..E. */ +0x00, 0xc8, 0xdb, 0x4b, 0x40, 0x00, 0x40, 0x11, /* ...K@.@. */ +0xc5, 0xb4, 0xc0, 0xa8, 0x0a, 0x0b, 0xc0, 0xa8, /* ........ */ +0x0d, 0xc9, 0x4e, 0x22, 0x32, 0x00, 0x00, 0xb4, /* ..N"2... */ +0x70, 0x34, 0x80, 0x88, 0xbc, 0xa4, 0x00, 0x8a, /* p4...... */ +0x6f, 0x74, 0x0b, 0x89, 0xfa, 0x94, 0x55, 0x55, /* ot....UU */ +0x55, 0x55, 0x55, 0x55, 0xd5, 0xd5, 0x55, 0xd5, /* UUUU..U. */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* U.UUUUUU */ +0x55, 0x55, 0x55, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* UUU..... */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0x55, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* .U...... */ +0xd5, 0xd5, 0xd5, 0xd5, 0x55, 0xd5, 0xd5, 0xd5, /* ....U... */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, /* ........ */ +0xd5, 0xd5, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, /* ...UUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, /* UUUUUUUU */ +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5, 0xd5, /* UUUUUU.. */ +0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5 /* ...... */ +}; + diff --git a/test/main.cpp b/test/main.cpp index 2ab9d50..a7fdb26 100644 --- a/test/main.cpp +++ b/test/main.cpp @@ -1,354 +1,240 @@ -#include +#include +#include #include +#include +#include +#include #include "common.h" -#include "SVAC/svac_src/svac_dec.h" -#include "SVAC/svac_src/SM2_SM3.h" -#include "SVAC/sm2sm3/sm2.h" +#include "HuaWei/HWsign.h" +#include "data.h" +#include +#include +#include +using namespace std; +class UdpSocket{ + private: + int _sockfd; + public: + UdpSocket():_sockfd(-1){} + ~UdpSocket() + { + if(_sockfd != -1) + { + close(_sockfd); + } + } + bool Socket(){ + _sockfd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); + if(_sockfd < 0) + { + perror("socket error !"); + return false; + } + return true; + } + bool Bind(const string &ip,uint16_t port){ + struct sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr.s_addr = inet_addr(ip.c_str()); + socklen_t len = sizeof(struct sockaddr_in); + int ret; + ret = bind(_sockfd,(struct sockaddr*)&addr,len); + if(ret < 0) + { + perror("bind error !"); + return false; + } + return true; + } + + bool Send(char* data,const uint32_t &dlen, const string &ip,uint16_t port){ + struct sockaddr_in addr; + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr.s_addr = inet_addr(ip.c_str()); + socklen_t len = sizeof(struct sockaddr_in); + int ret; + ret = sendto(_sockfd,(void*)data,dlen,0,(struct sockaddr*) &addr,len); + if(ret < 0) + { + perror("sendto error"); + return false; + } + return true; + } + + bool Recv(string *buf, string *ip = NULL,uint16_t *port = NULL) + { + struct sockaddr_in addr; + socklen_t len = sizeof(struct sockaddr_in); + char temp [4096] = {0}; + int ret; + ret = recvfrom(_sockfd,temp,4096,0,(struct sockaddr *)&addr,&len); + if(ret < 0){ + perror ("recvfrom error !"); + return false; + } + if(ip != NULL) + { + *ip = inet_ntoa(addr.sin_addr); + } + if(port != NULL){ + *port = ntohs(addr.sin_port); + } + *buf = temp; + return true; + } + + bool Close() + { + if(_sockfd != -1) + { + close(_sockfd); + } + return true; + } +}; -int main(){ - uint8_t privi[]={ - 0x24,0x88,0xc8,0xdc,0x7f,0xd7,0xe0,0x91,0x30,0x1b,0x5c,0x58,0x2f,0xe7,0x44,0x7d, - 0x2f,0x43,0xe4,0xee,0xc8,0x7d,0xc0,0xfb,0xa4,0xb8,0x7d,0x4b,0x8a,0x69,0x7c,0x4e - }; - uint8_t pub[]={ - 0xaa,0xb1,0x3f,0xd7,0x66,0xe2,0x75,0x97,0xc0,0x03,0xe6,0xe4,0x1d,0x77,0x54,0x78, - 0xc8,0x29,0xb2,0x0b,0x9e,0xd1,0xff,0xa3,0x6a,0x6f,0xd2,0x7f,0xd6,0x2d,0xaa,0x3f, - 0xc9,0x24,0xec,0x6c,0x96,0x0a,0x7b,0x73,0xf6,0xe6,0xfc,0xda,0x3a,0x08,0xfd,0x92, - 0xfc,0x00,0x08,0x97,0x78,0x2c,0x71,0x6b,0xe1,0x26,0xf5,0x1e,0xba,0x31,0xf5,0xb2, - }; - char outdata[300]; - do_sm2_verify((char*)pub ,(char*)privi,sizeof(privi),outdata); - // u64 rt,data=0xFFF; - // rt=be64_to_cpu(data); - // printf("%ld\n",rt); - return 0; +void print_data(const char * buf, uint32_t len){ + printf("\n --%d-- \n",len); + for (int num = 0; num < 12; num++) + { + printf("%02X ", (uint8_t)buf[num]); + } + printf(", "); + for (int num = 12; num < 20; num++) + { + printf("%02X ", (uint8_t)buf[num]); + } + + printf("\n ---- \n"); +} + +void print_rtp(const char * buf, uint32_t len){ + uint8_t mask=0; + uint16_t seq=0; + uint32_t stamp=0; + mask=(uint8_t)*(buf+1)>>7; + memcpy(&seq, buf + 2, 2); + seq= ntohs(seq); + memcpy(&stamp, buf + 4, 4); + stamp= ntohl(stamp); + printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ modify @@@@@@@@@ seq %d stamp %d mask %d",seq,stamp,mask); + print_data(buf,len); +} + +// mask=*(pkt##x+offset+1)>>7; \ + // memcpy(&seq, pkt##x+offset + 2, 2); \ + // seq= ntohs(seq); \ + // memcpy(&stamp, pkt##x+offset + 4, 4); \ + // stamp= ntohl(stamp); \ + // printf("raw seq %d stamp %d mask %d",seq,stamp,mask); \ + // print_data((const char*)pkt##x+offset,sizeof(pkt##x)-offset); \ + +#define ARRAY(x,offset) { \ + id=(int *)malloc(sizeof(int)); \ + *id=x; \ + auto ret =HWSign_rtp_input(sign_handle,(const char*)pkt##x+offset,sizeof(pkt##x)-offset,0,(void*)id); \ } - - - - - - - - - -// #include "Decrypt.h" -// #include "Encrypt.h" - -// #define H264_TYPE(v) ((uint8_t)(v) & 0x1F) -// #define FRAME_SIZE 6 -// #define FRAME_LEN 10 -// const uint8_t rawframe[FRAME_SIZE][FRAME_LEN]={ -// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, -// {0x00,0x00,0x00,0x01,0x65,0x01,0x02,0x03,0x04,0x05}, -// {0x00,0x00,0x00,0x01,0x67,0x01,0x02,0x03,0x04,0x05}, -// {0x00,0x00,0x00,0x01,0x61,0xf1,0xf2,0xf3,0xf4,0xf5}, -// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, -// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, -// }; -// struct packet_t -// { -// uint8_t sid; -// uint8_t codecid; - -// int flags; -// int64_t pts; -// int64_t dts; -// uint8_t *data; -// size_t size; -// size_t capacity; - -// int vcl; // h.264/h.265 only -// }; -// struct pes_t -// { -// uint16_t pn; // TS program number(0-ps) -// uint16_t pid; // PES PID : 13 -// uint8_t sid; // PES stream_id : 8 -// uint8_t codecid; // PMT/PSM stream_type : 8 -// uint8_t cc; // continuity_counter : 4; -// uint8_t* esinfo; // es_info -// uint16_t esinfo_len;// es_info_length : 12 - -// uint32_t len; // PES_packet_length : 16; - -// uint32_t reserved10 : 2; -// uint32_t PES_scrambling_control : 2; -// uint32_t PES_priority : 1; -// uint32_t data_alignment_indicator : 1; -// uint32_t copyright : 1; -// uint32_t original_or_copy : 1; - -// uint32_t PTS_DTS_flags : 2; -// uint32_t ESCR_flag : 1; -// uint32_t ES_rate_flag : 1; -// uint32_t DSM_trick_mode_flag : 1; -// uint32_t additional_copy_info_flag : 1; -// uint32_t PES_CRC_flag : 1; -// uint32_t PES_extension_flag : 1; -// uint32_t PES_header_data_length : 8; - -// int64_t pts; -// int64_t dts; -// int64_t ESCR_base; -// uint32_t ESCR_extension; -// uint32_t ES_rate; - -// //uint8_t trick_mode; -// //uint32_t trick_mode_control : 3; -// //uint32_t field_id : 2; -// //uint32_t intra_slice_refresh : 1; -// //uint32_t frequency_truncation : 2; - -// //uint8_t additional_copy_info; -// //int16_t previous_PES_packet_CRC; - -// //uint32_t PES_private_data_flag : 1; -// //uint32_t pack_header_field_flag : 1; -// //uint32_t program_packet_sequence_counter_flag : 1; -// //uint32_t P_STD_buffer_flag : 1; -// //uint32_t reserved_ : 3; -// //uint32_t PES_extension_flag_2 : 1; -// //uint32_t PES_private_data_flag2 : 1; -// //uint8_t PES_private_data[128/8]; - -// //uint32_t pack_field_length : 8; - -// struct packet_t pkt; -// }; -// struct psm_t -// { -// uint32_t ver : 5; // version_number : 5; - -// struct pes_t streams[16]; -// size_t stream_count; -// }; -// typedef struct _avc_timing_hrd_descriptor_t -// { -// uint32_t hrd_management_valid_flag : 1; -// uint32_t picture_and_timing_info_present : 1; -// uint32_t _90kHZ_flag : 1; -// uint32_t fixed_frame_rate_flag : 1; -// uint32_t temporal_poc_flag : 1; -// uint32_t picture_to_display_conversion_flag : 1; -// uint32_t N; -// uint32_t K; -// uint32_t num_unit_in_tick; -// } avc_timing_hrd_descriptor_t; - -// size_t avc_timing_hrd_descriptor(const uint8_t* data, size_t bytes) -// { -// // 2.6.66 AVC timing and HRD descriptor(p112) -// size_t i; -// avc_timing_hrd_descriptor_t desc; -// // uint8_t descriptor_tag = data[0]; -// size_t descriptor_len = data[1]; -// assert(descriptor_len+2 <= bytes); - -// i = 2; -// memset(&desc, 0, sizeof(desc)); -// desc.hrd_management_valid_flag = (data[i] >> 7) & 0x01; -// desc.picture_and_timing_info_present = (data[i] >> 0) & 0x01; -// ++i; -// if(desc.picture_and_timing_info_present) -// { -// desc._90kHZ_flag = (data[i] >> 7) & 0x01; -// if(0 == desc._90kHZ_flag) -// { -// desc.N = (data[i+1] << 24) | (data[i+2] << 16) | (data[i+3] << 8) | data[i+4]; -// desc.K = (data[i+5] << 24) | (data[i+6] << 16) | (data[i+7] << 8) | data[i+8]; -// i += 8; -// } -// desc.num_unit_in_tick = (data[i+1] << 24) | (data[i+2] << 16) | (data[i+3] << 8) | data[i+4]; -// i += 5; -// } - -// desc.fixed_frame_rate_flag = (data[i] >> 7) & 0x01; -// desc.temporal_poc_flag = (data[i] >> 6) & 0x01; -// desc.picture_to_display_conversion_flag = (data[i] >> 5) & 0x01; - -// return descriptor_len+2; -// } - -// size_t mpeg_elment_descriptor(const uint8_t* data, size_t bytes) -// { -// uint8_t descriptor_tag = data[0]; -// uint8_t descriptor_len = data[1]; -// if ((size_t)descriptor_len + 2 > bytes) -// return bytes; -// size_t rt=0; -// rt=avc_timing_hrd_descriptor(data,bytes); -// printf("%d,%d,%d\n",descriptor_tag,descriptor_len,rt); -// return descriptor_len+2; -// } -// size_t psm_read(struct psm_t *psm, const uint8_t* data, size_t bytes) -// { -// size_t i, j, k; -// uint8_t current_next_indicator; -// uint8_t single_extension_stream_flag; -// uint16_t program_stream_map_length; -// uint16_t program_stream_info_length; -// uint16_t element_stream_map_length; -// uint16_t element_stream_info_length; - -// // Table 2-41 - Program stream map(p79) -// assert(0x00==data[0] && 0x00==data[1] && 0x01==data[2] && 0xBC==data[3]); -// program_stream_map_length = (data[4] << 8) | data[5]; -// if (program_stream_map_length < 3 || bytes < (size_t)program_stream_map_length + 6) -// return 0; // invalid data length - -// //assert((0x20 & data[6]) == 0x00); // 'xx0xxxxx' -// current_next_indicator = (data[6] >> 7) & 0x01; -// single_extension_stream_flag = (data[6] >> 6) & 0x01; -// psm->ver = data[6] & 0x1F; -// //assert(data[7] == 0x01); // '00000001' - -// // program stream descriptor -// program_stream_info_length = (data[8] << 8) | data[9]; -// if ((size_t)program_stream_info_length + 4 + 2 /*element_stream_map_length*/ > (size_t)program_stream_map_length) -// return 0; // TODO: error - -// // TODO: parse descriptor - -// // program element stream -// i = 10 + program_stream_info_length; -// element_stream_map_length = (data[i] << 8) | data[i+1]; -// /* Ignore es_map_length, trust psm_length */ -// element_stream_map_length = program_stream_map_length - program_stream_info_length - 10; - -// i += 2; -// psm->stream_count = 0; -// for(j = i; j + 4/*element_stream_info_length*/ <= i+element_stream_map_length && psm->stream_count < sizeof(psm->streams)/sizeof(psm->streams[0]); j += 4 + element_stream_info_length) -// { -// psm->streams[psm->stream_count].codecid = data[j]; -// psm->streams[psm->stream_count].sid = data[j+1]; -// psm->streams[psm->stream_count].pid = psm->streams[psm->stream_count].sid; // for ts PID -// element_stream_info_length = (data[j+2] << 8) | data[j+3]; -// if (j + 4 + element_stream_info_length > i+element_stream_map_length) -// return 0; // TODO: error - -// k = j + 4; -// if(0xFD == psm->streams[psm->stream_count].sid && 0 == single_extension_stream_flag) -// { -// if(element_stream_info_length < 3) -// return 0; // TODO: error -// // uint8_t pseudo_descriptor_tag = data[k]; -// // uint8_t pseudo_descriptor_length = data[k+1]; -// // uint8_t element_stream_id_extension = data[k+2] & 0x7F; -// assert((0x80 & data[k+2]) == 0x80); // '1xxxxxxx' -// k += 3; -// } - -// while(k + 2 <= j + 4 + element_stream_info_length) -// { -// // descriptor() -// k += mpeg_elment_descriptor(data+k, j + 4 + element_stream_info_length - k); -// } - -// ++psm->stream_count; -// assert(k - j - 4 == element_stream_info_length); -// } - -// // assert(j+4 == program_stream_map_length+6); -// // assert(0 == mpeg_crc32(0xffffffff, data, program_stream_map_length+6)); -// return program_stream_map_length+6; -// } -// int main(int argc, char *argv[]){ -// psm_t psm_obj; -// uint8_t data1[]={0x00,0x00,0x01,0xbc,0x00,0x1e,0xe1,0xff, -// 0x00,0x00,0x00,0x14,0x80,0xe0,0x00,0x0c,0x2a,0x0a,0x7f,0xff,0x00,0x00,0x05,0xdc, -// 0x1f,0xfe,0xf0,0x87,0x90,0xc0,0x00,0x00,0x00,0x00,0x00,0x00}; - -// size_t rt=0; -// rt=psm_read(&psm_obj,(const uint8_t*)&data1,sizeof(data1)); -// printf("%d\n",rt); -// } -// int main(int argc, char *argv[]){ -// dec_media dec_media_obj; -// dec_media_func_t dec_fun={ -// //alloc -// [](void* param, size_t bytes){ -// return (void*)malloc(sizeof(uint8_t)*bytes); -// }, -// //free -// [](void* param, void* packet){ -// free(packet); -// }, -// //write -// [](void* param, void* packet, size_t bytes,uint64_t timestamp,uint8_t frametype){ -// printf("\n"); -// printf("type: %d timestamp:%lld lens:%zd\n", frametype, timestamp, bytes); -// uint8_t * ptr=(uint8_t*)packet; -// for (size_t i = 0; i < bytes; i++) -// { -// printf("%02X ", *(ptr++)); -// } -// printf("\n"); -// printf("-----------Decrypted data----------------- "); -// } - -// }; +int main(){ + // EXPAND(DEFER(A)()); + void * sign_handle=nullptr; -// dec_media_obj=dec_media_create(&dec_fun,NULL); + auto udpsocket=new UdpSocket(); + udpsocket->Socket(); + // udpsocket.Send() + // [udpsocket](const char * rtp_ptr, const uint32_t rtp_len){ + // udpsocket->Send(rtp_ptr,rtp_len,string("192.168.123.1"),30000); + // // print_rtp(rtp_ptr,rtp_len); + // } + uint8_t mask; + uint16_t seq=0; + uint32_t stamp=0; + int* id; + int ret,count; + sign_handle=HWSign_init(); + + ARRAY(1,42) + ARRAY(2,42) + ARRAY(3,42) + ARRAY(4,42) + ARRAY(5,42) //I + ARRAY(6,42) + ARRAY(7,42) + ARRAY(8,42) + ARRAY(9,42) + ARRAY(10,42) + ARRAY(11,42) + ARRAY(12,42) + ARRAY(13,42) + ARRAY(14,42) + ARRAY(15,42) + ARRAY(16,42) + ARRAY(17,42) + ARRAY(18,42) + ARRAY(19,42) + ARRAY(20,42) + ARRAY(21,42) + + ARRAY(1,42) + ARRAY(2,42) + ARRAY(3,42) + ARRAY(4,42) + ARRAY(5,42) //I + ARRAY(6,42) + ARRAY(7,42) + ARRAY(8,42) + ARRAY(9,42) + ARRAY(10,42) + ARRAY(11,42) + ARRAY(12,42) + ARRAY(13,42) + ARRAY(14,42) + ARRAY(15,42) + ARRAY(16,42) + ARRAY(17,42) + ARRAY(18,42) + ARRAY(19,42) + ARRAY(20,42) + ARRAY(21,42) + + + + ret=1;count=0; + while (ret==1) + { + char buf_h[2048]; + uint32_t len; + int* id; + count++; + ret=HWSign_rtp_out(sign_handle,buf_h,&len,(void **)&id); + + if (ret==-1) break; + + udpsocket->Send((char*)buf_h,len,string("192.168.123.1"),30000); + + printf("%d %d %d\n",count,*id,len); + free(id); + // printf(" modify @@@@@@@@@ id %d seq %d stamp %d mask %d",id,seq,stamp,mask); + // print_data(buf_h,len); + // sleep(0.1); + /* code */ + } + + // printf("raw"); + // print_data((const char*)pkt2+42,sizeof(pkt2)-42); + // HWSign_rtp_input(sign_handle,(const char*)pkt2+42,sizeof(pkt2)-42,0); + + // printf("raw"); + // print_data((const char*)pkt3+42,sizeof(pkt3)-42); + // HWSign_rtp_input(sign_handle,(const char*)pkt3+42,sizeof(pkt3)-42,0); -// enc_media enc_media_obj; -// enc_media_func_t enc_fun; -// enc_fun={ -// //alloc -// [](void* param, size_t bytes){ -// return (void*)malloc(sizeof(uint8_t)*bytes); -// }, -// //free -// [](void* param, void* packet){ -// free(packet); -// }, -// //write -// [](void* param, void* packet, size_t bytes,uint64_t timestamp,uint8_t frametype){ -// printf("\n"); -// printf("type: %d timestamp:%lld lens:%zd\n", frametype, timestamp, bytes); -// uint8_t * ptr=(uint8_t*)packet; -// for (size_t i = 0; i < bytes; i++) -// { -// printf("%02X ", *(ptr++)); -// } -// printf("\n"); -// int ret=dec_security_SEI((uint8_t*)packet,bytes,4,0); -// if (ret>0) -// { -// printf("\nSecurity level: %d\n",ret); -// } - -// printf("############Encrypted data############ "); -// dec_media_decoded((dec_media) param,(uint8_t*)packet,bytes,timestamp,frametype,4); -// } - -// }; - -// enc_media_obj=enc_media_create(&enc_fun,(void*)dec_media_obj); - -// uint32_t timestamp=0; -// for (size_t i = 0; i < FRAME_SIZE; i++) -// { -// uint8_t * ptr=(uint8_t*)rawframe[i]; -// printf("\n"); -// printf("type: %d timestamp:%d lens:%d\n", H264_TYPE(*(rawframe[i]+4)), timestamp, FRAME_LEN); -// for (size_t i = 0; i < FRAME_LEN; i++) -// { -// printf("%02X ", *(ptr++)); -// } -// printf("\n"); -// printf("//////////////////Raw data//////////////////// "); -// enc_media_decoded(enc_media_obj,(uint8_t*)rawframe[i],FRAME_LEN,timestamp,H264_TYPE(*(rawframe[i]+4)),4); -// timestamp+=100; -// } - -// dec_media_release(dec_media_obj); -// enc_media_release(enc_media_obj); -// return 0; -// } \ No newline at end of file + HWSign_release(sign_handle); +} \ No newline at end of file diff --git a/test/main.cppbak b/test/main.cppbak new file mode 100644 index 0000000..7d74b33 --- /dev/null +++ b/test/main.cppbak @@ -0,0 +1,506 @@ +#include +#include +#include +#include "common.h" +#include "SVAC/src/svac_src/svac_dec.h" +#include "SVAC/src/svac_src/SM2_SM3.h" +#include "SVAC/src/sm2sm3/sm2.h" +#include "DecEnc/NALUdecode.h" +#include "DecEnc/base64.h" + + + +// int main(){ + +// uint8_t data[sizeof(Hi_Dec_Des_t)]; +// Hi_Dec_Des_t * set=(Hi_Dec_Des_t *)data; +// memset(data,0x00,sizeof(Hi_Dec_Des_t)); +// set->data.def_version[0]=0x00; +// set->data.def_version[1]=0x01; +// set->data.packed_type=(uint8_t)Hi_Packed_type_e::SINGLE; +// set->data.encrypt_arithmetic=0x01; +// sizeof(Hi_Sec_t); +// sizeof(Hi_Enc_t); +// sizeof(Hi_Sec_Enc_t); +// sizeof(Hi_Sec_Enc_Sign_t); +// return 0; +// } + struct SM2Config{ + char prikey_size; + char pubkey_size; + uint8_t prikey[64]; + uint8_t pubkey[128]; + }; +SecMedia::NALUdecodeInfo set_enc_config(){ + //生成安全参数集 + uint8_t camera_id[21] = "34020000001320000004"; + //uint8_t evek[128] = {1}; //加密秘钥的秘钥 + uint8_t vkek[128] ={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x00}; + uint8_t evektmp2[128] = {0}; + uint8_t vkek_version[32] = "2021-07-06T17:27:19.000"; + uint8_t iv[64] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x00}; + uint8_t camera_idc[20] = {4,1,2,3,4,5,6,7,8,9}; + int eveki = 0; + + SecMedia::NALUdecodeInfo nalu; + nalu.Flag.encryption_flag = 0; + nalu.Flag.authnetication_flag = 1; + nalu.Flag.vek_flag = 1; + nalu.Flag.iv_flag = 1; + nalu.Flag.hash_discard_p_picture = 1; + nalu.Flag.reserved_flag = 0b001; + + nalu.Type.signature_type = (uint8_t) SecMedia::DecryptType::SM2_auth; + nalu.Type.hash_type =(uint8_t) SecMedia::DecryptType::SM3; + nalu.Type.encryption_type =(uint8_t) SecMedia::DecryptType::AES; + nalu.Type.vek_encryption_type = (uint8_t) SecMedia::DecryptType::SM4; + memset(nalu.camera_id,0,sizeof(nalu.camera_id)); + memcpy(nalu.camera_id, camera_id, 20); + /// <变为加密数据集> + /// /////////////////////////////////// + /// + nalu.evek_length_minus1 = 31; // @@在加密复用中:为vkek密钥长度 + memcpy(nalu.evek, vkek, 128); // @@在加密复用中:为vkek密钥 + + nalu.vkek_version_length_minus1 = 31; //@@在加密复用中:为视频密钥长度 + //////////////////////////////////////////// + memcpy(nalu.vkek_version, vkek_version, 32); + + nalu.iv_length_minus1 = 31; + memcpy(nalu.iv, iv, 64); + nalu.successive_hash_pictures_minus1 = 25; + memcpy(nalu.camera_idc, camera_idc, 20); + nalu.end_flag = 0x80; + + return nalu; +} + +SM2Config set_auth(){ + SM2Config sm2fig={ + 32, + 64, + { + 0x24,0x88,0xc8,0xdc,0x7f,0xd7,0xe0,0x91,0x30,0x1b,0x5c,0x58,0x2f,0xe7,0x44,0x7d, + 0x2f,0x43,0xe4,0xee,0xc8,0x7d,0xc0,0xfb,0xa4,0xb8,0x7d,0x4b,0x8a,0x69,0x7c,0x4e + }, + { + 0xaa,0xb1,0x3f,0xd7,0x66,0xe2,0x75,0x97,0xc0,0x03,0xe6,0xe4,0x1d,0x77,0x54,0x78, + 0xc8,0x29,0xb2,0x0b,0x9e,0xd1,0xff,0xa3,0x6a,0x6f,0xd2,0x7f,0xd6,0x2d,0xaa,0x3f, + 0xc9,0x24,0xec,0x6c,0x96,0x0a,0x7b,0x73,0xf6,0xe6,0xfc,0xda,0x3a,0x08,0xfd,0x92, + 0xfc,0x00,0x08,0x97,0x78,0x2c,0x71,0x6b,0xe1,0x26,0xf5,0x1e,0xba,0x31,0xf5,0xb2, + } + }; + return sm2fig; +} + +int base64Turl(const char* indata,int in_len,char * out){ + + char tmp,*p=out; + for (int i = 0; i < in_len; i++) + { + tmp=indata[i]; + if (tmp=='+') + { + *out++='%'; + *out++='2'; + *out++='B'; + }else if (tmp=='/') + { + *out++='%'; + *out++='2'; + *out++='F'; + }else + { + *out++ = tmp; + } + } + return out-p; +} + +#define ENCODE_SIZE sizeof(SecMedia::NALUdecodeInfo)*10 +int gen_sec_set_bases64_url(){ + auto retsrc=set_enc_config(); + uint8_t* sec=(uint8_t *)&retsrc; + char encoded[ENCODE_SIZE],encoded_url[ENCODE_SIZE]; + uint8_t dec[ sizeof(SecMedia::NALUdecodeInfo)]; + memset(encoded,0x00,ENCODE_SIZE); + memset(encoded_url,0x00,ENCODE_SIZE); + memset(dec,0x00,ENCODE_SIZE); + auto ret=av_base64_encode(encoded,ENCODE_SIZE,sec,sizeof(SecMedia::NALUdecodeInfo)); + if (!ret) + { + return -1; + } + + + + // printf("\n"); + // // printf("%s\n",encoded); + // printf("\n"); + + base64Turl(encoded,strlen(encoded),encoded_url); + // printf("%s\n",encoded_url); + printf("\n"); +// ////test +// int len=av_base64_decode(dec,encoded,sizeof(dec)); +// // printf("\n"); +// printf("%d",memcmp(sec,dec,sizeof(SecMedia::NALUdecodeInfo))); + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // http://127.0.0.1/index/api/SetAuthHashCig?deviceID=(cameraID)&KeyVersion=123&DecryptType=2&ConfigData=base64(Authinfo) + char auth[ENCODE_SIZE],auth_base[ENCODE_SIZE]; + auto auth_s=set_auth(); + memset(auth,0x00,ENCODE_SIZE); + memset(auth_base,0x00,ENCODE_SIZE); + auto ret_auth=av_base64_encode(auth_base,ENCODE_SIZE,(uint8_t *)&auth_s,sizeof(SM2Config)); + if (!ret_auth) + { + return -1; + } + base64Turl(auth_base,strlen(auth_base),auth); + char auth_url[]="http://127.0.0.1%s/index/api/SetAuthHashCig?deviceID=%s&KeyVersion=%s&DecryptType=%d&ConfigData=%s"; + //printf("%s",auth); + uint8_t camera_id[21] = "34020000001320000003"; + memset(camera_id,0,sizeof(camera_id)); + memcpy(camera_id, retsrc.camera_id, 20); + printf(auth_url,":4080",camera_id,retsrc.vkek_version,retsrc.Type.signature_type, auth); + +printf("\n\n\n"); + + char enc_url[]="http://127.0.0.1%s/index/api/SetEncryptConfig?StreamId=%s&ConfigData=%s"; + + printf(enc_url,":4080","rtp_encoded/100001003",encoded_url); + + printf("\n"); + + +} + +int main(){ + + +} + + + + + + + + + + +// #include "Decrypt.h" +// #include "Encrypt.h" + +// #define H264_TYPE(v) ((uint8_t)(v) & 0x1F) +// #define FRAME_SIZE 6 +// #define FRAME_LEN 10 +// const uint8_t rawframe[FRAME_SIZE][FRAME_LEN]={ +// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, +// {0x00,0x00,0x00,0x01,0x65,0x01,0x02,0x03,0x04,0x05}, +// {0x00,0x00,0x00,0x01,0x67,0x01,0x02,0x03,0x04,0x05}, +// {0x00,0x00,0x00,0x01,0x61,0xf1,0xf2,0xf3,0xf4,0xf5}, +// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, +// {0x00,0x00,0x00,0x01,0x61,0x01,0x02,0x03,0x04,0x05}, +// }; +// struct packet_t +// { +// uint8_t sid; +// uint8_t codecid; + +// int flags; +// int64_t pts; +// int64_t dts; +// uint8_t *data; +// size_t size; +// size_t capacity; + +// int vcl; // h.264/h.265 only +// }; +// struct pes_t +// { +// uint16_t pn; // TS program number(0-ps) +// uint16_t pid; // PES PID : 13 +// uint8_t sid; // PES stream_id : 8 +// uint8_t codecid; // PMT/PSM stream_type : 8 +// uint8_t cc; // continuity_counter : 4; +// uint8_t* esinfo; // es_info +// uint16_t esinfo_len;// es_info_length : 12 + +// uint32_t len; // PES_packet_length : 16; + +// uint32_t reserved10 : 2; +// uint32_t PES_scrambling_control : 2; +// uint32_t PES_priority : 1; +// uint32_t data_alignment_indicator : 1; +// uint32_t copyright : 1; +// uint32_t original_or_copy : 1; + +// uint32_t PTS_DTS_flags : 2; +// uint32_t ESCR_flag : 1; +// uint32_t ES_rate_flag : 1; +// uint32_t DSM_trick_mode_flag : 1; +// uint32_t additional_copy_info_flag : 1; +// uint32_t PES_CRC_flag : 1; +// uint32_t PES_extension_flag : 1; +// uint32_t PES_header_data_length : 8; + +// int64_t pts; +// int64_t dts; +// int64_t ESCR_base; +// uint32_t ESCR_extension; +// uint32_t ES_rate; + +// //uint8_t trick_mode; +// //uint32_t trick_mode_control : 3; +// //uint32_t field_id : 2; +// //uint32_t intra_slice_refresh : 1; +// //uint32_t frequency_truncation : 2; + +// //uint8_t additional_copy_info; +// //int16_t previous_PES_packet_CRC; + +// //uint32_t PES_private_data_flag : 1; +// //uint32_t pack_header_field_flag : 1; +// //uint32_t program_packet_sequence_counter_flag : 1; +// //uint32_t P_STD_buffer_flag : 1; +// //uint32_t reserved_ : 3; +// //uint32_t PES_extension_flag_2 : 1; +// //uint32_t PES_private_data_flag2 : 1; +// //uint8_t PES_private_data[128/8]; + +// //uint32_t pack_field_length : 8; + +// struct packet_t pkt; +// }; +// struct psm_t +// { +// uint32_t ver : 5; // version_number : 5; + +// struct pes_t streams[16]; +// size_t stream_count; +// }; +// typedef struct _avc_timing_hrd_descriptor_t +// { +// uint32_t hrd_management_valid_flag : 1; +// uint32_t picture_and_timing_info_present : 1; +// uint32_t _90kHZ_flag : 1; +// uint32_t fixed_frame_rate_flag : 1; +// uint32_t temporal_poc_flag : 1; +// uint32_t picture_to_display_conversion_flag : 1; +// uint32_t N; +// uint32_t K; +// uint32_t num_unit_in_tick; +// } avc_timing_hrd_descriptor_t; + +// size_t avc_timing_hrd_descriptor(const uint8_t* data, size_t bytes) +// { +// // 2.6.66 AVC timing and HRD descriptor(p112) +// size_t i; +// avc_timing_hrd_descriptor_t desc; +// // uint8_t descriptor_tag = data[0]; +// size_t descriptor_len = data[1]; +// assert(descriptor_len+2 <= bytes); + +// i = 2; +// memset(&desc, 0, sizeof(desc)); +// desc.hrd_management_valid_flag = (data[i] >> 7) & 0x01; +// desc.picture_and_timing_info_present = (data[i] >> 0) & 0x01; +// ++i; +// if(desc.picture_and_timing_info_present) +// { +// desc._90kHZ_flag = (data[i] >> 7) & 0x01; +// if(0 == desc._90kHZ_flag) +// { +// desc.N = (data[i+1] << 24) | (data[i+2] << 16) | (data[i+3] << 8) | data[i+4]; +// desc.K = (data[i+5] << 24) | (data[i+6] << 16) | (data[i+7] << 8) | data[i+8]; +// i += 8; +// } +// desc.num_unit_in_tick = (data[i+1] << 24) | (data[i+2] << 16) | (data[i+3] << 8) | data[i+4]; +// i += 5; +// } + +// desc.fixed_frame_rate_flag = (data[i] >> 7) & 0x01; +// desc.temporal_poc_flag = (data[i] >> 6) & 0x01; +// desc.picture_to_display_conversion_flag = (data[i] >> 5) & 0x01; + +// return descriptor_len+2; +// } + +// size_t mpeg_elment_descriptor(const uint8_t* data, size_t bytes) +// { +// uint8_t descriptor_tag = data[0]; +// uint8_t descriptor_len = data[1]; +// if ((size_t)descriptor_len + 2 > bytes) +// return bytes; +// size_t rt=0; +// rt=avc_timing_hrd_descriptor(data,bytes); +// printf("%d,%d,%d\n",descriptor_tag,descriptor_len,rt); +// return descriptor_len+2; +// } +// size_t psm_read(struct psm_t *psm, const uint8_t* data, size_t bytes) +// { +// size_t i, j, k; +// uint8_t current_next_indicator; +// uint8_t single_extension_stream_flag; +// uint16_t program_stream_map_length; +// uint16_t program_stream_info_length; +// uint16_t element_stream_map_length; +// uint16_t element_stream_info_length; + +// // Table 2-41 - Program stream map(p79) +// assert(0x00==data[0] && 0x00==data[1] && 0x01==data[2] && 0xBC==data[3]); +// program_stream_map_length = (data[4] << 8) | data[5]; +// if (program_stream_map_length < 3 || bytes < (size_t)program_stream_map_length + 6) +// return 0; // invalid data length + +// //assert((0x20 & data[6]) == 0x00); // 'xx0xxxxx' +// current_next_indicator = (data[6] >> 7) & 0x01; +// single_extension_stream_flag = (data[6] >> 6) & 0x01; +// psm->ver = data[6] & 0x1F; +// //assert(data[7] == 0x01); // '00000001' + +// // program stream descriptor +// program_stream_info_length = (data[8] << 8) | data[9]; +// if ((size_t)program_stream_info_length + 4 + 2 /*element_stream_map_length*/ > (size_t)program_stream_map_length) +// return 0; // TODO: error + +// // TODO: parse descriptor + +// // program element stream +// i = 10 + program_stream_info_length; +// element_stream_map_length = (data[i] << 8) | data[i+1]; +// /* Ignore es_map_length, trust psm_length */ +// element_stream_map_length = program_stream_map_length - program_stream_info_length - 10; + +// i += 2; +// psm->stream_count = 0; +// for(j = i; j + 4/*element_stream_info_length*/ <= i+element_stream_map_length && psm->stream_count < sizeof(psm->streams)/sizeof(psm->streams[0]); j += 4 + element_stream_info_length) +// { +// psm->streams[psm->stream_count].codecid = data[j]; +// psm->streams[psm->stream_count].sid = data[j+1]; +// psm->streams[psm->stream_count].pid = psm->streams[psm->stream_count].sid; // for ts PID +// element_stream_info_length = (data[j+2] << 8) | data[j+3]; +// if (j + 4 + element_stream_info_length > i+element_stream_map_length) +// return 0; // TODO: error + +// k = j + 4; +// if(0xFD == psm->streams[psm->stream_count].sid && 0 == single_extension_stream_flag) +// { +// if(element_stream_info_length < 3) +// return 0; // TODO: error +// // uint8_t pseudo_descriptor_tag = data[k]; +// // uint8_t pseudo_descriptor_length = data[k+1]; +// // uint8_t element_stream_id_extension = data[k+2] & 0x7F; +// assert((0x80 & data[k+2]) == 0x80); // '1xxxxxxx' +// k += 3; +// } + +// while(k + 2 <= j + 4 + element_stream_info_length) +// { +// // descriptor() +// k += mpeg_elment_descriptor(data+k, j + 4 + element_stream_info_length - k); +// } + +// ++psm->stream_count; +// assert(k - j - 4 == element_stream_info_length); +// } + +// // assert(j+4 == program_stream_map_length+6); +// // assert(0 == mpeg_crc32(0xffffffff, data, program_stream_map_length+6)); +// return program_stream_map_length+6; +// } +// int main(int argc, char *argv[]){ +// psm_t psm_obj; +// uint8_t data1[]={0x00,0x00,0x01,0xbc,0x00,0x1e,0xe1,0xff, +// 0x00,0x00,0x00,0x14,0x80,0xe0,0x00,0x0c,0x2a,0x0a,0x7f,0xff,0x00,0x00,0x05,0xdc, +// 0x1f,0xfe,0xf0,0x87,0x90,0xc0,0x00,0x00,0x00,0x00,0x00,0x00}; + +// size_t rt=0; +// rt=psm_read(&psm_obj,(const uint8_t*)&data1,sizeof(data1)); +// printf("%d\n",rt); +// } +// int main(int argc, char *argv[]){ +// dec_media dec_media_obj; +// dec_media_func_t dec_fun={ +// //alloc +// [](void* param, size_t bytes){ +// return (void*)malloc(sizeof(uint8_t)*bytes); +// }, +// //free +// [](void* param, void* packet){ +// free(packet); +// }, +// //write +// [](void* param, void* packet, size_t bytes,uint64_t timestamp,uint8_t frametype){ +// printf("\n"); +// printf("type: %d timestamp:%lld lens:%zd\n", frametype, timestamp, bytes); +// uint8_t * ptr=(uint8_t*)packet; +// for (size_t i = 0; i < bytes; i++) +// { +// printf("%02X ", *(ptr++)); +// } +// printf("\n"); +// printf("-----------Decrypted data----------------- "); +// } + +// }; + +// dec_media_obj=dec_media_create(&dec_fun,NULL); + + +// enc_media enc_media_obj; +// enc_media_func_t enc_fun; +// enc_fun={ +// //alloc +// [](void* param, size_t bytes){ +// return (void*)malloc(sizeof(uint8_t)*bytes); +// }, +// //free +// [](void* param, void* packet){ +// free(packet); +// }, +// //write +// [](void* param, void* packet, size_t bytes,uint64_t timestamp,uint8_t frametype){ +// printf("\n"); +// printf("type: %d timestamp:%lld lens:%zd\n", frametype, timestamp, bytes); +// uint8_t * ptr=(uint8_t*)packet; +// for (size_t i = 0; i < bytes; i++) +// { +// printf("%02X ", *(ptr++)); +// } +// printf("\n"); +// int ret=dec_security_SEI((uint8_t*)packet,bytes,4,0); +// if (ret>0) +// { +// printf("\nSecurity level: %d\n",ret); +// } + +// printf("############Encrypted data############ "); +// dec_media_decoded((dec_media) param,(uint8_t*)packet,bytes,timestamp,frametype,4); +// } + +// }; + +// enc_media_obj=enc_media_create(&enc_fun,(void*)dec_media_obj); + +// uint32_t timestamp=0; +// for (size_t i = 0; i < FRAME_SIZE; i++) +// { +// uint8_t * ptr=(uint8_t*)rawframe[i]; +// printf("\n"); +// printf("type: %d timestamp:%d lens:%d\n", H264_TYPE(*(rawframe[i]+4)), timestamp, FRAME_LEN); +// for (size_t i = 0; i < FRAME_LEN; i++) +// { +// printf("%02X ", *(ptr++)); +// } +// printf("\n"); +// printf("//////////////////Raw data//////////////////// "); +// enc_media_decoded(enc_media_obj,(uint8_t*)rawframe[i],FRAME_LEN,timestamp,H264_TYPE(*(rawframe[i]+4)),4); +// timestamp+=100; +// } + +// dec_media_release(dec_media_obj); +// enc_media_release(enc_media_obj); +// return 0; +// } \ No newline at end of file