1 /* This file was generated by upbc (the upb compiler) from the input
2  * file:
3  *
4  *     envoy/config/tap/v3/common.proto
5  *
6  * Do not edit -- your changes will be discarded when the file is
7  * regenerated. */
8 
9 #include <stddef.h>
10 #include "upb/collections/array_internal.h"
11 #include "upb/message/internal.h"
12 #include "upb/mini_table/enum_internal.h"
13 #include "envoy/config/tap/v3/common.upb.h"
14 #include "envoy/config/common/matcher/v3/matcher.upb.h"
15 #include "envoy/config/core/v3/base.upb.h"
16 #include "envoy/config/core/v3/grpc_service.upb.h"
17 #include "envoy/config/route/v3/route_components.upb.h"
18 #include "google/protobuf/duration.upb.h"
19 #include "google/protobuf/wrappers.upb.h"
20 #include "envoy/annotations/deprecation.upb.h"
21 #include "udpa/annotations/status.upb.h"
22 #include "udpa/annotations/versioning.upb.h"
23 #include "validate/validate.upb.h"
24 
25 // Must be last.
26 #include "upb/port/def.inc"
27 
28 static const upb_MiniTableSub envoy_config_tap_v3_TapConfig_submsgs[4] = {
29   {.submsg = &envoy_config_tap_v3_MatchPredicate_msg_init},
30   {.submsg = &envoy_config_tap_v3_OutputConfig_msg_init},
31   {.submsg = &envoy_config_core_v3_RuntimeFractionalPercent_msg_init},
32   {.submsg = &envoy_config_common_matcher_v3_MatchPredicate_msg_init},
33 };
34 
35 static const upb_MiniTableField envoy_config_tap_v3_TapConfig__fields[4] = {
36   {1, UPB_SIZE(4, 8), 1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
37   {2, UPB_SIZE(8, 16), 2, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
38   {3, UPB_SIZE(12, 24), 3, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
39   {4, UPB_SIZE(16, 32), 4, 3, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
40 };
41 
42 const upb_MiniTable envoy_config_tap_v3_TapConfig_msg_init = {
43   &envoy_config_tap_v3_TapConfig_submsgs[0],
44   &envoy_config_tap_v3_TapConfig__fields[0],
45   UPB_SIZE(24, 40), 4, kUpb_ExtMode_NonExtendable, 4, UPB_FASTTABLE_MASK(56), 0,
46   UPB_FASTTABLE_INIT({
47     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
48     {0x000800000100000a, &upb_psm_1bt_max64b},
49     {0x0010000002010012, &upb_psm_1bt_max64b},
50     {0x001800000302001a, &upb_psm_1bt_maxmaxb},
51     {0x0020000004030022, &upb_psm_1bt_maxmaxb},
52     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
53     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
54     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
55   })
56 };
57 
58 static const upb_MiniTableSub envoy_config_tap_v3_MatchPredicate_submsgs[9] = {
59   {.submsg = &envoy_config_tap_v3_MatchPredicate_MatchSet_msg_init},
60   {.submsg = &envoy_config_tap_v3_MatchPredicate_MatchSet_msg_init},
61   {.submsg = &envoy_config_tap_v3_MatchPredicate_msg_init},
62   {.submsg = &envoy_config_tap_v3_HttpHeadersMatch_msg_init},
63   {.submsg = &envoy_config_tap_v3_HttpHeadersMatch_msg_init},
64   {.submsg = &envoy_config_tap_v3_HttpHeadersMatch_msg_init},
65   {.submsg = &envoy_config_tap_v3_HttpHeadersMatch_msg_init},
66   {.submsg = &envoy_config_tap_v3_HttpGenericBodyMatch_msg_init},
67   {.submsg = &envoy_config_tap_v3_HttpGenericBodyMatch_msg_init},
68 };
69 
70 static const upb_MiniTableField envoy_config_tap_v3_MatchPredicate__fields[10] = {
71   {1, UPB_SIZE(4, 8), -1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
72   {2, UPB_SIZE(4, 8), -1, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
73   {3, UPB_SIZE(4, 8), -1, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
74   {4, UPB_SIZE(4, 8), -1, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
75   {5, UPB_SIZE(4, 8), -1, 3, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
76   {6, UPB_SIZE(4, 8), -1, 4, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
77   {7, UPB_SIZE(4, 8), -1, 5, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
78   {8, UPB_SIZE(4, 8), -1, 6, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
79   {9, UPB_SIZE(4, 8), -1, 7, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
80   {10, UPB_SIZE(4, 8), -1, 8, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
81 };
82 
83 const upb_MiniTable envoy_config_tap_v3_MatchPredicate_msg_init = {
84   &envoy_config_tap_v3_MatchPredicate_submsgs[0],
85   &envoy_config_tap_v3_MatchPredicate__fields[0],
86   UPB_SIZE(8, 16), 10, kUpb_ExtMode_NonExtendable, 10, UPB_FASTTABLE_MASK(120), 0,
87   UPB_FASTTABLE_INIT({
88     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
89     {0x000800000100000a, &upb_pom_1bt_max64b},
90     {0x0008000002010012, &upb_pom_1bt_max64b},
91     {0x000800000302001a, &upb_pom_1bt_max64b},
92     {0x0008000004000020, &upb_pob1_1bt},
93     {0x000800000503002a, &upb_pom_1bt_max64b},
94     {0x0008000006040032, &upb_pom_1bt_max64b},
95     {0x000800000705003a, &upb_pom_1bt_max64b},
96     {0x0008000008060042, &upb_pom_1bt_max64b},
97     {0x000800000907004a, &upb_pom_1bt_max64b},
98     {0x000800000a080052, &upb_pom_1bt_max64b},
99     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
100     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
101     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
102     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
103     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
104   })
105 };
106 
107 static const upb_MiniTableSub envoy_config_tap_v3_MatchPredicate_MatchSet_submsgs[1] = {
108   {.submsg = &envoy_config_tap_v3_MatchPredicate_msg_init},
109 };
110 
111 static const upb_MiniTableField envoy_config_tap_v3_MatchPredicate_MatchSet__fields[1] = {
112   {1, 0, 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
113 };
114 
115 const upb_MiniTable envoy_config_tap_v3_MatchPredicate_MatchSet_msg_init = {
116   &envoy_config_tap_v3_MatchPredicate_MatchSet_submsgs[0],
117   &envoy_config_tap_v3_MatchPredicate_MatchSet__fields[0],
118   8, 1, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(8), 0,
119   UPB_FASTTABLE_INIT({
120     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
121     {0x000000003f00000a, &upb_prm_1bt_max64b},
122   })
123 };
124 
125 static const upb_MiniTableSub envoy_config_tap_v3_HttpHeadersMatch_submsgs[1] = {
126   {.submsg = &envoy_config_route_v3_HeaderMatcher_msg_init},
127 };
128 
129 static const upb_MiniTableField envoy_config_tap_v3_HttpHeadersMatch__fields[1] = {
130   {1, 0, 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
131 };
132 
133 const upb_MiniTable envoy_config_tap_v3_HttpHeadersMatch_msg_init = {
134   &envoy_config_tap_v3_HttpHeadersMatch_submsgs[0],
135   &envoy_config_tap_v3_HttpHeadersMatch__fields[0],
136   8, 1, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(8), 0,
137   UPB_FASTTABLE_INIT({
138     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
139     {0x000000003f00000a, &upb_prm_1bt_maxmaxb},
140   })
141 };
142 
143 static const upb_MiniTableSub envoy_config_tap_v3_HttpGenericBodyMatch_submsgs[1] = {
144   {.submsg = &envoy_config_tap_v3_HttpGenericBodyMatch_GenericTextMatch_msg_init},
145 };
146 
147 static const upb_MiniTableField envoy_config_tap_v3_HttpGenericBodyMatch__fields[2] = {
148   {1, 0, 0, kUpb_NoSub, 13, kUpb_FieldMode_Scalar | (kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)},
149   {2, UPB_SIZE(4, 8), 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
150 };
151 
152 const upb_MiniTable envoy_config_tap_v3_HttpGenericBodyMatch_msg_init = {
153   &envoy_config_tap_v3_HttpGenericBodyMatch_submsgs[0],
154   &envoy_config_tap_v3_HttpGenericBodyMatch__fields[0],
155   UPB_SIZE(8, 16), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0,
156   UPB_FASTTABLE_INIT({
157     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
158     {0x000000003f000008, &upb_psv4_1bt},
159     {0x000800003f000012, &upb_prm_1bt_max64b},
160     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
161   })
162 };
163 
164 static const upb_MiniTableField envoy_config_tap_v3_HttpGenericBodyMatch_GenericTextMatch__fields[2] = {
165   {1, UPB_SIZE(4, 8), -1, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
166   {2, UPB_SIZE(4, 8), -1, kUpb_NoSub, 12, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
167 };
168 
169 const upb_MiniTable envoy_config_tap_v3_HttpGenericBodyMatch_GenericTextMatch_msg_init = {
170   NULL,
171   &envoy_config_tap_v3_HttpGenericBodyMatch_GenericTextMatch__fields[0],
172   UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0,
173   UPB_FASTTABLE_INIT({
174     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
175     {0x000800000100000a, &upb_pos_1bt},
176     {0x0008000002000012, &upb_pob_1bt},
177     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
178   })
179 };
180 
181 static const upb_MiniTableSub envoy_config_tap_v3_OutputConfig_submsgs[3] = {
182   {.submsg = &envoy_config_tap_v3_OutputSink_msg_init},
183   {.submsg = &google_protobuf_UInt32Value_msg_init},
184   {.submsg = &google_protobuf_UInt32Value_msg_init},
185 };
186 
187 static const upb_MiniTableField envoy_config_tap_v3_OutputConfig__fields[4] = {
188   {1, UPB_SIZE(4, 8), 0, 0, 11, kUpb_FieldMode_Array | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
189   {2, UPB_SIZE(8, 16), 1, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
190   {3, UPB_SIZE(12, 24), 2, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
191   {4, UPB_SIZE(16, 1), 0, kUpb_NoSub, 8, kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
192 };
193 
194 const upb_MiniTable envoy_config_tap_v3_OutputConfig_msg_init = {
195   &envoy_config_tap_v3_OutputConfig_submsgs[0],
196   &envoy_config_tap_v3_OutputConfig__fields[0],
197   UPB_SIZE(24, 32), 4, kUpb_ExtMode_NonExtendable, 4, UPB_FASTTABLE_MASK(56), 0,
198   UPB_FASTTABLE_INIT({
199     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
200     {0x000800003f00000a, &upb_prm_1bt_max64b},
201     {0x0010000001010012, &upb_psm_1bt_maxmaxb},
202     {0x001800000202001a, &upb_psm_1bt_maxmaxb},
203     {0x000100003f000020, &upb_psb1_1bt},
204     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
205     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
206     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
207   })
208 };
209 
210 static const upb_MiniTableSub envoy_config_tap_v3_OutputSink_submsgs[4] = {
211   {.submsg = &envoy_config_tap_v3_StreamingAdminSink_msg_init},
212   {.submsg = &envoy_config_tap_v3_FilePerTapSink_msg_init},
213   {.submsg = &envoy_config_tap_v3_StreamingGrpcSink_msg_init},
214   {.submsg = &envoy_config_tap_v3_BufferedAdminSink_msg_init},
215 };
216 
217 static const upb_MiniTableField envoy_config_tap_v3_OutputSink__fields[5] = {
218   {1, 0, 0, kUpb_NoSub, 5, kUpb_FieldMode_Scalar | kUpb_LabelFlags_IsAlternate | (kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)},
219   {2, 8, -5, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
220   {3, 8, -5, 1, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
221   {4, 8, -5, 2, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
222   {5, 8, -5, 3, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
223 };
224 
225 const upb_MiniTable envoy_config_tap_v3_OutputSink_msg_init = {
226   &envoy_config_tap_v3_OutputSink_submsgs[0],
227   &envoy_config_tap_v3_OutputSink__fields[0],
228   16, 5, kUpb_ExtMode_NonExtendable, 5, UPB_FASTTABLE_MASK(56), 0,
229   UPB_FASTTABLE_INIT({
230     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
231     {0x000000003f000008, &upb_psv4_1bt},
232     {0x0008000402000012, &upb_pom_1bt_max64b},
233     {0x000800040301001a, &upb_pom_1bt_max64b},
234     {0x0008000404020022, &upb_pom_1bt_max64b},
235     {0x000800040503002a, &upb_pom_1bt_max64b},
236     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
237     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
238   })
239 };
240 
241 const upb_MiniTable envoy_config_tap_v3_StreamingAdminSink_msg_init = {
242   NULL,
243   NULL,
244   0, 0, kUpb_ExtMode_NonExtendable, 0, UPB_FASTTABLE_MASK(255), 0,
245 };
246 
247 static const upb_MiniTableSub envoy_config_tap_v3_BufferedAdminSink_submsgs[1] = {
248   {.submsg = &google_protobuf_Duration_msg_init},
249 };
250 
251 static const upb_MiniTableField envoy_config_tap_v3_BufferedAdminSink__fields[2] = {
252   {1, 8, 0, kUpb_NoSub, 4, kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
253   {2, UPB_SIZE(4, 16), 1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
254 };
255 
256 const upb_MiniTable envoy_config_tap_v3_BufferedAdminSink_msg_init = {
257   &envoy_config_tap_v3_BufferedAdminSink_submsgs[0],
258   &envoy_config_tap_v3_BufferedAdminSink__fields[0],
259   UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0,
260   UPB_FASTTABLE_INIT({
261     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
262     {0x000800003f000008, &upb_psv8_1bt},
263     {0x0010000001000012, &upb_psm_1bt_maxmaxb},
264     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
265   })
266 };
267 
268 static const upb_MiniTableField envoy_config_tap_v3_FilePerTapSink__fields[1] = {
269   {1, 0, 0, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
270 };
271 
272 const upb_MiniTable envoy_config_tap_v3_FilePerTapSink_msg_init = {
273   NULL,
274   &envoy_config_tap_v3_FilePerTapSink__fields[0],
275   UPB_SIZE(8, 16), 1, kUpb_ExtMode_NonExtendable, 1, UPB_FASTTABLE_MASK(8), 0,
276   UPB_FASTTABLE_INIT({
277     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
278     {0x000000003f00000a, &upb_pss_1bt},
279   })
280 };
281 
282 static const upb_MiniTableSub envoy_config_tap_v3_StreamingGrpcSink_submsgs[1] = {
283   {.submsg = &envoy_config_core_v3_GrpcService_msg_init},
284 };
285 
286 static const upb_MiniTableField envoy_config_tap_v3_StreamingGrpcSink__fields[2] = {
287   {1, 8, 0, kUpb_NoSub, 9, kUpb_FieldMode_Scalar | (kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)},
288   {2, UPB_SIZE(4, 24), 1, 0, 11, kUpb_FieldMode_Scalar | (UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)},
289 };
290 
291 const upb_MiniTable envoy_config_tap_v3_StreamingGrpcSink_msg_init = {
292   &envoy_config_tap_v3_StreamingGrpcSink_submsgs[0],
293   &envoy_config_tap_v3_StreamingGrpcSink__fields[0],
294   UPB_SIZE(16, 32), 2, kUpb_ExtMode_NonExtendable, 2, UPB_FASTTABLE_MASK(24), 0,
295   UPB_FASTTABLE_INIT({
296     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
297     {0x000800003f00000a, &upb_pss_1bt},
298     {0x0018000001000012, &upb_psm_1bt_maxmaxb},
299     {0x0000000000000000, &_upb_FastDecoder_DecodeGeneric},
300   })
301 };
302 
303 static const upb_MiniTable *messages_layout[12] = {
304   &envoy_config_tap_v3_TapConfig_msg_init,
305   &envoy_config_tap_v3_MatchPredicate_msg_init,
306   &envoy_config_tap_v3_MatchPredicate_MatchSet_msg_init,
307   &envoy_config_tap_v3_HttpHeadersMatch_msg_init,
308   &envoy_config_tap_v3_HttpGenericBodyMatch_msg_init,
309   &envoy_config_tap_v3_HttpGenericBodyMatch_GenericTextMatch_msg_init,
310   &envoy_config_tap_v3_OutputConfig_msg_init,
311   &envoy_config_tap_v3_OutputSink_msg_init,
312   &envoy_config_tap_v3_StreamingAdminSink_msg_init,
313   &envoy_config_tap_v3_BufferedAdminSink_msg_init,
314   &envoy_config_tap_v3_FilePerTapSink_msg_init,
315   &envoy_config_tap_v3_StreamingGrpcSink_msg_init,
316 };
317 
318 const upb_MiniTableFile envoy_config_tap_v3_common_proto_upb_file_layout = {
319   messages_layout,
320   NULL,
321   NULL,
322   12,
323   0,
324   0,
325 };
326 
327 #include "upb/port/undef.inc"
328 
329