// Copyright 2016 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#include "xfa/fxfa/parser/xfa_basic_data.h"

#include "xfa/fxfa/fxfa_basic.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"

static const CXFA_Measurement g_XFAMeasurementData[] = {
    CXFA_Measurement(0, XFA_Unit::In),
    CXFA_Measurement(0, XFA_Unit::Pt),
    CXFA_Measurement(5, XFA_Unit::Mm),
    CXFA_Measurement(0.25, XFA_Unit::Mm),
    CXFA_Measurement(-1, XFA_Unit::Unknown),
    CXFA_Measurement(0, XFA_Unit::Angle),
    CXFA_Measurement(10, XFA_Unit::Pt),
    CXFA_Measurement(360, XFA_Unit::Angle),
    CXFA_Measurement(0.5, XFA_Unit::Pt),
};

const XFA_ATTRIBUTEINFO g_XFAAttributeData[] = {
    {0x68, L"h", XFA_Attribute::H, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x77, L"w", XFA_Attribute::W, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x78, L"x", XFA_Attribute::X, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x79, L"y", XFA_Attribute::Y, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x21aed, L"id", XFA_Attribute::Id, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
     nullptr},
    {0x25363, L"to", XFA_Attribute::To, XFA_AttributeType::CData,
     XFA_XDPPACKET_Config, nullptr},
    {0xcb0ac9, L"lineThrough", XFA_Attribute::LineThrough,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x2282c73, L"hAlign", XFA_Attribute::HAlign, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Left},
    {0x2c1c7f1, L"typeface", XFA_Attribute::Typeface, XFA_AttributeType::CData,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"Courier"},
    {0x3106c3a, L"beforeTarget", XFA_Attribute::BeforeTarget,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x31b19c1, L"name", XFA_Attribute::Name, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
     nullptr},
    {0x3848b3f, L"next", XFA_Attribute::Next, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_None},
    {0x43e349b, L"dataRowCount", XFA_Attribute::DataRowCount,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x5518c25, L"break", XFA_Attribute::Break, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Close},
    {0x5ce6195, L"vScrollPolicy", XFA_Attribute::VScrollPolicy,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0x8c74ae9, L"fontHorizontalScale", XFA_Attribute::FontHorizontalScale,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"100%"},
    {0x8d4f1c7, L"textIndent", XFA_Attribute::TextIndent,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x97c1c65, L"context", XFA_Attribute::Context, XFA_AttributeType::Integer,
     XFA_XDPPACKET_UNKNOWN, (void*)0},
    {0x9876578, L"trayOut", XFA_Attribute::TrayOut, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xa2e3514, L"cap", XFA_Attribute::Cap, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Square},
    {0xb3543a6, L"max", XFA_Attribute::Max, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xb356ca4, L"min", XFA_Attribute::Min, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
    {0xbb8df5d, L"ref", XFA_Attribute::Ref, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
         XFA_XDPPACKET_Form,
     nullptr},
    {0xbb8f3df, L"rid", XFA_Attribute::Rid, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xc080cd3, L"url", XFA_Attribute::Url, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xc0811ed, L"use", XFA_Attribute::Use, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
     nullptr},
    {0xcfea02e, L"leftInset", XFA_Attribute::LeftInset,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x1026c59d, L"widows", XFA_Attribute::Widows, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
    {0x1059ec18, L"level", XFA_Attribute::Level, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Config, (void*)0},
    {0x1356caf8, L"bottomInset", XFA_Attribute::BottomInset,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x13a08bdb, L"overflowTarget", XFA_Attribute::OverflowTarget,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x1414d431, L"allowMacro", XFA_Attribute::AllowMacro,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x14a32d52, L"pagePosition", XFA_Attribute::PagePosition,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Any},
    {0x1517dfa1, L"columnWidths", XFA_Attribute::ColumnWidths,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x169134a1, L"overflowLeader", XFA_Attribute::OverflowLeader,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x1b8dce3e, L"action", XFA_Attribute::Action, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Include},
    {0x1e459b8f, L"nonRepudiation", XFA_Attribute::NonRepudiation,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x1ec8ab2c, L"rate", XFA_Attribute::Rate, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50},
    {0x1ef3a64a, L"allowRichText", XFA_Attribute::AllowRichText,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x2038c9b2, L"role", XFA_Attribute::Role, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x20914367, L"overflowTrailer", XFA_Attribute::OverflowTrailer,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x226ca8f1, L"operation", XFA_Attribute::Operation,
     XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x24d85167, L"timeout", XFA_Attribute::Timeout, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_SourceSet, nullptr},
    {0x25764436, L"topInset", XFA_Attribute::TopInset,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x25839852, L"access", XFA_Attribute::Access, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Open},
    {0x268b7ec1, L"commandType", XFA_Attribute::CommandType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
     (void*)XFA_ATTRIBUTEENUM_Unknown},
    {0x28dee6e9, L"format", XFA_Attribute::Format, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x28e17e91, L"dataPrep", XFA_Attribute::DataPrep, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_None},
    {0x292b88fe, L"widgetData", XFA_Attribute::WidgetData,
     XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
    {0x29418bb7, L"abbr", XFA_Attribute::Abbr, XFA_AttributeType::Boolean,
     XFA_XDPPACKET_LocaleSet, (void*)0},
    {0x2a82d99c, L"marginRight", XFA_Attribute::MarginRight,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x2b5df51e, L"dataDescription", XFA_Attribute::DataDescription,
     XFA_AttributeType::CData, XFA_XDPPACKET_ConnectionSet, nullptr},
    {0x2bb3f470, L"encipherOnly", XFA_Attribute::EncipherOnly,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x2cd79033, L"kerningMode", XFA_Attribute::KerningMode,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_None},
    {0x2ee7678f, L"rotate", XFA_Attribute::Rotate, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 5)},
    {0x2f105f72, L"wordCharacterCount", XFA_Attribute::WordCharacterCount,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)7},
    {0x2f16a382, L"type", XFA_Attribute::Type, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x34ae103c, L"reserve", XFA_Attribute::Reserve, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 4)},
    {0x3650557e, L"textLocation", XFA_Attribute::TextLocation,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Below},
    {0x39cdb0a2, L"priority", XFA_Attribute::Priority, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Custom},
    {0x3a0273a6, L"underline", XFA_Attribute::Underline,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x3b582286, L"moduleWidth", XFA_Attribute::ModuleWidth,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 3)},
    {0x3d123c26, L"hyphenate", XFA_Attribute::Hyphenate,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x3e7af94f, L"listen", XFA_Attribute::Listen, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_RefOnly},
    {0x4156ee3f, L"delimiter", XFA_Attribute::Delimiter,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x42fed1fd, L"contentType", XFA_Attribute::ContentType,
     XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
         XFA_XDPPACKET_Form,
     nullptr},
    {0x453eaf38, L"startNew", XFA_Attribute::StartNew,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x45a6daf8, L"eofAction", XFA_Attribute::EofAction,
     XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
     (void*)XFA_ATTRIBUTEENUM_MoveLast},
    {0x47cfa43a, L"allowNeutral", XFA_Attribute::AllowNeutral,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x47d03490, L"connection", XFA_Attribute::Connection,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x4873c601, L"baselineShift", XFA_Attribute::BaselineShift,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x4b319767, L"overlinePeriod", XFA_Attribute::OverlinePeriod,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_All},
    {0x4b8bc840, L"fracDigits", XFA_Attribute::FracDigits,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)2},
    {0x4ef3d02c, L"orientation", XFA_Attribute::Orientation,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Portrait},
    {0x4fdc3454, L"timeStamp", XFA_Attribute::TimeStamp,
     XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr},
    {0x52666f1c, L"printCheckDigit", XFA_Attribute::PrintCheckDigit,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x534729c9, L"marginLeft", XFA_Attribute::MarginLeft,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x5392ea58, L"stroke", XFA_Attribute::Stroke, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Solid},
    {0x5404d6df, L"moduleHeight", XFA_Attribute::ModuleHeight,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 2)},
    {0x54fa722c, L"transferEncoding", XFA_Attribute::TransferEncoding,
     XFA_AttributeType::NotSure,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x552d9ad5, L"usage", XFA_Attribute::Usage, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_ExportAndImport},
    {0x570ce835, L"presence", XFA_Attribute::Presence, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Visible},
    {0x5739d1ff, L"radixOffset", XFA_Attribute::RadixOffset,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x577682ac, L"preserve", XFA_Attribute::Preserve, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x58be2870, L"aliasNode", XFA_Attribute::AliasNode,
     XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
    {0x5a32e493, L"multiLine", XFA_Attribute::MultiLine,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x5a50e9e6, L"version", XFA_Attribute::Version, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x5ab23b6c, L"startChar", XFA_Attribute::StartChar,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x5b707a35, L"scriptTest", XFA_Attribute::ScriptTest,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Error},
    {0x5c054755, L"startAngle", XFA_Attribute::StartAngle,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 5)},
    {0x5ec958c0, L"cursorType", XFA_Attribute::CursorType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
     (void*)XFA_ATTRIBUTEENUM_ForwardOnly},
    {0x5f760b50, L"digitalSignature", XFA_Attribute::DigitalSignature,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x60a61edd, L"codeType", XFA_Attribute::CodeType, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x60d4c8b1, L"output", XFA_Attribute::Output, XFA_AttributeType::CData,
     XFA_XDPPACKET_ConnectionSet, nullptr},
    {0x64110ab5, L"bookendTrailer", XFA_Attribute::BookendTrailer,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x65e30c67, L"imagingBBox", XFA_Attribute::ImagingBBox,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"none"},
    {0x66539c48, L"excludeInitialCap", XFA_Attribute::ExcludeInitialCap,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x66642f8f, L"force", XFA_Attribute::Force, XFA_AttributeType::Boolean,
     XFA_XDPPACKET_Config, nullptr},
    {0x69aa2292, L"crlSign", XFA_Attribute::CrlSign, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x6a3405dd, L"previous", XFA_Attribute::Previous, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_None},
    {0x6a95c976, L"pushCharacterCount", XFA_Attribute::PushCharacterCount,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)3},
    {0x6b6ddcfb, L"nullTest", XFA_Attribute::NullTest, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Disabled},
    {0x6cfa828a, L"runAt", XFA_Attribute::RunAt, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Client},
    {0x731e0665, L"spaceBelow", XFA_Attribute::SpaceBelow,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x74788f8b, L"sweepAngle", XFA_Attribute::SweepAngle,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 7)},
    {0x78bff531, L"numberOfCells", XFA_Attribute::NumberOfCells,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x79543055, L"letterSpacing", XFA_Attribute::LetterSpacing,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x79975f2b, L"lockType", XFA_Attribute::LockType, XFA_AttributeType::Enum,
     XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ReadOnly},
    {0x7a0cc471, L"passwordChar", XFA_Attribute::PasswordChar,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"*"},
    {0x7a7cc341, L"vAlign", XFA_Attribute::VAlign, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
    {0x7b29630a, L"sourceBelow", XFA_Attribute::SourceBelow,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
     (void*)XFA_ATTRIBUTEENUM_Update},
    {0x7b95e661, L"inverted", XFA_Attribute::Inverted,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x7c2fd80b, L"mark", XFA_Attribute::Mark, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Default},
    {0x7c2ff6ae, L"maxH", XFA_Attribute::MaxH, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x7c2ff6bd, L"maxW", XFA_Attribute::MaxW, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x7c732a66, L"truncate", XFA_Attribute::Truncate,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x7d02356c, L"minH", XFA_Attribute::MinH, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x7d02357b, L"minW", XFA_Attribute::MinW, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x7d0b5fca, L"initial", XFA_Attribute::Initial, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
    {0x7d9fd7c5, L"mode", XFA_Attribute::Mode, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting},
    {0x7e7e845e, L"layout", XFA_Attribute::Layout, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Position},
    {0x7f6fd3d7, L"server", XFA_Attribute::Server, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x824f21b7, L"embedPDF", XFA_Attribute::EmbedPDF,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x8340ea66, L"oddOrEven", XFA_Attribute::OddOrEven,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Any},
    {0x836d4d7c, L"tabDefault", XFA_Attribute::TabDefault,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x8855805f, L"contains", XFA_Attribute::Contains, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Datasets, (void*)XFA_ATTRIBUTEENUM_Data},
    {0x8a692521, L"rightInset", XFA_Attribute::RightInset,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x8af2e657, L"maxChars", XFA_Attribute::MaxChars,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x8b90e1f2, L"open", XFA_Attribute::Open, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_UserControl},
    {0x8c99377e, L"relation", XFA_Attribute::Relation,
     XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x8d181d61, L"wideNarrowRatio", XFA_Attribute::WideNarrowRatio,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"3:1"},
    {0x8e1c2921, L"relevant", XFA_Attribute::Relevant, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x8e29d794, L"signatureType", XFA_Attribute::SignatureType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Filter},
    {0x8ec6204c, L"lineThroughPeriod", XFA_Attribute::LineThroughPeriod,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_All},
    {0x8ed182d1, L"shape", XFA_Attribute::Shape, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Square},
    {0x8fa01790, L"tabStops", XFA_Attribute::TabStops, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0x8fc36c0a, L"outputBelow", XFA_Attribute::OutputBelow,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
     (void*)XFA_ATTRIBUTEENUM_Warn},
    {0x9041d4b0, L"short", XFA_Attribute::Short, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0x907c7719, L"fontVerticalScale", XFA_Attribute::FontVerticalScale,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"100%"},
    {0x94446dcc, L"thickness", XFA_Attribute::Thickness,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 8)},
    {0x957fa006, L"commitOn", XFA_Attribute::CommitOn, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Select},
    {0x982bd892, L"remainCharacterCount", XFA_Attribute::RemainCharacterCount,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)3},
    {0x98fd4d81, L"keyAgreement", XFA_Attribute::KeyAgreement,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x99800d7a, L"errorCorrectionLevel", XFA_Attribute::ErrorCorrectionLevel,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0x9a63da3d, L"upsMode", XFA_Attribute::UpsMode, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_UsCarrier},
    {0x9cc17d75, L"mergeMode", XFA_Attribute::MergeMode,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_ConsumeData},
    {0x9d833d75, L"circular", XFA_Attribute::Circular,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0x9d8ee204, L"psName", XFA_Attribute::PsName, XFA_AttributeType::CData,
     XFA_XDPPACKET_Config, nullptr},
    {0x9dcc3ab3, L"trailer", XFA_Attribute::Trailer, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xa0933954, L"unicodeRange", XFA_Attribute::UnicodeRange,
     XFA_AttributeType::CData, XFA_XDPPACKET_Config, nullptr},
    {0xa1b0d2f5, L"executeType", XFA_Attribute::ExecuteType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Import},
    {0xa25a883d, L"duplexImposition", XFA_Attribute::DuplexImposition,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_LongEdge},
    {0xa42ca1b7, L"trayIn", XFA_Attribute::TrayIn, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xa433f001, L"bindingNode", XFA_Attribute::BindingNode,
     XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
    {0xa5340ff5, L"bofAction", XFA_Attribute::BofAction,
     XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
     (void*)XFA_ATTRIBUTEENUM_MoveFirst},
    {0xa5b410cf, L"save", XFA_Attribute::Save, XFA_AttributeType::Boolean,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
    {0xa6118c89, L"targetType", XFA_Attribute::TargetType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xa66404cb, L"keyEncipherment", XFA_Attribute::KeyEncipherment,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xa6710262, L"credentialServerPolicy",
     XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {0xa686975b, L"size", XFA_Attribute::Size, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 6)},
    {0xa85e74f3, L"initialNumber", XFA_Attribute::InitialNumber,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)1},
    {0xabef37e3, L"slope", XFA_Attribute::Slope, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Backslash},
    {0xabfa6c4f, L"cSpace", XFA_Attribute::CSpace, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"},
    {0xac06e2b0, L"colSpan", XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
    {0xadc4c77b, L"binding", XFA_Attribute::Binding, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xaf754613, L"checksum", XFA_Attribute::Checksum,
     XFA_AttributeType::NotSure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form, nullptr},
    {0xb045fbc5, L"charEncoding", XFA_Attribute::CharEncoding,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)L"UTF-8"},
    {0xb0e5485d, L"bind", XFA_Attribute::Bind, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet, nullptr},
    {0xb12128b7, L"textEntry", XFA_Attribute::TextEntry,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0xb373a862, L"archive", XFA_Attribute::Archive, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xb598a1f7, L"uuid", XFA_Attribute::Uuid, XFA_AttributeType::CData,
     XFA_XDPPACKET_XDP, nullptr},
    {0xb5e49bf2, L"posture", XFA_Attribute::Posture, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Normal},
    {0xb6b44172, L"after", XFA_Attribute::After, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xb716467b, L"orphans", XFA_Attribute::Orphans, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
    {0xbc0c4695, L"qualifiedName", XFA_Attribute::QualifiedName,
     XFA_AttributeType::CData, XFA_XDPPACKET_UNKNOWN, nullptr},
    {0xbc254332, L"usehref", XFA_Attribute::Usehref, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
     nullptr},
    {0xbc8fa350, L"locale", XFA_Attribute::Locale, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xbd6e1d88, L"weight", XFA_Attribute::Weight, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Normal},
    {0xbd96a0e9, L"underlinePeriod", XFA_Attribute::UnderlinePeriod,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_All},
    {0xbde9abda, L"data", XFA_Attribute::Data, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Link},
    {0xbe52dfbf, L"desc", XFA_Attribute::Desc, XFA_AttributeType::CData,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
    {0xbe9ba472, L"numbered", XFA_Attribute::Numbered,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)1},
    {0xc035c6b1, L"dataColumnCount", XFA_Attribute::DataColumnCount,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xc0ec9fa4, L"overline", XFA_Attribute::Overline,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0xc2ba0923, L"urlPolicy", XFA_Attribute::UrlPolicy,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xc2bd40fd, L"anchorType", XFA_Attribute::AnchorType,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_TopLeft},
    {0xc39a88bd, L"labelRef", XFA_Attribute::LabelRef, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xc3c1442f, L"bookendLeader", XFA_Attribute::BookendLeader,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xc4547a08, L"maxLength", XFA_Attribute::MaxLength,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)-1},
    {0xc4fed09b, L"accessKey", XFA_Attribute::AccessKey,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xc5762157, L"cursorLocation", XFA_Attribute::CursorLocation,
     XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
     (void*)XFA_ATTRIBUTEENUM_Client},
    {0xc860f30a, L"delayedOpen", XFA_Attribute::DelayedOpen,
     XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet, nullptr},
    {0xc8da4da7, L"target", XFA_Attribute::Target, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xca5dc27c, L"dataEncipherment", XFA_Attribute::DataEncipherment,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xcb150479, L"afterTarget", XFA_Attribute::AfterTarget,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xcbcaf66d, L"leader", XFA_Attribute::Leader, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xcca7897e, L"picker", XFA_Attribute::Picker, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Host},
    {0xcd7f7b54, L"from", XFA_Attribute::From, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
    {0xcea5e62c, L"baseProfile", XFA_Attribute::BaseProfile,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Full},
    {0xd171b240, L"aspect", XFA_Attribute::Aspect, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit},
    {0xd3c84d25, L"rowColumnRatio", XFA_Attribute::RowColumnRatio,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xd4b01921, L"lineHeight", XFA_Attribute::LineHeight,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 1)},
    {0xd4cc53f8, L"highlight", XFA_Attribute::Highlight,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Inverted},
    {0xd50f903a, L"valueRef", XFA_Attribute::ValueRef, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xd52482e0, L"maxEntries", XFA_Attribute::MaxEntries,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Config, (void*)5},
    {0xd57c513c, L"dataLength", XFA_Attribute::DataLength,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xd6128d8d, L"activity", XFA_Attribute::Activity, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Click},
    {0xd6a39990, L"input", XFA_Attribute::Input, XFA_AttributeType::CData,
     XFA_XDPPACKET_ConnectionSet, nullptr},
    {0xd6e27f1d, L"value", XFA_Attribute::Value, XFA_AttributeType::CData,
     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
     nullptr},
    {0xd70798c2, L"blankOrNotBlank", XFA_Attribute::BlankOrNotBlank,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Any},
    {0xd861f8af, L"addRevocationInfo", XFA_Attribute::AddRevocationInfo,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xd8f982bf, L"genericFamily", XFA_Attribute::GenericFamily,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
     (void*)XFA_ATTRIBUTEENUM_Serif},
    {0xd996fa9b, L"hand", XFA_Attribute::Hand, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Even},
    {0xdb55fec5, L"href", XFA_Attribute::Href, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xdc75676c, L"textEncoding", XFA_Attribute::TextEncoding,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xde7f92ba, L"leadDigits", XFA_Attribute::LeadDigits,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)-1},
    {0xe11a2cbc, L"permissions", XFA_Attribute::Permissions,
     XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)2},
    {0xe18b5659, L"spaceAbove", XFA_Attribute::SpaceAbove,
     XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0xe1a26b56, L"codeBase", XFA_Attribute::CodeBase, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xe349d044, L"stock", XFA_Attribute::Stock, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xe372ae97, L"isNull", XFA_Attribute::IsNull, XFA_AttributeType::Boolean,
     XFA_XDPPACKET_Datasets, (void*)0},
    {0xe4c3a5e5, L"restoreState", XFA_Attribute::RestoreState,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Manual},
    {0xe5c96d6a, L"excludeAllCaps", XFA_Attribute::ExcludeAllCaps,
     XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)0},
    {0xe64b1129, L"formatTest", XFA_Attribute::FormatTest,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Warning},
    {0xe6f99487, L"hScrollPolicy", XFA_Attribute::HScrollPolicy,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xe8dddf50, L"join", XFA_Attribute::Join, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Square},
    {0xe8f118a8, L"keyCertSign", XFA_Attribute::KeyCertSign,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xe948b9a8, L"radius", XFA_Attribute::Radius, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0xe996b2fe, L"sourceAbove", XFA_Attribute::SourceAbove,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
     (void*)XFA_ATTRIBUTEENUM_Warn},
    {0xea7090a0, L"override", XFA_Attribute::Override,
     XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xeb091003, L"classId", XFA_Attribute::ClassId, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xeb511b54, L"disable", XFA_Attribute::Disable, XFA_AttributeType::Boolean,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
    {0xeda9017a, L"scope", XFA_Attribute::Scope, XFA_AttributeType::NotSure,
     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xf197844d, L"match", XFA_Attribute::Match, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Once},
    {0xf2009339, L"placement", XFA_Attribute::Placement,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Left},
    {0xf4ffce73, L"before", XFA_Attribute::Before, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_Auto},
    {0xf531b059, L"writingScript", XFA_Attribute::WritingScript,
     XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
     (void*)XFA_ATTRIBUTEENUM_Asterisk},
    {0xf575ca75, L"endChar", XFA_Attribute::EndChar, XFA_AttributeType::CData,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
    {0xf6b47749, L"lock", XFA_Attribute::Lock, XFA_AttributeType::Integer,
     XFA_XDPPACKET_Config, (void*)0},
    {0xf6b4afb0, L"long", XFA_Attribute::Long, XFA_AttributeType::Measure,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)(g_XFAMeasurementData + 0)},
    {0xf6b59543, L"intact", XFA_Attribute::Intact, XFA_AttributeType::Enum,
     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     (void*)XFA_ATTRIBUTEENUM_None},
    {0xf889e747, L"xdpContent", XFA_Attribute::XdpContent,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
    {0xfea53ec6, L"decipherOnly", XFA_Attribute::DecipherOnly,
     XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
     nullptr},
};
const int32_t g_iXFAAttributeCount =
    sizeof(g_XFAAttributeData) / sizeof(XFA_ATTRIBUTEINFO);

const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[] = {
    {XFA_Element::SubformSet, XFA_Attribute::Relation, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Ordered},
    {XFA_Element::NumberPattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Numeric},
    {XFA_Element::KeyUsage, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::LabelPrinter, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Zpl},
    {XFA_Element::CalendarSymbols, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Gregorian},
    {XFA_Element::Barcode, XFA_Attribute::Type, XFA_AttributeType::CData,
     nullptr},
    {XFA_Element::Barcode, XFA_Attribute::Checksum, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_None},
    {XFA_Element::TimePattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Med},
    {XFA_Element::BatchOutput, XFA_Attribute::Format, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_None},
    {XFA_Element::SubjectDNs, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Issuers, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::EncryptionMethods, XFA_Attribute::Type,
     XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Pattern, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_CrossHatch},
    {XFA_Element::Compress, XFA_Attribute::Scope, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_ImageOnly},
    {XFA_Element::Image, XFA_Attribute::TransferEncoding,
     XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Base64},
    {XFA_Element::TimeStamp, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Subform, XFA_Attribute::Scope, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Name},
    {XFA_Element::Handler, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Record, XFA_Attribute::Max, XFA_AttributeType::Integer,
     (void*)0},
    {XFA_Element::Command, XFA_Attribute::Timeout, XFA_AttributeType::Integer,
     (void*)30},
    {XFA_Element::DigestMethods, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::PageSet, XFA_Attribute::Relation, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence},
    {XFA_Element::Equate, XFA_Attribute::From, XFA_AttributeType::CData,
     nullptr},
    {XFA_Element::Equate, XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
    {XFA_Element::Traverse, XFA_Attribute::Operation, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Next},
    {XFA_Element::Encodings, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Signing, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Oids, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Signature, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_PDF1_3},
    {XFA_Element::ExData, XFA_Attribute::TransferEncoding,
     XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None},
    {XFA_Element::Linear, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_ToRight},
    {XFA_Element::CurrencySymbol, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Symbol},
    {XFA_Element::EquateRange, XFA_Attribute::From, XFA_AttributeType::CData,
     nullptr},
    {XFA_Element::EquateRange, XFA_Attribute::To, XFA_AttributeType::CData,
     nullptr},
    {XFA_Element::SignData, XFA_Attribute::Operation, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Sign},
    {XFA_Element::DatePattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Med},
    {XFA_Element::Bind, XFA_Attribute::TransferEncoding,
     XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None},
    {XFA_Element::Reasons, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::AppearanceFilter, XFA_Attribute::Type,
     XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Form, XFA_Attribute::Checksum, XFA_AttributeType::CData,
     nullptr},
    {XFA_Element::Value, XFA_Attribute::Override, XFA_AttributeType::Boolean,
     (void*)0},
    {XFA_Element::Calculate, XFA_Attribute::Override, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Error},
    {XFA_Element::Connect, XFA_Attribute::Timeout, XFA_AttributeType::Integer,
     (void*)15},
    {XFA_Element::Submit, XFA_Attribute::Format, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Xdp},
    {XFA_Element::Radial, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_ToEdge},
    {XFA_Element::LockDocument, XFA_Attribute::Type, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Optional},
    {XFA_Element::Occur, XFA_Attribute::Max, XFA_AttributeType::Integer,
     (void*)1},
    {XFA_Element::NumberSymbol, XFA_Attribute::Name, XFA_AttributeType::Enum,
     (void*)XFA_ATTRIBUTEENUM_Decimal},
};
const int32_t g_iXFANotsureCount =
    sizeof(g_XFANotsureAttributes) / sizeof(XFA_NOTSUREATTRIBUTE);
