1 /**
2  * Copyright © 2019 IBM Corporation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #include "elog_entry.hpp"
17 #include "extensions/openpower-pels/pel.hpp"
18 #include "pel_utils.hpp"
19 
20 #include <filesystem>
21 #include <fstream>
22 
23 #include <gtest/gtest.h>
24 
25 namespace fs = std::filesystem;
26 using namespace openpower::pels;
27 
28 class PELTest : public CleanLogID
29 {};
30 
31 // A PEL from a real system
32 const std::vector<uint8_t> realPELData{
33     0x50, 0x48, 0x0,  0x30, 0x1,  0x0,  0xA8, 0x0,  0x20, 0x19, 0x6,  0x14,
34     0x12, 0x0,  0x41, 0x51, 0x20, 0x19, 0x6,  0x14, 0x12, 0x0,  0x41, 0x56,
35     0x45, 0x0,  0x1,  0x14, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
36     0x0,  0x0,  0x0,  0x0,  0x50, 0x1,  0xF,  0xA5, 0x50, 0x1,  0xF,  0xA5,
37     0x55, 0x48, 0x0,  0x18, 0x1,  0x0,  0xF1, 0x0,  0x81, 0x3,  0x0,  0x1,
38     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x60, 0x0,  0x0,  0x1,  0x44, 0x0,
39     0x50, 0x53, 0x0,  0x74, 0x1,  0x1,  0xA8, 0x0,  0x2,  0x1,  0x0,  0x9,
40     0x0,  0x0,  0x0,  0x6C, 0x3,  0x1,  0x0,  0xF0, 0x2C, 0xC6, 0x1B, 0x10,
41     0xC1, 0x39, 0x20, 0x0,  0x40, 0x0,  0x0,  0xFF, 0x10, 0x69, 0x14, 0xD8,
42     0x0,  0x0,  0x0,  0x1,  0x0,  0x0,  0x0,  0x3,  0x0,  0x0,  0x0,  0x0,
43     0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x20, 0x20, 0x20, 0x20,
44     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
45     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xC0, 0x0,  0x0,  0x9,
46     0x10, 0x28, 0x48, 0x0,  0x49, 0x44, 0xC,  0x42, 0x46, 0x53, 0x50, 0x53,
47     0x50, 0x30, 0x34, 0x0,  0x10, 0x28, 0x4C, 0x0,  0x49, 0x44, 0xC,  0x42,
48     0x46, 0x53, 0x50, 0x53, 0x50, 0x30, 0x36, 0x0,  0x45, 0x48, 0x0,  0x60,
49     0x1,  0x0,  0x31, 0x0,  0x38, 0x34, 0x30, 0x38, 0x2D, 0x45, 0x38, 0x45,
50     0x31, 0x30, 0x36, 0x37, 0x41, 0x44, 0x56, 0x0,  0x0,  0x0,  0x0,  0x0,
51     0x54, 0x56, 0x38, 0x36, 0x30, 0x5F, 0x32, 0x30, 0x37, 0x0,  0x0,  0x0,
52     0x0,  0x0,  0x0,  0x0,  0x62, 0x30, 0x36, 0x31, 0x33, 0x61, 0x5F, 0x31,
53     0x39, 0x32, 0x34, 0x2E, 0x38, 0x36, 0x31, 0x0,  0x0,  0x0,  0x0,  0x0,
54     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x14,
55     0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x5F, 0x32, 0x43, 0x43,
56     0x36, 0x31, 0x42, 0x31, 0x30, 0x0,  0x0,  0x0,  0x55, 0x44, 0x0,  0x9C,
57     0x2,  0x4,  0x31, 0x0,  0x0,  0x0,  0xB,  0x53, 0x2F, 0x6F, 0x70, 0x74,
58     0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x66, 0x77,
59     0x64, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x0,  0x0,  0x0,  0x0,
60     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
61     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
62     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
63     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
64     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x66, 0x69, 0x70, 0x73,
65     0x38, 0x36, 0x31, 0x2F, 0x62, 0x30, 0x36, 0x31, 0x33, 0x61, 0x5F, 0x31,
66     0x39, 0x32, 0x34, 0x2E, 0x38, 0x36, 0x31, 0x0,  0x0,  0x0,  0x0,  0x0,
67     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0x0,  0x0,  0x0,  0x2,
68     0x50, 0x0,  0x0,  0x2,  0x20, 0x0,  0x1,  0xC,  0x0,  0x0,  0x0,  0x9,
69     0x0,  0x4,  0x70, 0xD0, 0x0,  0x0,  0x0,  0x0,  0x4D, 0x54, 0x0,  0x1C,
70     0x1,  0x0,  0x31, 0x0,  0x38, 0x34, 0x30, 0x38, 0x2D, 0x45, 0x38, 0x45,
71     0x31, 0x30, 0x36, 0x37, 0x41, 0x44, 0x56, 0x0,  0x0,  0x0,  0x0,  0x0,
72     0x55, 0x44, 0x1,  0xF8, 0x1,  0xC,  0x31, 0x0,  0x1,  0x28, 0x4,  0x42,
73     0x46, 0x57, 0x44, 0x42, 0x45, 0x52, 0x52, 0x0,  0x0,  0x0,  0x0,  0x0,
74     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xF0, 0x0,  0x0,  0x0,  0x0,
75     0x0,  0x0,  0x1,  0xF0, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x7,
76     0x0,  0x0,  0x5,  0x1C, 0x2D, 0x86, 0x75, 0xD0, 0x0,  0x0,  0xC,  0x9B,
77     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
78     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
79     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
80     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A,
81     0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xE,  0xE3, 0x0,  0x0,  0x0,  0x0,
82     0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x33, 0x1F, 0xEA, 0xE7, 0x12,
83     0x0,  0x0,  0xD,  0x9D, 0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
84     0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
85     0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42,
86     0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,
87     0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0xA,
88     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x38,
89     0x26, 0x43, 0xFB, 0x66, 0x0,  0x0,  0xB,  0x7D, 0x0,  0x30, 0x43, 0x4F,
90     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
91     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
92     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
93     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
94     0x50, 0x1,  0xF,  0xE,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
95     0x0,  0x0,  0x5,  0x72, 0x13, 0xB8, 0x3D, 0x1C, 0x0,  0x0,  0x23, 0x33,
96     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
97     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
98     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
99     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A,
100     0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0x5D, 0x0,  0x0,  0x0,  0x0,
101     0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x88, 0x20, 0xE1, 0xE0, 0x7,
102     0x0,  0x0,  0xD,  0x82, 0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
103     0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
104     0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42,
105     0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,
106     0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0x9B,
107     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x89,
108     0x12, 0xE,  0xFE, 0x6E, 0x0,  0x0,  0xB,  0x69, 0x0,  0x30, 0x43, 0x4F,
109     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
110     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
111     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
112     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
113     0x50, 0x1,  0xF,  0xA4, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
114     0x55, 0x44, 0x0,  0x40, 0x1,  0x1,  0xA8, 0x0,  0x6E, 0x6F, 0x20, 0x73,
115     0x75, 0x63, 0x68, 0x20, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63,
116     0x62, 0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F,
117     0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61,
118     0x74, 0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76,
119     0x69, 0x65, 0x77, 0x0,  0x55, 0x44, 0x1,  0xE8, 0x1,  0xC,  0x31, 0x0,
120     0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42, 0x53, 0x52, 0x56, 0x0,
121     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE0,
122     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE0, 0x0,  0x0,  0x0,  0x0,
123     0x0,  0x0,  0x0,  0xB,  0x0,  0x0,  0x5,  0x89, 0x11, 0x9B, 0xBA, 0x9,
124     0x0,  0x0,  0x23, 0x88, 0x0,  0x18, 0x43, 0x4F, 0x80, 0x10, 0xFA, 0x28,
125     0x0,  0x0,  0xC,  0xFD, 0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
126     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0xDB, 0xFB, 0xCB, 0x98,
127     0x0,  0x1,  0xD4, 0xC0, 0x0,  0x0,  0x0,  0x34, 0x0,  0x0,  0x5,  0x89,
128     0x12, 0x4,  0x1A, 0xF1, 0x0,  0x0,  0x23, 0x88, 0x0,  0x18, 0x43, 0x4F,
129     0xCB, 0x1C, 0xBA, 0x66, 0x0,  0x0,  0x1F, 0x6D, 0x63, 0x68, 0x61, 0x6E,
130     0x67, 0x65, 0x55, 0x73, 0x65, 0x43, 0x6E, 0x74, 0x0,  0x0,  0x0,  0x0,
131     0x0,  0x0,  0x0,  0xC,  0xDB, 0xFB, 0xCB, 0x98, 0x0,  0x0,  0x0,  0x34,
132     0x0,  0x0,  0x5,  0x89, 0x12, 0x36, 0x78, 0xA9, 0x0,  0x0,  0x23, 0x88,
133     0x0,  0x0,  0x43, 0x4F, 0xCB, 0x12, 0xB6, 0x5D, 0x0,  0x0,  0x9,  0xF2,
134     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x12, 0x36, 0xB8, 0x93,
135     0x0,  0x0,  0x23, 0x88, 0x0,  0x10, 0x43, 0x4F, 0x89, 0x7D, 0x0,  0x8C,
136     0x0,  0x0,  0x23, 0x5D, 0x73, 0x65, 0x72, 0x76, 0x44, 0x65, 0x74, 0x61,
137     0x63, 0x68, 0x0,  0x0,  0xDB, 0xFB, 0xCB, 0x98, 0x0,  0x0,  0x0,  0x2C,
138     0x0,  0x0,  0x5,  0x89, 0x12, 0x36, 0xD2, 0x7A, 0x0,  0x0,  0x23, 0x88,
139     0x0,  0x0,  0x43, 0x4F, 0xBD, 0xF0, 0x6E, 0xE3, 0x0,  0x0,  0x9,  0xF4,
140     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x12, 0xAA, 0x51, 0x96,
141     0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F, 0x8F, 0x6A, 0x83, 0x3,
142     0x0,  0x0,  0x9,  0xA9, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
143     0x12, 0xAE, 0x7B, 0x85, 0x0,  0x0,  0x23, 0x88, 0x0,  0x10, 0x43, 0x4F,
144     0xF3, 0x35, 0x3F, 0x8D, 0x0,  0x0,  0x22, 0x35, 0x73, 0x65, 0x72, 0x76,
145     0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x0,  0x0,  0x9D, 0x86, 0xE6, 0xD3,
146     0x0,  0x0,  0x0,  0x2C, 0x0,  0x0,  0x5,  0x89, 0x13, 0xA5, 0x23, 0xFA,
147     0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F, 0xFC, 0x5A, 0x7F, 0x97,
148     0x0,  0x0,  0x9,  0xB3, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
149     0x14, 0x5B, 0x57, 0xCE, 0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F,
150     0x4,  0x88, 0x89, 0x7B, 0x0,  0x0,  0x9,  0x3B, 0x0,  0x0,  0x0,  0x1C,
151     0x0,  0x0,  0x5,  0x89, 0x14, 0x5F, 0xCC, 0x54, 0x0,  0x0,  0x23, 0x88,
152     0x0,  0x50, 0x43, 0x4F, 0x94, 0xA2, 0x26, 0x7C, 0x0,  0x0,  0x14, 0xE1,
153     0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6D, 0x74, 0x0,
154     0x0,  0x0,  0x0,  0x1,  0x6E, 0x6F, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20,
155     0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F,
156     0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
157     0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F,
158     0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x0,
159     0x10, 0x69, 0x14, 0xD8, 0x0,  0x0,  0x0,  0x3,  0x0,  0x0,  0x0,  0x6C,
160     0x55, 0x44, 0x3,  0xC0, 0x1,  0xC,  0x31, 0x0,  0x1,  0x28, 0x4,  0x42,
161     0x46, 0x57, 0x44, 0x42, 0x53, 0x51, 0x4C, 0x0,  0x0,  0x0,  0x0,  0x0,
162     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x3,  0xB8, 0x0,  0x0,  0x0,  0x0,
163     0x0,  0x0,  0x3,  0xB8, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0xB,
164     0x0,  0x0,  0x5,  0x89, 0x5,  0xFC, 0x1E, 0x6C, 0x0,  0x0,  0x23, 0x88,
165     0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,
166     0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
167     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
168     0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
169     0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
170     0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
171     0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89,
172     0x6,  0xB1, 0x42, 0x3B, 0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F,
173     0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11,
174     0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
175     0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
176     0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
177     0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
178     0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
179     0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89, 0x7,  0x14, 0xD2, 0x68,
180     0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
181     0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65,
182     0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79,
183     0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65,
184     0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70,
185     0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C,
186     0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C,
187     0x0,  0x0,  0x5,  0x89, 0x7,  0x9A, 0x9D, 0x6F, 0x0,  0x0,  0x23, 0x88,
188     0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,
189     0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
190     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
191     0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
192     0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
193     0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
194     0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89,
195     0x7,  0xD4, 0xF8, 0x2D, 0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F,
196     0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11,
197     0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
198     0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
199     0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
200     0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
201     0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
202     0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89, 0x12, 0xB4, 0xBC, 0xA6,
203     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
204     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
205     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
206     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
207     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x73, 0x79, 0x73,
208     0x27, 0x20, 0x41, 0x53, 0x20, 0x73, 0x79, 0x73, 0x3B, 0xA,  0x0,  0x0,
209     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x12, 0xBC, 0xD8, 0x8A,
210     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
211     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
212     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
213     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x30, 0x2F, 0x66, 0x77, 0x73,
214     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x30, 0x27,
215     0x20, 0x41, 0x53, 0x20, 0x70, 0x30, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
216     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x13, 0x97, 0x51, 0x64,
217     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
218     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
219     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
220     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
221     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x31, 0x27,
222     0x20, 0x41, 0x53, 0x20, 0x70, 0x31, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
223     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x13, 0xA2, 0x85, 0x51,
224     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
225     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
226     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
227     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x33, 0x2F, 0x66, 0x77, 0x73,
228     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x33, 0x27,
229     0x20, 0x41, 0x53, 0x20, 0x70, 0x33, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
230     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x14, 0x5B, 0x84, 0x7B,
231     0x0,  0x0,  0x23, 0x88, 0x0,  0x58, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
232     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x73, 0x65, 0x6C, 0x65,
233     0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
234     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
235     0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
236     0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
237     0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
238     0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
239     0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,  0x0,  0x0,  0x0,  0x74,
240     0x55, 0x44, 0x0,  0xC,  0x1,  0xC,  0x31, 0x0,  0x0,  0x0,  0x0,  0x0,
241     0x53, 0x53, 0x0,  0x50, 0x1,  0x1,  0xA8, 0x0,  0x2,  0x0,  0x0,  0x9,
242     0x0,  0x0,  0x0,  0x48, 0x3,  0x1,  0x0,  0xF0, 0x2C, 0xC6, 0x19, 0x10,
243     0xC1, 0x39, 0x20, 0x0,  0x40, 0x0,  0x0,  0xFF, 0x9D, 0x86, 0xE6, 0xD3,
244     0x0,  0x0,  0x0,  0x3,  0x10, 0x69, 0x14, 0xD8, 0x0,  0x0,  0x0,  0x0,
245     0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x45, 0x20, 0x20, 0x20, 0x20,
246     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
247     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x44, 0x1,  0xF4,
248     0x1,  0xC,  0x31, 0x0,  0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42,
249     0x45, 0x52, 0x52, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
250     0x0,  0x0,  0x1,  0xEC, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xEC,
251     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x7,  0x0,  0x0,  0x5,  0x33,
252     0x1F, 0xEA, 0xE7, 0x12, 0x0,  0x0,  0xD,  0x9D, 0x0,  0x30, 0x43, 0x4F,
253     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
254     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
255     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
256     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
257     0x50, 0x1,  0xF,  0xA,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
258     0x0,  0x0,  0x5,  0x38, 0x26, 0x43, 0xFB, 0x66, 0x0,  0x0,  0xB,  0x7D,
259     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
260     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
261     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
262     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A,
263     0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0xE,  0x0,  0x0,  0x0,  0x0,
264     0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x72, 0x13, 0xB8, 0x3D, 0x1C,
265     0x0,  0x0,  0x23, 0x33, 0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
266     0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
267     0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42,
268     0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,
269     0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0x5D,
270     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x88,
271     0x20, 0xE1, 0xE0, 0x7,  0x0,  0x0,  0xD,  0x82, 0x0,  0x30, 0x43, 0x4F,
272     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
273     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
274     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
275     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
276     0x50, 0x1,  0xF,  0x9B, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
277     0x0,  0x0,  0x5,  0x89, 0x12, 0xE,  0xFE, 0x6E, 0x0,  0x0,  0xB,  0x69,
278     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
279     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
280     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
281     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A,
282     0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0xA4, 0x0,  0x0,  0x0,  0x0,
283     0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x89, 0x15, 0x7A, 0x13, 0xA4,
284     0x0,  0x0,  0x23, 0x88, 0x0,  0x2C, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
285     0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
286     0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x72, 0x76,
287     0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0,  0x0,  0x0,  0x0,  0x1B,
288     0x0,  0x0,  0xA8, 0xE,  0x50, 0x1,  0xF,  0xA5, 0x0,  0x0,  0x0,  0x0,
289     0x0,  0x0,  0x0,  0x48, 0x55, 0x44, 0x1,  0xE8, 0x1,  0xC,  0x31, 0x0,
290     0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42, 0x53, 0x52, 0x56, 0x0,
291     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE0,
292     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE0, 0x0,  0x0,  0x0,  0x0,
293     0x0,  0x0,  0x0,  0x9,  0x0,  0x0,  0x5,  0x89, 0x12, 0x36, 0xB8, 0x93,
294     0x0,  0x0,  0x23, 0x88, 0x0,  0x10, 0x43, 0x4F, 0x89, 0x7D, 0x0,  0x8C,
295     0x0,  0x0,  0x23, 0x5D, 0x73, 0x65, 0x72, 0x76, 0x44, 0x65, 0x74, 0x61,
296     0x63, 0x68, 0x0,  0x0,  0xDB, 0xFB, 0xCB, 0x98, 0x0,  0x0,  0x0,  0x2C,
297     0x0,  0x0,  0x5,  0x89, 0x12, 0x36, 0xD2, 0x7A, 0x0,  0x0,  0x23, 0x88,
298     0x0,  0x0,  0x43, 0x4F, 0xBD, 0xF0, 0x6E, 0xE3, 0x0,  0x0,  0x9,  0xF4,
299     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x12, 0xAA, 0x51, 0x96,
300     0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F, 0x8F, 0x6A, 0x83, 0x3,
301     0x0,  0x0,  0x9,  0xA9, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
302     0x12, 0xAE, 0x7B, 0x85, 0x0,  0x0,  0x23, 0x88, 0x0,  0x10, 0x43, 0x4F,
303     0xF3, 0x35, 0x3F, 0x8D, 0x0,  0x0,  0x22, 0x35, 0x73, 0x65, 0x72, 0x76,
304     0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x0,  0x0,  0x9D, 0x86, 0xE6, 0xD3,
305     0x0,  0x0,  0x0,  0x2C, 0x0,  0x0,  0x5,  0x89, 0x13, 0xA5, 0x23, 0xFA,
306     0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F, 0xFC, 0x5A, 0x7F, 0x97,
307     0x0,  0x0,  0x9,  0xB3, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
308     0x14, 0x5B, 0x57, 0xCE, 0x0,  0x0,  0x23, 0x88, 0x0,  0x0,  0x43, 0x4F,
309     0x4,  0x88, 0x89, 0x7B, 0x0,  0x0,  0x9,  0x3B, 0x0,  0x0,  0x0,  0x1C,
310     0x0,  0x0,  0x5,  0x89, 0x14, 0x5F, 0xCC, 0x54, 0x0,  0x0,  0x23, 0x88,
311     0x0,  0x50, 0x43, 0x4F, 0x94, 0xA2, 0x26, 0x7C, 0x0,  0x0,  0x14, 0xE1,
312     0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6D, 0x74, 0x0,
313     0x0,  0x0,  0x0,  0x1,  0x6E, 0x6F, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20,
314     0x74, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F,
315     0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
316     0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F,
317     0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x0,
318     0x10, 0x69, 0x14, 0xD8, 0x0,  0x0,  0x0,  0x3,  0x0,  0x0,  0x0,  0x6C,
319     0x0,  0x0,  0x5,  0x89, 0x15, 0x79, 0xCE, 0xB1, 0x0,  0x0,  0x23, 0x88,
320     0x0,  0x68, 0x43, 0x4F, 0xF9, 0xB,  0x8E, 0x3C, 0x0,  0x0,  0x21, 0x3E,
321     0x73, 0x65, 0x72, 0x76, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0,
322     0x9D, 0x86, 0xE6, 0xD3, 0x0,  0x0,  0x0,  0x3,  0x73, 0x65, 0x6C, 0x65,
323     0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
324     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
325     0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
326     0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
327     0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
328     0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
329     0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,  0x0,  0x0,  0x0,  0x84,
330     0x55, 0x44, 0x3,  0xC0, 0x1,  0xC,  0x31, 0x0,  0x1,  0x28, 0x4,  0x42,
331     0x46, 0x57, 0x44, 0x42, 0x53, 0x51, 0x4C, 0x0,  0x0,  0x0,  0x0,  0x0,
332     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x3,  0xB8, 0x0,  0x0,  0x0,  0x0,
333     0x0,  0x0,  0x3,  0xB8, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0xB,
334     0x0,  0x0,  0x5,  0x89, 0x5,  0xFC, 0x1E, 0x6C, 0x0,  0x0,  0x23, 0x88,
335     0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,
336     0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
337     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
338     0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
339     0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
340     0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
341     0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89,
342     0x6,  0xB1, 0x42, 0x3B, 0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F,
343     0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11,
344     0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
345     0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
346     0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
347     0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
348     0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
349     0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89, 0x7,  0x14, 0xD2, 0x68,
350     0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
351     0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65,
352     0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79,
353     0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65,
354     0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70,
355     0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C,
356     0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C,
357     0x0,  0x0,  0x5,  0x89, 0x7,  0x9A, 0x9D, 0x6F, 0x0,  0x0,  0x23, 0x88,
358     0x0,  0x40, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,
359     0x14, 0x9,  0xC2, 0x11, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A,
360     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F,
361     0x6C, 0x69, 0x63, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E,
362     0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72,
363     0x2D, 0x64, 0x65, 0x66, 0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D,
364     0x65, 0x73, 0x27, 0x0,  0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89,
365     0x7,  0xD4, 0xF8, 0x2D, 0x0,  0x0,  0x23, 0x88, 0x0,  0x40, 0x43, 0x4F,
366     0x92, 0x41, 0x1B, 0xD4, 0x0,  0x0,  0x21, 0x6,  0x14, 0x9,  0xC2, 0x11,
367     0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x2A, 0x20, 0x66, 0x72, 0x6F,
368     0x6D, 0x20, 0x73, 0x79, 0x73, 0x2E, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79,
369     0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x20,
370     0x3D, 0x20, 0x27, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x2D, 0x64, 0x65, 0x66,
371     0x2D, 0x66, 0x69, 0x6C, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x27, 0x0,
372     0x0,  0x0,  0x0,  0x5C, 0x0,  0x0,  0x5,  0x89, 0x12, 0xB4, 0xBC, 0xA6,
373     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
374     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
375     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
376     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
377     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x73, 0x79, 0x73,
378     0x27, 0x20, 0x41, 0x53, 0x20, 0x73, 0x79, 0x73, 0x3B, 0xA,  0x0,  0x0,
379     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x12, 0xBC, 0xD8, 0x8A,
380     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
381     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
382     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
383     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x30, 0x2F, 0x66, 0x77, 0x73,
384     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x30, 0x27,
385     0x20, 0x41, 0x53, 0x20, 0x70, 0x30, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
386     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x13, 0x97, 0x51, 0x64,
387     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
388     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
389     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
390     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x31, 0x2F, 0x66, 0x77, 0x73,
391     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x31, 0x27,
392     0x20, 0x41, 0x53, 0x20, 0x70, 0x31, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
393     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x13, 0xA2, 0x85, 0x51,
394     0x0,  0x0,  0x23, 0x88, 0x0,  0x38, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
395     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x41, 0x54, 0x54, 0x41,
396     0x43, 0x48, 0x20, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x20,
397     0x27, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x70, 0x33, 0x2F, 0x66, 0x77, 0x73,
398     0x6D, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x70, 0x33, 0x27,
399     0x20, 0x41, 0x53, 0x20, 0x70, 0x33, 0x3B, 0xA,  0x0,  0x0,  0x0,  0x0,
400     0x0,  0x0,  0x0,  0x54, 0x0,  0x0,  0x5,  0x89, 0x14, 0x5B, 0x84, 0x7B,
401     0x0,  0x0,  0x23, 0x88, 0x0,  0x58, 0x43, 0x4F, 0x92, 0x41, 0x1B, 0xD4,
402     0x0,  0x0,  0x21, 0x6,  0x9D, 0x86, 0xE6, 0xD3, 0x73, 0x65, 0x6C, 0x65,
403     0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
404     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
405     0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
406     0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
407     0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
408     0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
409     0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,  0x0,  0x0,  0x0,  0x74,
410     0x55, 0x44, 0x0,  0xC,  0x1,  0xC,  0x31, 0x0,  0x0,  0x0,  0x0,  0x0,
411     0x53, 0x53, 0x0,  0x50, 0x1,  0x1,  0xA8, 0x0,  0x2,  0x0,  0x0,  0x9,
412     0x0,  0x0,  0x0,  0x48, 0x3,  0x1,  0x0,  0xF0, 0x2C, 0xC6, 0x67, 0x10,
413     0xC1, 0x39, 0x20, 0x0,  0x40, 0x0,  0x0,  0xFF, 0x0,  0x0,  0x0,  0x3,
414     0x9D, 0x86, 0xE6, 0xD3, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
415     0x42, 0x31, 0x38, 0x31, 0x41, 0x38, 0x30, 0x35, 0x20, 0x20, 0x20, 0x20,
416     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
417     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x44, 0x1,  0xF4,
418     0x1,  0xC,  0x31, 0x0,  0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42,
419     0x45, 0x52, 0x52, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
420     0x0,  0x0,  0x1,  0xEC, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xEC,
421     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x7,  0x0,  0x0,  0x5,  0x38,
422     0x26, 0x43, 0xFB, 0x66, 0x0,  0x0,  0xB,  0x7D, 0x0,  0x30, 0x43, 0x4F,
423     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
424     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
425     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
426     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
427     0x50, 0x1,  0xF,  0xE,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
428     0x0,  0x0,  0x5,  0x72, 0x13, 0xB8, 0x3D, 0x1C, 0x0,  0x0,  0x23, 0x33,
429     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
430     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
431     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54,
432     0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A,
433     0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0x5D, 0x0,  0x0,  0x0,  0x0,
434     0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x88, 0x20, 0xE1, 0xE0, 0x7,
435     0x0,  0x0,  0xD,  0x82, 0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7,
436     0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63,
437     0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x74, 0x42,
438     0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0,  0x0,
439     0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,  0x50, 0x1,  0xF,  0x9B,
440     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C, 0x0,  0x0,  0x5,  0x89,
441     0x12, 0xE,  0xFE, 0x6E, 0x0,  0x0,  0xB,  0x69, 0x0,  0x30, 0x43, 0x4F,
442     0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5, 0x66, 0x77, 0x64, 0x62,
443     0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49, 0x6E, 0x66, 0x6F, 0x0,
444     0x73, 0x65, 0x74, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6D, 0x65, 0x6F,
445     0x75, 0x74, 0x0,  0x0,  0x0,  0x0,  0x0,  0x1A, 0x0,  0x0,  0xA8, 0x9,
446     0x50, 0x1,  0xF,  0xA4, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x4C,
447     0x0,  0x0,  0x5,  0x89, 0x15, 0x7A, 0x13, 0xA4, 0x0,  0x0,  0x23, 0x88,
448     0x0,  0x2C, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
449     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
450     0x6E, 0x66, 0x6F, 0x0,  0x73, 0x65, 0x72, 0x76, 0x45, 0x78, 0x65, 0x63,
451     0x75, 0x74, 0x65, 0x0,  0x0,  0x0,  0x0,  0x1B, 0x0,  0x0,  0xA8, 0xE,
452     0x50, 0x1,  0xF,  0xA5, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x48,
453     0x0,  0x0,  0x5,  0x89, 0x16, 0xA5, 0xF7, 0xAC, 0x0,  0x0,  0xB,  0x69,
454     0x0,  0x30, 0x43, 0x4F, 0x27, 0x67, 0x44, 0xB7, 0x0,  0x0,  0x0,  0xB5,
455     0x66, 0x77, 0x64, 0x62, 0x54, 0x72, 0x61, 0x63, 0x45, 0x72, 0x72, 0x49,
456     0x6E, 0x66, 0x6F, 0x0,  0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4E,
457     0x6F, 0x46, 0x6D, 0x74, 0x53, 0x74, 0x72, 0x0,  0x0,  0x0,  0x0,  0x1B,
458     0x0,  0x0,  0xA8, 0xE,  0x50, 0x1,  0xF,  0xA5, 0x0,  0x0,  0x0,  0x0,
459     0x0,  0x0,  0x0,  0x4C, 0x55, 0x44, 0x1,  0xEC, 0x1,  0xC,  0x31, 0x0,
460     0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42, 0x43, 0x4D, 0x44, 0x0,
461     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE4,
462     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xE4, 0x0,  0x0,  0x0,  0x0,
463     0x0,  0x0,  0x0,  0xD,  0x0,  0x0,  0x5,  0x89, 0x5,  0xF9, 0x4B, 0x5C,
464     0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,
465     0x0,  0x0,  0x1,  0x59, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
466     0x6,  0x36, 0xBE, 0xE8, 0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F,
467     0xC9, 0x49, 0xE2, 0x7E, 0x0,  0x0,  0x1,  0xD6, 0x0,  0x0,  0x0,  0x1C,
468     0x0,  0x0,  0x5,  0x89, 0x6,  0xAE, 0x6C, 0x5C, 0x0,  0x0,  0x23, 0x72,
469     0x0,  0x0,  0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,  0x0,  0x0,  0x1,  0x59,
470     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x6,  0xC3, 0x48, 0x7A,
471     0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E,
472     0x0,  0x0,  0x1,  0xD6, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
473     0x7,  0x12, 0x50, 0xB6, 0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F,
474     0x32, 0x5F, 0xF6, 0x1,  0x0,  0x0,  0x1,  0x59, 0x0,  0x0,  0x0,  0x1C,
475     0x0,  0x0,  0x5,  0x89, 0x7,  0x2C, 0x43, 0xFE, 0x0,  0x0,  0x23, 0x72,
476     0x0,  0x0,  0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E, 0x0,  0x0,  0x1,  0xD6,
477     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x7,  0x97, 0x92, 0x5F,
478     0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,
479     0x0,  0x0,  0x1,  0x59, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
480     0x7,  0xAF, 0x7C, 0xC6, 0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F,
481     0xC9, 0x49, 0xE2, 0x7E, 0x0,  0x0,  0x1,  0xD6, 0x0,  0x0,  0x0,  0x1C,
482     0x0,  0x0,  0x5,  0x89, 0x7,  0xD2, 0x84, 0xF,  0x0,  0x0,  0x23, 0x72,
483     0x0,  0x0,  0x43, 0x4F, 0x32, 0x5F, 0xF6, 0x1,  0x0,  0x0,  0x1,  0x59,
484     0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89, 0x8,  0x6E, 0xBC, 0x17,
485     0x0,  0x0,  0x23, 0x72, 0x0,  0x0,  0x43, 0x4F, 0xC9, 0x49, 0xE2, 0x7E,
486     0x0,  0x0,  0x1,  0xD6, 0x0,  0x0,  0x0,  0x1C, 0x0,  0x0,  0x5,  0x89,
487     0x13, 0xA8, 0x5C, 0x6F, 0x0,  0x0,  0xB,  0x69, 0x0,  0x0,  0x43, 0x4F,
488     0x32, 0x5F, 0xF6, 0x1,  0x0,  0x0,  0x1,  0x59, 0x0,  0x0,  0x0,  0x1C,
489     0x0,  0x0,  0x5,  0x89, 0x16, 0xA5, 0x8F, 0x96, 0x0,  0x0,  0xB,  0x69,
490     0x0,  0x6C, 0x43, 0x4F, 0x9A, 0x1E, 0xAD, 0xA5, 0x0,  0x0,  0x1,  0x9D,
491     0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4E, 0x6F, 0x46, 0x6D, 0x74,
492     0x53, 0x74, 0x72, 0x0,  0x0,  0x0,  0x0,  0x3,  0x73, 0x65, 0x6C, 0x65,
493     0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64,
494     0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63,
495     0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
496     0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70,
497     0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77,
498     0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65,
499     0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,  0x9D, 0x86, 0xE6, 0xD3,
500     0x0,  0x0,  0x0,  0x88, 0x55, 0x44, 0x1,  0xD0, 0x1,  0xC,  0x31, 0x0,
501     0x1,  0x28, 0x4,  0x42, 0x46, 0x57, 0x44, 0x42, 0x55, 0x54, 0x49, 0x4C,
502     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xC8,
503     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x1,  0xC8, 0x0,  0x0,  0x0,  0x0,
504     0x0,  0x0,  0x0,  0x4,  0x0,  0x0,  0x5,  0x89, 0x13, 0xA7, 0xC0, 0xB6,
505     0x0,  0x0,  0xB,  0x69, 0x0,  0x3C, 0x43, 0x4F, 0x4C, 0x53, 0x3A, 0xE0,
506     0x0,  0x0,  0x1,  0xF7, 0x45, 0x58, 0x49, 0x54, 0x0,  0x0,  0x0,  0x0,
507     0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x0,  0x0,  0x9D, 0x86, 0xE6, 0xD3,
508     0x0,  0x0,  0xB,  0x60, 0x0,  0x0,  0xB,  0x69, 0x2F, 0x6F, 0x70, 0x74,
509     0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x68, 0x65,
510     0x61, 0x6C, 0x74, 0x68, 0x6D, 0x6F, 0x6E, 0x0,  0x0,  0x0,  0x0,  0x0,
511     0x0,  0x0,  0x43, 0x8F, 0x0,  0x0,  0x0,  0x58, 0x0,  0x0,  0x5,  0x89,
512     0x13, 0xA8, 0xF8, 0x3A, 0x0,  0x0,  0xB,  0x69, 0x0,  0x88, 0x43, 0x4F,
513     0x4C, 0x53, 0x3A, 0xE0, 0x0,  0x0,  0x1,  0xF7, 0x45, 0x4E, 0x54, 0x52,
514     0x0,  0x0,  0x0,  0x0,  0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x65,
515     0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x66, 0x72, 0x6F,
516     0x6D, 0x20, 0x63, 0x62, 0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65,
517     0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F,
518     0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69,
519     0x63, 0x5F, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65,
520     0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x21,
521     0x3D, 0x20, 0x30, 0x0,  0x9D, 0x86, 0xE6, 0xD3, 0x0,  0x0,  0xB,  0x60,
522     0x0,  0x0,  0xB,  0x69, 0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x66, 0x69, 0x70,
523     0x73, 0x2F, 0x62, 0x69, 0x6E, 0x2F, 0x68, 0x65, 0x61, 0x6C, 0x74, 0x68,
524     0x6D, 0x6F, 0x6E, 0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0x0,
525     0x0,  0x0,  0x0,  0xA4, 0x0,  0x0,  0x5,  0x89, 0x16, 0xA5, 0x62, 0xFB,
526     0x0,  0x0,  0xB,  0x69, 0x0,  0x88, 0x43, 0x4F, 0x4C, 0x53, 0x3A, 0xE0,
527     0x0,  0x0,  0x1,  0xF7, 0x45, 0x58, 0x49, 0x54, 0x0,  0x0,  0x0,  0x0,
528     0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72,
529     0x5F, 0x65, 0x69, 0x64, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x63, 0x62,
530     0x6C, 0x76, 0x5F, 0x63, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x63, 0x6F, 0x6E,
531     0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x74, 0x61, 0x74,
532     0x75, 0x73, 0x5F, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x5F, 0x76, 0x69,
533     0x65, 0x77, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x65, 0x72, 0x72,
534     0x6F, 0x72, 0x5F, 0x65, 0x69, 0x64, 0x20, 0x21, 0x3D, 0x20, 0x30, 0x0,
535     0x9D, 0x86, 0xE6, 0xD3, 0x0,  0x0,  0xB,  0x60, 0x0,  0x0,  0xB,  0x69,
536     0x2F, 0x6F, 0x70, 0x74, 0x2F, 0x66, 0x69, 0x70, 0x73, 0x2F, 0x62, 0x69,
537     0x6E, 0x2F, 0x68, 0x65, 0x61, 0x6C, 0x74, 0x68, 0x6D, 0x6F, 0x6E, 0x0,
538     0x0,  0x0,  0x0,  0x0,  0x0,  0x0,  0xC5, 0x63, 0x0,  0x0,  0x0,  0xA4};
539 
TEST_F(PELTest,RealPELTest)540 TEST_F(PELTest, RealPELTest)
541 {
542     auto origData = realPELData;
543     PEL pel{origData};
544 
545     EXPECT_TRUE(pel.valid());
546 
547     // Check that the flat data is correct
548     auto flat = pel.data();
549     EXPECT_EQ(realPELData, flat);
550     EXPECT_EQ(realPELData.size(), pel.size());
551 
552     // Check that the code can extract an object for every section.
553     //(The PrivateHeader and UserHeader account for the + 2 below.)
554     const auto& sections = pel.optionalSections();
555     EXPECT_EQ(pel.privateHeader().sectionCount(), sections.size() + 2);
556 
557     auto src = pel.primarySRC();
558     EXPECT_EQ(src.value()->asciiString(), "B181A80E                        ");
559 
560     // Check that the last section (a 'UD' section) is indeed the last
561     // section object by checking the ID and the last byte.
562     auto& last = pel.optionalSections().back();
563     EXPECT_EQ(last->header().id, 0x5544); // "UD"
564 
565     std::vector<uint8_t> lastSectionData;
566     Stream stream{lastSectionData};
567     last->flatten(stream);
568     EXPECT_EQ(lastSectionData.back(), 0xA4);
569 }
570