"""Support for simplified access to data on nodes of type omni.graph.examples.python.UniversalAdd

Python-based universal add node for all types. This file is generated using UniversalAddGenerator.py
"""

import numpy
import sys
import traceback

import omni.graph.core as og
import omni.graph.core._omni_graph_core as _og
import omni.graph.tools.ogn as ogn



class OgnPyUniversalAddDatabase(og.Database):
    """Helper class providing simplified access to data on nodes of type omni.graph.examples.python.UniversalAdd

    Class Members:
        node: Node being evaluated

    Attribute Value Properties:
        Inputs:
            inputs.bool_0
            inputs.bool_1
            inputs.bool_arr_0
            inputs.bool_arr_1
            inputs.colord3_0
            inputs.colord3_1
            inputs.colord3_arr_0
            inputs.colord3_arr_1
            inputs.colord4_0
            inputs.colord4_1
            inputs.colord4_arr_0
            inputs.colord4_arr_1
            inputs.colorf3_0
            inputs.colorf3_1
            inputs.colorf3_arr_0
            inputs.colorf3_arr_1
            inputs.colorf4_0
            inputs.colorf4_1
            inputs.colorf4_arr_0
            inputs.colorf4_arr_1
            inputs.colorh3_0
            inputs.colorh3_1
            inputs.colorh3_arr_0
            inputs.colorh3_arr_1
            inputs.colorh4_0
            inputs.colorh4_1
            inputs.colorh4_arr_0
            inputs.colorh4_arr_1
            inputs.double2_0
            inputs.double2_1
            inputs.double2_arr_0
            inputs.double2_arr_1
            inputs.double3_0
            inputs.double3_1
            inputs.double3_arr_0
            inputs.double3_arr_1
            inputs.double4_0
            inputs.double4_1
            inputs.double4_arr_0
            inputs.double4_arr_1
            inputs.double_0
            inputs.double_1
            inputs.double_arr_0
            inputs.double_arr_1
            inputs.float2_0
            inputs.float2_1
            inputs.float2_arr_0
            inputs.float2_arr_1
            inputs.float3_0
            inputs.float3_1
            inputs.float3_arr_0
            inputs.float3_arr_1
            inputs.float4_0
            inputs.float4_1
            inputs.float4_arr_0
            inputs.float4_arr_1
            inputs.float_0
            inputs.float_1
            inputs.float_arr_0
            inputs.float_arr_1
            inputs.frame4_0
            inputs.frame4_1
            inputs.frame4_arr_0
            inputs.frame4_arr_1
            inputs.half2_0
            inputs.half2_1
            inputs.half2_arr_0
            inputs.half2_arr_1
            inputs.half3_0
            inputs.half3_1
            inputs.half3_arr_0
            inputs.half3_arr_1
            inputs.half4_0
            inputs.half4_1
            inputs.half4_arr_0
            inputs.half4_arr_1
            inputs.half_0
            inputs.half_1
            inputs.half_arr_0
            inputs.half_arr_1
            inputs.int2_0
            inputs.int2_1
            inputs.int2_arr_0
            inputs.int2_arr_1
            inputs.int3_0
            inputs.int3_1
            inputs.int3_arr_0
            inputs.int3_arr_1
            inputs.int4_0
            inputs.int4_1
            inputs.int4_arr_0
            inputs.int4_arr_1
            inputs.int64_0
            inputs.int64_1
            inputs.int64_arr_0
            inputs.int64_arr_1
            inputs.int_0
            inputs.int_1
            inputs.int_arr_0
            inputs.int_arr_1
            inputs.matrixd2_0
            inputs.matrixd2_1
            inputs.matrixd2_arr_0
            inputs.matrixd2_arr_1
            inputs.matrixd3_0
            inputs.matrixd3_1
            inputs.matrixd3_arr_0
            inputs.matrixd3_arr_1
            inputs.matrixd4_0
            inputs.matrixd4_1
            inputs.matrixd4_arr_0
            inputs.matrixd4_arr_1
            inputs.normald3_0
            inputs.normald3_1
            inputs.normald3_arr_0
            inputs.normald3_arr_1
            inputs.normalf3_0
            inputs.normalf3_1
            inputs.normalf3_arr_0
            inputs.normalf3_arr_1
            inputs.normalh3_0
            inputs.normalh3_1
            inputs.normalh3_arr_0
            inputs.normalh3_arr_1
            inputs.pointd3_0
            inputs.pointd3_1
            inputs.pointd3_arr_0
            inputs.pointd3_arr_1
            inputs.pointf3_0
            inputs.pointf3_1
            inputs.pointf3_arr_0
            inputs.pointf3_arr_1
            inputs.pointh3_0
            inputs.pointh3_1
            inputs.pointh3_arr_0
            inputs.pointh3_arr_1
            inputs.quatd4_0
            inputs.quatd4_1
            inputs.quatd4_arr_0
            inputs.quatd4_arr_1
            inputs.quatf4_0
            inputs.quatf4_1
            inputs.quatf4_arr_0
            inputs.quatf4_arr_1
            inputs.quath4_0
            inputs.quath4_1
            inputs.quath4_arr_0
            inputs.quath4_arr_1
            inputs.texcoordd2_0
            inputs.texcoordd2_1
            inputs.texcoordd2_arr_0
            inputs.texcoordd2_arr_1
            inputs.texcoordd3_0
            inputs.texcoordd3_1
            inputs.texcoordd3_arr_0
            inputs.texcoordd3_arr_1
            inputs.texcoordf2_0
            inputs.texcoordf2_1
            inputs.texcoordf2_arr_0
            inputs.texcoordf2_arr_1
            inputs.texcoordf3_0
            inputs.texcoordf3_1
            inputs.texcoordf3_arr_0
            inputs.texcoordf3_arr_1
            inputs.texcoordh2_0
            inputs.texcoordh2_1
            inputs.texcoordh2_arr_0
            inputs.texcoordh2_arr_1
            inputs.texcoordh3_0
            inputs.texcoordh3_1
            inputs.texcoordh3_arr_0
            inputs.texcoordh3_arr_1
            inputs.timecode_0
            inputs.timecode_1
            inputs.timecode_arr_0
            inputs.timecode_arr_1
            inputs.token_0
            inputs.token_1
            inputs.token_arr_0
            inputs.token_arr_1
            inputs.transform4_0
            inputs.transform4_1
            inputs.transform4_arr_0
            inputs.transform4_arr_1
            inputs.uchar_0
            inputs.uchar_1
            inputs.uchar_arr_0
            inputs.uchar_arr_1
            inputs.uint64_0
            inputs.uint64_1
            inputs.uint64_arr_0
            inputs.uint64_arr_1
            inputs.uint_0
            inputs.uint_1
            inputs.uint_arr_0
            inputs.uint_arr_1
            inputs.vectord3_0
            inputs.vectord3_1
            inputs.vectord3_arr_0
            inputs.vectord3_arr_1
            inputs.vectorf3_0
            inputs.vectorf3_1
            inputs.vectorf3_arr_0
            inputs.vectorf3_arr_1
            inputs.vectorh3_0
            inputs.vectorh3_1
            inputs.vectorh3_arr_0
            inputs.vectorh3_arr_1
        Outputs:
            outputs.bool_0
            outputs.bool_arr_0
            outputs.colord3_0
            outputs.colord3_arr_0
            outputs.colord4_0
            outputs.colord4_arr_0
            outputs.colorf3_0
            outputs.colorf3_arr_0
            outputs.colorf4_0
            outputs.colorf4_arr_0
            outputs.colorh3_0
            outputs.colorh3_arr_0
            outputs.colorh4_0
            outputs.colorh4_arr_0
            outputs.double2_0
            outputs.double2_arr_0
            outputs.double3_0
            outputs.double3_arr_0
            outputs.double4_0
            outputs.double4_arr_0
            outputs.double_0
            outputs.double_arr_0
            outputs.float2_0
            outputs.float2_arr_0
            outputs.float3_0
            outputs.float3_arr_0
            outputs.float4_0
            outputs.float4_arr_0
            outputs.float_0
            outputs.float_arr_0
            outputs.frame4_0
            outputs.frame4_arr_0
            outputs.half2_0
            outputs.half2_arr_0
            outputs.half3_0
            outputs.half3_arr_0
            outputs.half4_0
            outputs.half4_arr_0
            outputs.half_0
            outputs.half_arr_0
            outputs.int2_0
            outputs.int2_arr_0
            outputs.int3_0
            outputs.int3_arr_0
            outputs.int4_0
            outputs.int4_arr_0
            outputs.int64_0
            outputs.int64_arr_0
            outputs.int_0
            outputs.int_arr_0
            outputs.matrixd2_0
            outputs.matrixd2_arr_0
            outputs.matrixd3_0
            outputs.matrixd3_arr_0
            outputs.matrixd4_0
            outputs.matrixd4_arr_0
            outputs.normald3_0
            outputs.normald3_arr_0
            outputs.normalf3_0
            outputs.normalf3_arr_0
            outputs.normalh3_0
            outputs.normalh3_arr_0
            outputs.pointd3_0
            outputs.pointd3_arr_0
            outputs.pointf3_0
            outputs.pointf3_arr_0
            outputs.pointh3_0
            outputs.pointh3_arr_0
            outputs.quatd4_0
            outputs.quatd4_arr_0
            outputs.quatf4_0
            outputs.quatf4_arr_0
            outputs.quath4_0
            outputs.quath4_arr_0
            outputs.texcoordd2_0
            outputs.texcoordd2_arr_0
            outputs.texcoordd3_0
            outputs.texcoordd3_arr_0
            outputs.texcoordf2_0
            outputs.texcoordf2_arr_0
            outputs.texcoordf3_0
            outputs.texcoordf3_arr_0
            outputs.texcoordh2_0
            outputs.texcoordh2_arr_0
            outputs.texcoordh3_0
            outputs.texcoordh3_arr_0
            outputs.timecode_0
            outputs.timecode_arr_0
            outputs.token_0
            outputs.token_arr_0
            outputs.transform4_0
            outputs.transform4_arr_0
            outputs.uchar_0
            outputs.uchar_arr_0
            outputs.uint64_0
            outputs.uint64_arr_0
            outputs.uint_0
            outputs.uint_arr_0
            outputs.vectord3_0
            outputs.vectord3_arr_0
            outputs.vectorf3_0
            outputs.vectorf3_arr_0
            outputs.vectorh3_0
            outputs.vectorh3_arr_0
    """

    # Imprint the generator and target ABI versions in the file for JIT generation
    GENERATOR_VERSION = (1, 41, 3)
    TARGET_VERSION = (2, 139, 12)

    # This is an internal object that provides per-class storage of a per-node data dictionary
    PER_NODE_DATA = {}

    # This is an internal object that describes unchanging attributes in a generic way
    # The values in this list are in no particular order, as a per-attribute tuple
    #     Name, Type, ExtendedTypeIndex, UiName, Description, Metadata,
    #     Is_Required, DefaultValue, Is_Deprecated, DeprecationMsg
    # You should not need to access any of this data directly, use the defined database interfaces
    INTERFACE = og.Database._get_interface([
        ('inputs:bool_0', 'bool', 0, None, 'Input of type bool', {ogn.MetadataKeys.DEFAULT: 'false'}, True, False, False, ''),
        ('inputs:bool_1', 'bool', 0, None, 'Input of type bool', {ogn.MetadataKeys.DEFAULT: 'false'}, True, False, False, ''),
        ('inputs:bool_arr_0', 'bool[]', 0, None, 'Input of type bool[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:bool_arr_1', 'bool[]', 0, None, 'Input of type bool[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colord3_0', 'color3d', 0, None, 'Input of type colord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colord3_1', 'color3d', 0, None, 'Input of type colord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colord3_arr_0', 'color3d[]', 0, None, 'Input of type colord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colord3_arr_1', 'color3d[]', 0, None, 'Input of type colord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colord4_0', 'color4d', 0, None, 'Input of type colord[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colord4_1', 'color4d', 0, None, 'Input of type colord[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colord4_arr_0', 'color4d[]', 0, None, 'Input of type colord[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colord4_arr_1', 'color4d[]', 0, None, 'Input of type colord[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorf3_0', 'color3f', 0, None, 'Input of type colorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colorf3_1', 'color3f', 0, None, 'Input of type colorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colorf3_arr_0', 'color3f[]', 0, None, 'Input of type colorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorf3_arr_1', 'color3f[]', 0, None, 'Input of type colorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorf4_0', 'color4f', 0, None, 'Input of type colorf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colorf4_1', 'color4f', 0, None, 'Input of type colorf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colorf4_arr_0', 'color4f[]', 0, None, 'Input of type colorf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorf4_arr_1', 'color4f[]', 0, None, 'Input of type colorf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorh3_0', 'color3h', 0, None, 'Input of type colorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colorh3_1', 'color3h', 0, None, 'Input of type colorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:colorh3_arr_0', 'color3h[]', 0, None, 'Input of type colorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorh3_arr_1', 'color3h[]', 0, None, 'Input of type colorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorh4_0', 'color4h', 0, None, 'Input of type colorh[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colorh4_1', 'color4h', 0, None, 'Input of type colorh[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:colorh4_arr_0', 'color4h[]', 0, None, 'Input of type colorh[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:colorh4_arr_1', 'color4h[]', 0, None, 'Input of type colorh[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double2_0', 'double2', 0, None, 'Input of type double[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:double2_1', 'double2', 0, None, 'Input of type double[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:double2_arr_0', 'double2[]', 0, None, 'Input of type double[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double2_arr_1', 'double2[]', 0, None, 'Input of type double[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double3_0', 'double3', 0, None, 'Input of type double[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:double3_1', 'double3', 0, None, 'Input of type double[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:double3_arr_0', 'double3[]', 0, None, 'Input of type double[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double3_arr_1', 'double3[]', 0, None, 'Input of type double[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double4_0', 'double4', 0, None, 'Input of type double[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:double4_1', 'double4', 0, None, 'Input of type double[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:double4_arr_0', 'double4[]', 0, None, 'Input of type double[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double4_arr_1', 'double4[]', 0, None, 'Input of type double[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double_0', 'double', 0, None, 'Input of type double', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:double_1', 'double', 0, None, 'Input of type double', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:double_arr_0', 'double[]', 0, None, 'Input of type double[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:double_arr_1', 'double[]', 0, None, 'Input of type double[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float2_0', 'float2', 0, None, 'Input of type float[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:float2_1', 'float2', 0, None, 'Input of type float[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:float2_arr_0', 'float2[]', 0, None, 'Input of type float[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float2_arr_1', 'float2[]', 0, None, 'Input of type float[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float3_0', 'float3', 0, None, 'Input of type float[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:float3_1', 'float3', 0, None, 'Input of type float[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:float3_arr_0', 'float3[]', 0, None, 'Input of type float[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float3_arr_1', 'float3[]', 0, None, 'Input of type float[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float4_0', 'float4', 0, None, 'Input of type float[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:float4_1', 'float4', 0, None, 'Input of type float[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:float4_arr_0', 'float4[]', 0, None, 'Input of type float[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float4_arr_1', 'float4[]', 0, None, 'Input of type float[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float_0', 'float', 0, None, 'Input of type float', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:float_1', 'float', 0, None, 'Input of type float', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:float_arr_0', 'float[]', 0, None, 'Input of type float[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:float_arr_1', 'float[]', 0, None, 'Input of type float[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:frame4_0', 'frame4d', 0, None, 'Input of type frame[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:frame4_1', 'frame4d', 0, None, 'Input of type frame[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:frame4_arr_0', 'frame4d[]', 0, None, 'Input of type frame[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:frame4_arr_1', 'frame4d[]', 0, None, 'Input of type frame[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half2_0', 'half2', 0, None, 'Input of type half[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:half2_1', 'half2', 0, None, 'Input of type half[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:half2_arr_0', 'half2[]', 0, None, 'Input of type half[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half2_arr_1', 'half2[]', 0, None, 'Input of type half[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half3_0', 'half3', 0, None, 'Input of type half[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:half3_1', 'half3', 0, None, 'Input of type half[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:half3_arr_0', 'half3[]', 0, None, 'Input of type half[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half3_arr_1', 'half3[]', 0, None, 'Input of type half[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half4_0', 'half4', 0, None, 'Input of type half[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:half4_1', 'half4', 0, None, 'Input of type half[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:half4_arr_0', 'half4[]', 0, None, 'Input of type half[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half4_arr_1', 'half4[]', 0, None, 'Input of type half[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half_0', 'half', 0, None, 'Input of type half', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:half_1', 'half', 0, None, 'Input of type half', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:half_arr_0', 'half[]', 0, None, 'Input of type half[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:half_arr_1', 'half[]', 0, None, 'Input of type half[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int2_0', 'int2', 0, None, 'Input of type int[2]', {ogn.MetadataKeys.DEFAULT: '[0, 0]'}, True, [0, 0], False, ''),
        ('inputs:int2_1', 'int2', 0, None, 'Input of type int[2]', {ogn.MetadataKeys.DEFAULT: '[0, 0]'}, True, [0, 0], False, ''),
        ('inputs:int2_arr_0', 'int2[]', 0, None, 'Input of type int[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int2_arr_1', 'int2[]', 0, None, 'Input of type int[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int3_0', 'int3', 0, None, 'Input of type int[3]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0]'}, True, [0, 0, 0], False, ''),
        ('inputs:int3_1', 'int3', 0, None, 'Input of type int[3]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0]'}, True, [0, 0, 0], False, ''),
        ('inputs:int3_arr_0', 'int3[]', 0, None, 'Input of type int[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int3_arr_1', 'int3[]', 0, None, 'Input of type int[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int4_0', 'int4', 0, None, 'Input of type int[4]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0, 0]'}, True, [0, 0, 0, 0], False, ''),
        ('inputs:int4_1', 'int4', 0, None, 'Input of type int[4]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0, 0]'}, True, [0, 0, 0, 0], False, ''),
        ('inputs:int4_arr_0', 'int4[]', 0, None, 'Input of type int[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int4_arr_1', 'int4[]', 0, None, 'Input of type int[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int64_0', 'int64', 0, None, 'Input of type int64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:int64_1', 'int64', 0, None, 'Input of type int64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:int64_arr_0', 'int64[]', 0, None, 'Input of type int64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int64_arr_1', 'int64[]', 0, None, 'Input of type int64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int_0', 'int', 0, None, 'Input of type int', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:int_1', 'int', 0, None, 'Input of type int', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:int_arr_0', 'int[]', 0, None, 'Input of type int[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:int_arr_1', 'int[]', 0, None, 'Input of type int[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd2_0', 'matrix2d', 0, None, 'Input of type matrixd[2]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0], [0.0, 0.0]]'}, True, [[0.0, 0.0], [0.0, 0.0]], False, ''),
        ('inputs:matrixd2_1', 'matrix2d', 0, None, 'Input of type matrixd[2]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0], [0.0, 0.0]]'}, True, [[0.0, 0.0], [0.0, 0.0]], False, ''),
        ('inputs:matrixd2_arr_0', 'matrix2d[]', 0, None, 'Input of type matrixd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd2_arr_1', 'matrix2d[]', 0, None, 'Input of type matrixd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd3_0', 'matrix3d', 0, None, 'Input of type matrixd[3]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], False, ''),
        ('inputs:matrixd3_1', 'matrix3d', 0, None, 'Input of type matrixd[3]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], False, ''),
        ('inputs:matrixd3_arr_0', 'matrix3d[]', 0, None, 'Input of type matrixd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd3_arr_1', 'matrix3d[]', 0, None, 'Input of type matrixd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd4_0', 'matrix4d', 0, None, 'Input of type matrixd[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:matrixd4_1', 'matrix4d', 0, None, 'Input of type matrixd[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:matrixd4_arr_0', 'matrix4d[]', 0, None, 'Input of type matrixd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:matrixd4_arr_1', 'matrix4d[]', 0, None, 'Input of type matrixd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normald3_0', 'normal3d', 0, None, 'Input of type normald[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normald3_1', 'normal3d', 0, None, 'Input of type normald[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normald3_arr_0', 'normal3d[]', 0, None, 'Input of type normald[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normald3_arr_1', 'normal3d[]', 0, None, 'Input of type normald[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normalf3_0', 'normal3f', 0, None, 'Input of type normalf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normalf3_1', 'normal3f', 0, None, 'Input of type normalf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normalf3_arr_0', 'normal3f[]', 0, None, 'Input of type normalf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normalf3_arr_1', 'normal3f[]', 0, None, 'Input of type normalf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normalh3_0', 'normal3h', 0, None, 'Input of type normalh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normalh3_1', 'normal3h', 0, None, 'Input of type normalh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:normalh3_arr_0', 'normal3h[]', 0, None, 'Input of type normalh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:normalh3_arr_1', 'normal3h[]', 0, None, 'Input of type normalh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointd3_0', 'point3d', 0, None, 'Input of type pointd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointd3_1', 'point3d', 0, None, 'Input of type pointd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointd3_arr_0', 'point3d[]', 0, None, 'Input of type pointd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointd3_arr_1', 'point3d[]', 0, None, 'Input of type pointd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointf3_0', 'point3f', 0, None, 'Input of type pointf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointf3_1', 'point3f', 0, None, 'Input of type pointf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointf3_arr_0', 'point3f[]', 0, None, 'Input of type pointf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointf3_arr_1', 'point3f[]', 0, None, 'Input of type pointf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointh3_0', 'point3h', 0, None, 'Input of type pointh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointh3_1', 'point3h', 0, None, 'Input of type pointh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:pointh3_arr_0', 'point3h[]', 0, None, 'Input of type pointh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:pointh3_arr_1', 'point3h[]', 0, None, 'Input of type pointh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quatd4_0', 'quatd', 0, None, 'Input of type quatd[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quatd4_1', 'quatd', 0, None, 'Input of type quatd[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quatd4_arr_0', 'quatd[]', 0, None, 'Input of type quatd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quatd4_arr_1', 'quatd[]', 0, None, 'Input of type quatd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quatf4_0', 'quatf', 0, None, 'Input of type quatf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quatf4_1', 'quatf', 0, None, 'Input of type quatf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quatf4_arr_0', 'quatf[]', 0, None, 'Input of type quatf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quatf4_arr_1', 'quatf[]', 0, None, 'Input of type quatf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quath4_0', 'quath', 0, None, 'Input of type quath[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quath4_1', 'quath', 0, None, 'Input of type quath[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('inputs:quath4_arr_0', 'quath[]', 0, None, 'Input of type quath[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:quath4_arr_1', 'quath[]', 0, None, 'Input of type quath[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordd2_0', 'texCoord2d', 0, None, 'Input of type texcoordd[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordd2_1', 'texCoord2d', 0, None, 'Input of type texcoordd[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordd2_arr_0', 'texCoord2d[]', 0, None, 'Input of type texcoordd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordd2_arr_1', 'texCoord2d[]', 0, None, 'Input of type texcoordd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordd3_0', 'texCoord3d', 0, None, 'Input of type texcoordd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordd3_1', 'texCoord3d', 0, None, 'Input of type texcoordd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordd3_arr_0', 'texCoord3d[]', 0, None, 'Input of type texcoordd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordd3_arr_1', 'texCoord3d[]', 0, None, 'Input of type texcoordd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordf2_0', 'texCoord2f', 0, None, 'Input of type texcoordf[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordf2_1', 'texCoord2f', 0, None, 'Input of type texcoordf[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordf2_arr_0', 'texCoord2f[]', 0, None, 'Input of type texcoordf[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordf2_arr_1', 'texCoord2f[]', 0, None, 'Input of type texcoordf[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordf3_0', 'texCoord3f', 0, None, 'Input of type texcoordf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordf3_1', 'texCoord3f', 0, None, 'Input of type texcoordf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordf3_arr_0', 'texCoord3f[]', 0, None, 'Input of type texcoordf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordf3_arr_1', 'texCoord3f[]', 0, None, 'Input of type texcoordf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordh2_0', 'texCoord2h', 0, None, 'Input of type texcoordh[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordh2_1', 'texCoord2h', 0, None, 'Input of type texcoordh[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('inputs:texcoordh2_arr_0', 'texCoord2h[]', 0, None, 'Input of type texcoordh[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordh2_arr_1', 'texCoord2h[]', 0, None, 'Input of type texcoordh[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordh3_0', 'texCoord3h', 0, None, 'Input of type texcoordh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordh3_1', 'texCoord3h', 0, None, 'Input of type texcoordh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:texcoordh3_arr_0', 'texCoord3h[]', 0, None, 'Input of type texcoordh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:texcoordh3_arr_1', 'texCoord3h[]', 0, None, 'Input of type texcoordh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:timecode_0', 'timecode', 0, None, 'Input of type timecode', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:timecode_1', 'timecode', 0, None, 'Input of type timecode', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('inputs:timecode_arr_0', 'timecode[]', 0, None, 'Input of type timecode[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:timecode_arr_1', 'timecode[]', 0, None, 'Input of type timecode[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:token_0', 'token', 0, None, 'Input of type token', {ogn.MetadataKeys.DEFAULT: '"default_token"'}, True, "default_token", False, ''),
        ('inputs:token_1', 'token', 0, None, 'Input of type token', {ogn.MetadataKeys.DEFAULT: '"default_token"'}, True, "default_token", False, ''),
        ('inputs:token_arr_0', 'token[]', 0, None, 'Input of type token[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:token_arr_1', 'token[]', 0, None, 'Input of type token[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:transform4_0', 'frame4d', 0, None, 'Input of type transform[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:transform4_1', 'frame4d', 0, None, 'Input of type transform[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('inputs:transform4_arr_0', 'frame4d[]', 0, None, 'Input of type transform[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:transform4_arr_1', 'frame4d[]', 0, None, 'Input of type transform[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uchar_0', 'uchar', 0, None, 'Input of type uchar', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uchar_1', 'uchar', 0, None, 'Input of type uchar', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uchar_arr_0', 'uchar[]', 0, None, 'Input of type uchar[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uchar_arr_1', 'uchar[]', 0, None, 'Input of type uchar[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uint64_0', 'uint64', 0, None, 'Input of type uint64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uint64_1', 'uint64', 0, None, 'Input of type uint64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uint64_arr_0', 'uint64[]', 0, None, 'Input of type uint64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uint64_arr_1', 'uint64[]', 0, None, 'Input of type uint64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uint_0', 'uint', 0, None, 'Input of type uint', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uint_1', 'uint', 0, None, 'Input of type uint', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('inputs:uint_arr_0', 'uint[]', 0, None, 'Input of type uint[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:uint_arr_1', 'uint[]', 0, None, 'Input of type uint[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectord3_0', 'vector3d', 0, None, 'Input of type vectord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectord3_1', 'vector3d', 0, None, 'Input of type vectord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectord3_arr_0', 'vector3d[]', 0, None, 'Input of type vectord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectord3_arr_1', 'vector3d[]', 0, None, 'Input of type vectord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectorf3_0', 'vector3f', 0, None, 'Input of type vectorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectorf3_1', 'vector3f', 0, None, 'Input of type vectorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectorf3_arr_0', 'vector3f[]', 0, None, 'Input of type vectorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectorf3_arr_1', 'vector3f[]', 0, None, 'Input of type vectorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectorh3_0', 'vector3h', 0, None, 'Input of type vectorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectorh3_1', 'vector3h', 0, None, 'Input of type vectorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('inputs:vectorh3_arr_0', 'vector3h[]', 0, None, 'Input of type vectorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('inputs:vectorh3_arr_1', 'vector3h[]', 0, None, 'Input of type vectorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:bool_0', 'bool', 0, None, 'Output of type bool', {ogn.MetadataKeys.DEFAULT: 'false'}, True, False, False, ''),
        ('outputs:bool_arr_0', 'bool[]', 0, None, 'Output of type bool[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colord3_0', 'color3d', 0, None, 'Output of type colord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:colord3_arr_0', 'color3d[]', 0, None, 'Output of type colord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colord4_0', 'color4d', 0, None, 'Output of type colord[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:colord4_arr_0', 'color4d[]', 0, None, 'Output of type colord[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colorf3_0', 'color3f', 0, None, 'Output of type colorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:colorf3_arr_0', 'color3f[]', 0, None, 'Output of type colorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colorf4_0', 'color4f', 0, None, 'Output of type colorf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:colorf4_arr_0', 'color4f[]', 0, None, 'Output of type colorf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colorh3_0', 'color3h', 0, None, 'Output of type colorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:colorh3_arr_0', 'color3h[]', 0, None, 'Output of type colorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:colorh4_0', 'color4h', 0, None, 'Output of type colorh[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:colorh4_arr_0', 'color4h[]', 0, None, 'Output of type colorh[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:double2_0', 'double2', 0, None, 'Output of type double[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:double2_arr_0', 'double2[]', 0, None, 'Output of type double[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:double3_0', 'double3', 0, None, 'Output of type double[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:double3_arr_0', 'double3[]', 0, None, 'Output of type double[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:double4_0', 'double4', 0, None, 'Output of type double[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:double4_arr_0', 'double4[]', 0, None, 'Output of type double[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:double_0', 'double', 0, None, 'Output of type double', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('outputs:double_arr_0', 'double[]', 0, None, 'Output of type double[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:float2_0', 'float2', 0, None, 'Output of type float[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:float2_arr_0', 'float2[]', 0, None, 'Output of type float[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:float3_0', 'float3', 0, None, 'Output of type float[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:float3_arr_0', 'float3[]', 0, None, 'Output of type float[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:float4_0', 'float4', 0, None, 'Output of type float[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:float4_arr_0', 'float4[]', 0, None, 'Output of type float[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:float_0', 'float', 0, None, 'Output of type float', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('outputs:float_arr_0', 'float[]', 0, None, 'Output of type float[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:frame4_0', 'frame4d', 0, None, 'Output of type frame[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('outputs:frame4_arr_0', 'frame4d[]', 0, None, 'Output of type frame[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:half2_0', 'half2', 0, None, 'Output of type half[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:half2_arr_0', 'half2[]', 0, None, 'Output of type half[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:half3_0', 'half3', 0, None, 'Output of type half[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:half3_arr_0', 'half3[]', 0, None, 'Output of type half[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:half4_0', 'half4', 0, None, 'Output of type half[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:half4_arr_0', 'half4[]', 0, None, 'Output of type half[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:half_0', 'half', 0, None, 'Output of type half', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('outputs:half_arr_0', 'half[]', 0, None, 'Output of type half[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:int2_0', 'int2', 0, None, 'Output of type int[2]', {ogn.MetadataKeys.DEFAULT: '[0, 0]'}, True, [0, 0], False, ''),
        ('outputs:int2_arr_0', 'int2[]', 0, None, 'Output of type int[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:int3_0', 'int3', 0, None, 'Output of type int[3]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0]'}, True, [0, 0, 0], False, ''),
        ('outputs:int3_arr_0', 'int3[]', 0, None, 'Output of type int[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:int4_0', 'int4', 0, None, 'Output of type int[4]', {ogn.MetadataKeys.DEFAULT: '[0, 0, 0, 0]'}, True, [0, 0, 0, 0], False, ''),
        ('outputs:int4_arr_0', 'int4[]', 0, None, 'Output of type int[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:int64_0', 'int64', 0, None, 'Output of type int64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('outputs:int64_arr_0', 'int64[]', 0, None, 'Output of type int64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:int_0', 'int', 0, None, 'Output of type int', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('outputs:int_arr_0', 'int[]', 0, None, 'Output of type int[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:matrixd2_0', 'matrix2d', 0, None, 'Output of type matrixd[2]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0], [0.0, 0.0]]'}, True, [[0.0, 0.0], [0.0, 0.0]], False, ''),
        ('outputs:matrixd2_arr_0', 'matrix2d[]', 0, None, 'Output of type matrixd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:matrixd3_0', 'matrix3d', 0, None, 'Output of type matrixd[3]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], False, ''),
        ('outputs:matrixd3_arr_0', 'matrix3d[]', 0, None, 'Output of type matrixd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:matrixd4_0', 'matrix4d', 0, None, 'Output of type matrixd[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('outputs:matrixd4_arr_0', 'matrix4d[]', 0, None, 'Output of type matrixd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:normald3_0', 'normal3d', 0, None, 'Output of type normald[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:normald3_arr_0', 'normal3d[]', 0, None, 'Output of type normald[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:normalf3_0', 'normal3f', 0, None, 'Output of type normalf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:normalf3_arr_0', 'normal3f[]', 0, None, 'Output of type normalf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:normalh3_0', 'normal3h', 0, None, 'Output of type normalh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:normalh3_arr_0', 'normal3h[]', 0, None, 'Output of type normalh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:pointd3_0', 'point3d', 0, None, 'Output of type pointd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:pointd3_arr_0', 'point3d[]', 0, None, 'Output of type pointd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:pointf3_0', 'point3f', 0, None, 'Output of type pointf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:pointf3_arr_0', 'point3f[]', 0, None, 'Output of type pointf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:pointh3_0', 'point3h', 0, None, 'Output of type pointh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:pointh3_arr_0', 'point3h[]', 0, None, 'Output of type pointh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:quatd4_0', 'quatd', 0, None, 'Output of type quatd[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:quatd4_arr_0', 'quatd[]', 0, None, 'Output of type quatd[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:quatf4_0', 'quatf', 0, None, 'Output of type quatf[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:quatf4_arr_0', 'quatf[]', 0, None, 'Output of type quatf[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:quath4_0', 'quath', 0, None, 'Output of type quath[4]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0, 0.0], False, ''),
        ('outputs:quath4_arr_0', 'quath[]', 0, None, 'Output of type quath[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordd2_0', 'texCoord2d', 0, None, 'Output of type texcoordd[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:texcoordd2_arr_0', 'texCoord2d[]', 0, None, 'Output of type texcoordd[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordd3_0', 'texCoord3d', 0, None, 'Output of type texcoordd[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:texcoordd3_arr_0', 'texCoord3d[]', 0, None, 'Output of type texcoordd[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordf2_0', 'texCoord2f', 0, None, 'Output of type texcoordf[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:texcoordf2_arr_0', 'texCoord2f[]', 0, None, 'Output of type texcoordf[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordf3_0', 'texCoord3f', 0, None, 'Output of type texcoordf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:texcoordf3_arr_0', 'texCoord3f[]', 0, None, 'Output of type texcoordf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordh2_0', 'texCoord2h', 0, None, 'Output of type texcoordh[2]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0]'}, True, [0.0, 0.0], False, ''),
        ('outputs:texcoordh2_arr_0', 'texCoord2h[]', 0, None, 'Output of type texcoordh[2][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:texcoordh3_0', 'texCoord3h', 0, None, 'Output of type texcoordh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:texcoordh3_arr_0', 'texCoord3h[]', 0, None, 'Output of type texcoordh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:timecode_0', 'timecode', 0, None, 'Output of type timecode', {ogn.MetadataKeys.DEFAULT: '0.0'}, True, 0.0, False, ''),
        ('outputs:timecode_arr_0', 'timecode[]', 0, None, 'Output of type timecode[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:token_0', 'token', 0, None, 'Output of type token', {ogn.MetadataKeys.DEFAULT: '"default_token"'}, True, "default_token", False, ''),
        ('outputs:token_arr_0', 'token[]', 0, None, 'Output of type token[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:transform4_0', 'frame4d', 0, None, 'Output of type transform[4]', {ogn.MetadataKeys.DEFAULT: '[[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]'}, True, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], False, ''),
        ('outputs:transform4_arr_0', 'frame4d[]', 0, None, 'Output of type transform[4][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:uchar_0', 'uchar', 0, None, 'Output of type uchar', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('outputs:uchar_arr_0', 'uchar[]', 0, None, 'Output of type uchar[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:uint64_0', 'uint64', 0, None, 'Output of type uint64', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('outputs:uint64_arr_0', 'uint64[]', 0, None, 'Output of type uint64[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:uint_0', 'uint', 0, None, 'Output of type uint', {ogn.MetadataKeys.DEFAULT: '0'}, True, 0, False, ''),
        ('outputs:uint_arr_0', 'uint[]', 0, None, 'Output of type uint[]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:vectord3_0', 'vector3d', 0, None, 'Output of type vectord[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:vectord3_arr_0', 'vector3d[]', 0, None, 'Output of type vectord[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:vectorf3_0', 'vector3f', 0, None, 'Output of type vectorf[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:vectorf3_arr_0', 'vector3f[]', 0, None, 'Output of type vectorf[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
        ('outputs:vectorh3_0', 'vector3h', 0, None, 'Output of type vectorh[3]', {ogn.MetadataKeys.DEFAULT: '[0.0, 0.0, 0.0]'}, True, [0.0, 0.0, 0.0], False, ''),
        ('outputs:vectorh3_arr_0', 'vector3h[]', 0, None, 'Output of type vectorh[3][]', {ogn.MetadataKeys.DEFAULT: '[]'}, True, [], False, ''),
    ])

    @classmethod
    def _populate_role_data(cls):
        """Populate a role structure with the non-default roles on this node type"""
        role_data = super()._populate_role_data()
        role_data.inputs.colord3_0 = og.AttributeRole.COLOR
        role_data.inputs.colord3_1 = og.AttributeRole.COLOR
        role_data.inputs.colord3_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colord3_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.colord4_0 = og.AttributeRole.COLOR
        role_data.inputs.colord4_1 = og.AttributeRole.COLOR
        role_data.inputs.colord4_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colord4_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.colorf3_0 = og.AttributeRole.COLOR
        role_data.inputs.colorf3_1 = og.AttributeRole.COLOR
        role_data.inputs.colorf3_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colorf3_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.colorf4_0 = og.AttributeRole.COLOR
        role_data.inputs.colorf4_1 = og.AttributeRole.COLOR
        role_data.inputs.colorf4_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colorf4_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.colorh3_0 = og.AttributeRole.COLOR
        role_data.inputs.colorh3_1 = og.AttributeRole.COLOR
        role_data.inputs.colorh3_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colorh3_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.colorh4_0 = og.AttributeRole.COLOR
        role_data.inputs.colorh4_1 = og.AttributeRole.COLOR
        role_data.inputs.colorh4_arr_0 = og.AttributeRole.COLOR
        role_data.inputs.colorh4_arr_1 = og.AttributeRole.COLOR
        role_data.inputs.frame4_0 = og.AttributeRole.FRAME
        role_data.inputs.frame4_1 = og.AttributeRole.FRAME
        role_data.inputs.frame4_arr_0 = og.AttributeRole.FRAME
        role_data.inputs.frame4_arr_1 = og.AttributeRole.FRAME
        role_data.inputs.matrixd2_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd2_1 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd2_arr_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd2_arr_1 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd3_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd3_1 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd3_arr_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd3_arr_1 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd4_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd4_1 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd4_arr_0 = og.AttributeRole.MATRIX
        role_data.inputs.matrixd4_arr_1 = og.AttributeRole.MATRIX
        role_data.inputs.normald3_0 = og.AttributeRole.NORMAL
        role_data.inputs.normald3_1 = og.AttributeRole.NORMAL
        role_data.inputs.normald3_arr_0 = og.AttributeRole.NORMAL
        role_data.inputs.normald3_arr_1 = og.AttributeRole.NORMAL
        role_data.inputs.normalf3_0 = og.AttributeRole.NORMAL
        role_data.inputs.normalf3_1 = og.AttributeRole.NORMAL
        role_data.inputs.normalf3_arr_0 = og.AttributeRole.NORMAL
        role_data.inputs.normalf3_arr_1 = og.AttributeRole.NORMAL
        role_data.inputs.normalh3_0 = og.AttributeRole.NORMAL
        role_data.inputs.normalh3_1 = og.AttributeRole.NORMAL
        role_data.inputs.normalh3_arr_0 = og.AttributeRole.NORMAL
        role_data.inputs.normalh3_arr_1 = og.AttributeRole.NORMAL
        role_data.inputs.pointd3_0 = og.AttributeRole.POSITION
        role_data.inputs.pointd3_1 = og.AttributeRole.POSITION
        role_data.inputs.pointd3_arr_0 = og.AttributeRole.POSITION
        role_data.inputs.pointd3_arr_1 = og.AttributeRole.POSITION
        role_data.inputs.pointf3_0 = og.AttributeRole.POSITION
        role_data.inputs.pointf3_1 = og.AttributeRole.POSITION
        role_data.inputs.pointf3_arr_0 = og.AttributeRole.POSITION
        role_data.inputs.pointf3_arr_1 = og.AttributeRole.POSITION
        role_data.inputs.pointh3_0 = og.AttributeRole.POSITION
        role_data.inputs.pointh3_1 = og.AttributeRole.POSITION
        role_data.inputs.pointh3_arr_0 = og.AttributeRole.POSITION
        role_data.inputs.pointh3_arr_1 = og.AttributeRole.POSITION
        role_data.inputs.quatd4_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quatd4_1 = og.AttributeRole.QUATERNION
        role_data.inputs.quatd4_arr_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quatd4_arr_1 = og.AttributeRole.QUATERNION
        role_data.inputs.quatf4_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quatf4_1 = og.AttributeRole.QUATERNION
        role_data.inputs.quatf4_arr_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quatf4_arr_1 = og.AttributeRole.QUATERNION
        role_data.inputs.quath4_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quath4_1 = og.AttributeRole.QUATERNION
        role_data.inputs.quath4_arr_0 = og.AttributeRole.QUATERNION
        role_data.inputs.quath4_arr_1 = og.AttributeRole.QUATERNION
        role_data.inputs.texcoordd2_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd2_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd2_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd3_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd3_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordd3_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf2_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf2_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf2_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf3_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf3_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordf3_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh2_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh2_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh2_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh3_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh3_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.inputs.texcoordh3_arr_1 = og.AttributeRole.TEXCOORD
        role_data.inputs.timecode_0 = og.AttributeRole.TIMECODE
        role_data.inputs.timecode_1 = og.AttributeRole.TIMECODE
        role_data.inputs.timecode_arr_0 = og.AttributeRole.TIMECODE
        role_data.inputs.timecode_arr_1 = og.AttributeRole.TIMECODE
        role_data.inputs.transform4_0 = og.AttributeRole.TRANSFORM
        role_data.inputs.transform4_1 = og.AttributeRole.TRANSFORM
        role_data.inputs.transform4_arr_0 = og.AttributeRole.TRANSFORM
        role_data.inputs.transform4_arr_1 = og.AttributeRole.TRANSFORM
        role_data.inputs.vectord3_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectord3_1 = og.AttributeRole.VECTOR
        role_data.inputs.vectord3_arr_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectord3_arr_1 = og.AttributeRole.VECTOR
        role_data.inputs.vectorf3_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectorf3_1 = og.AttributeRole.VECTOR
        role_data.inputs.vectorf3_arr_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectorf3_arr_1 = og.AttributeRole.VECTOR
        role_data.inputs.vectorh3_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectorh3_1 = og.AttributeRole.VECTOR
        role_data.inputs.vectorh3_arr_0 = og.AttributeRole.VECTOR
        role_data.inputs.vectorh3_arr_1 = og.AttributeRole.VECTOR
        role_data.outputs.colord3_0 = og.AttributeRole.COLOR
        role_data.outputs.colord3_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.colord4_0 = og.AttributeRole.COLOR
        role_data.outputs.colord4_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.colorf3_0 = og.AttributeRole.COLOR
        role_data.outputs.colorf3_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.colorf4_0 = og.AttributeRole.COLOR
        role_data.outputs.colorf4_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.colorh3_0 = og.AttributeRole.COLOR
        role_data.outputs.colorh3_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.colorh4_0 = og.AttributeRole.COLOR
        role_data.outputs.colorh4_arr_0 = og.AttributeRole.COLOR
        role_data.outputs.frame4_0 = og.AttributeRole.FRAME
        role_data.outputs.frame4_arr_0 = og.AttributeRole.FRAME
        role_data.outputs.matrixd2_0 = og.AttributeRole.MATRIX
        role_data.outputs.matrixd2_arr_0 = og.AttributeRole.MATRIX
        role_data.outputs.matrixd3_0 = og.AttributeRole.MATRIX
        role_data.outputs.matrixd3_arr_0 = og.AttributeRole.MATRIX
        role_data.outputs.matrixd4_0 = og.AttributeRole.MATRIX
        role_data.outputs.matrixd4_arr_0 = og.AttributeRole.MATRIX
        role_data.outputs.normald3_0 = og.AttributeRole.NORMAL
        role_data.outputs.normald3_arr_0 = og.AttributeRole.NORMAL
        role_data.outputs.normalf3_0 = og.AttributeRole.NORMAL
        role_data.outputs.normalf3_arr_0 = og.AttributeRole.NORMAL
        role_data.outputs.normalh3_0 = og.AttributeRole.NORMAL
        role_data.outputs.normalh3_arr_0 = og.AttributeRole.NORMAL
        role_data.outputs.pointd3_0 = og.AttributeRole.POSITION
        role_data.outputs.pointd3_arr_0 = og.AttributeRole.POSITION
        role_data.outputs.pointf3_0 = og.AttributeRole.POSITION
        role_data.outputs.pointf3_arr_0 = og.AttributeRole.POSITION
        role_data.outputs.pointh3_0 = og.AttributeRole.POSITION
        role_data.outputs.pointh3_arr_0 = og.AttributeRole.POSITION
        role_data.outputs.quatd4_0 = og.AttributeRole.QUATERNION
        role_data.outputs.quatd4_arr_0 = og.AttributeRole.QUATERNION
        role_data.outputs.quatf4_0 = og.AttributeRole.QUATERNION
        role_data.outputs.quatf4_arr_0 = og.AttributeRole.QUATERNION
        role_data.outputs.quath4_0 = og.AttributeRole.QUATERNION
        role_data.outputs.quath4_arr_0 = og.AttributeRole.QUATERNION
        role_data.outputs.texcoordd2_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordd2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordd3_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordd3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordf2_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordf2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordf3_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordf3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordh2_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordh2_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordh3_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.texcoordh3_arr_0 = og.AttributeRole.TEXCOORD
        role_data.outputs.timecode_0 = og.AttributeRole.TIMECODE
        role_data.outputs.timecode_arr_0 = og.AttributeRole.TIMECODE
        role_data.outputs.transform4_0 = og.AttributeRole.TRANSFORM
        role_data.outputs.transform4_arr_0 = og.AttributeRole.TRANSFORM
        role_data.outputs.vectord3_0 = og.AttributeRole.VECTOR
        role_data.outputs.vectord3_arr_0 = og.AttributeRole.VECTOR
        role_data.outputs.vectorf3_0 = og.AttributeRole.VECTOR
        role_data.outputs.vectorf3_arr_0 = og.AttributeRole.VECTOR
        role_data.outputs.vectorh3_0 = og.AttributeRole.VECTOR
        role_data.outputs.vectorh3_arr_0 = og.AttributeRole.VECTOR
        return role_data

    class ValuesForInputs(og.DynamicAttributeAccess):
        LOCAL_PROPERTY_NAMES = {"bool_0", "bool_1", "colord3_0", "colord3_1", "colord4_0", "colord4_1", "colorf3_0", "colorf3_1", "colorf4_0", "colorf4_1", "colorh3_0", "colorh3_1", "colorh4_0", "colorh4_1", "double2_0", "double2_1", "double3_0", "double3_1", "double4_0", "double4_1", "double_0", "double_1", "float2_0", "float2_1", "float3_0", "float3_1", "float4_0", "float4_1", "float_0", "float_1", "frame4_0", "frame4_1", "half2_0", "half2_1", "half3_0", "half3_1", "half4_0", "half4_1", "half_0", "half_1", "int2_0", "int2_1", "int3_0", "int3_1", "int4_0", "int4_1", "int64_0", "int64_1", "int_0", "int_1", "matrixd2_0", "matrixd2_1", "matrixd3_0", "matrixd3_1", "matrixd4_0", "matrixd4_1", "normald3_0", "normald3_1", "normalf3_0", "normalf3_1", "normalh3_0", "normalh3_1", "pointd3_0", "pointd3_1", "pointf3_0", "pointf3_1", "pointh3_0", "pointh3_1", "quatd4_0", "quatd4_1", "quatf4_0", "quatf4_1", "quath4_0", "quath4_1", "texcoordd2_0", "texcoordd2_1", "texcoordd3_0", "texcoordd3_1", "texcoordf2_0", "texcoordf2_1", "texcoordf3_0", "texcoordf3_1", "texcoordh2_0", "texcoordh2_1", "texcoordh3_0", "texcoordh3_1", "timecode_0", "timecode_1", "token_0", "token_1", "transform4_0", "transform4_1", "uchar_0", "uchar_1", "uint64_0", "uint64_1", "uint_0", "uint_1", "vectord3_0", "vectord3_1", "vectorf3_0", "vectorf3_1", "vectorh3_0", "vectorh3_1", "_setting_locked", "_batchedReadAttributes", "_batchedReadValues"}
        """Helper class that creates natural hierarchical access to input attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)
            self._batchedReadAttributes = [self._attributes.bool_0, self._attributes.bool_1, self._attributes.colord3_0, self._attributes.colord3_1, self._attributes.colord4_0, self._attributes.colord4_1, self._attributes.colorf3_0, self._attributes.colorf3_1, self._attributes.colorf4_0, self._attributes.colorf4_1, self._attributes.colorh3_0, self._attributes.colorh3_1, self._attributes.colorh4_0, self._attributes.colorh4_1, self._attributes.double2_0, self._attributes.double2_1, self._attributes.double3_0, self._attributes.double3_1, self._attributes.double4_0, self._attributes.double4_1, self._attributes.double_0, self._attributes.double_1, self._attributes.float2_0, self._attributes.float2_1, self._attributes.float3_0, self._attributes.float3_1, self._attributes.float4_0, self._attributes.float4_1, self._attributes.float_0, self._attributes.float_1, self._attributes.frame4_0, self._attributes.frame4_1, self._attributes.half2_0, self._attributes.half2_1, self._attributes.half3_0, self._attributes.half3_1, self._attributes.half4_0, self._attributes.half4_1, self._attributes.half_0, self._attributes.half_1, self._attributes.int2_0, self._attributes.int2_1, self._attributes.int3_0, self._attributes.int3_1, self._attributes.int4_0, self._attributes.int4_1, self._attributes.int64_0, self._attributes.int64_1, self._attributes.int_0, self._attributes.int_1, self._attributes.matrixd2_0, self._attributes.matrixd2_1, self._attributes.matrixd3_0, self._attributes.matrixd3_1, self._attributes.matrixd4_0, self._attributes.matrixd4_1, self._attributes.normald3_0, self._attributes.normald3_1, self._attributes.normalf3_0, self._attributes.normalf3_1, self._attributes.normalh3_0, self._attributes.normalh3_1, self._attributes.pointd3_0, self._attributes.pointd3_1, self._attributes.pointf3_0, self._attributes.pointf3_1, self._attributes.pointh3_0, self._attributes.pointh3_1, self._attributes.quatd4_0, self._attributes.quatd4_1, self._attributes.quatf4_0, self._attributes.quatf4_1, self._attributes.quath4_0, self._attributes.quath4_1, self._attributes.texcoordd2_0, self._attributes.texcoordd2_1, self._attributes.texcoordd3_0, self._attributes.texcoordd3_1, self._attributes.texcoordf2_0, self._attributes.texcoordf2_1, self._attributes.texcoordf3_0, self._attributes.texcoordf3_1, self._attributes.texcoordh2_0, self._attributes.texcoordh2_1, self._attributes.texcoordh3_0, self._attributes.texcoordh3_1, self._attributes.timecode_0, self._attributes.timecode_1, self._attributes.token_0, self._attributes.token_1, self._attributes.transform4_0, self._attributes.transform4_1, self._attributes.uchar_0, self._attributes.uchar_1, self._attributes.uint64_0, self._attributes.uint64_1, self._attributes.uint_0, self._attributes.uint_1, self._attributes.vectord3_0, self._attributes.vectord3_1, self._attributes.vectorf3_0, self._attributes.vectorf3_1, self._attributes.vectorh3_0, self._attributes.vectorh3_1]
            self._batchedReadValues = [False, False, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], 0.0, 0.0, [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], 0.0, 0.0, [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], 0.0, 0.0, [0, 0], [0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], 0, 0, 0, 0, [[0.0, 0.0], [0.0, 0.0]], [[0.0, 0.0], [0.0, 0.0]], [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], 0.0, 0.0, "default_token", "default_token", [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], 0, 0, 0, 0, 0, 0, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]]

        @property
        def bool_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_0)
            return data_view.get()

        @bool_arr_0.setter
        def bool_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.bool_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_0)
            data_view.set(value)
            self.bool_arr_0_size = data_view.get_array_size()

        @property
        def bool_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_1)
            return data_view.get()

        @bool_arr_1.setter
        def bool_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.bool_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_1)
            data_view.set(value)
            self.bool_arr_1_size = data_view.get_array_size()

        @property
        def colord3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_0)
            return data_view.get()

        @colord3_arr_0.setter
        def colord3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colord3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_0)
            data_view.set(value)
            self.colord3_arr_0_size = data_view.get_array_size()

        @property
        def colord3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_1)
            return data_view.get()

        @colord3_arr_1.setter
        def colord3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colord3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_1)
            data_view.set(value)
            self.colord3_arr_1_size = data_view.get_array_size()

        @property
        def colord4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_0)
            return data_view.get()

        @colord4_arr_0.setter
        def colord4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colord4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_0)
            data_view.set(value)
            self.colord4_arr_0_size = data_view.get_array_size()

        @property
        def colord4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_1)
            return data_view.get()

        @colord4_arr_1.setter
        def colord4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colord4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_1)
            data_view.set(value)
            self.colord4_arr_1_size = data_view.get_array_size()

        @property
        def colorf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_0)
            return data_view.get()

        @colorf3_arr_0.setter
        def colorf3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorf3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_0)
            data_view.set(value)
            self.colorf3_arr_0_size = data_view.get_array_size()

        @property
        def colorf3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_1)
            return data_view.get()

        @colorf3_arr_1.setter
        def colorf3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorf3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_1)
            data_view.set(value)
            self.colorf3_arr_1_size = data_view.get_array_size()

        @property
        def colorf4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_0)
            return data_view.get()

        @colorf4_arr_0.setter
        def colorf4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorf4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_0)
            data_view.set(value)
            self.colorf4_arr_0_size = data_view.get_array_size()

        @property
        def colorf4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_1)
            return data_view.get()

        @colorf4_arr_1.setter
        def colorf4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorf4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_1)
            data_view.set(value)
            self.colorf4_arr_1_size = data_view.get_array_size()

        @property
        def colorh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_0)
            return data_view.get()

        @colorh3_arr_0.setter
        def colorh3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorh3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_0)
            data_view.set(value)
            self.colorh3_arr_0_size = data_view.get_array_size()

        @property
        def colorh3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_1)
            return data_view.get()

        @colorh3_arr_1.setter
        def colorh3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorh3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_1)
            data_view.set(value)
            self.colorh3_arr_1_size = data_view.get_array_size()

        @property
        def colorh4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_0)
            return data_view.get()

        @colorh4_arr_0.setter
        def colorh4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorh4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_0)
            data_view.set(value)
            self.colorh4_arr_0_size = data_view.get_array_size()

        @property
        def colorh4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_1)
            return data_view.get()

        @colorh4_arr_1.setter
        def colorh4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.colorh4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_1)
            data_view.set(value)
            self.colorh4_arr_1_size = data_view.get_array_size()

        @property
        def double2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_0)
            return data_view.get()

        @double2_arr_0.setter
        def double2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_0)
            data_view.set(value)
            self.double2_arr_0_size = data_view.get_array_size()

        @property
        def double2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_1)
            return data_view.get()

        @double2_arr_1.setter
        def double2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_1)
            data_view.set(value)
            self.double2_arr_1_size = data_view.get_array_size()

        @property
        def double3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_0)
            return data_view.get()

        @double3_arr_0.setter
        def double3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_0)
            data_view.set(value)
            self.double3_arr_0_size = data_view.get_array_size()

        @property
        def double3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_1)
            return data_view.get()

        @double3_arr_1.setter
        def double3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_1)
            data_view.set(value)
            self.double3_arr_1_size = data_view.get_array_size()

        @property
        def double4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_0)
            return data_view.get()

        @double4_arr_0.setter
        def double4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_0)
            data_view.set(value)
            self.double4_arr_0_size = data_view.get_array_size()

        @property
        def double4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_1)
            return data_view.get()

        @double4_arr_1.setter
        def double4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_1)
            data_view.set(value)
            self.double4_arr_1_size = data_view.get_array_size()

        @property
        def double_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double_arr_0)
            return data_view.get()

        @double_arr_0.setter
        def double_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.double_arr_0)
            data_view.set(value)
            self.double_arr_0_size = data_view.get_array_size()

        @property
        def double_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.double_arr_1)
            return data_view.get()

        @double_arr_1.setter
        def double_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.double_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.double_arr_1)
            data_view.set(value)
            self.double_arr_1_size = data_view.get_array_size()

        @property
        def float2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_0)
            return data_view.get()

        @float2_arr_0.setter
        def float2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_0)
            data_view.set(value)
            self.float2_arr_0_size = data_view.get_array_size()

        @property
        def float2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_1)
            return data_view.get()

        @float2_arr_1.setter
        def float2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_1)
            data_view.set(value)
            self.float2_arr_1_size = data_view.get_array_size()

        @property
        def float3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_0)
            return data_view.get()

        @float3_arr_0.setter
        def float3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_0)
            data_view.set(value)
            self.float3_arr_0_size = data_view.get_array_size()

        @property
        def float3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_1)
            return data_view.get()

        @float3_arr_1.setter
        def float3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_1)
            data_view.set(value)
            self.float3_arr_1_size = data_view.get_array_size()

        @property
        def float4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_0)
            return data_view.get()

        @float4_arr_0.setter
        def float4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_0)
            data_view.set(value)
            self.float4_arr_0_size = data_view.get_array_size()

        @property
        def float4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_1)
            return data_view.get()

        @float4_arr_1.setter
        def float4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_1)
            data_view.set(value)
            self.float4_arr_1_size = data_view.get_array_size()

        @property
        def float_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float_arr_0)
            return data_view.get()

        @float_arr_0.setter
        def float_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.float_arr_0)
            data_view.set(value)
            self.float_arr_0_size = data_view.get_array_size()

        @property
        def float_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.float_arr_1)
            return data_view.get()

        @float_arr_1.setter
        def float_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.float_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.float_arr_1)
            data_view.set(value)
            self.float_arr_1_size = data_view.get_array_size()

        @property
        def frame4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_0)
            return data_view.get()

        @frame4_arr_0.setter
        def frame4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.frame4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_0)
            data_view.set(value)
            self.frame4_arr_0_size = data_view.get_array_size()

        @property
        def frame4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_1)
            return data_view.get()

        @frame4_arr_1.setter
        def frame4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.frame4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_1)
            data_view.set(value)
            self.frame4_arr_1_size = data_view.get_array_size()

        @property
        def half2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_0)
            return data_view.get()

        @half2_arr_0.setter
        def half2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_0)
            data_view.set(value)
            self.half2_arr_0_size = data_view.get_array_size()

        @property
        def half2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_1)
            return data_view.get()

        @half2_arr_1.setter
        def half2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_1)
            data_view.set(value)
            self.half2_arr_1_size = data_view.get_array_size()

        @property
        def half3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_0)
            return data_view.get()

        @half3_arr_0.setter
        def half3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_0)
            data_view.set(value)
            self.half3_arr_0_size = data_view.get_array_size()

        @property
        def half3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_1)
            return data_view.get()

        @half3_arr_1.setter
        def half3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_1)
            data_view.set(value)
            self.half3_arr_1_size = data_view.get_array_size()

        @property
        def half4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_0)
            return data_view.get()

        @half4_arr_0.setter
        def half4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_0)
            data_view.set(value)
            self.half4_arr_0_size = data_view.get_array_size()

        @property
        def half4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_1)
            return data_view.get()

        @half4_arr_1.setter
        def half4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_1)
            data_view.set(value)
            self.half4_arr_1_size = data_view.get_array_size()

        @property
        def half_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half_arr_0)
            return data_view.get()

        @half_arr_0.setter
        def half_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.half_arr_0)
            data_view.set(value)
            self.half_arr_0_size = data_view.get_array_size()

        @property
        def half_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.half_arr_1)
            return data_view.get()

        @half_arr_1.setter
        def half_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.half_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.half_arr_1)
            data_view.set(value)
            self.half_arr_1_size = data_view.get_array_size()

        @property
        def int2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_0)
            return data_view.get()

        @int2_arr_0.setter
        def int2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_0)
            data_view.set(value)
            self.int2_arr_0_size = data_view.get_array_size()

        @property
        def int2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_1)
            return data_view.get()

        @int2_arr_1.setter
        def int2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_1)
            data_view.set(value)
            self.int2_arr_1_size = data_view.get_array_size()

        @property
        def int3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_0)
            return data_view.get()

        @int3_arr_0.setter
        def int3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_0)
            data_view.set(value)
            self.int3_arr_0_size = data_view.get_array_size()

        @property
        def int3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_1)
            return data_view.get()

        @int3_arr_1.setter
        def int3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_1)
            data_view.set(value)
            self.int3_arr_1_size = data_view.get_array_size()

        @property
        def int4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_0)
            return data_view.get()

        @int4_arr_0.setter
        def int4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_0)
            data_view.set(value)
            self.int4_arr_0_size = data_view.get_array_size()

        @property
        def int4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_1)
            return data_view.get()

        @int4_arr_1.setter
        def int4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_1)
            data_view.set(value)
            self.int4_arr_1_size = data_view.get_array_size()

        @property
        def int64_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_0)
            return data_view.get()

        @int64_arr_0.setter
        def int64_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int64_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_0)
            data_view.set(value)
            self.int64_arr_0_size = data_view.get_array_size()

        @property
        def int64_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_1)
            return data_view.get()

        @int64_arr_1.setter
        def int64_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int64_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_1)
            data_view.set(value)
            self.int64_arr_1_size = data_view.get_array_size()

        @property
        def int_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int_arr_0)
            return data_view.get()

        @int_arr_0.setter
        def int_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.int_arr_0)
            data_view.set(value)
            self.int_arr_0_size = data_view.get_array_size()

        @property
        def int_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.int_arr_1)
            return data_view.get()

        @int_arr_1.setter
        def int_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.int_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.int_arr_1)
            data_view.set(value)
            self.int_arr_1_size = data_view.get_array_size()

        @property
        def matrixd2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_0)
            return data_view.get()

        @matrixd2_arr_0.setter
        def matrixd2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_0)
            data_view.set(value)
            self.matrixd2_arr_0_size = data_view.get_array_size()

        @property
        def matrixd2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_1)
            return data_view.get()

        @matrixd2_arr_1.setter
        def matrixd2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_1)
            data_view.set(value)
            self.matrixd2_arr_1_size = data_view.get_array_size()

        @property
        def matrixd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_0)
            return data_view.get()

        @matrixd3_arr_0.setter
        def matrixd3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_0)
            data_view.set(value)
            self.matrixd3_arr_0_size = data_view.get_array_size()

        @property
        def matrixd3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_1)
            return data_view.get()

        @matrixd3_arr_1.setter
        def matrixd3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_1)
            data_view.set(value)
            self.matrixd3_arr_1_size = data_view.get_array_size()

        @property
        def matrixd4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_0)
            return data_view.get()

        @matrixd4_arr_0.setter
        def matrixd4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_0)
            data_view.set(value)
            self.matrixd4_arr_0_size = data_view.get_array_size()

        @property
        def matrixd4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_1)
            return data_view.get()

        @matrixd4_arr_1.setter
        def matrixd4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.matrixd4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_1)
            data_view.set(value)
            self.matrixd4_arr_1_size = data_view.get_array_size()

        @property
        def normald3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_0)
            return data_view.get()

        @normald3_arr_0.setter
        def normald3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normald3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_0)
            data_view.set(value)
            self.normald3_arr_0_size = data_view.get_array_size()

        @property
        def normald3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_1)
            return data_view.get()

        @normald3_arr_1.setter
        def normald3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normald3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_1)
            data_view.set(value)
            self.normald3_arr_1_size = data_view.get_array_size()

        @property
        def normalf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_0)
            return data_view.get()

        @normalf3_arr_0.setter
        def normalf3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normalf3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_0)
            data_view.set(value)
            self.normalf3_arr_0_size = data_view.get_array_size()

        @property
        def normalf3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_1)
            return data_view.get()

        @normalf3_arr_1.setter
        def normalf3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normalf3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_1)
            data_view.set(value)
            self.normalf3_arr_1_size = data_view.get_array_size()

        @property
        def normalh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_0)
            return data_view.get()

        @normalh3_arr_0.setter
        def normalh3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normalh3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_0)
            data_view.set(value)
            self.normalh3_arr_0_size = data_view.get_array_size()

        @property
        def normalh3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_1)
            return data_view.get()

        @normalh3_arr_1.setter
        def normalh3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.normalh3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_1)
            data_view.set(value)
            self.normalh3_arr_1_size = data_view.get_array_size()

        @property
        def pointd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_0)
            return data_view.get()

        @pointd3_arr_0.setter
        def pointd3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointd3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_0)
            data_view.set(value)
            self.pointd3_arr_0_size = data_view.get_array_size()

        @property
        def pointd3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_1)
            return data_view.get()

        @pointd3_arr_1.setter
        def pointd3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointd3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_1)
            data_view.set(value)
            self.pointd3_arr_1_size = data_view.get_array_size()

        @property
        def pointf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_0)
            return data_view.get()

        @pointf3_arr_0.setter
        def pointf3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointf3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_0)
            data_view.set(value)
            self.pointf3_arr_0_size = data_view.get_array_size()

        @property
        def pointf3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_1)
            return data_view.get()

        @pointf3_arr_1.setter
        def pointf3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointf3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_1)
            data_view.set(value)
            self.pointf3_arr_1_size = data_view.get_array_size()

        @property
        def pointh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_0)
            return data_view.get()

        @pointh3_arr_0.setter
        def pointh3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointh3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_0)
            data_view.set(value)
            self.pointh3_arr_0_size = data_view.get_array_size()

        @property
        def pointh3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_1)
            return data_view.get()

        @pointh3_arr_1.setter
        def pointh3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.pointh3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_1)
            data_view.set(value)
            self.pointh3_arr_1_size = data_view.get_array_size()

        @property
        def quatd4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_0)
            return data_view.get()

        @quatd4_arr_0.setter
        def quatd4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quatd4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_0)
            data_view.set(value)
            self.quatd4_arr_0_size = data_view.get_array_size()

        @property
        def quatd4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_1)
            return data_view.get()

        @quatd4_arr_1.setter
        def quatd4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quatd4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_1)
            data_view.set(value)
            self.quatd4_arr_1_size = data_view.get_array_size()

        @property
        def quatf4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_0)
            return data_view.get()

        @quatf4_arr_0.setter
        def quatf4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quatf4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_0)
            data_view.set(value)
            self.quatf4_arr_0_size = data_view.get_array_size()

        @property
        def quatf4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_1)
            return data_view.get()

        @quatf4_arr_1.setter
        def quatf4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quatf4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_1)
            data_view.set(value)
            self.quatf4_arr_1_size = data_view.get_array_size()

        @property
        def quath4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_0)
            return data_view.get()

        @quath4_arr_0.setter
        def quath4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quath4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_0)
            data_view.set(value)
            self.quath4_arr_0_size = data_view.get_array_size()

        @property
        def quath4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_1)
            return data_view.get()

        @quath4_arr_1.setter
        def quath4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.quath4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_1)
            data_view.set(value)
            self.quath4_arr_1_size = data_view.get_array_size()

        @property
        def texcoordd2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_0)
            return data_view.get()

        @texcoordd2_arr_0.setter
        def texcoordd2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordd2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_0)
            data_view.set(value)
            self.texcoordd2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordd2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_1)
            return data_view.get()

        @texcoordd2_arr_1.setter
        def texcoordd2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordd2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_1)
            data_view.set(value)
            self.texcoordd2_arr_1_size = data_view.get_array_size()

        @property
        def texcoordd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_0)
            return data_view.get()

        @texcoordd3_arr_0.setter
        def texcoordd3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordd3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_0)
            data_view.set(value)
            self.texcoordd3_arr_0_size = data_view.get_array_size()

        @property
        def texcoordd3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_1)
            return data_view.get()

        @texcoordd3_arr_1.setter
        def texcoordd3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordd3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_1)
            data_view.set(value)
            self.texcoordd3_arr_1_size = data_view.get_array_size()

        @property
        def texcoordf2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_0)
            return data_view.get()

        @texcoordf2_arr_0.setter
        def texcoordf2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordf2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_0)
            data_view.set(value)
            self.texcoordf2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordf2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_1)
            return data_view.get()

        @texcoordf2_arr_1.setter
        def texcoordf2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordf2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_1)
            data_view.set(value)
            self.texcoordf2_arr_1_size = data_view.get_array_size()

        @property
        def texcoordf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_0)
            return data_view.get()

        @texcoordf3_arr_0.setter
        def texcoordf3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordf3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_0)
            data_view.set(value)
            self.texcoordf3_arr_0_size = data_view.get_array_size()

        @property
        def texcoordf3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_1)
            return data_view.get()

        @texcoordf3_arr_1.setter
        def texcoordf3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordf3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_1)
            data_view.set(value)
            self.texcoordf3_arr_1_size = data_view.get_array_size()

        @property
        def texcoordh2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_0)
            return data_view.get()

        @texcoordh2_arr_0.setter
        def texcoordh2_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordh2_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_0)
            data_view.set(value)
            self.texcoordh2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordh2_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_1)
            return data_view.get()

        @texcoordh2_arr_1.setter
        def texcoordh2_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordh2_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_1)
            data_view.set(value)
            self.texcoordh2_arr_1_size = data_view.get_array_size()

        @property
        def texcoordh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_0)
            return data_view.get()

        @texcoordh3_arr_0.setter
        def texcoordh3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordh3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_0)
            data_view.set(value)
            self.texcoordh3_arr_0_size = data_view.get_array_size()

        @property
        def texcoordh3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_1)
            return data_view.get()

        @texcoordh3_arr_1.setter
        def texcoordh3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.texcoordh3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_1)
            data_view.set(value)
            self.texcoordh3_arr_1_size = data_view.get_array_size()

        @property
        def timecode_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_0)
            return data_view.get()

        @timecode_arr_0.setter
        def timecode_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.timecode_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_0)
            data_view.set(value)
            self.timecode_arr_0_size = data_view.get_array_size()

        @property
        def timecode_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_1)
            return data_view.get()

        @timecode_arr_1.setter
        def timecode_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.timecode_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_1)
            data_view.set(value)
            self.timecode_arr_1_size = data_view.get_array_size()

        @property
        def token_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.token_arr_0)
            return data_view.get()

        @token_arr_0.setter
        def token_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.token_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.token_arr_0)
            data_view.set(value)
            self.token_arr_0_size = data_view.get_array_size()

        @property
        def token_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.token_arr_1)
            return data_view.get()

        @token_arr_1.setter
        def token_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.token_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.token_arr_1)
            data_view.set(value)
            self.token_arr_1_size = data_view.get_array_size()

        @property
        def transform4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_0)
            return data_view.get()

        @transform4_arr_0.setter
        def transform4_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.transform4_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_0)
            data_view.set(value)
            self.transform4_arr_0_size = data_view.get_array_size()

        @property
        def transform4_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_1)
            return data_view.get()

        @transform4_arr_1.setter
        def transform4_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.transform4_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_1)
            data_view.set(value)
            self.transform4_arr_1_size = data_view.get_array_size()

        @property
        def uchar_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_0)
            return data_view.get()

        @uchar_arr_0.setter
        def uchar_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uchar_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_0)
            data_view.set(value)
            self.uchar_arr_0_size = data_view.get_array_size()

        @property
        def uchar_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_1)
            return data_view.get()

        @uchar_arr_1.setter
        def uchar_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uchar_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_1)
            data_view.set(value)
            self.uchar_arr_1_size = data_view.get_array_size()

        @property
        def uint64_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_0)
            return data_view.get()

        @uint64_arr_0.setter
        def uint64_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uint64_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_0)
            data_view.set(value)
            self.uint64_arr_0_size = data_view.get_array_size()

        @property
        def uint64_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_1)
            return data_view.get()

        @uint64_arr_1.setter
        def uint64_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uint64_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_1)
            data_view.set(value)
            self.uint64_arr_1_size = data_view.get_array_size()

        @property
        def uint_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_0)
            return data_view.get()

        @uint_arr_0.setter
        def uint_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uint_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_0)
            data_view.set(value)
            self.uint_arr_0_size = data_view.get_array_size()

        @property
        def uint_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_1)
            return data_view.get()

        @uint_arr_1.setter
        def uint_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.uint_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_1)
            data_view.set(value)
            self.uint_arr_1_size = data_view.get_array_size()

        @property
        def vectord3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_0)
            return data_view.get()

        @vectord3_arr_0.setter
        def vectord3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectord3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_0)
            data_view.set(value)
            self.vectord3_arr_0_size = data_view.get_array_size()

        @property
        def vectord3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_1)
            return data_view.get()

        @vectord3_arr_1.setter
        def vectord3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectord3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_1)
            data_view.set(value)
            self.vectord3_arr_1_size = data_view.get_array_size()

        @property
        def vectorf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_0)
            return data_view.get()

        @vectorf3_arr_0.setter
        def vectorf3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectorf3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_0)
            data_view.set(value)
            self.vectorf3_arr_0_size = data_view.get_array_size()

        @property
        def vectorf3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_1)
            return data_view.get()

        @vectorf3_arr_1.setter
        def vectorf3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectorf3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_1)
            data_view.set(value)
            self.vectorf3_arr_1_size = data_view.get_array_size()

        @property
        def vectorh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_0)
            return data_view.get()

        @vectorh3_arr_0.setter
        def vectorh3_arr_0(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectorh3_arr_0)
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_0)
            data_view.set(value)
            self.vectorh3_arr_0_size = data_view.get_array_size()

        @property
        def vectorh3_arr_1(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_1)
            return data_view.get()

        @vectorh3_arr_1.setter
        def vectorh3_arr_1(self, value):
            if self._setting_locked:
                raise og.ReadOnlyError(self._attributes.vectorh3_arr_1)
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_1)
            data_view.set(value)
            self.vectorh3_arr_1_size = data_view.get_array_size()

        @property
        def bool_0(self):
            return self._batchedReadValues[0]

        @bool_0.setter
        def bool_0(self, value):
            self._batchedReadValues[0] = value

        @property
        def bool_1(self):
            return self._batchedReadValues[1]

        @bool_1.setter
        def bool_1(self, value):
            self._batchedReadValues[1] = value

        @property
        def colord3_0(self):
            return self._batchedReadValues[2]

        @colord3_0.setter
        def colord3_0(self, value):
            self._batchedReadValues[2] = value

        @property
        def colord3_1(self):
            return self._batchedReadValues[3]

        @colord3_1.setter
        def colord3_1(self, value):
            self._batchedReadValues[3] = value

        @property
        def colord4_0(self):
            return self._batchedReadValues[4]

        @colord4_0.setter
        def colord4_0(self, value):
            self._batchedReadValues[4] = value

        @property
        def colord4_1(self):
            return self._batchedReadValues[5]

        @colord4_1.setter
        def colord4_1(self, value):
            self._batchedReadValues[5] = value

        @property
        def colorf3_0(self):
            return self._batchedReadValues[6]

        @colorf3_0.setter
        def colorf3_0(self, value):
            self._batchedReadValues[6] = value

        @property
        def colorf3_1(self):
            return self._batchedReadValues[7]

        @colorf3_1.setter
        def colorf3_1(self, value):
            self._batchedReadValues[7] = value

        @property
        def colorf4_0(self):
            return self._batchedReadValues[8]

        @colorf4_0.setter
        def colorf4_0(self, value):
            self._batchedReadValues[8] = value

        @property
        def colorf4_1(self):
            return self._batchedReadValues[9]

        @colorf4_1.setter
        def colorf4_1(self, value):
            self._batchedReadValues[9] = value

        @property
        def colorh3_0(self):
            return self._batchedReadValues[10]

        @colorh3_0.setter
        def colorh3_0(self, value):
            self._batchedReadValues[10] = value

        @property
        def colorh3_1(self):
            return self._batchedReadValues[11]

        @colorh3_1.setter
        def colorh3_1(self, value):
            self._batchedReadValues[11] = value

        @property
        def colorh4_0(self):
            return self._batchedReadValues[12]

        @colorh4_0.setter
        def colorh4_0(self, value):
            self._batchedReadValues[12] = value

        @property
        def colorh4_1(self):
            return self._batchedReadValues[13]

        @colorh4_1.setter
        def colorh4_1(self, value):
            self._batchedReadValues[13] = value

        @property
        def double2_0(self):
            return self._batchedReadValues[14]

        @double2_0.setter
        def double2_0(self, value):
            self._batchedReadValues[14] = value

        @property
        def double2_1(self):
            return self._batchedReadValues[15]

        @double2_1.setter
        def double2_1(self, value):
            self._batchedReadValues[15] = value

        @property
        def double3_0(self):
            return self._batchedReadValues[16]

        @double3_0.setter
        def double3_0(self, value):
            self._batchedReadValues[16] = value

        @property
        def double3_1(self):
            return self._batchedReadValues[17]

        @double3_1.setter
        def double3_1(self, value):
            self._batchedReadValues[17] = value

        @property
        def double4_0(self):
            return self._batchedReadValues[18]

        @double4_0.setter
        def double4_0(self, value):
            self._batchedReadValues[18] = value

        @property
        def double4_1(self):
            return self._batchedReadValues[19]

        @double4_1.setter
        def double4_1(self, value):
            self._batchedReadValues[19] = value

        @property
        def double_0(self):
            return self._batchedReadValues[20]

        @double_0.setter
        def double_0(self, value):
            self._batchedReadValues[20] = value

        @property
        def double_1(self):
            return self._batchedReadValues[21]

        @double_1.setter
        def double_1(self, value):
            self._batchedReadValues[21] = value

        @property
        def float2_0(self):
            return self._batchedReadValues[22]

        @float2_0.setter
        def float2_0(self, value):
            self._batchedReadValues[22] = value

        @property
        def float2_1(self):
            return self._batchedReadValues[23]

        @float2_1.setter
        def float2_1(self, value):
            self._batchedReadValues[23] = value

        @property
        def float3_0(self):
            return self._batchedReadValues[24]

        @float3_0.setter
        def float3_0(self, value):
            self._batchedReadValues[24] = value

        @property
        def float3_1(self):
            return self._batchedReadValues[25]

        @float3_1.setter
        def float3_1(self, value):
            self._batchedReadValues[25] = value

        @property
        def float4_0(self):
            return self._batchedReadValues[26]

        @float4_0.setter
        def float4_0(self, value):
            self._batchedReadValues[26] = value

        @property
        def float4_1(self):
            return self._batchedReadValues[27]

        @float4_1.setter
        def float4_1(self, value):
            self._batchedReadValues[27] = value

        @property
        def float_0(self):
            return self._batchedReadValues[28]

        @float_0.setter
        def float_0(self, value):
            self._batchedReadValues[28] = value

        @property
        def float_1(self):
            return self._batchedReadValues[29]

        @float_1.setter
        def float_1(self, value):
            self._batchedReadValues[29] = value

        @property
        def frame4_0(self):
            return self._batchedReadValues[30]

        @frame4_0.setter
        def frame4_0(self, value):
            self._batchedReadValues[30] = value

        @property
        def frame4_1(self):
            return self._batchedReadValues[31]

        @frame4_1.setter
        def frame4_1(self, value):
            self._batchedReadValues[31] = value

        @property
        def half2_0(self):
            return self._batchedReadValues[32]

        @half2_0.setter
        def half2_0(self, value):
            self._batchedReadValues[32] = value

        @property
        def half2_1(self):
            return self._batchedReadValues[33]

        @half2_1.setter
        def half2_1(self, value):
            self._batchedReadValues[33] = value

        @property
        def half3_0(self):
            return self._batchedReadValues[34]

        @half3_0.setter
        def half3_0(self, value):
            self._batchedReadValues[34] = value

        @property
        def half3_1(self):
            return self._batchedReadValues[35]

        @half3_1.setter
        def half3_1(self, value):
            self._batchedReadValues[35] = value

        @property
        def half4_0(self):
            return self._batchedReadValues[36]

        @half4_0.setter
        def half4_0(self, value):
            self._batchedReadValues[36] = value

        @property
        def half4_1(self):
            return self._batchedReadValues[37]

        @half4_1.setter
        def half4_1(self, value):
            self._batchedReadValues[37] = value

        @property
        def half_0(self):
            return self._batchedReadValues[38]

        @half_0.setter
        def half_0(self, value):
            self._batchedReadValues[38] = value

        @property
        def half_1(self):
            return self._batchedReadValues[39]

        @half_1.setter
        def half_1(self, value):
            self._batchedReadValues[39] = value

        @property
        def int2_0(self):
            return self._batchedReadValues[40]

        @int2_0.setter
        def int2_0(self, value):
            self._batchedReadValues[40] = value

        @property
        def int2_1(self):
            return self._batchedReadValues[41]

        @int2_1.setter
        def int2_1(self, value):
            self._batchedReadValues[41] = value

        @property
        def int3_0(self):
            return self._batchedReadValues[42]

        @int3_0.setter
        def int3_0(self, value):
            self._batchedReadValues[42] = value

        @property
        def int3_1(self):
            return self._batchedReadValues[43]

        @int3_1.setter
        def int3_1(self, value):
            self._batchedReadValues[43] = value

        @property
        def int4_0(self):
            return self._batchedReadValues[44]

        @int4_0.setter
        def int4_0(self, value):
            self._batchedReadValues[44] = value

        @property
        def int4_1(self):
            return self._batchedReadValues[45]

        @int4_1.setter
        def int4_1(self, value):
            self._batchedReadValues[45] = value

        @property
        def int64_0(self):
            return self._batchedReadValues[46]

        @int64_0.setter
        def int64_0(self, value):
            self._batchedReadValues[46] = value

        @property
        def int64_1(self):
            return self._batchedReadValues[47]

        @int64_1.setter
        def int64_1(self, value):
            self._batchedReadValues[47] = value

        @property
        def int_0(self):
            return self._batchedReadValues[48]

        @int_0.setter
        def int_0(self, value):
            self._batchedReadValues[48] = value

        @property
        def int_1(self):
            return self._batchedReadValues[49]

        @int_1.setter
        def int_1(self, value):
            self._batchedReadValues[49] = value

        @property
        def matrixd2_0(self):
            return self._batchedReadValues[50]

        @matrixd2_0.setter
        def matrixd2_0(self, value):
            self._batchedReadValues[50] = value

        @property
        def matrixd2_1(self):
            return self._batchedReadValues[51]

        @matrixd2_1.setter
        def matrixd2_1(self, value):
            self._batchedReadValues[51] = value

        @property
        def matrixd3_0(self):
            return self._batchedReadValues[52]

        @matrixd3_0.setter
        def matrixd3_0(self, value):
            self._batchedReadValues[52] = value

        @property
        def matrixd3_1(self):
            return self._batchedReadValues[53]

        @matrixd3_1.setter
        def matrixd3_1(self, value):
            self._batchedReadValues[53] = value

        @property
        def matrixd4_0(self):
            return self._batchedReadValues[54]

        @matrixd4_0.setter
        def matrixd4_0(self, value):
            self._batchedReadValues[54] = value

        @property
        def matrixd4_1(self):
            return self._batchedReadValues[55]

        @matrixd4_1.setter
        def matrixd4_1(self, value):
            self._batchedReadValues[55] = value

        @property
        def normald3_0(self):
            return self._batchedReadValues[56]

        @normald3_0.setter
        def normald3_0(self, value):
            self._batchedReadValues[56] = value

        @property
        def normald3_1(self):
            return self._batchedReadValues[57]

        @normald3_1.setter
        def normald3_1(self, value):
            self._batchedReadValues[57] = value

        @property
        def normalf3_0(self):
            return self._batchedReadValues[58]

        @normalf3_0.setter
        def normalf3_0(self, value):
            self._batchedReadValues[58] = value

        @property
        def normalf3_1(self):
            return self._batchedReadValues[59]

        @normalf3_1.setter
        def normalf3_1(self, value):
            self._batchedReadValues[59] = value

        @property
        def normalh3_0(self):
            return self._batchedReadValues[60]

        @normalh3_0.setter
        def normalh3_0(self, value):
            self._batchedReadValues[60] = value

        @property
        def normalh3_1(self):
            return self._batchedReadValues[61]

        @normalh3_1.setter
        def normalh3_1(self, value):
            self._batchedReadValues[61] = value

        @property
        def pointd3_0(self):
            return self._batchedReadValues[62]

        @pointd3_0.setter
        def pointd3_0(self, value):
            self._batchedReadValues[62] = value

        @property
        def pointd3_1(self):
            return self._batchedReadValues[63]

        @pointd3_1.setter
        def pointd3_1(self, value):
            self._batchedReadValues[63] = value

        @property
        def pointf3_0(self):
            return self._batchedReadValues[64]

        @pointf3_0.setter
        def pointf3_0(self, value):
            self._batchedReadValues[64] = value

        @property
        def pointf3_1(self):
            return self._batchedReadValues[65]

        @pointf3_1.setter
        def pointf3_1(self, value):
            self._batchedReadValues[65] = value

        @property
        def pointh3_0(self):
            return self._batchedReadValues[66]

        @pointh3_0.setter
        def pointh3_0(self, value):
            self._batchedReadValues[66] = value

        @property
        def pointh3_1(self):
            return self._batchedReadValues[67]

        @pointh3_1.setter
        def pointh3_1(self, value):
            self._batchedReadValues[67] = value

        @property
        def quatd4_0(self):
            return self._batchedReadValues[68]

        @quatd4_0.setter
        def quatd4_0(self, value):
            self._batchedReadValues[68] = value

        @property
        def quatd4_1(self):
            return self._batchedReadValues[69]

        @quatd4_1.setter
        def quatd4_1(self, value):
            self._batchedReadValues[69] = value

        @property
        def quatf4_0(self):
            return self._batchedReadValues[70]

        @quatf4_0.setter
        def quatf4_0(self, value):
            self._batchedReadValues[70] = value

        @property
        def quatf4_1(self):
            return self._batchedReadValues[71]

        @quatf4_1.setter
        def quatf4_1(self, value):
            self._batchedReadValues[71] = value

        @property
        def quath4_0(self):
            return self._batchedReadValues[72]

        @quath4_0.setter
        def quath4_0(self, value):
            self._batchedReadValues[72] = value

        @property
        def quath4_1(self):
            return self._batchedReadValues[73]

        @quath4_1.setter
        def quath4_1(self, value):
            self._batchedReadValues[73] = value

        @property
        def texcoordd2_0(self):
            return self._batchedReadValues[74]

        @texcoordd2_0.setter
        def texcoordd2_0(self, value):
            self._batchedReadValues[74] = value

        @property
        def texcoordd2_1(self):
            return self._batchedReadValues[75]

        @texcoordd2_1.setter
        def texcoordd2_1(self, value):
            self._batchedReadValues[75] = value

        @property
        def texcoordd3_0(self):
            return self._batchedReadValues[76]

        @texcoordd3_0.setter
        def texcoordd3_0(self, value):
            self._batchedReadValues[76] = value

        @property
        def texcoordd3_1(self):
            return self._batchedReadValues[77]

        @texcoordd3_1.setter
        def texcoordd3_1(self, value):
            self._batchedReadValues[77] = value

        @property
        def texcoordf2_0(self):
            return self._batchedReadValues[78]

        @texcoordf2_0.setter
        def texcoordf2_0(self, value):
            self._batchedReadValues[78] = value

        @property
        def texcoordf2_1(self):
            return self._batchedReadValues[79]

        @texcoordf2_1.setter
        def texcoordf2_1(self, value):
            self._batchedReadValues[79] = value

        @property
        def texcoordf3_0(self):
            return self._batchedReadValues[80]

        @texcoordf3_0.setter
        def texcoordf3_0(self, value):
            self._batchedReadValues[80] = value

        @property
        def texcoordf3_1(self):
            return self._batchedReadValues[81]

        @texcoordf3_1.setter
        def texcoordf3_1(self, value):
            self._batchedReadValues[81] = value

        @property
        def texcoordh2_0(self):
            return self._batchedReadValues[82]

        @texcoordh2_0.setter
        def texcoordh2_0(self, value):
            self._batchedReadValues[82] = value

        @property
        def texcoordh2_1(self):
            return self._batchedReadValues[83]

        @texcoordh2_1.setter
        def texcoordh2_1(self, value):
            self._batchedReadValues[83] = value

        @property
        def texcoordh3_0(self):
            return self._batchedReadValues[84]

        @texcoordh3_0.setter
        def texcoordh3_0(self, value):
            self._batchedReadValues[84] = value

        @property
        def texcoordh3_1(self):
            return self._batchedReadValues[85]

        @texcoordh3_1.setter
        def texcoordh3_1(self, value):
            self._batchedReadValues[85] = value

        @property
        def timecode_0(self):
            return self._batchedReadValues[86]

        @timecode_0.setter
        def timecode_0(self, value):
            self._batchedReadValues[86] = value

        @property
        def timecode_1(self):
            return self._batchedReadValues[87]

        @timecode_1.setter
        def timecode_1(self, value):
            self._batchedReadValues[87] = value

        @property
        def token_0(self):
            return self._batchedReadValues[88]

        @token_0.setter
        def token_0(self, value):
            self._batchedReadValues[88] = value

        @property
        def token_1(self):
            return self._batchedReadValues[89]

        @token_1.setter
        def token_1(self, value):
            self._batchedReadValues[89] = value

        @property
        def transform4_0(self):
            return self._batchedReadValues[90]

        @transform4_0.setter
        def transform4_0(self, value):
            self._batchedReadValues[90] = value

        @property
        def transform4_1(self):
            return self._batchedReadValues[91]

        @transform4_1.setter
        def transform4_1(self, value):
            self._batchedReadValues[91] = value

        @property
        def uchar_0(self):
            return self._batchedReadValues[92]

        @uchar_0.setter
        def uchar_0(self, value):
            self._batchedReadValues[92] = value

        @property
        def uchar_1(self):
            return self._batchedReadValues[93]

        @uchar_1.setter
        def uchar_1(self, value):
            self._batchedReadValues[93] = value

        @property
        def uint64_0(self):
            return self._batchedReadValues[94]

        @uint64_0.setter
        def uint64_0(self, value):
            self._batchedReadValues[94] = value

        @property
        def uint64_1(self):
            return self._batchedReadValues[95]

        @uint64_1.setter
        def uint64_1(self, value):
            self._batchedReadValues[95] = value

        @property
        def uint_0(self):
            return self._batchedReadValues[96]

        @uint_0.setter
        def uint_0(self, value):
            self._batchedReadValues[96] = value

        @property
        def uint_1(self):
            return self._batchedReadValues[97]

        @uint_1.setter
        def uint_1(self, value):
            self._batchedReadValues[97] = value

        @property
        def vectord3_0(self):
            return self._batchedReadValues[98]

        @vectord3_0.setter
        def vectord3_0(self, value):
            self._batchedReadValues[98] = value

        @property
        def vectord3_1(self):
            return self._batchedReadValues[99]

        @vectord3_1.setter
        def vectord3_1(self, value):
            self._batchedReadValues[99] = value

        @property
        def vectorf3_0(self):
            return self._batchedReadValues[100]

        @vectorf3_0.setter
        def vectorf3_0(self, value):
            self._batchedReadValues[100] = value

        @property
        def vectorf3_1(self):
            return self._batchedReadValues[101]

        @vectorf3_1.setter
        def vectorf3_1(self, value):
            self._batchedReadValues[101] = value

        @property
        def vectorh3_0(self):
            return self._batchedReadValues[102]

        @vectorh3_0.setter
        def vectorh3_0(self, value):
            self._batchedReadValues[102] = value

        @property
        def vectorh3_1(self):
            return self._batchedReadValues[103]

        @vectorh3_1.setter
        def vectorh3_1(self, value):
            self._batchedReadValues[103] = value

        def __getattr__(self, item: str):
            if item in self.LOCAL_PROPERTY_NAMES:
                return object.__getattribute__(self, item)
            else:
                return super().__getattr__(item)

        def __setattr__(self, item: str, new_value):
            if item in self.LOCAL_PROPERTY_NAMES:
                object.__setattr__(self, item, new_value)
            else:
                super().__setattr__(item, new_value)

        def _prefetch(self):
            readAttributes = self._batchedReadAttributes
            newValues = _og._prefetch_input_attributes_data(readAttributes)
            if len(readAttributes) == len(newValues):
                self._batchedReadValues = newValues

    class ValuesForOutputs(og.DynamicAttributeAccess):
        LOCAL_PROPERTY_NAMES = {"bool_0", "colord3_0", "colord4_0", "colorf3_0", "colorf4_0", "colorh3_0", "colorh4_0", "double2_0", "double3_0", "double4_0", "double_0", "float2_0", "float3_0", "float4_0", "float_0", "frame4_0", "half2_0", "half3_0", "half4_0", "half_0", "int2_0", "int3_0", "int4_0", "int64_0", "int_0", "matrixd2_0", "matrixd3_0", "matrixd4_0", "normald3_0", "normalf3_0", "normalh3_0", "pointd3_0", "pointf3_0", "pointh3_0", "quatd4_0", "quatf4_0", "quath4_0", "texcoordd2_0", "texcoordd3_0", "texcoordf2_0", "texcoordf3_0", "texcoordh2_0", "texcoordh3_0", "timecode_0", "token_0", "transform4_0", "uchar_0", "uint64_0", "uint_0", "vectord3_0", "vectorf3_0", "vectorh3_0", "_batchedWriteValues"}
        """Helper class that creates natural hierarchical access to output attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)
            self.bool_arr_0_size = 0
            self.colord3_arr_0_size = 0
            self.colord4_arr_0_size = 0
            self.colorf3_arr_0_size = 0
            self.colorf4_arr_0_size = 0
            self.colorh3_arr_0_size = 0
            self.colorh4_arr_0_size = 0
            self.double2_arr_0_size = 0
            self.double3_arr_0_size = 0
            self.double4_arr_0_size = 0
            self.double_arr_0_size = 0
            self.float2_arr_0_size = 0
            self.float3_arr_0_size = 0
            self.float4_arr_0_size = 0
            self.float_arr_0_size = 0
            self.frame4_arr_0_size = 0
            self.half2_arr_0_size = 0
            self.half3_arr_0_size = 0
            self.half4_arr_0_size = 0
            self.half_arr_0_size = 0
            self.int2_arr_0_size = 0
            self.int3_arr_0_size = 0
            self.int4_arr_0_size = 0
            self.int64_arr_0_size = 0
            self.int_arr_0_size = 0
            self.matrixd2_arr_0_size = 0
            self.matrixd3_arr_0_size = 0
            self.matrixd4_arr_0_size = 0
            self.normald3_arr_0_size = 0
            self.normalf3_arr_0_size = 0
            self.normalh3_arr_0_size = 0
            self.pointd3_arr_0_size = 0
            self.pointf3_arr_0_size = 0
            self.pointh3_arr_0_size = 0
            self.quatd4_arr_0_size = 0
            self.quatf4_arr_0_size = 0
            self.quath4_arr_0_size = 0
            self.texcoordd2_arr_0_size = 0
            self.texcoordd3_arr_0_size = 0
            self.texcoordf2_arr_0_size = 0
            self.texcoordf3_arr_0_size = 0
            self.texcoordh2_arr_0_size = 0
            self.texcoordh3_arr_0_size = 0
            self.timecode_arr_0_size = 0
            self.token_arr_0_size = 0
            self.transform4_arr_0_size = 0
            self.uchar_arr_0_size = 0
            self.uint64_arr_0_size = 0
            self.uint_arr_0_size = 0
            self.vectord3_arr_0_size = 0
            self.vectorf3_arr_0_size = 0
            self.vectorh3_arr_0_size = 0
            self._batchedWriteValues = { }

        @property
        def bool_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_0)
            return data_view.get(reserved_element_count=self.bool_arr_0_size)

        @bool_arr_0.setter
        def bool_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.bool_arr_0)
            data_view.set(value)
            self.bool_arr_0_size = data_view.get_array_size()

        @property
        def colord3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_0)
            return data_view.get(reserved_element_count=self.colord3_arr_0_size)

        @colord3_arr_0.setter
        def colord3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colord3_arr_0)
            data_view.set(value)
            self.colord3_arr_0_size = data_view.get_array_size()

        @property
        def colord4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_0)
            return data_view.get(reserved_element_count=self.colord4_arr_0_size)

        @colord4_arr_0.setter
        def colord4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colord4_arr_0)
            data_view.set(value)
            self.colord4_arr_0_size = data_view.get_array_size()

        @property
        def colorf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_0)
            return data_view.get(reserved_element_count=self.colorf3_arr_0_size)

        @colorf3_arr_0.setter
        def colorf3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colorf3_arr_0)
            data_view.set(value)
            self.colorf3_arr_0_size = data_view.get_array_size()

        @property
        def colorf4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_0)
            return data_view.get(reserved_element_count=self.colorf4_arr_0_size)

        @colorf4_arr_0.setter
        def colorf4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colorf4_arr_0)
            data_view.set(value)
            self.colorf4_arr_0_size = data_view.get_array_size()

        @property
        def colorh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_0)
            return data_view.get(reserved_element_count=self.colorh3_arr_0_size)

        @colorh3_arr_0.setter
        def colorh3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colorh3_arr_0)
            data_view.set(value)
            self.colorh3_arr_0_size = data_view.get_array_size()

        @property
        def colorh4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_0)
            return data_view.get(reserved_element_count=self.colorh4_arr_0_size)

        @colorh4_arr_0.setter
        def colorh4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.colorh4_arr_0)
            data_view.set(value)
            self.colorh4_arr_0_size = data_view.get_array_size()

        @property
        def double2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_0)
            return data_view.get(reserved_element_count=self.double2_arr_0_size)

        @double2_arr_0.setter
        def double2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.double2_arr_0)
            data_view.set(value)
            self.double2_arr_0_size = data_view.get_array_size()

        @property
        def double3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_0)
            return data_view.get(reserved_element_count=self.double3_arr_0_size)

        @double3_arr_0.setter
        def double3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.double3_arr_0)
            data_view.set(value)
            self.double3_arr_0_size = data_view.get_array_size()

        @property
        def double4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_0)
            return data_view.get(reserved_element_count=self.double4_arr_0_size)

        @double4_arr_0.setter
        def double4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.double4_arr_0)
            data_view.set(value)
            self.double4_arr_0_size = data_view.get_array_size()

        @property
        def double_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.double_arr_0)
            return data_view.get(reserved_element_count=self.double_arr_0_size)

        @double_arr_0.setter
        def double_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.double_arr_0)
            data_view.set(value)
            self.double_arr_0_size = data_view.get_array_size()

        @property
        def float2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_0)
            return data_view.get(reserved_element_count=self.float2_arr_0_size)

        @float2_arr_0.setter
        def float2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.float2_arr_0)
            data_view.set(value)
            self.float2_arr_0_size = data_view.get_array_size()

        @property
        def float3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_0)
            return data_view.get(reserved_element_count=self.float3_arr_0_size)

        @float3_arr_0.setter
        def float3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.float3_arr_0)
            data_view.set(value)
            self.float3_arr_0_size = data_view.get_array_size()

        @property
        def float4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_0)
            return data_view.get(reserved_element_count=self.float4_arr_0_size)

        @float4_arr_0.setter
        def float4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.float4_arr_0)
            data_view.set(value)
            self.float4_arr_0_size = data_view.get_array_size()

        @property
        def float_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.float_arr_0)
            return data_view.get(reserved_element_count=self.float_arr_0_size)

        @float_arr_0.setter
        def float_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.float_arr_0)
            data_view.set(value)
            self.float_arr_0_size = data_view.get_array_size()

        @property
        def frame4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_0)
            return data_view.get(reserved_element_count=self.frame4_arr_0_size)

        @frame4_arr_0.setter
        def frame4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.frame4_arr_0)
            data_view.set(value)
            self.frame4_arr_0_size = data_view.get_array_size()

        @property
        def half2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_0)
            return data_view.get(reserved_element_count=self.half2_arr_0_size)

        @half2_arr_0.setter
        def half2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.half2_arr_0)
            data_view.set(value)
            self.half2_arr_0_size = data_view.get_array_size()

        @property
        def half3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_0)
            return data_view.get(reserved_element_count=self.half3_arr_0_size)

        @half3_arr_0.setter
        def half3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.half3_arr_0)
            data_view.set(value)
            self.half3_arr_0_size = data_view.get_array_size()

        @property
        def half4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_0)
            return data_view.get(reserved_element_count=self.half4_arr_0_size)

        @half4_arr_0.setter
        def half4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.half4_arr_0)
            data_view.set(value)
            self.half4_arr_0_size = data_view.get_array_size()

        @property
        def half_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.half_arr_0)
            return data_view.get(reserved_element_count=self.half_arr_0_size)

        @half_arr_0.setter
        def half_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.half_arr_0)
            data_view.set(value)
            self.half_arr_0_size = data_view.get_array_size()

        @property
        def int2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_0)
            return data_view.get(reserved_element_count=self.int2_arr_0_size)

        @int2_arr_0.setter
        def int2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.int2_arr_0)
            data_view.set(value)
            self.int2_arr_0_size = data_view.get_array_size()

        @property
        def int3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_0)
            return data_view.get(reserved_element_count=self.int3_arr_0_size)

        @int3_arr_0.setter
        def int3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.int3_arr_0)
            data_view.set(value)
            self.int3_arr_0_size = data_view.get_array_size()

        @property
        def int4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_0)
            return data_view.get(reserved_element_count=self.int4_arr_0_size)

        @int4_arr_0.setter
        def int4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.int4_arr_0)
            data_view.set(value)
            self.int4_arr_0_size = data_view.get_array_size()

        @property
        def int64_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_0)
            return data_view.get(reserved_element_count=self.int64_arr_0_size)

        @int64_arr_0.setter
        def int64_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.int64_arr_0)
            data_view.set(value)
            self.int64_arr_0_size = data_view.get_array_size()

        @property
        def int_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.int_arr_0)
            return data_view.get(reserved_element_count=self.int_arr_0_size)

        @int_arr_0.setter
        def int_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.int_arr_0)
            data_view.set(value)
            self.int_arr_0_size = data_view.get_array_size()

        @property
        def matrixd2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_0)
            return data_view.get(reserved_element_count=self.matrixd2_arr_0_size)

        @matrixd2_arr_0.setter
        def matrixd2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.matrixd2_arr_0)
            data_view.set(value)
            self.matrixd2_arr_0_size = data_view.get_array_size()

        @property
        def matrixd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_0)
            return data_view.get(reserved_element_count=self.matrixd3_arr_0_size)

        @matrixd3_arr_0.setter
        def matrixd3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.matrixd3_arr_0)
            data_view.set(value)
            self.matrixd3_arr_0_size = data_view.get_array_size()

        @property
        def matrixd4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_0)
            return data_view.get(reserved_element_count=self.matrixd4_arr_0_size)

        @matrixd4_arr_0.setter
        def matrixd4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.matrixd4_arr_0)
            data_view.set(value)
            self.matrixd4_arr_0_size = data_view.get_array_size()

        @property
        def normald3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_0)
            return data_view.get(reserved_element_count=self.normald3_arr_0_size)

        @normald3_arr_0.setter
        def normald3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.normald3_arr_0)
            data_view.set(value)
            self.normald3_arr_0_size = data_view.get_array_size()

        @property
        def normalf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_0)
            return data_view.get(reserved_element_count=self.normalf3_arr_0_size)

        @normalf3_arr_0.setter
        def normalf3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.normalf3_arr_0)
            data_view.set(value)
            self.normalf3_arr_0_size = data_view.get_array_size()

        @property
        def normalh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_0)
            return data_view.get(reserved_element_count=self.normalh3_arr_0_size)

        @normalh3_arr_0.setter
        def normalh3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.normalh3_arr_0)
            data_view.set(value)
            self.normalh3_arr_0_size = data_view.get_array_size()

        @property
        def pointd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_0)
            return data_view.get(reserved_element_count=self.pointd3_arr_0_size)

        @pointd3_arr_0.setter
        def pointd3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.pointd3_arr_0)
            data_view.set(value)
            self.pointd3_arr_0_size = data_view.get_array_size()

        @property
        def pointf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_0)
            return data_view.get(reserved_element_count=self.pointf3_arr_0_size)

        @pointf3_arr_0.setter
        def pointf3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.pointf3_arr_0)
            data_view.set(value)
            self.pointf3_arr_0_size = data_view.get_array_size()

        @property
        def pointh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_0)
            return data_view.get(reserved_element_count=self.pointh3_arr_0_size)

        @pointh3_arr_0.setter
        def pointh3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.pointh3_arr_0)
            data_view.set(value)
            self.pointh3_arr_0_size = data_view.get_array_size()

        @property
        def quatd4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_0)
            return data_view.get(reserved_element_count=self.quatd4_arr_0_size)

        @quatd4_arr_0.setter
        def quatd4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.quatd4_arr_0)
            data_view.set(value)
            self.quatd4_arr_0_size = data_view.get_array_size()

        @property
        def quatf4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_0)
            return data_view.get(reserved_element_count=self.quatf4_arr_0_size)

        @quatf4_arr_0.setter
        def quatf4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.quatf4_arr_0)
            data_view.set(value)
            self.quatf4_arr_0_size = data_view.get_array_size()

        @property
        def quath4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_0)
            return data_view.get(reserved_element_count=self.quath4_arr_0_size)

        @quath4_arr_0.setter
        def quath4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.quath4_arr_0)
            data_view.set(value)
            self.quath4_arr_0_size = data_view.get_array_size()

        @property
        def texcoordd2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_0)
            return data_view.get(reserved_element_count=self.texcoordd2_arr_0_size)

        @texcoordd2_arr_0.setter
        def texcoordd2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd2_arr_0)
            data_view.set(value)
            self.texcoordd2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordd3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_0)
            return data_view.get(reserved_element_count=self.texcoordd3_arr_0_size)

        @texcoordd3_arr_0.setter
        def texcoordd3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordd3_arr_0)
            data_view.set(value)
            self.texcoordd3_arr_0_size = data_view.get_array_size()

        @property
        def texcoordf2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_0)
            return data_view.get(reserved_element_count=self.texcoordf2_arr_0_size)

        @texcoordf2_arr_0.setter
        def texcoordf2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf2_arr_0)
            data_view.set(value)
            self.texcoordf2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_0)
            return data_view.get(reserved_element_count=self.texcoordf3_arr_0_size)

        @texcoordf3_arr_0.setter
        def texcoordf3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordf3_arr_0)
            data_view.set(value)
            self.texcoordf3_arr_0_size = data_view.get_array_size()

        @property
        def texcoordh2_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_0)
            return data_view.get(reserved_element_count=self.texcoordh2_arr_0_size)

        @texcoordh2_arr_0.setter
        def texcoordh2_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh2_arr_0)
            data_view.set(value)
            self.texcoordh2_arr_0_size = data_view.get_array_size()

        @property
        def texcoordh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_0)
            return data_view.get(reserved_element_count=self.texcoordh3_arr_0_size)

        @texcoordh3_arr_0.setter
        def texcoordh3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.texcoordh3_arr_0)
            data_view.set(value)
            self.texcoordh3_arr_0_size = data_view.get_array_size()

        @property
        def timecode_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_0)
            return data_view.get(reserved_element_count=self.timecode_arr_0_size)

        @timecode_arr_0.setter
        def timecode_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.timecode_arr_0)
            data_view.set(value)
            self.timecode_arr_0_size = data_view.get_array_size()

        @property
        def token_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.token_arr_0)
            return data_view.get(reserved_element_count=self.token_arr_0_size)

        @token_arr_0.setter
        def token_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.token_arr_0)
            data_view.set(value)
            self.token_arr_0_size = data_view.get_array_size()

        @property
        def transform4_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_0)
            return data_view.get(reserved_element_count=self.transform4_arr_0_size)

        @transform4_arr_0.setter
        def transform4_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.transform4_arr_0)
            data_view.set(value)
            self.transform4_arr_0_size = data_view.get_array_size()

        @property
        def uchar_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_0)
            return data_view.get(reserved_element_count=self.uchar_arr_0_size)

        @uchar_arr_0.setter
        def uchar_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.uchar_arr_0)
            data_view.set(value)
            self.uchar_arr_0_size = data_view.get_array_size()

        @property
        def uint64_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_0)
            return data_view.get(reserved_element_count=self.uint64_arr_0_size)

        @uint64_arr_0.setter
        def uint64_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.uint64_arr_0)
            data_view.set(value)
            self.uint64_arr_0_size = data_view.get_array_size()

        @property
        def uint_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_0)
            return data_view.get(reserved_element_count=self.uint_arr_0_size)

        @uint_arr_0.setter
        def uint_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.uint_arr_0)
            data_view.set(value)
            self.uint_arr_0_size = data_view.get_array_size()

        @property
        def vectord3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_0)
            return data_view.get(reserved_element_count=self.vectord3_arr_0_size)

        @vectord3_arr_0.setter
        def vectord3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.vectord3_arr_0)
            data_view.set(value)
            self.vectord3_arr_0_size = data_view.get_array_size()

        @property
        def vectorf3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_0)
            return data_view.get(reserved_element_count=self.vectorf3_arr_0_size)

        @vectorf3_arr_0.setter
        def vectorf3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.vectorf3_arr_0)
            data_view.set(value)
            self.vectorf3_arr_0_size = data_view.get_array_size()

        @property
        def vectorh3_arr_0(self):
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_0)
            return data_view.get(reserved_element_count=self.vectorh3_arr_0_size)

        @vectorh3_arr_0.setter
        def vectorh3_arr_0(self, value):
            data_view = og.AttributeValueHelper(self._attributes.vectorh3_arr_0)
            data_view.set(value)
            self.vectorh3_arr_0_size = data_view.get_array_size()

        @property
        def bool_0(self):
            value = self._batchedWriteValues.get(self._attributes.bool_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.bool_0)
                return data_view.get()

        @bool_0.setter
        def bool_0(self, value):
            self._batchedWriteValues[self._attributes.bool_0] = value

        @property
        def colord3_0(self):
            value = self._batchedWriteValues.get(self._attributes.colord3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colord3_0)
                return data_view.get()

        @colord3_0.setter
        def colord3_0(self, value):
            self._batchedWriteValues[self._attributes.colord3_0] = value

        @property
        def colord4_0(self):
            value = self._batchedWriteValues.get(self._attributes.colord4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colord4_0)
                return data_view.get()

        @colord4_0.setter
        def colord4_0(self, value):
            self._batchedWriteValues[self._attributes.colord4_0] = value

        @property
        def colorf3_0(self):
            value = self._batchedWriteValues.get(self._attributes.colorf3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colorf3_0)
                return data_view.get()

        @colorf3_0.setter
        def colorf3_0(self, value):
            self._batchedWriteValues[self._attributes.colorf3_0] = value

        @property
        def colorf4_0(self):
            value = self._batchedWriteValues.get(self._attributes.colorf4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colorf4_0)
                return data_view.get()

        @colorf4_0.setter
        def colorf4_0(self, value):
            self._batchedWriteValues[self._attributes.colorf4_0] = value

        @property
        def colorh3_0(self):
            value = self._batchedWriteValues.get(self._attributes.colorh3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colorh3_0)
                return data_view.get()

        @colorh3_0.setter
        def colorh3_0(self, value):
            self._batchedWriteValues[self._attributes.colorh3_0] = value

        @property
        def colorh4_0(self):
            value = self._batchedWriteValues.get(self._attributes.colorh4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.colorh4_0)
                return data_view.get()

        @colorh4_0.setter
        def colorh4_0(self, value):
            self._batchedWriteValues[self._attributes.colorh4_0] = value

        @property
        def double2_0(self):
            value = self._batchedWriteValues.get(self._attributes.double2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.double2_0)
                return data_view.get()

        @double2_0.setter
        def double2_0(self, value):
            self._batchedWriteValues[self._attributes.double2_0] = value

        @property
        def double3_0(self):
            value = self._batchedWriteValues.get(self._attributes.double3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.double3_0)
                return data_view.get()

        @double3_0.setter
        def double3_0(self, value):
            self._batchedWriteValues[self._attributes.double3_0] = value

        @property
        def double4_0(self):
            value = self._batchedWriteValues.get(self._attributes.double4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.double4_0)
                return data_view.get()

        @double4_0.setter
        def double4_0(self, value):
            self._batchedWriteValues[self._attributes.double4_0] = value

        @property
        def double_0(self):
            value = self._batchedWriteValues.get(self._attributes.double_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.double_0)
                return data_view.get()

        @double_0.setter
        def double_0(self, value):
            self._batchedWriteValues[self._attributes.double_0] = value

        @property
        def float2_0(self):
            value = self._batchedWriteValues.get(self._attributes.float2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.float2_0)
                return data_view.get()

        @float2_0.setter
        def float2_0(self, value):
            self._batchedWriteValues[self._attributes.float2_0] = value

        @property
        def float3_0(self):
            value = self._batchedWriteValues.get(self._attributes.float3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.float3_0)
                return data_view.get()

        @float3_0.setter
        def float3_0(self, value):
            self._batchedWriteValues[self._attributes.float3_0] = value

        @property
        def float4_0(self):
            value = self._batchedWriteValues.get(self._attributes.float4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.float4_0)
                return data_view.get()

        @float4_0.setter
        def float4_0(self, value):
            self._batchedWriteValues[self._attributes.float4_0] = value

        @property
        def float_0(self):
            value = self._batchedWriteValues.get(self._attributes.float_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.float_0)
                return data_view.get()

        @float_0.setter
        def float_0(self, value):
            self._batchedWriteValues[self._attributes.float_0] = value

        @property
        def frame4_0(self):
            value = self._batchedWriteValues.get(self._attributes.frame4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.frame4_0)
                return data_view.get()

        @frame4_0.setter
        def frame4_0(self, value):
            self._batchedWriteValues[self._attributes.frame4_0] = value

        @property
        def half2_0(self):
            value = self._batchedWriteValues.get(self._attributes.half2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.half2_0)
                return data_view.get()

        @half2_0.setter
        def half2_0(self, value):
            self._batchedWriteValues[self._attributes.half2_0] = value

        @property
        def half3_0(self):
            value = self._batchedWriteValues.get(self._attributes.half3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.half3_0)
                return data_view.get()

        @half3_0.setter
        def half3_0(self, value):
            self._batchedWriteValues[self._attributes.half3_0] = value

        @property
        def half4_0(self):
            value = self._batchedWriteValues.get(self._attributes.half4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.half4_0)
                return data_view.get()

        @half4_0.setter
        def half4_0(self, value):
            self._batchedWriteValues[self._attributes.half4_0] = value

        @property
        def half_0(self):
            value = self._batchedWriteValues.get(self._attributes.half_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.half_0)
                return data_view.get()

        @half_0.setter
        def half_0(self, value):
            self._batchedWriteValues[self._attributes.half_0] = value

        @property
        def int2_0(self):
            value = self._batchedWriteValues.get(self._attributes.int2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.int2_0)
                return data_view.get()

        @int2_0.setter
        def int2_0(self, value):
            self._batchedWriteValues[self._attributes.int2_0] = value

        @property
        def int3_0(self):
            value = self._batchedWriteValues.get(self._attributes.int3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.int3_0)
                return data_view.get()

        @int3_0.setter
        def int3_0(self, value):
            self._batchedWriteValues[self._attributes.int3_0] = value

        @property
        def int4_0(self):
            value = self._batchedWriteValues.get(self._attributes.int4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.int4_0)
                return data_view.get()

        @int4_0.setter
        def int4_0(self, value):
            self._batchedWriteValues[self._attributes.int4_0] = value

        @property
        def int64_0(self):
            value = self._batchedWriteValues.get(self._attributes.int64_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.int64_0)
                return data_view.get()

        @int64_0.setter
        def int64_0(self, value):
            self._batchedWriteValues[self._attributes.int64_0] = value

        @property
        def int_0(self):
            value = self._batchedWriteValues.get(self._attributes.int_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.int_0)
                return data_view.get()

        @int_0.setter
        def int_0(self, value):
            self._batchedWriteValues[self._attributes.int_0] = value

        @property
        def matrixd2_0(self):
            value = self._batchedWriteValues.get(self._attributes.matrixd2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.matrixd2_0)
                return data_view.get()

        @matrixd2_0.setter
        def matrixd2_0(self, value):
            self._batchedWriteValues[self._attributes.matrixd2_0] = value

        @property
        def matrixd3_0(self):
            value = self._batchedWriteValues.get(self._attributes.matrixd3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.matrixd3_0)
                return data_view.get()

        @matrixd3_0.setter
        def matrixd3_0(self, value):
            self._batchedWriteValues[self._attributes.matrixd3_0] = value

        @property
        def matrixd4_0(self):
            value = self._batchedWriteValues.get(self._attributes.matrixd4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.matrixd4_0)
                return data_view.get()

        @matrixd4_0.setter
        def matrixd4_0(self, value):
            self._batchedWriteValues[self._attributes.matrixd4_0] = value

        @property
        def normald3_0(self):
            value = self._batchedWriteValues.get(self._attributes.normald3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.normald3_0)
                return data_view.get()

        @normald3_0.setter
        def normald3_0(self, value):
            self._batchedWriteValues[self._attributes.normald3_0] = value

        @property
        def normalf3_0(self):
            value = self._batchedWriteValues.get(self._attributes.normalf3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.normalf3_0)
                return data_view.get()

        @normalf3_0.setter
        def normalf3_0(self, value):
            self._batchedWriteValues[self._attributes.normalf3_0] = value

        @property
        def normalh3_0(self):
            value = self._batchedWriteValues.get(self._attributes.normalh3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.normalh3_0)
                return data_view.get()

        @normalh3_0.setter
        def normalh3_0(self, value):
            self._batchedWriteValues[self._attributes.normalh3_0] = value

        @property
        def pointd3_0(self):
            value = self._batchedWriteValues.get(self._attributes.pointd3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.pointd3_0)
                return data_view.get()

        @pointd3_0.setter
        def pointd3_0(self, value):
            self._batchedWriteValues[self._attributes.pointd3_0] = value

        @property
        def pointf3_0(self):
            value = self._batchedWriteValues.get(self._attributes.pointf3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.pointf3_0)
                return data_view.get()

        @pointf3_0.setter
        def pointf3_0(self, value):
            self._batchedWriteValues[self._attributes.pointf3_0] = value

        @property
        def pointh3_0(self):
            value = self._batchedWriteValues.get(self._attributes.pointh3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.pointh3_0)
                return data_view.get()

        @pointh3_0.setter
        def pointh3_0(self, value):
            self._batchedWriteValues[self._attributes.pointh3_0] = value

        @property
        def quatd4_0(self):
            value = self._batchedWriteValues.get(self._attributes.quatd4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.quatd4_0)
                return data_view.get()

        @quatd4_0.setter
        def quatd4_0(self, value):
            self._batchedWriteValues[self._attributes.quatd4_0] = value

        @property
        def quatf4_0(self):
            value = self._batchedWriteValues.get(self._attributes.quatf4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.quatf4_0)
                return data_view.get()

        @quatf4_0.setter
        def quatf4_0(self, value):
            self._batchedWriteValues[self._attributes.quatf4_0] = value

        @property
        def quath4_0(self):
            value = self._batchedWriteValues.get(self._attributes.quath4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.quath4_0)
                return data_view.get()

        @quath4_0.setter
        def quath4_0(self, value):
            self._batchedWriteValues[self._attributes.quath4_0] = value

        @property
        def texcoordd2_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordd2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordd2_0)
                return data_view.get()

        @texcoordd2_0.setter
        def texcoordd2_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordd2_0] = value

        @property
        def texcoordd3_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordd3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordd3_0)
                return data_view.get()

        @texcoordd3_0.setter
        def texcoordd3_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordd3_0] = value

        @property
        def texcoordf2_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordf2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordf2_0)
                return data_view.get()

        @texcoordf2_0.setter
        def texcoordf2_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordf2_0] = value

        @property
        def texcoordf3_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordf3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordf3_0)
                return data_view.get()

        @texcoordf3_0.setter
        def texcoordf3_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordf3_0] = value

        @property
        def texcoordh2_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordh2_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordh2_0)
                return data_view.get()

        @texcoordh2_0.setter
        def texcoordh2_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordh2_0] = value

        @property
        def texcoordh3_0(self):
            value = self._batchedWriteValues.get(self._attributes.texcoordh3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.texcoordh3_0)
                return data_view.get()

        @texcoordh3_0.setter
        def texcoordh3_0(self, value):
            self._batchedWriteValues[self._attributes.texcoordh3_0] = value

        @property
        def timecode_0(self):
            value = self._batchedWriteValues.get(self._attributes.timecode_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.timecode_0)
                return data_view.get()

        @timecode_0.setter
        def timecode_0(self, value):
            self._batchedWriteValues[self._attributes.timecode_0] = value

        @property
        def token_0(self):
            value = self._batchedWriteValues.get(self._attributes.token_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.token_0)
                return data_view.get()

        @token_0.setter
        def token_0(self, value):
            self._batchedWriteValues[self._attributes.token_0] = value

        @property
        def transform4_0(self):
            value = self._batchedWriteValues.get(self._attributes.transform4_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.transform4_0)
                return data_view.get()

        @transform4_0.setter
        def transform4_0(self, value):
            self._batchedWriteValues[self._attributes.transform4_0] = value

        @property
        def uchar_0(self):
            value = self._batchedWriteValues.get(self._attributes.uchar_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.uchar_0)
                return data_view.get()

        @uchar_0.setter
        def uchar_0(self, value):
            self._batchedWriteValues[self._attributes.uchar_0] = value

        @property
        def uint64_0(self):
            value = self._batchedWriteValues.get(self._attributes.uint64_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.uint64_0)
                return data_view.get()

        @uint64_0.setter
        def uint64_0(self, value):
            self._batchedWriteValues[self._attributes.uint64_0] = value

        @property
        def uint_0(self):
            value = self._batchedWriteValues.get(self._attributes.uint_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.uint_0)
                return data_view.get()

        @uint_0.setter
        def uint_0(self, value):
            self._batchedWriteValues[self._attributes.uint_0] = value

        @property
        def vectord3_0(self):
            value = self._batchedWriteValues.get(self._attributes.vectord3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.vectord3_0)
                return data_view.get()

        @vectord3_0.setter
        def vectord3_0(self, value):
            self._batchedWriteValues[self._attributes.vectord3_0] = value

        @property
        def vectorf3_0(self):
            value = self._batchedWriteValues.get(self._attributes.vectorf3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.vectorf3_0)
                return data_view.get()

        @vectorf3_0.setter
        def vectorf3_0(self, value):
            self._batchedWriteValues[self._attributes.vectorf3_0] = value

        @property
        def vectorh3_0(self):
            value = self._batchedWriteValues.get(self._attributes.vectorh3_0)
            if value:
                return value
            else:
                data_view = og.AttributeValueHelper(self._attributes.vectorh3_0)
                return data_view.get()

        @vectorh3_0.setter
        def vectorh3_0(self, value):
            self._batchedWriteValues[self._attributes.vectorh3_0] = value

        def __getattr__(self, item: str):
            if item in self.LOCAL_PROPERTY_NAMES:
                return object.__getattribute__(self, item)
            else:
                return super().__getattr__(item)

        def __setattr__(self, item: str, new_value):
            if item in self.LOCAL_PROPERTY_NAMES:
                object.__setattr__(self, item, new_value)
            else:
                super().__setattr__(item, new_value)

        def _commit(self):
            _og._commit_output_attributes_data(self._batchedWriteValues)
            self._batchedWriteValues = { }

    class ValuesForState(og.DynamicAttributeAccess):
        """Helper class that creates natural hierarchical access to state attributes"""
        def __init__(self, node: og.Node, attributes, dynamic_attributes: og.DynamicAttributeInterface):
            """Initialize simplified access for the attribute data"""
            context = node.get_graph().get_default_graph_context()
            super().__init__(context, node, attributes, dynamic_attributes)

    def __init__(self, node):
        super().__init__(node)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_INPUT)
        self.inputs = OgnPyUniversalAddDatabase.ValuesForInputs(node, self.attributes.inputs, dynamic_attributes)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_OUTPUT)
        self.outputs = OgnPyUniversalAddDatabase.ValuesForOutputs(node, self.attributes.outputs, dynamic_attributes)
        dynamic_attributes = self.dynamic_attribute_data(node, og.AttributePortType.ATTRIBUTE_PORT_TYPE_STATE)
        self.state = OgnPyUniversalAddDatabase.ValuesForState(node, self.attributes.state, dynamic_attributes)

    class abi:
        """Class defining the ABI interface for the node type"""

        @staticmethod
        def get_node_type():
            get_node_type_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'get_node_type', None)
            if callable(get_node_type_function):
                return get_node_type_function()
            return 'omni.graph.examples.python.UniversalAdd'

        @staticmethod
        def compute(context, node):
            def database_valid():
                return True
            try:
                per_node_data = OgnPyUniversalAddDatabase.PER_NODE_DATA[node.node_id()]
                db = per_node_data.get('_db')
                if db is None:
                    db = OgnPyUniversalAddDatabase(node)
                    per_node_data['_db'] = db
                if not database_valid():
                    per_node_data['_db'] = None
                    return False
            except:
                db = OgnPyUniversalAddDatabase(node)

            try:
                compute_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'compute', None)
                if callable(compute_function) and compute_function.__code__.co_argcount > 1:
                    return compute_function(context, node)

                db.inputs._prefetch()
                db.inputs._setting_locked = True
                with og.in_compute():
                    return OgnPyUniversalAddDatabase.NODE_TYPE_CLASS.compute(db)
            except Exception as error:
                stack_trace = "".join(traceback.format_tb(sys.exc_info()[2].tb_next))
                db.log_error(f'Assertion raised in compute - {error}\n{stack_trace}', add_context=False)
            finally:
                db.inputs._setting_locked = False
                db.outputs._commit()
            return False

        @staticmethod
        def initialize(context, node):
            OgnPyUniversalAddDatabase._initialize_per_node_data(node)
            initialize_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'initialize', None)
            if callable(initialize_function):
                initialize_function(context, node)

            per_node_data = OgnPyUniversalAddDatabase.PER_NODE_DATA[node.node_id()]
            def on_connection_or_disconnection(*args):
                per_node_data['_db'] = None

            node.register_on_connected_callback(on_connection_or_disconnection)
            node.register_on_disconnected_callback(on_connection_or_disconnection)

        @staticmethod
        def release(node):
            release_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'release', None)
            if callable(release_function):
                release_function(node)
            OgnPyUniversalAddDatabase._release_per_node_data(node)

        @staticmethod
        def release_instance(node, target):
            OgnPyUniversalAddDatabase._release_per_node_instance_data(node, target)

        @staticmethod
        def update_node_version(context, node, old_version, new_version):
            update_node_version_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'update_node_version', None)
            if callable(update_node_version_function):
                return update_node_version_function(context, node, old_version, new_version)
            return False

        @staticmethod
        def initialize_type(node_type):
            initialize_type_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'initialize_type', None)
            needs_initializing = True
            if callable(initialize_type_function):
                needs_initializing = initialize_type_function(node_type)
            if needs_initializing:
                node_type.set_metadata(ogn.MetadataKeys.EXTENSION, "omni.graph.examples.python")
                node_type.set_metadata(ogn.MetadataKeys.UI_NAME, "Universal Add For All Types (Python)")
                node_type.set_metadata(ogn.MetadataKeys.CATEGORIES, "examples")
                node_type.set_metadata(ogn.MetadataKeys.DESCRIPTION, "Python-based universal add node for all types. This file is generated using UniversalAddGenerator.py")
                node_type.set_metadata(ogn.MetadataKeys.EXCLUSIONS, "usd")
                node_type.set_metadata(ogn.MetadataKeys.LANGUAGE, "Python")
                OgnPyUniversalAddDatabase.INTERFACE.add_to_node_type(node_type)

        @staticmethod
        def on_connection_type_resolve(node):
            on_connection_type_resolve_function = getattr(OgnPyUniversalAddDatabase.NODE_TYPE_CLASS, 'on_connection_type_resolve', None)
            if callable(on_connection_type_resolve_function):
                on_connection_type_resolve_function(node)

    NODE_TYPE_CLASS = None

    @staticmethod
    def register(node_type_class):
        OgnPyUniversalAddDatabase.NODE_TYPE_CLASS = node_type_class
        og.register_node_type(OgnPyUniversalAddDatabase.abi, 1)

    @staticmethod
    def deregister():
        og.deregister_node_type("omni.graph.examples.python.UniversalAdd")
